Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 41417 - Installed/Binary *DEPENDs should only contain what the package was built against
Summary: Installed/Binary *DEPENDs should only contain what the package was built against
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Conceptual/Abstract Ideas (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: PMS/EAPI
: 141226 (view as bug list)
Depends on:
Blocks: future-eapi 370439
  Show dependency tree
Reported: 2004-02-12 14:06 UTC by Spider (RETIRED)
Modified: 2014-07-07 16:45 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Spider (RETIRED) gentoo-dev 2004-02-12 14:06:12 UTC
I think this would be most visible in the case of binary packages, but its as visible inside a system as there (just harder to think of).

say the virtual ssl wrapper thingie for an example, it has 
RDEPEND="|| ( gnutls openssl )"
DEPEND="${RDEPEND} java-config"  (just to have something)
src_compile () {
    want gnutls foo
       or openssl (because thats how ./configure prefers it..) 

Now, when this is built and installed, which library will be depended on for a GRP set?  gnutls or openssl?  if you build it on a clean system, where gnutls is avaiable, it will link to that.

Now, say I install this on my other system, where I already have openssl.. Will it demand gnutls, or just ignore that and leave me with an inconsistent system?

If I have gnutls, install this, install openssl, can I then remove gnutls without portage reacting to a change in the dependencies?  Since the compile time depend is still satisfied....

This could probably change with a way of redefining such dependencies once a package is built, by "locking" the installed case (and binary)  to only one of said dependencies. (satisfied one, or first one. ) (changing RDEPEND, that is...)

Reproducible: Always
Steps to Reproduce:
Comment 1 Alec Warner archtester Gentoo Infrastructure gentoo-dev Security 2005-07-29 16:35:33 UTC
I am not sure if anyone has looked at this in regard to head, so I will bump the 
severity a bit to get attention.  It definately should be fixed, especially 
since there should be better binpkg handling in head to ease the use of binaries 
across systems.
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2005-07-29 18:33:23 UTC
Yes, this will be addressed in the next version. When packages are built 
(whether for installing or binary packaging) *DEPEND will be folded down to 
exactly what portage chose as the deps. That is, all USE flag information and 
optional dependencies as listed in this bug will be removed. 
Comment 3 Spider (RETIRED) gentoo-dev 2005-10-07 10:01:44 UTC
Thats great.  Can we perhaps make so that an original copy of the ebuild is
installed as well?  Since currently /var/db/pkg/*/*/*ebuild  is the same as
/usr/portage, this makes for good "backup" if a package is removed/changed
radically and somone wants to hold a "backwards" compatible system in.  This
isn't really necessary and can probably be considered "bloat" but it may still
be a nice thing.
Comment 4 Brian Harring (RETIRED) gentoo-dev 2005-10-07 11:31:32 UTC
Err... eh?
We already hold onto the ebuild.  Doesn't really do much without $FILESDIR
either, nor the eclasses, but the env saving sort of addresses that.
Comment 5 Spider (RETIRED) gentoo-dev 2005-10-07 14:41:21 UTC
Hmm, good points.   Disregard my comment then.
Comment 6 Daniel Webert 2006-05-31 12:23:38 UTC
pong - is this implemented in 2.1?
Comment 7 solar (RETIRED) gentoo-dev 2006-06-01 02:55:04 UTC
(In reply to comment #6)
> pong - is this implemented in 2.1?

No it's not been implemented as of yet. Some || ( ) style deps are proving to 
be problematic.
Comment 8 Zac Medico gentoo-dev 2006-07-25 19:54:41 UTC
*** Bug 141226 has been marked as a duplicate of this bug. ***
Comment 9 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2013-08-30 10:37:52 UTC
Do we have a clear technical idea here? Sounds like some of the cases are handled currently by subslots, some are not. But the bug seems vague, lacking a suggested solution.
Comment 10 Zac Medico gentoo-dev 2013-08-30 17:42:59 UTC
For ambiguous cases like || ( gnutls openssl ), can we assume that it will choose the first installed match, moving from left to right?
Comment 11 Ulrich Müller gentoo-dev 2014-07-07 16:45:58 UTC
No progress since ten years.
Feel free to reopen with a tangible proposal.