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 _______________________________________________ arm mailing list arm@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/arm