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

Vadim Kochan vadim4j at gmail.com
Fri Jan 4 17:10:18 UTC 2019


Yann, Thomas, All

On Fri, Jan 4, 2019 at 4:01 PM Yann E. MORIN <yann.morin.1998 at 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 at 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


More information about the buildroot mailing list