Patchwork [meta-oe] giflib: don't link against libx11, don't depend on libsm

login
register
mail settings
Submitter Andreas Oberritter
Date Feb. 9, 2012, 12:41 p.m.
Message ID <4F33BF11.4010009@opendreambox.org>
Download mbox | patch
Permalink /patch/21043/
State Accepted
Commit f45774e2b07523cf45d1bb8b720f8757359bb47e
Headers show

Comments

Andreas Oberritter - Feb. 9, 2012, 12:41 p.m.
On 09.02.2012 01:54, Andreas Oberritter wrote:
> On 08.02.2012 20:48, Otavio Salvador wrote:
>> On Wed, Feb 8, 2012 at 17:35, Andreas Oberritter <obi@opendreambox.org>wrote:
>>
>>> I already explained in the commit message, why a PR bump is not needed.
>>> Can you please explain which other possible failures you're expecting,
>>> so I can learn why my reasoning may be wrong?
>>>
>>> This patch only fixes an unavailable build dependency at bitbake level,
>>> nothing more.
>>>
>>
>> Can the user call:
>>
>> bitbake libsm
>>
>> and then build giflib? in case of positive, we need to enforce have or not
>> it linked.
> 
> At the time I created the patch, the user couldn't run bitbake libsm
> (for the same reason that it wouldn't be built automatically through
> giflib's DEPENDS).
> 
> That said, I updated the repos after your mail and ran bitbake libsm in
> order to get the error message again, but the error vanished.
> Apparently, an indirect dependency on libx11 was dropped during the last
> few weeks. I searched the logs, but didn't find the change. Strange.
> Now, many x11 packages got built even though x11 still wasn't listed in
> my DISTRO_FEATURES.
> 
> Anyway, please consider this patch obsolete. I'll probably resend an
> updated version together with other patches to disable some more x11
> libraries on demand.

I did some further research regarding giflib:

- giflib doesn't depend on libSM alone, but optionally depends on 
libX11. When linked against libX11, it also links agains libSM and 
libICE, under certain conditions. Since libSM does not depend on 
libX11, the current giflib build is non-deterministic.

- Debian's/Ubuntu's giflib gets configured with --disable-x11 
unconditionally.

So we have two options:

1.) Pass --disable-x11 unconditionally like Debian/Ubuntu
2.) Add virtual/libx11 to DEPENDS, if x11 is defined in 
DISTRO_FEATURES, and add --enable/diable-x11 to EXTRA_OECONF

Because the current recipe didn't depend on libX11 and no one 
complained about it, I question the usefulness of linking giflib
against x11. Therefore I vote for option 1 (see patch below).

What does giflib do if linked against libX11?
- It builds a tool called gif2x11
- DumpScreen2Gif() gains support for dumping X11 windows

Regards,
Andreas

From eb1d09faa42fd7532338e0cc858ca1ff681bcaf8 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Thu, 9 Feb 2012 13:34:52 +0100
Subject: [PATCH] giflib: don't link against libx11, don't depend on libsm

libsm wasn't used unless libx11 was built before giflib. Therefore
drop the dependency on libsm and disable x11 unconditionally like
Debian does.

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
 meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Otavio Salvador - Feb. 9, 2012, 12:47 p.m.
On Thu, Feb 9, 2012 at 10:41, Andreas Oberritter <obi@opendreambox.org>wrote:

> 1.) Pass --disable-x11 unconditionally like Debian/Ubuntu
> 2.) Add virtual/libx11 to DEPENDS, if x11 is defined in
> DISTRO_FEATURES, and add --enable/diable-x11 to EXTRA_OECONF
>
> Because the current recipe didn't depend on libX11 and no one
> complained about it, I question the usefulness of linking giflib
> against x11. Therefore I vote for option 1 (see patch below).
>

I voce for 1 too.
Paul Eggleton - Feb. 9, 2012, 1:55 p.m.
On Thursday 09 February 2012 13:41:53 Andreas Oberritter wrote:
> On 09.02.2012 01:54, Andreas Oberritter wrote:
> > On 08.02.2012 20:48, Otavio Salvador wrote:
> >> On Wed, Feb 8, 2012 at 17:35, Andreas Oberritter 
<obi@opendreambox.org>wrote:
> >>> I already explained in the commit message, why a PR bump is not needed.
> >>> Can you please explain which other possible failures you're expecting,
> >>> so I can learn why my reasoning may be wrong?
> >>> 
> >>> This patch only fixes an unavailable build dependency at bitbake level,
> >>> nothing more.
> >> 
> >> Can the user call:
> >> 
> >> bitbake libsm
> >> 
> >> and then build giflib? in case of positive, we need to enforce have or
> >> not
> >> it linked.
> > 
> > At the time I created the patch, the user couldn't run bitbake libsm
> > (for the same reason that it wouldn't be built automatically through
> > giflib's DEPENDS).
> > 
> > That said, I updated the repos after your mail and ran bitbake libsm in
> > order to get the error message again, but the error vanished.
> > Apparently, an indirect dependency on libx11 was dropped during the last
> > few weeks. I searched the logs, but didn't find the change. Strange.
> > Now, many x11 packages got built even though x11 still wasn't listed in
> > my DISTRO_FEATURES.
> > 
> > Anyway, please consider this patch obsolete. I'll probably resend an
> > updated version together with other patches to disable some more x11
> > libraries on demand.
> 
> I did some further research regarding giflib:
> 
> - giflib doesn't depend on libSM alone, but optionally depends on
> libX11. When linked against libX11, it also links agains libSM and
> libICE, under certain conditions. Since libSM does not depend on
> libX11, the current giflib build is non-deterministic.
> 
> - Debian's/Ubuntu's giflib gets configured with --disable-x11
> unconditionally.
> 
> So we have two options:
> 
> 1.) Pass --disable-x11 unconditionally like Debian/Ubuntu
> 2.) Add virtual/libx11 to DEPENDS, if x11 is defined in
> DISTRO_FEATURES, and add --enable/diable-x11 to EXTRA_OECONF
> 
> Because the current recipe didn't depend on libX11 and no one
> complained about it, I question the usefulness of linking giflib
> against x11. Therefore I vote for option 1 (see patch below).
> 
> What does giflib do if linked against libX11?
> - It builds a tool called gif2x11
> - DumpScreen2Gif() gains support for dumping X11 windows

I'd agree with disabling it as well. According to google it was Henning who 
added libsm as a dependency in OE-Classic. Henning, do you remember the reason 
for adding this, and is it still valid?

Cheers,
Paul
Paul Eggleton - Feb. 9, 2012, 2:02 p.m.
On Thursday 09 February 2012 13:41:53 Andreas Oberritter wrote:
> On 09.02.2012 01:54, Andreas Oberritter wrote:
> > On 08.02.2012 20:48, Otavio Salvador wrote:
> >> On Wed, Feb 8, 2012 at 17:35, Andreas Oberritter 
<obi@opendreambox.org>wrote:
> >>> I already explained in the commit message, why a PR bump is not needed.
> >>> Can you please explain which other possible failures you're expecting,
> >>> so I can learn why my reasoning may be wrong?
> >>> 
> >>> This patch only fixes an unavailable build dependency at bitbake level,
> >>> nothing more.
> >> 
> >> Can the user call:
> >> 
> >> bitbake libsm
> >> 
> >> and then build giflib? in case of positive, we need to enforce have or
> >> not
> >> it linked.
> > 
> > At the time I created the patch, the user couldn't run bitbake libsm
> > (for the same reason that it wouldn't be built automatically through
> > giflib's DEPENDS).
> > 
> > That said, I updated the repos after your mail and ran bitbake libsm in
> > order to get the error message again, but the error vanished.
> > Apparently, an indirect dependency on libx11 was dropped during the last
> > few weeks. I searched the logs, but didn't find the change. Strange.
> > Now, many x11 packages got built even though x11 still wasn't listed in
> > my DISTRO_FEATURES.
> > 
> > Anyway, please consider this patch obsolete. I'll probably resend an
> > updated version together with other patches to disable some more x11
> > libraries on demand.
> 
> I did some further research regarding giflib:
> 
> - giflib doesn't depend on libSM alone, but optionally depends on
> libX11. When linked against libX11, it also links agains libSM and
> libICE, under certain conditions. Since libSM does not depend on
> libX11, the current giflib build is non-deterministic.
> 
> - Debian's/Ubuntu's giflib gets configured with --disable-x11
> unconditionally.
> 
> So we have two options:
> 
> 1.) Pass --disable-x11 unconditionally like Debian/Ubuntu
> 2.) Add virtual/libx11 to DEPENDS, if x11 is defined in
> DISTRO_FEATURES, and add --enable/diable-x11 to EXTRA_OECONF
> 
> Because the current recipe didn't depend on libX11 and no one
> complained about it, I question the usefulness of linking giflib
> against x11. Therefore I vote for option 1 (see patch below).
> 
> What does giflib do if linked against libX11?
> - It builds a tool called gif2x11
> - DumpScreen2Gif() gains support for dumping X11 windows

I'd agree with disabling it as well. According to google it was Henning who 
added libsm as a dependency in OE-Classic. Henning, do you remember the reason 
for adding this, and is it still valid?

Cheers,
Paul

[resend due to incorrect email address]
Koen Kooi - Feb. 9, 2012, 6:50 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Op 09-02-12 13:41, Andreas Oberritter schreef:
> On 09.02.2012 01:54, Andreas Oberritter wrote:
>> On 08.02.2012 20:48, Otavio Salvador wrote:
>>> On Wed, Feb 8, 2012 at 17:35, Andreas Oberritter
>>> <obi@opendreambox.org>wrote:
>>> 
>>>> I already explained in the commit message, why a PR bump is not
>>>> needed. Can you please explain which other possible failures you're
>>>> expecting, so I can learn why my reasoning may be wrong?
>>>> 
>>>> This patch only fixes an unavailable build dependency at bitbake
>>>> level, nothing more.
>>>> 
>>> 
>>> Can the user call:
>>> 
>>> bitbake libsm
>>> 
>>> and then build giflib? in case of positive, we need to enforce have
>>> or not it linked.
>> 
>> At the time I created the patch, the user couldn't run bitbake libsm 
>> (for the same reason that it wouldn't be built automatically through 
>> giflib's DEPENDS).
>> 
>> That said, I updated the repos after your mail and ran bitbake libsm
>> in order to get the error message again, but the error vanished. 
>> Apparently, an indirect dependency on libx11 was dropped during the
>> last few weeks. I searched the logs, but didn't find the change.
>> Strange. Now, many x11 packages got built even though x11 still wasn't
>> listed in my DISTRO_FEATURES.
>> 
>> Anyway, please consider this patch obsolete. I'll probably resend an 
>> updated version together with other patches to disable some more x11 
>> libraries on demand.
> 
> I did some further research regarding giflib:
> 
> - giflib doesn't depend on libSM alone, but optionally depends on libX11.
> When linked against libX11, it also links agains libSM and libICE, under
> certain conditions. Since libSM does not depend on libX11, the current
> giflib build is non-deterministic.
> 
> - Debian's/Ubuntu's giflib gets configured with --disable-x11 
> unconditionally.
> 
> So we have two options:
> 
> 1.) Pass --disable-x11 unconditionally like Debian/Ubuntu 2.) Add
> virtual/libx11 to DEPENDS, if x11 is defined in DISTRO_FEATURES, and add
> --enable/diable-x11 to EXTRA_OECONF

I'd go for 1)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: GPGTools - http://gpgtools.org

iEYEARECAAYFAk80FV4ACgkQMkyGM64RGpF1qQCdEZNQIneqMvodDIP02X3FLWtG
xYQAnj9BM2jzRHa6mPJDy4NfcYo28vHR
=iwwe
-----END PGP SIGNATURE-----
Henning Heinold - Feb. 9, 2012, 7:32 p.m.
On Thu, Feb 09, 2012 at 02:02:51PM +0000, Paul Eggleton wrote:
> I'd agree with disabling it as well. According to google it was Henning who 
> added libsm as a dependency in OE-Classic. Henning, do you remember the reason 
> for adding this, and is it still valid?
> 
> Cheers,
> Paul

Sorry no idea, why I added it. But I vote for option 1 too, so folks without X11 needs
do not have to build X11.

Bye Henning

Patch

diff --git a/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb b/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb
index bd7b495..e1a0777 100644
--- a/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb
+++ b/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb
@@ -2,13 +2,13 @@  DESCRIPTION = "shared library for GIF images"
 SECTION = "libs"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ae11c61b04b2917be39b11f78d71519a"
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.bz2"
 
 inherit autotools
 
-DEPENDS = "libsm"
+EXTRA_OECONF = "--disable-x11"
 
 PACKAGES += "${PN}-utils"
 FILES_${PN} = "${libdir}/libgif.so.*"