On Sun, Jul 01, 2007 at 08:16:02AM -0400, Prarit Bhargava wrote:
The problems associated with bootstrapping an OS on a new
architecture have
been around for a long time. The issues with doing so are numerous -- how
to build, what order should the packages in the OS be built in, how to
identify build dependencies, etc. Determining a build map, or build tree,
would go a long way in decreasing the time to entirely rebuild or bootstrap
an architecture.
As a starting point, a brute force build method of repeatedly traversing
the F7 SRPM list alphabetically was done. This resulted in
approximately 2500
packages built over a week -- far short of the complete list of SRPMS.
The frequency of successful builds slowed down dramatically after this
number
of SRPMS were built. The perl-* SRPMS are particularily nasty ...
How can thetango know that perl-Foo will be providing perl(Bar) which
perl-Baz BuildRequires?
E.g. how can any automatic provides be guessed by thetango? A
not-too-far away goal is to have a perl()-like system for python and
other languages, which means more and more BRs depending on virtual
automatic provides that you can only detect after a build, not before.
I guess that if thetango cannot compute the depdency then it probably
gets discarded to at least get some better ordering, but the final
build will still need a brute force iterative approach.
thetango attempts to resolve the build problem by taking a set of
SRPMS and
building build trees by evaluating the dependencies between the potential
resulting binary RPMs, and determining the build tree for individual SRPMS.
* I have not put this in source control yet. The TODO section has an
entry about this and that is something I hope to complete in the next week.
http://home.comcast.net/~prarit/thetango/
Prarit Bhargava
prarit(a)redhat.com
oftc.net: #ia64
--
Axel.Thimm at
ATrpms.net