tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: dependancies and bulk builds



In article <20080522204844.GA10788%antioche.eu.org@localhost> Manuel wrote:
: the way we currently handle depandancies in bulk builds is really suboptimal.
: The perl upgrade was a disaster, almost everything was rebuilt, taking
: several days, because of this. But in most case it's just a depedancy at build
: time (perl is part of the tools) and the resulting binaries don't depend on 
it.
: A lot of time to provide updated binaries could have been saved here.
:
: Now it's libvorbis which has been updated, causing kdelibs to be rebuilt
: So all kde will be rebuilt, and I suspect a lot of gnome too.
: Again it's just a PKGREVISION bump, I'm almost sure the abi didn't change
: and rebuilding the whole set of packages depending on it up to LEAF packages
: is just a waste of time.
:
: Would someone have a look at improving this ?

  What kind of improvements do you have in mind.  By what criteria
would you consider a package to be up to date?

  The current approach guarantees correctness at the cost of longer
build time.  While saving build time is a worthwhile goal, we should
not sacrifice correctness of the resulting (official) binary packages.

  For instance, an update build dependency might fix a code generation
bug in a compiler, or an obsucre bug in a scripting language that
caused buggy code to be generated.  In that case, we want to rebuild
the dependencies.  The bug caused there might be propagated to their
dependencies in much the same way, so only rebuilding direct
dependencies does not guarantee correctnes, either.  And even worse,
since only the version of direct depenencies used is recorded in the
package, there is no way of telling wether the package was built by
the old, buggy version or the new, fixed one.

  The same goes for shared libraries.  Additionally, if the fix was in
a header file, all direct dependencies *must* be rebuilt.

  How do you want to distinguish between cases where all dependencies
must be rebuilt vs. where only direct dependencies must be rebuilt
vs. where nothing needs to be rebuilt, in a way simple enough so
developers don't screw it up?

                                        yours,
                                        dillo



: -- 
: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
:      NetBSD: 26 ans d'experience feront toujours la difference
: --



Home | Main Index | Thread Index | Old Index