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

Recent and ongoing work on sbuild and wanna-build

Hi folks, and Happy New Year!

This mail is just to keep you up-to-date with what has been going on
over the last three months in the world of sbuild and wanna-build,
and what will be happening in the near future and for Squeeze.


Following the integration of the sbuild changes in use on the buildds,
sbuild is now fully usable with contemporary wanna-build and buildd
and has been tested on at least the i386 buildd to the best of my

Work has been done to clean up the Sbuild::Chroot class hierarchy
and improve the consistency of the environment used to execute
commands both inside and outside the chroot.  In addition to the
existing schroot support, support for sudo has been reinstated,
for non-Linux architectures which don't yet have the schroot
build-deps available.  Both schroot and sudo may now be run "split",
whereby apt/dpkg are run on the host system, to avoid the need for
live networking inside the chroot environment.

Support has also been added for logging streams to allow for
concurrent builds and avoiding the need to redirect global streams.
This is to allow future buildd/sbuild to schedule multiple
concurrent builds.


Recent work has focussed on wanna-build.  It has been refactored to
use the same options parsing and configuration handling as sbuild
(in fact, they now share the same configuration file, though this
is likely to change shortly).  This is now present in the master
branch of sbuild.git.  Sbuild::ConfBase handles configuration for
both sbuild and wanna-build, including providing defaults,
validation and key-specific property handlers.   Sbuild::Conf and
WannaBuild provide program-specific options and configuration file

The dump/restore code has also been fixed up to cope with the
presence of the _userinfo key used to contain user tracking data.

The changes made on the buildds have also been merged from [1], so
it now contains all of the functionality present on the live
wanna-build installation, albeit without specific configuration and
cron jobs.

Additionally, work has started to modularise wanna-build in order to
replace the MLDBM database backend with a more flexible PostgreSQL
backend[2].  Instead of using the tied-hash database directly, all
database activity now takes place through accessor functions to
read/write package and user records.  This will make it possible
to write an alternative backend to the MLDBM backend without
needing to touch the main wanna-build code.  However, much of the
code will be able to be simplified significantly once we switch
to PostgreSQL completely, since much of the complexity can be
handled directly in the database.

This simplified wanna-build will likely be a brand-new frontend
based on the same perl modules which wanna-build uses, which
will allow backward compatibility to be retained until the new
tool is fully tested and dependent programs are updated to use it.

Using PostgreSQL will make it much easier to get data in and out
of the database, as well as to give other tools access to the data,
since MLDBM is essentially a "proprietary binary blob" which is
both only readable by Perl and is architecture-dependent.

Future work

- Finalise PostgreSQL database schema [3]
- Write PostgreSQL backend
- Create new tool to replace wanna-build
- Ongoing merge of sbuild/wanna-build/buildd changes
- Correct deficiencies in sbuild's build-dep handling

The project's git repository for sbuild and wanna-build may be found
at [4].

Many thanks to Marc 'HE' Brockschmidt, Cyril Brulebois, Lucas
Nussbaum and all the other folks on #debian-buildd who have
been invaluable in making the rapid progress we have achieved
over the last month or so.

If you'd like to get involved, please get in touch on buildd-tools-devel!


[1] http://git.debian.org/?p=mirror/wanna-build.git
[2] http://git.debian.org/?p=users/rleigh/sbuild.git;a=shortlog;h=refs/heads/wb-backend
[3] http://git.debian.org/?p=users/rleigh/sbuild.git;a=tree;f=db;h=a7ad5c6029b3ea7a895ed532cdf31039a8832d58;hb=e151e7bb96567817a580118c8c0d5b6cf1fa9b38
[4] git://git.debian.org/git/buildd-tools/sbuild.git

  .''`.  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.

Reply to: