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 http://people.debian.org/~rleigh/sbuild-0.38/ 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 http://lists.debian.org/debian-devel/2005/11/msg01368.html). 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 https://alioth.debian.org/tracker/index.php?group_id=30471&atid=411184 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. Regards, Roger 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 functional. * 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 root. - 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 get_apt_command(). + All other commands are run with run_command(), exec_command() or run_apt_command(). + 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 default. * 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 <firstname.lastname@example.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 batchmode. + 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 <email@example.com> 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.
Description: PGP signature