diff mbox

[v3,2/2] wine: Add gettext dependency check for host-wine

Message ID 54FC5B41.5050004@dawncrow.de
State Superseded
Headers show

Commit Message

André Zwing March 8, 2015, 2:22 p.m. UTC
Signed-off-by: André Hentschel <nerv@dawncrow.de>
---
v2: minor fixes
v3: Add comment and only modify HOST variables

 package/wine/wine.mk | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni March 8, 2015, 2:57 p.m. UTC | #1
Dear André Hentschel,

On Sun, 08 Mar 2015 15:22:57 +0100, André Hentschel wrote:

> +# selecting gettext also enables host-gettext which is
> +# essential for .po file support in wrc from host-wine
> +ifeq ($(BR2_PACKAGE_GETTEXT),y)
> +HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
> +HOST_WINE_DEPENDENCIES += host-gettext
> +else
> +HOST_WINE_CONF_OPTS += --without-gettext --without-gettextpo
> +endif

I'm sorry but this still doesn't make sense.

BR2_PACKAGE_GETTEXT=y indicates that the gettext package is built for
the *target*, i.e it installs stuff in $(TARGET_DIR) and
$(STAGING_DIR), most notably the libintl library.

So, using BR2_PACKAGE_GETTEXT=y as an indication to know whether
gettext support is available for a *host* package (which looks only in
$(HOST_DIR)) does not make sense.

What are you trying to do here?

If you're trying to have optional gettext support for the target Wine,
then what you need is:

+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+WINE_CONF_OPTS += --with-gettext --with-gettextpo
+WINE_DEPENDENCIES += host-gettext
+else
+WINE_CONF_OPTS += --without-gettext --without-gettextpo
+endif

and of course, remove the unconditional --without-gettext
--without-gettextpo from WINE_CONF_OPTS.

Best regards,

Thomas
André Zwing March 8, 2015, 3:16 p.m. UTC | #2
Am 08.03.2015 um 15:57 schrieb Thomas Petazzoni:
> Dear André Hentschel,
> 
> On Sun, 08 Mar 2015 15:22:57 +0100, André Hentschel wrote:
> 
>> +# selecting gettext also enables host-gettext which is
>> +# essential for .po file support in wrc from host-wine
>> +ifeq ($(BR2_PACKAGE_GETTEXT),y)
>> +HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
>> +HOST_WINE_DEPENDENCIES += host-gettext
>> +else
>> +HOST_WINE_CONF_OPTS += --without-gettext --without-gettextpo
>> +endif
> 
> I'm sorry but this still doesn't make sense.
> 
> BR2_PACKAGE_GETTEXT=y indicates that the gettext package is built for
> the *target*, i.e it installs stuff in $(TARGET_DIR) and
> $(STAGING_DIR), most notably the libintl library.
> 
> So, using BR2_PACKAGE_GETTEXT=y as an indication to know whether
> gettext support is available for a *host* package (which looks only in
> $(HOST_DIR)) does not make sense.
> 
> What are you trying to do here?
> 
> If you're trying to have optional gettext support for the target Wine,
> then what you need is:

Wine is built using host-wine, so i need gettext support in host-wines wrt.
For this i want to detect if host-gettext will be build, but the only way I see
to do so is to query BR2_PACKAGE_GETTEXT which is obviously a target package, but also
will build host-gettext
Thomas Petazzoni March 8, 2015, 5:31 p.m. UTC | #3
Dear André Hentschel,

On Sun, 08 Mar 2015 16:16:56 +0100, André Hentschel wrote:

> Wine is built using host-wine, so i need gettext support in host-wines wrt.

In which cases do you need gettext support in host-wine?

Always ? Only when the target wine is going to be built with gettext
support (which your patch does not do) ?

Why in the first place would we want to have gettext support in
host-wine ?

Thanks,

Thomas
André Zwing March 8, 2015, 5:52 p.m. UTC | #4
Am 08.03.2015 um 18:31 schrieb Thomas Petazzoni:
> Dear André Hentschel,
> 
> On Sun, 08 Mar 2015 16:16:56 +0100, André Hentschel wrote:
> 
>> Wine is built using host-wine, so i need gettext support in host-wines wrt.
> 
> In which cases do you need gettext support in host-wine?
> 
> Always ? Only when the target wine is going to be built with gettext
> support (which your patch does not do) ?

When host-gettext is built, then we could use it, otherwise target wine will be english only.
I don't think this diserves a hard dependency, do you?

> Why in the first place would we want to have gettext support in
> host-wine ?

Wine has a tool called wrc which transforms dialogs/strings and such into a windows like resource file.
With the help of the gettext library wrc merges the translations from wines po-files into that resource file.
As the wrc tool from host-wine is used, we need the gettext support there.
Further there are no runtime requirements, so in fact it doesn't matter to wine(or even host-wine) if the target
gettext is built.
Note: host-gettext and target gettext are two different things:

# For the target version, we only need the runtime, and for the host
# version, we only need the tools.
GETTEXT_SUBDIR = gettext-runtime
HOST_GETTEXT_SUBDIR = gettext-tools
Yann E. MORIN March 14, 2015, 5:44 p.m. UTC | #5
André, All,

On 2015-03-08 18:52 +0100, André Hentschel spake thusly:
> Am 08.03.2015 um 18:31 schrieb Thomas Petazzoni:
> > Dear André Hentschel,
> > 
> > On Sun, 08 Mar 2015 16:16:56 +0100, André Hentschel wrote:
> > 
> >> Wine is built using host-wine, so i need gettext support in host-wines wrt.
> > 
> > In which cases do you need gettext support in host-wine?
> > 
> > Always ? Only when the target wine is going to be built with gettext
> > support (which your patch does not do) ?
> 
> When host-gettext is built, then we could use it, otherwise target wine will be english only.
> I don't think this diserves a hard dependency, do you?
> 
> > Why in the first place would we want to have gettext support in
> > host-wine ?
> 
> Wine has a tool called wrc which transforms dialogs/strings and such into a windows like resource file.
> With the help of the gettext library wrc merges the translations from wines po-files into that resource file.
> As the wrc tool from host-wine is used, we need the gettext support there.
> Further there are no runtime requirements, so in fact it doesn't matter to wine(or even host-wine) if the target
> gettext is built.

So, from what I understand:
  - we need the host gettext tools to be able to produce the resource
    files
  - the resource files are used at runtime, but that's handled by Wine
    itself, without the need for any help from gettext

If that is so, then all you need is to just depend on host-gettext:

HOST_WINE_DEPENDENCIES += host-gettext
HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo

That does not have to be condional on the package gettext at all.

What is maybe misleading is that there is no BR2_PACKAGE_HOST_GETTEXT to
depend on. That's not necessary to depend on a host package, whether
from a target package or another host package.

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/package/wine/wine.mk b/package/wine/wine.mk
index 571606d..df13ef7 100644
--- a/package/wine/wine.mk
+++ b/package/wine/wine.mk
@@ -243,6 +243,15 @@  else
 WINE_CONF_OPTS += --without-zlib
 endif
 
+# selecting gettext also enables host-gettext which is
+# essential for .po file support in wrc from host-wine
+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+HOST_WINE_CONF_OPTS += --with-gettext --with-gettextpo
+HOST_WINE_DEPENDENCIES += host-gettext
+else
+HOST_WINE_CONF_OPTS += --without-gettext --without-gettextpo
+endif
+
 # Wine needs to enable 64-bit build tools on 64-bit host
 ifeq ($(HOSTARCH),x86_64)
 HOST_WINE_CONF_OPTS += --enable-win64
@@ -280,8 +289,6 @@  HOST_WINE_CONF_OPTS += \
 	--without-curses \
 	--without-dbus \
 	--without-fontconfig \
-	--without-gettext \
-	--without-gettextpo \
 	--without-gphoto \
 	--without-glu \
 	--without-gnutls \