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

New sbuild release 0.38

Hi folks,

sbuild 0.38 has been released; the changelog follows at the end of
this message.  It's tagged in CVS as sbuild_0_38, and has been
uploaded to experimental.  It is also available at

If you are a user of sbuild, it would be greatly appreciated if you
could test this release.  It has already had a good bit of testing,
but if there are any corner-case regressions that have been missed, it
would be great to catch them before it is uploaded to unstable.

I'm also posting this to -devel, to bring everyone up-to-date on the
current state of sbuild following on from the thread in November
(starting at

Version 0.37, released on the 31 Jan 2006, was an almost-complete
merge with upstream; the list of changes is also attached below.  This
fixed a number of long-standing bugs, as well as removing a number of
incompatibilities with upstream (it should now be possible to use the
packaged sbuild on a buildd, for example).  The next step is merging
all of our bugfixes with upstream.  These patches are available at

Version 0.38 fixes a number of bugs, as well as introducing a number
of larger changes, the most important being
- full sudo access is no longer required on the host system; access to
  the chroot and host system is now provided through a simple API to
  make chroot use uniform throughout sbuild.
- schroot session management is integrated.  This means that you can
  build using any chroot type supported by schroot(1), including LVM
  snapshots, files (zip, tar(.gz|.bz2) in a manner similar to
  pbuilder), as well as normal chroots.  This is selected with
  $chroot_mode="schroot" in /etc/sbuild.conf.local.
The only user-visible change should be more verbose log messages; this
will probably need to be made configurable.


sbuild (0.38) experimental; urgency=low

  * Full sudo access is no longer mandatory when using the schroot
    chroot_mode (Closes: #287669, #331506).
  * schroot session management is now fully implemented and completely
  * sbuild:
    - Move schroot metadata parsing to a separate function,
      get_schroot_info().  Parse both "Location" (for
      backwards-compatibility) and "Mount Location".
    - Move path and APT setup into a separate function, setup_options().
    - Remove check_dpkg_version().  This has not been necessary since the
      release of potato (Debian 2.2), which had a dpkg version 1.6.14.
    - When $chroot_mode == "schroot", clear %main::dist_order and
      %main::dist_locations using an empty array, rather than undef.
    - New functions get_command(), run_command(), get_apt_command() and
      run_apt_command() to run a command inside or outside the build
      chroot under the specified user, or run apt inside or outside the
      chroot (depending on the chroot_mode), respectively.
    - New function exec_command().  This is the same as run_command(), but
      runs the command with exec rather than system().
    - New functions log_command() to log a command being run,
      get_command_internal() and get_apt_command_internal() to get a
      command string without logging it; these are used by get_command(),
      run_command, exec_command(), get_apt_command() and run_apt_command(),
      which do log the command being run.  Commands are logged in for all
      chroot modes.
    - get_apt_command() and run_apt_command() take an additional parameter,
      the command to run (apt-get or apt-cache).
    - get_apt_command() and run_apt_command() take an additional parameter,
      the user to run as, because not all commands need (or should) run as
    - Use new commands for running commands inside and outside chroots:
      + Signing options for dpkg-buildpackage are double-quoted rather than
        single-quoted (because the main command is single-quoted).
      + All commands run in a pipeline are obtained with get_command() or
      + All other commands are run with run_command(), exec_command() or
      + check_space() only requires root access in the chroot.
    - Add schroot session management.  Sessions are created, run and
      removed automatically.  The current session is stored in
      $main::schroot_session.  setup_options is called once per build, in
      order to set up the session options.
    - Add missing newline to log message.
  * sbuild.1:
    - Update outdated information.
    - Correct macro usage and reindent.
    - Correct command-line summary (Closes: #311589).
  * sbuild-setup.7: New manpage.  This describes how to set up a chroot
    (Closes: #311363).
  * avg-pkg-build-time.1: Clean up.
  * update-sourcedeps.1: Clean up.
  * sbuild.conf: $schroot_options defaults to "-q" to match the built-in
  * example.sbuildrc: Single quote example email addresses in
    $maintainer_name, $uploader_name, and $key_id (Closes: #341327).
  * chroot/buildd.chroot:
    - Use "set -e" to abort on all errors (Closes: #342357).
    - Correctly quote all shell variables.
    - Use cdebootstrap rather than debootstrap.
  * chroot/buildd.chroot.pre-sarge: Remove.
  * chroot/README-buildd.chroot.pre-sarge: Remove (Closes: #308065).
  * debian/control:
    - Recommend schroot.
    - Recommend cdebootstrap rather than debootstrap.
  * debian/README.Debian: Update information about src-deps and schroot.

 -- Roger Leigh <rleigh@debian.org>  Wed, 15 Feb 2006 18:13:23 +0000

sbuild (0.37) unstable; urgency=low

  * Sync with upstream SVN:
    - avg-pkg-build-time, avg-pkg-build-time.1, sbuild, sbuild.1,
      update-sourcedeps, update-sourcedeps.1: Update copyright notices with
      current FSF postal address.
    - sbuild:
      + Split changes files sent in the log every 989 characters, to better
        conform to mail RFCs.
      + Always show versions of installed build dependencies.
      + Always purge packages when building in a chroot.
      + Output purged packages line by line, rather than all at once.
      + Use strftime() and getpwuid() instead of the external commands
        date and whoami.
      + Use /var/lib/sbuild/apt.conf if it exists, and create it if it does
        not.  This fixes the problem of the root filesystem
        /etc/apt/apt.conf and /etc/apt/apt.conf.d directories being used,
        while the copies in the chroot filesystem are ignored.
      + Allow arch: all packages to be built when $main::build_arch_all
        is true.
      + Hardware DEBIAN_FRONTEND to "noninteractive" when installing and
        purging packages.  "apt-get update" is also run when the package
        cache is out of date (closes: 331546).
      + Fix support for '~' in version numbers.
      + Add Sbuild.pm (upstream WannaBuild.pm), and replace version_cmp()
        with Sbuild::version_compare().
      + Add REDO support for binNMUs.
      + Add stats generation for download+install, build and remove times.
      + Disassociate from the controlling terminal and make stdin /dev/null
        for the dpkg-buildpackage process.
      + Don't create entries to the sbuild log when a package claims to
        build an _all.deb, but doesn't.  Instead, warn to the build log.
      + Delete binary-all packages that we didn't ask to be built.
      + By default, set APT::Get::AllowUnauthenticated to "true".
      + Add $conf::chroot_only for compatibility with upstream
        (closes: #302628).
      + Add $conf::dpkg_source.
      + Add $conf::build_env_cmnd.
      + Merge whitespace and indentation changes.
      + Fix typos.
      + shutdown(): Don't close the package log if there is no current job.
      + read_build_essential(): Read build-essential from $main::chroot_dir
        instead of the root filesystem.
      + Add @main::toolchain_pkgs and @toolchain_regex.
      + check_space(): Redirect stderr of du to /dev/null.
      + run_apt(): Complete support for "install-deps-env".
      + Add --use-snapshot for building with gcc-snapshot.
      + build(): Remove dpkg-buildpackage debugging statements.
      + merge_pkg_build_deps(): Correctly separate dependencies in $deps,
        and don't immediately return if there are missing packages.
      + Remove support for --store-built-packages.
      + get_dpkg_status(): Check $version is set and compute $result in the
        same manner as upstream.
      + run_apt(): Remove '*' from $pkgs and $rpkgs.
      + install_deps(): purge packages with "dpkg --set-selections".
        schroot support added in addition to upstream changes.
      + fetch_source_files(): Support versioned fetches with apt-get.
      + Add support for auto_giveback_socket: add an extra argument to
        --auto-give-back and add an ssh '-S' option to analyze_fail_stage().
      + Support new --make-binNMU options.
      + Add support for $conf::chroot_only, and default to only running in
        a chroot for security and safety.
      + cleanup_close: Set $main::current_job to "" and shutdown if
        $main::HOME/EXIT-DAEMON-PLEASE exists and we are running in
      + Move "Package claims to have built" error message to the same place
        as upstream.
    - sbuild.conf:
      + Remove watches.
      + Update alternatives (closes: #280689).
      + Comment out example %individual_stalled_pkg_timeout.
      + Empty @ignore_watches_no_build_deps.
    - sbuild.conf.local:
      + Add $chroot_only.
    - avg-pkg-build-space.1: Update text.
    - example.sbuildrc:
      + Remove $hack_changes_for_frozen.
      + Update comments.
  * sbuild.conf.local:
    - Use FHS-compliant pathnames, as in sbuild.conf.
  * Add support for building from experimental.
  * sbuild:
    - Parse the .changes rather than debian/files, so that the
      .dsc/.diff.gz/.orig.tar.gz are also copied back to ~/build.
    - Print information and contents of arch-all packages (closes: #321640).
  * debian/control: The maintainer field contains the list address.

 -- Roger Leigh <rleigh@debian.org>  Tue, 31 Jan 2006 12:58:57 +0000

Roger Leigh
                Printing on GNU/Linux?  http://gutenprint.sourceforge.net/
                Debian GNU/Linux        http://www.debian.org/
                GPG Public Key: 0x25BFB848.  Please sign and encrypt your mail.

Attachment: pgp95ApTnJZY5.pgp
Description: PGP signature

Reply to: