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

Re: unexpected NMUs || buildd queue

Wouter Verhelst <wouter@grep.be> writes:

> On Sun, Jul 18, 2004 at 08:51:30AM +0200, Goswin von Brederlow wrote:
>> Wouter Verhelst <wouter@grep.be> writes:
>> The buildd will update build-essential and a buildd-essential package
>> when cloneing the template to ensure builds are always done with
>> current core packages. The multibuild buildd could compare the version
>> of buildd-essential from the template and the updated one and notifiy
>> the buildd admin if they differ to much (e.g. debian revision differs
>> is fine but major version gives a notification).
> I would recommend against doing this, because it introduces another
> potential problem (and you don't need that). Usually, slightly outdated
> toolchains don't really matter; and when they do, buildd admins usually
> know about this and should update the toolchain anyway.

Package: build-essential
Depends: libc6-dev | libc-dev, gcc (>= 3:3.3), g++ (>= 3:3.3), make, dpkg-dev (>=

The version requirements are very loose. Similar loose versions would
be in buildd-essential. I wouldn't expect either package to update
very often but the possibility is there.

The next change I expect would be amd64 switching to gcc-3.4 as
default compiler. If that happens it becomes important that no buildd
compiles with gcc-3.3 anymore.

FYI: buildd-essential Depends on dh-buildinfo, fakeroot, devscripts,
lintian (from memory). Nothing major.

> [...]
>> > In case of the tar.gz template, what happens when - say - a bug exists
>> > in a postrm script of one of the GNOME packages, resulting in a number
>> > of multi-gigabyte chroots laying around on the disk?
>> A failure in purging the Build-Depends doesn't mean the build has
>> failed.
> No, obviously not, but then that was only an example :-)
>> Normaly if a build succeeds you don't keep a copy of the chroot and a
>> cleanup failure will recreate the chroot form the template. On the
>> other hand you might want to keep the chroot on build failures but
>> then that is before the cleanup and postrm won't be caled. You get
>> those multi-gigabyte chroots laying around even with working postrm,
>> if you so choose.
>> A normal configuration (what I consider normal) would not keep the
>> chroots around. Only on build failure the source build tree is kept
>> with a log of what was used in the chroot. A tool to recreate a chroot
>> by looking at a buildd log and using snapshots.debian.net is on my
>> todo list and in my opinion that is a better solution than keeping
>> broken chroots around.
> OIC. Of course, theoretically the build could fail because it started
> modifying loads of stuff in the chroot, resulting in the new chroot to
> behave differently, but I understand why you wouldn't want to even
> consider that issue :-)

The chroot could have / and /usr read-only and just have /tmp, /var
and /buildd (or where we put it) read/write. That would make it even
harder to mess up than using fakeroot does.

>> Another thing is that multibuild plans include giving packages with
>> simmilar build-depends preferably to one buildd. That should optimize
>> (minimize) downloading Build-Depends. Multibuild is also ment to give
>> packages with build-depends chains to one buildd which can use the
>> local debs (probably only post signing) instead of having to wait for
>> a dinstall run.
> Hm. It makes sense to give them to the same buildd, but it doesn't make
> sense to wait 'till one of the packages has been signed; dinstall runs
> every 15 minutes, and the buildd machines have instant access, so then
> it might end up faster on a different machine.

The build could be done preemtively but only be accepted for uploading
if the Build-depends get signed as well. If the Build-Depends gets
failed after being maybe-successfull the build would be thrown away

It depends on how much AI programming someone is willing to add to the
multibuild server. That is something to see over time.

>> The multibuild client could implement purging of only those packages
>> that are not needed for the next build. After each build the purge
>> function for the chroot type is called and gets a list of future
>> builds as parameter. Currently that is complety ignored (I always wipe
>> the chroot and untar a new one in my test config) but I had exactly
>> that feature in mind designing the buildd <-> chroot interface.
> Cool.
>> Think about the time saved for m68k by not purging and reinstalling
>> gnome between two gnome package builds.
>> But back to your question again: Say you do keep a copy (tar.gz) of
>> the chroots around after a failure. Hopefully gnome packages will be
>> build in a bunch and the postrm will only be called once.
> Oh. Have a look at that.
> [...]
> Hmm. You've cleared a lot up with this mail, and taken away some of my
> scepticism. That doesn't mean I'll immediately start using it once it's
> ready, but that's a different matter.

Conversion will take time, but we will get you eventually. :) It is
also unclear on how multibuild and wanna-build are going to interact.

Someone could write a component that does multibuild-client <->
wanna-build interactions. The states and commands of both are simiar
and could be mapped without loosing much.

Or someone writes code that makes the multibuild-server interact with
wanna-build. Ask wanna-build for the needs build queue to setup the
multibuild queue and take explicit packages (the top one from the
multibuild queue) from wanna-build when someone requests a package.

Any of those would allow having the old and the new buildd for an arch
and compare both. We will see.


Reply to: