[fedora-arm] Package Dependency Tree from SRPMs?

Gordan Bobic gordan at bobich.net
Tue Oct 11 13:06:08 UTC 2011


On 10/11/2011 01:56 PM, Steve McIntyre wrote:
> On Mon, Oct 10, 2011 at 02:10:28PM -0400, Jon Masters wrote:
>> On Mon, 2011-10-10 at 10:22 +0100, Gordan Bobic wrote:
>>
>>>   Is there a script already available that generates a package dependency
>>>   tree from src.rpms? At the moment, rebuilding a distro is quite
>>>   inefficient because for each mock run the setup takes a non-trivial
>>>   amount of time. What I'm thinking about doing is writing a script that
>>>   generates a dependency tree which can then be used, for example, to
>>>   generate a Makefile. That would allow for building all the packages in
>>>   the correct order with no wasted time on multiple passes in which most
>>>   package builds fail due to dependencies.
>>>
>>>   Anyway, my question is, before I set out to write it, is there such a
>>>   script already?
>>
>> There are several attempts at this, including something DJ put together
>> during the F15 bootstrap, and e.g. rpmgraph but there isn't a real
>> solution to the problem of the kind that we will need longer term.
>>
>> The real solution to this problem necessitates changing packages to add
>> explicit bootstrap dependencies to them. That is the only way to do this
>> properly. Otherwise you have to do what we did in the early stages to
>> get going. A real fix (that I have raised initially and will be more
>> vocal about - thanks for the indirect ping) is to regularly
>> automatically bootstrap Fedora using automation, and bootstrap deps.
>> Then we should notify package maintainers who break the ability to
>> bootstrap in adding hundreds of deps to the minimal set (I'm looking at
>> systemd as an example that would have perhaps caused such a reaction).
>
> As Jon know, this is very like the process we're working on in Debian
> as well. Our normal philosophy of building most packages with all
> features enabled is useful, but can make bootstrapping difficult.
> There are some common bootstrapping loops where it's impossible to
> simply find the correct order for package builds, so the best answer
> is to build cut-down bootstrap versions of packages and use them as a
> base for satisfying build dependencies until everything is fulfilled
> properly. See
>
>    http://wiki.debian.org/DebianBootstrap
>
> for more details.

The thing is, I'm not too concerned about a few circular dependencies. 
The total number I have found in the process of bootstrapping RHEL6 is 
in the single figures. Those can easily be fixed up manually or as a 
cheat, copied in from F12/F13 packages to get first pass built. The main 
point is to avoid all the repetitive and redundant operations that are 
wasted when dependencies don't exist - extracting the cached rootfs and 
yum installing the build dependencies is pretty expensive.

Gordan


More information about the arm mailing list