[buildd-tools-devel] Current work on sbuild and schroot

Roger Leigh rleigh at codelibre.net
Sun May 17 20:03:44 UTC 2009


Hi folks,

Just a quick mail to let everyone know about what's been happening recently.

schroot-1.2
-----------

I just released schroot version 1.2.3, and uploaded 1.2.3-1 to unstable.
The only change here was to update the configure script and build deps
for Boost 1.38.  Branch: schroot-1.2

schroot-1.3
-----------

Branch: master

A number of changes have been made over the last few weeks.
I've made a lot of changes to make Linux-specific features configurable.
Most of the chroot types are now optional, as are their library dependencies.
As a result, it should build on GNU/Hurd and GNU/kFreeBSD as well as any
other Linux or POSIX platform.  The configure checks may currently be a bit
naïve, but all the conditional logic is there and working.

The setup scripts still have Linux-isms in, but "plain" chroots should
work everywhere.  I'll need some porter assistance to find and fix up
non-portable things in the scripts (and possibly the code, since no one
tried to build on a non-Linux platform yet).

Execution scripts have been removed.  They never really had a use case and
no one was using them.

There's a debugging package to ease debugging.

PAM support is optional.  Without PAM support any operation requiring
authentication will fail outright, but simple uses (no user switching)
will work.

The manual pages and configuration files have been moved out of bin/ and
into man/ and etc/ (only affects the source tree, just reorganisation).

Some parts of Jan-Marek Glogowski's work on supporting filesystem union
mounts have been merged, but the main union support has not yet been
merged.  My current work on merging this is on the fs-union branch of
git://git.debian.org/users/rleigh/schroot.git
(http://git.debian.org/?p=users/rleigh/schroot.git;a=shortlog;h=refs/heads/fs-union)
Jan-Marek has created a new version of his patchset against the current
schroot master, which he has said he will post to the list soon (he is
apparently having problems with his mail server at the moment, so they
aren't showing up on the list).

There are a lot of smaller changes as well; these are the main noteworthy
changes.

The master branch is currently building, but there's currently an issue
with the mount-location property not being saved in the session file
properly, which breaks sessions.  I haven't yet figured out why this is
happening, since it's apparently being passed correctly to the setup
scripts and so on.  If anyone has a clue, I'd be happy to hear!
Once this is fixed, I'll upload 1.3.0 to experimental.  1.3.1 will follow
with the fs-union work once that's merged.  Once fully tested, 1.3.2+
can then make their way into unstable.


sbuild
------

Branch: master

Kees Cook has added a --setup-hook option to allow a script to be run
inside the build chroot to customise the build environment prior to the
build starting.

Philipp Kern has done a lot of work on getting buildd into shape, and
the version on the buildd branch is now in use on a number of buildds,
with ongoing migration of the others.

Adeodato Simó has made further changes to the wannab database schema for
PostgreSQL, though work over the last month or so has been fairly quiet.

It is now possible to specify build dependencies and conflicts on the
command-line with --add-(depends|conflicts)[-indep].  These are added
to the package-provided build-dependencies.

All programs use a generic options parser which they extend with their
own options as required.  This means all programs support --help,
--version, --verbose and --debug by default.

James Vega provided a patch to allow the use of $HOME in configuration
files.  We are now quite strict about sandboxing the configuration file
as we import it, though it's not run in a genine isolated sandbox its
access to the program state is by default quite limited.

I've worked on getting a buildd package working.  It now has a working
init script, cron jobs etc. and comes with a safe configuration that
works (but needs customisation to actually do anything).

Recently, I've been refactoring buildd and wanna-build in the same
manner sbuild was refactored a year or so back.  Since I merged this
today, all commands are now simple wrappers around perl objects.  This
makes it possible to reuse a lot of common code that was previously
duplicated all over the place.  It also means in the medium- to long-
term maintenance will be eased due to the fact that we can now remove
a lot of the global state and pointless passing of data structures.
This will make the code much more understandable and reliable
(though it's likely due to the large number of changes some regressions
may have been introduced).

The above refactoring on the buildd-object branch of 
git://git.debian.org/users/rleigh/sbuild.git was not merged directly.
All changes were merged into the existing files prior to converting
the programs into objects, and then splitting the objects into their
own individual .pm files.  This means that the history is "clean" in
the sense that it's now rather more easily reviewable.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.



More information about the Buildd-tools-devel mailing list