[fedora-arm] F15 package dependency graph

Chris Tyler chris at tylers.info
Sun Jun 5 14:00:45 UTC 2011


On Sun, 2011-06-05 at 09:46 -0400, R P Herrold wrote:
> On Sat, 4 Jun 2011, Jon Masters wrote:
> 
> > On Sat, 2011-06-04 at 16:40 -0400, R P Herrold wrote:
> >> On Sat, 4 Jun 2011, Jon Masters wrote:
> >>
> >>> Oh, it can all be done :) I'm just curious what exists already. Perhaps
> >>> Dennis can help fill in some gaps here. Also, I know of at least one
> >>> script already I've pinged someone else about.
> >>
> >> umm -- in rpm-devel package, rpmgraph has been present for a
> >> long, long time
> >
> > Thanks for the pointer. I actually didn't know about rpmgraph. I
> > probably should have, and now I do :) This gives the kind of data I am
> > looking for as a good starting point. I'd like to take all of the F15
> > packages and prepare some graphs to look at/discuss before Friday. In a
> > perfect world, we'd have dependency data on packages so we can exclude
> > non-bootstrap bits (functionality we don't need for bootstrap), but that
> > data isn't available, so we'll have to cull the graph a little manually.
> 
> This information (BuildRequire-ments) is in the SRPMs and may 
> be queried out reasonably directly with a loop construct.  The 
> skript monkey pseudocode looks like this:
> 
> foreach i in rpm -qp --qf '%{name}:%{SOURCERPM}\n' \
>  	(binary-package) {
> #
> #	use ls and grep to ID the particular SRPM to furhter 
> #	query the SRPM
> #
>  	SRPM-package = `echo "${i}" | awk -F":" {'print $2'}`
>  	foreach j in rpm -qp --requires \
>  		(SRPM-package) {
> #
> #	aggregate I and J data to taste --- lately I've been 
> #	stuffing it into a mysql backend
> #
>  		}
>  	}
> #
> 
> ************************************************************
> 
> which yields for the first case (here against the RPM 
> database, rather than against the package directly):
> 
> [herrold at bronson ~]$ rpm -q --qf '%{name}:%{SOURCERPM}\n' rpm
> rpm:rpm-4.4.2.3-22.el5.src.rpm
> 
> [herrold at bronson alpine]$ rpm -qp --requires \
>  	alpine-0.999-2.src.rpm
> /usr/sbin/sendmail
> gettext
> inews
> krb5-devel
> ncurses-devel
> openldap-devel
> openssl-devel
> pam-devel
> passwd
> sendmail
> rpmlib(CompressedFileNames) <= 3.0.4-1
> [herrold at bronson alpine]$
> 
> ************************************
> 
> simply inventorying the binaries in a minimal build chroot, 
> and tracking them back to their owners tells you the bootstrap 
> minimum; do the tracing with 'rpm -qf (binary) '
> 
> -- Russ herrold

Right -- but the next question is, what can you build with that "minimal
build chroot"? The answer well under half -- closer to 1/3 -- of the
Fedora package collection. So the question becomes, what is the minimum
seed set needed to produce the entire package collection? And where are
there circular dependencies?

-Chris



More information about the arm mailing list