[fedora-arm] F15 package dependency graph

R P Herrold herrold at owlriver.com
Sun Jun 5 13:46:54 UTC 2011


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


More information about the arm mailing list