build dependencies



Just a random idea that I had that I think is cool enough that I just
wanted to toss it out here.  So the current "ostbuild" system just
builds a list of things in order, with no parallelism.  This is good
because it's *reliable*.  I can't emphasize how important it is to
have a well-defined process to rebuild *everything* from source,
including circular dependency handling, and resulting in a well-defined
"product" (in this case, filesystem trees).

But the downside is that it's a lot slower than it could be.  And we
also really want a "reverse dependency" builder (when glib is updated,
rebuild most of the world; but when gnome-control-center is updated,
only rebuild it).

We can actually take a page from the evolution of Automake here - the
first time we do a build, just do it serially.  But as we build
each thing, do the equivalent of dpkg/rpm auto-depends - basically
just look at DT_NEEDED in binaries, and reverse map to where they come
from.

The *next time* we do a build, we can say "Ok, gnome-control-center
depends on glib".  This is the equivalent of what Automake does with
gcc -MD: http://make.paulandlesley.org/autodep.html

This avoids us having to maintain a lot of duplicate metadata as
jhbuild and most distributions do.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]