diff mbox series

[1/1] package/wine: Add gettext dependency for host-wine only with NLS enabled

Message ID 20190104114909.14166-1-vadim4j@gmail.com
State Changes Requested
Headers show
Series [1/1] package/wine: Add gettext dependency for host-wine only with NLS enabled | expand

Commit Message

Vadym Kochan Jan. 4, 2019, 11:49 a.m. UTC
Checked that host-wine compiles ok without host-gettext, so no
needs to specify this dependency.

libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
which allows to convert windows resources also to *.po format, which is
not needed if NLS is disabled.

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 package/wine/wine.mk | 2 ++
 1 file changed, 2 insertions(+)

Comments

Thomas Petazzoni Jan. 4, 2019, 12:42 p.m. UTC | #1
Hello,

On Fri,  4 Jan 2019 13:49:09 +0200, Vadim Kochan wrote:
> Checked that host-wine compiles ok without host-gettext, so no
> needs to specify this dependency.
> 
> libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> which allows to convert windows resources also to *.po format, which is
> not needed if NLS is disabled.
> 
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
>  package/wine/wine.mk | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> index 78c8e6ab63..ef70b6276c 100644
> --- a/package/wine/wine.mk
> +++ b/package/wine/wine.mk
> @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
>  endif
>  
>  # host-gettext is essential for .po file support in host-wine wrc
> +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
>  HOST_WINE_DEPENDENCIES += host-gettext
>  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> +endif

It probably needs a "else" clause, to pass --without-gettext
--without-gettextpo.

Best regards,

Thomas
Vadym Kochan Jan. 4, 2019, 1:58 p.m. UTC | #2
Hi Thomas,

On Fri, Jan 4, 2019 at 2:42 PM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello,
>
> On Fri,  4 Jan 2019 13:49:09 +0200, Vadim Kochan wrote:
> > Checked that host-wine compiles ok without host-gettext, so no
> > needs to specify this dependency.
> >
> > libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> > which allows to convert windows resources also to *.po format, which is
> > not needed if NLS is disabled.
> >
> > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > ---
> >  package/wine/wine.mk | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> > index 78c8e6ab63..ef70b6276c 100644
> > --- a/package/wine/wine.mk
> > +++ b/package/wine/wine.mk
> > @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
> >  endif
> >
> >  # host-gettext is essential for .po file support in host-wine wrc
> > +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
> >  HOST_WINE_DEPENDENCIES += host-gettext
> >  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> > +endif
>
> It probably needs a "else" clause, to pass --without-gettext
> --without-gettextpo.

Emm, I will include this patch (with your suggestion) into gettext-tiny series.

Thanks,
Vadim Kochan
Yann E. MORIN Jan. 4, 2019, 2:01 p.m. UTC | #3
Vadim, All,

On 2019-01-04 13:49 +0200, Vadim Kochan spake thusly:
> Checked that host-wine compiles ok without host-gettext, so no
> needs to specify this dependency.
> 
> libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> which allows to convert windows resources also to *.po format, which is
> not needed if NLS is disabled.
> 
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
>  package/wine/wine.mk | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> index 78c8e6ab63..ef70b6276c 100644
> --- a/package/wine/wine.mk
> +++ b/package/wine/wine.mk
> @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
>  endif
>  
>  # host-gettext is essential for .po file support in host-wine wrc
> +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
>  HOST_WINE_DEPENDENCIES += host-gettext
>  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> +endif

At the beginning, I was failing to see how/why a target-related option,
BR2_SYSTEM_ENABLE_NLS, would affect a host package.

But it truns out that the target wine needs the host wrc to buile the
.po stuff.

However, we unconditionally compile the target wine with:
    --without-gettext --without-gettextpo

So, why do we need a host wrc? And if we need it, why does it needs
gettext support?

Regards,
Yann E. MORIN.

>  # Wine needs to enable 64-bit build tools on 64-bit host
>  ifeq ($(HOSTARCH),x86_64)
> -- 
> 2.14.1
>
Vadym Kochan Jan. 4, 2019, 5:10 p.m. UTC | #4
Yann, Thomas, All

On Fri, Jan 4, 2019 at 4:01 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Vadim, All,
>
> On 2019-01-04 13:49 +0200, Vadim Kochan spake thusly:
> > Checked that host-wine compiles ok without host-gettext, so no
> > needs to specify this dependency.
> >
> > libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> > which allows to convert windows resources also to *.po format, which is
> > not needed if NLS is disabled.
> >
> > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > ---
> >  package/wine/wine.mk | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> > index 78c8e6ab63..ef70b6276c 100644
> > --- a/package/wine/wine.mk
> > +++ b/package/wine/wine.mk
> > @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
> >  endif
> >
> >  # host-gettext is essential for .po file support in host-wine wrc
> > +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
> >  HOST_WINE_DEPENDENCIES += host-gettext
> >  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> > +endif
>
> At the beginning, I was failing to see how/why a target-related option,
> BR2_SYSTEM_ENABLE_NLS, would affect a host package.
>
> But it truns out that the target wine needs the host wrc to buile the
> .po stuff.
>
> However, we unconditionally compile the target wine with:
>     --without-gettext --without-gettextpo
>
> So, why do we need a host wrc? And if we need it, why does it needs
> gettext support?
>

So there are programs/*/ and dlls/*/ and there are 'tools/makedep.c' which
generates programs/*/Makefile and dlls/*/Makefile for these
sub-folders. This tool
generates Makefile which calls 'wrc' from host to generate windows
resource files,
and if there was gettextpo enabled then it generates rules to create
'pot' files by wrc (tools/makedep.c +3169).
But if gettextpo was disabled then the '.pot' rules does nothing (as I
understand), for example
here are the programs/regedit/Makefile:

------------------------------------8<--------------------------------------------
regedit.pot: regedit.rc
../.././../host-wine-3.0.4/tools/wrc/wrc -O pot -o $@ -b
i586-buildroot-linux-musl --nostdinc -I. \
  -I../../include -I../../include/msvcrt -D__WINESRC__ regedit.rc
regedit.pot regedit.res: ../.././../host-wine-3.0.4/tools/wrc/wrc
resource.h ../../include/windef.h \
  ../../include/winnt.h ../../include/basetsd.h ../../include/guiddef.h \
  ../../include/msvcrt/string.h ../../include/msvcrt/crtdefs.h
../../include/msvcrt/ctype.h \
  ../../include/msvcrt/stddef.h ../../include/winnt.rh
../../include/pshpack2.h \
  ../../include/poppack.h ../../include/pshpack8.h
../../include/pshpack4.h ../../include/winuser.h \
  ../../include/winuser.rh folderopen.ico folder.ico computer.ico
string.ico bin.ico regedit.ico \
  ../../include/wine/wine_common_ver.rc ../../include/winresrc.h
../../include/commctrl.rh \
  ../../include/dde.rh ../../include/dlgs.h ../../include/winver.h
../../include/verrsrc.h
----------------------->8------------------------------------------------------------------------

So, for me it looks like gettextpo might be disabled.

Regards,
Vadim Kochan
Thomas Petazzoni Jan. 5, 2019, 2:10 p.m. UTC | #5
Hello,

On Fri, 4 Jan 2019 19:10:18 +0200, Vadim Kochan wrote:
> Yann, Thomas, All
> 
> On Fri, Jan 4, 2019 at 4:01 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> >
> > Vadim, All,
> >
> > On 2019-01-04 13:49 +0200, Vadim Kochan spake thusly:  
> > > Checked that host-wine compiles ok without host-gettext, so no
> > > needs to specify this dependency.
> > >
> > > libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> > > which allows to convert windows resources also to *.po format, which is
> > > not needed if NLS is disabled.
> > >
> > > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > > ---
> > >  package/wine/wine.mk | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> > > index 78c8e6ab63..ef70b6276c 100644
> > > --- a/package/wine/wine.mk
> > > +++ b/package/wine/wine.mk
> > > @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
> > >  endif
> > >
> > >  # host-gettext is essential for .po file support in host-wine wrc
> > > +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
> > >  HOST_WINE_DEPENDENCIES += host-gettext
> > >  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> > > +endif  
> >
> > At the beginning, I was failing to see how/why a target-related option,
> > BR2_SYSTEM_ENABLE_NLS, would affect a host package.
> >
> > But it truns out that the target wine needs the host wrc to buile the
> > .po stuff.
> >
> > However, we unconditionally compile the target wine with:
> >     --without-gettext --without-gettextpo
> >
> > So, why do we need a host wrc? And if we need it, why does it needs
> > gettext support?
> >  
> 
> So there are programs/*/ and dlls/*/ and there are 'tools/makedep.c' which
> generates programs/*/Makefile and dlls/*/Makefile for these
> sub-folders. This tool
> generates Makefile which calls 'wrc' from host to generate windows
> resource files,
> and if there was gettextpo enabled then it generates rules to create
> 'pot' files by wrc (tools/makedep.c +3169).
> But if gettextpo was disabled then the '.pot' rules does nothing (as I
> understand), for example
> here are the programs/regedit/Makefile:

But is this logic going away when --disable-nls is passed to the target
wine configure options ?

Best regards,

Thomas
Vadym Kochan Jan. 5, 2019, 2:56 p.m. UTC | #6
Hi Thomas,

On Sat, Jan 5, 2019 at 4:10 PM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello,
>
> On Fri, 4 Jan 2019 19:10:18 +0200, Vadim Kochan wrote:
> > Yann, Thomas, All
> >
> > On Fri, Jan 4, 2019 at 4:01 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > >
> > > Vadim, All,
> > >
> > > On 2019-01-04 13:49 +0200, Vadim Kochan spake thusly:
> > > > Checked that host-wine compiles ok without host-gettext, so no
> > > > needs to specify this dependency.
> > > >
> > > > libgettextpo is required by tools/wrc (https://linux.die.net/man/1/wrc)
> > > > which allows to convert windows resources also to *.po format, which is
> > > > not needed if NLS is disabled.
> > > >
> > > > Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> > > > ---
> > > >  package/wine/wine.mk | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/package/wine/wine.mk b/package/wine/wine.mk
> > > > index 78c8e6ab63..ef70b6276c 100644
> > > > --- a/package/wine/wine.mk
> > > > +++ b/package/wine/wine.mk
> > > > @@ -307,8 +307,10 @@ WINE_CONF_OPTS += --without-zlib
> > > >  endif
> > > >
> > > >  # host-gettext is essential for .po file support in host-wine wrc
> > > > +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
> > > >  HOST_WINE_DEPENDENCIES += host-gettext
> > > >  HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> > > > +endif
> > >
> > > At the beginning, I was failing to see how/why a target-related option,
> > > BR2_SYSTEM_ENABLE_NLS, would affect a host package.
> > >
> > > But it truns out that the target wine needs the host wrc to buile the
> > > .po stuff.
> > >
> > > However, we unconditionally compile the target wine with:
> > >     --without-gettext --without-gettextpo
> > >
> > > So, why do we need a host wrc? And if we need it, why does it needs
> > > gettext support?
> > >
> >
> > So there are programs/*/ and dlls/*/ and there are 'tools/makedep.c' which
> > generates programs/*/Makefile and dlls/*/Makefile for these
> > sub-folders. This tool
> > generates Makefile which calls 'wrc' from host to generate windows
> > resource files,
> > and if there was gettextpo enabled then it generates rules to create
> > 'pot' files by wrc (tools/makedep.c +3169).
> > But if gettextpo was disabled then the '.pot' rules does nothing (as I
> > understand), for example
> > here are the programs/regedit/Makefile:
>
> But is this logic going away when --disable-nls is passed to the target
> wine configure options ?
>

Yes, wine compiles successfully w/o *.pot support in wrc with --disable-nls.

Regards,
Vadim Kochan
diff mbox series

Patch

diff --git a/package/wine/wine.mk b/package/wine/wine.mk
index 78c8e6ab63..ef70b6276c 100644
--- a/package/wine/wine.mk
+++ b/package/wine/wine.mk
@@ -307,8 +307,10 @@  WINE_CONF_OPTS += --without-zlib
 endif
 
 # host-gettext is essential for .po file support in host-wine wrc
+ifeq ($(BR2_SYSTEM_ENABLE_NLS),y)
 HOST_WINE_DEPENDENCIES += host-gettext
 HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
+endif
 
 # Wine needs to enable 64-bit build tools on 64-bit host
 ifeq ($(HOSTARCH),x86_64)