Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 35484 - Implement a reverse dependency tracker using LDD information and compare it against the run-time dependencies listed in the ebuild.
Summary: Implement a reverse dependency tracker using LDD information and compare it a...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: All All
: High enhancement (vote)
Assignee: Portage Tools Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 472746
  Show dependency tree
 
Reported: 2003-12-09 14:59 UTC by Spider (RETIRED)
Modified: 2017-06-14 05:41 UTC (History)
7 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Spider (RETIRED) gentoo-dev 2003-12-09 14:59:55 UTC
The idea is simple:
With a given set of USE flags (taken from portage, most conveniently)  scan a given binary file for all library links (ldd)  track each library to its package and build a tree of RDEPEND from this.

Compare this to portage's idea of what USE flags + RDEPEND are actually in the build, when theese two match, we have a "perfect" tree with no breakage.

When there are packages in the calculated (on disk) RDEPEND tree that -dont-  match portage's idea of RDEPEND, we have a broken dependency somewhere along the tree path.
Comment 1 Alastair Tse (RETIRED) gentoo-dev 2003-12-09 15:02:56 UTC
i think this is good, except that it won't work on statically compiled libraries/binaries and also scripts like python or perl. but that is probably the best we can do.
Comment 2 Karl Trygve Kalleberg (RETIRED) gentoo-dev 2004-02-07 19:16:25 UTC
This also won't work for Java.

However, it's a very good start. 

A second possiblity that we're also exploring is this:

Build *all* packages in the tree, one by one. Each time we build a new package, we ensure we have a "minimal tree". A minimal tree for a package foo, is a tree containing all of foo's DEPENDs, say package set X. For each package y in X, we ensure that we have y's RDEPENDs installed, recursively.

This way, we should catch any build-time problems of messed up RDEPEND settings. However, we do not properly test run-time problems; some applications may dynamically load extra functionality not invoked at build-time.

This is really a QA bug, so I'll see where I can forward it, possibly with a few scripts.
Comment 3 Alec Warner archtester Gentoo Infrastructure gentoo-dev Security 2006-04-24 10:57:05 UTC
I'll look into ferringb's pkgcore depresolver for this.  We should be able to walk the tree backwards and do it?
Comment 4 michael@smith-li.com 2008-02-25 16:56:37 UTC
(In reply to comment #3)
> I'll look into ferringb's pkgcore depresolver for this.  We should be able to
> walk the tree backwards and do it?

Alec, any progress? :)
Comment 5 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-07-06 19:14:43 UTC
Ping, any progress on this?
Comment 6 Brian Dolbec gentoo-dev 2013-07-06 19:27:12 UTC
No one is working on this that I know of.