FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 12-28-2009, 09:02 PM
Fabio Erculiani
 
Default x11-libs/lib*: wrong RDEPENDs bug

On Mon, Dec 28, 2009 at 10:48 PM, Gokdeniz Karadag <gokdenizk@gmail.com> wrote:
>
> X preprocesses some files at each startup(using the C preprocessor(cpp) via
> xrdb configuration tool) Strange but true.
>
> Macros defined by these .h files might be used during this configuration.

That's the missing bit! Thanks for the answer.

>
> --
> Gokdeniz Karadag
>
>
>



--
Fabio Erculiani
http://www.sabayon.org
http://www.gentoo.org
 
Old 12-28-2009, 09:07 PM
David Leverton
 
Default x11-libs/lib*: wrong RDEPENDs bug

On Monday 28 December 2009 21:04:01 Fabio Erculiani wrote:
> To me you are saying that DEPEND would work just fine. No?

Setting the proto as DEPEND for the library wouldn't work because a user could
install the library, remove every DEPEND-only package and legitimately expect
the library to continue working, including being able to build other programs
against it. Putting the proto in DEPEND for every package that uses the
library isn't good because (unless the package references the proto directly)
the fact that the proto is needed is an internal detail of the library, that
might even change between versions, and packages using the library shouldn't
have to know about it.
 
Old 12-28-2009, 09:31 PM
Rémi Cardona
 
Default x11-libs/lib*: wrong RDEPENDs bug

Le 28/12/2009 22:04, Fabio Erculiani a écrit :
> On Mon, Dec 28, 2009 at 9:51 PM, David Leverton
> <levertond@googlemail.com> wrote:
>> On Monday 28 December 2009 20:50:17 Fabio Erculiani wrote:
>>> What all this has to do with the fact that they are just build
>>> dependencies? Just wondering.
>>
>> They're not just build dependencies. They're required to use the library in a
>> certain way, namely to compile other programs against it. As long as we
>> don't have compile-against dependencies, the only correct way to express that
>> is RDEPEND (and also DEPEND because they're /also/ needed to build the
>> library itself).
>
> To me you are saying that DEPEND would work just fine. No?

No, but I understand why you're insisting. It took us a few weeks to
wrap our heads around this to understand it.

Let's take an example (bug #228211 but there are dozens more).

In this example, libfakekey does : #include <XTest.h>

and its configure.ac checks for "xtst.pc". Both files are provided by
x11-libs/libXtst so this dep is added to DEPEND and RDEPEND.

The problem comes from libXtst's XTest.h which #includes <XInput.h>
which was provided by x11-proto/inputproto [1].

inputproto is/was a build-time dep of libXtst.
- libXtst _directly_ requires inputproto at build-time only
- libXtst _directly_ requires libXi at build-time and run-time

However :
- requiring libXtst at build-time _also_ requires inputproto.

For most users out there, this would never be a problem since most
Gentoo users always keep build-time deps on their systems.

The problem arises for people who only keep run-time deps, usually for
binary packages. inputproto being a DEPEND-only dep of libXtst, binary
users will never get inputproto when they build libfakekey.

So there were 3 solutions :

1) add explicit deps in _all_ packages that DEPEND on libXtst to _also_
depend on inputproto even if they don't use it at all (most don't, they
just use XTest functions).

2) add inputproto to libXtst's DEPEND and RDEPEND

3) modify EAPI to add a new *DEPEND variable to cater X's very special
needs.

Solution #1 is error prone. If we "fix" ebuilds now, new ebuilds might
pop up later with "broken" dependencies. No go.

Solution #3 really isn't for me. I tried getting near PMS and I got bit.
If anyone wants to do this, I'll help, but I won't do this on my own.

So we went with solution #2. Yes, it does add nasty little headers on a
binary distribution, but that was a far better compromise than any of
the other 2 solutions.

Really, the correct solution (please _listen_ and _trust_ me on this) is
to add a new dependency variable to EAPI to correctly describe how X
headers and libs really work. That's solution #3. I agree with you,
pulling protos in both DEPEND and RDEPEND is a hack, but it's *much*
better than the other alternatives.

Rémi

[1] This file is now part of libXi, but the problem has now shifted to
XI.h, so it's still going to be the exact same problem today, but for
the sake of simplicity, I'll keep it short.
 
Old 12-28-2009, 09:53 PM
Fabio Erculiani
 
Default x11-libs/lib*: wrong RDEPENDs bug

Interesting, eventually somebody gave me a detailed and technical
explanation without [bla bla snip]. Thanks Rémi.
Yes, I agree with you that the best (and the one I would go for, too)
solution is adding support to a new *DEPEND, perhaps one that could
"host" build-deps only. It looks weird that other PMs out there do
that since 1994 (replace 1994 with older value).
Perhaps adding a big fat # XXX somewhere in ebuilds would have helped
us all in saving some time today.
So, at least for now, I suspect I have to give up and close my shiny
27 bugs. Right?

--
Fabio Erculiani
http://www.sabayon.org
http://www.gentoo.org
 
Old 12-28-2009, 10:26 PM
Rémi Cardona
 
Default x11-libs/lib*: wrong RDEPENDs bug

Le 28/12/2009 23:53, Fabio Erculiani a écrit :
> Interesting, eventually somebody gave me a detailed and technical
> explanation without [bla bla snip]. Thanks Rémi.
> Yes, I agree with you that the best (and the one I would go for, too)
> solution is adding support to a new *DEPEND, perhaps one that could
> "host" build-deps only. It looks weird that other PMs out there do
> that since 1994 (replace 1994 with older value).
> Perhaps adding a big fat # XXX somewhere in ebuilds would have helped
> us all in saving some time today.

We could indeed, but back then we had something like 20~30 dupes so it
felt like an obvious fix. I'll start adding comments in the overlay to
clear it up.

> So, at least for now, I suspect I have to give up and close my shiny
> 27 bugs. Right?

I'm afraid so, yes

But if you do want to tackle the EAPI/PMS issue, feel free to reuse the
tracker for that. I'll gladly tune in for that discussion.

Cheers,

Rémi
 
Old 12-28-2009, 10:40 PM
Ben de Groot
 
Default x11-libs/lib*: wrong RDEPENDs bug

2009/12/28 Doug Goldstein <cardoe@gentoo.org>:
> Why not provide some actual meat and potatoes here instead of a
> useless e-mail with bug numbers and some stupid attempt at humor at
> the expense of the x11 herd?

That hostility was totally uncalled for. Please try to remain civil.

Cheers,
--
Ben de Groot
Gentoo Linux developer (qt, media, lxde, desktop-misc)
__________________________________________________ ____
 
Old 12-29-2009, 04:45 AM
Doug Goldstein
 
Default x11-libs/lib*: wrong RDEPENDs bug

On Mon, Dec 28, 2009 at 1:15 PM, Jeroen Roovers <jer@gentoo.org> wrote:
> On Mon, 28 Dec 2009 10:10:48 +0100 (CET)
> lxnay@gentoo.org wrote:
>
>> let's discuss concerns here (actually I don't see any and I am
>> willing to fix all the ebuilds and close all my bugs if you ack).
>
> If they are genuine bugs, then there isn't anything to discuss.
>
>> List of Gentoo bugs:
>
> Tracker bug is #298759[1]
>
>
> Regards,
> * * jer
>
>
> [1] https://bugs.gentoo.org/show_bug.cgi?id=298759
>
>
>

Then there was no need to waste everyone's time with a backhanded
comment about the X11 herd. And we can all get on with our lives.

--
Doug Goldstein
 
Old 12-29-2009, 12:43 PM
Henry Gebhardt
 
Default x11-libs/lib*: wrong RDEPENDs bug

On Mon, 28 Dec 2009 23:31:44 +0100
Rémi Cardona <remi@gentoo.org> wrote:

> Le 28/12/2009 22:04, Fabio Erculiani a écrit :
> > On Mon, Dec 28, 2009 at 9:51 PM, David Leverton
> > <levertond@googlemail.com> wrote:
> >> On Monday 28 December 2009 20:50:17 Fabio Erculiani wrote:
> >>> What all this has to do with the fact that they are just
> >>> build dependencies? Just wondering.
> >>
> >> They're not just build dependencies. They're required to
> >> use the library in a certain way, namely to compile other
> >> programs against it. As long as we don't have
> >> compile-against dependencies, the only correct way to
> >> express that is RDEPEND (and also DEPEND because
> >> they're /also/ needed to build the library itself).
> >
> > To me you are saying that DEPEND would work just fine. No?
>
> No, but I understand why you're insisting. It took us a few
> weeks to wrap our heads around this to understand it.
>
> Let's take an example (bug #228211 but there are dozens more).
>
> In this example, libfakekey does : #include <XTest.h>
>
> and its configure.ac checks for "xtst.pc". Both files are
> provided by x11-libs/libXtst so this dep is added to DEPEND and
> RDEPEND.
>
> The problem comes from libXtst's XTest.h which #includes
> <XInput.h> which was provided by x11-proto/inputproto [1].
>
> inputproto is/was a build-time dep of libXtst.
> - libXtst _directly_ requires inputproto at build-time only
> - libXtst _directly_ requires libXi at build-time and run-time
>
> However :
> - requiring libXtst at build-time _also_ requires inputproto.
>
> For most users out there, this would never be a problem since
> most Gentoo users always keep build-time deps on their systems.
>
> The problem arises for people who only keep run-time deps,
> usually for binary packages. inputproto being a DEPEND-only dep
> of libXtst, binary users will never get inputproto when they
> build libfakekey.
>
> So there were 3 solutions :
>
> 1) add explicit deps in _all_ packages that DEPEND on libXtst
> to _also_ depend on inputproto even if they don't use it at all
> (most don't, they just use XTest functions).
>
> 2) add inputproto to libXtst's DEPEND and RDEPEND
>
> 3) modify EAPI to add a new *DEPEND variable to cater X's very
> special needs.

Isn't there a fourth solution?

4) add a USE-flag, say "devel", that, when enabled, allows
compiling programs against the package. x11-libs/libXtst would
have an RDEPEND like this:
RDEPEND="devel? x11-libs/inputproto"

Anything wrong with that?

~H
 
Old 12-29-2009, 03:08 PM
Nirbheek Chauhan
 
Default x11-libs/lib*: wrong RDEPENDs bug

On Tue, Dec 29, 2009 at 11:15 AM, Doug Goldstein <cardoe@gentoo.org> wrote:
> Then there was no need to waste everyone's time with a backhanded
> comment about the X11 herd. And we can all get on with our lives.
>

From your perspective it might've looked like a backhanded comment,
but I know that scarabeus and lxnay know each other, and I believe
they discussed this on #gentoo-desktop, so it didn't seem that way to
me.

"Assume people mean well"

regards,

--
~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team
 
Old 12-29-2009, 07:57 PM
Rémi Cardona
 
Default x11-libs/lib*: wrong RDEPENDs bug

Le 29/12/2009 14:43, Henry Gebhardt a écrit :
> 4) add a USE-flag, say "devel", that, when enabled, allows
> compiling programs against the package. x11-libs/libXtst would
> have an RDEPEND like this:
> RDEPEND="devel? x11-libs/inputproto"

This doesn't solve anything. It will just annoy users as they will have
to enable USE=devel.

So it's like the current situation, only way more annoying...

Rémi
 

Thread Tools




All times are GMT. The time now is 12:23 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org