[buildd-tools-devel] sbuild 0.60.0 released

Roger Leigh rleigh at codelibre.net
Tue Dec 7 23:06:56 UTC 2010


I have release sbuild version 0.60.6.  This version contains quite a few
changes, but most are not visible to the end user.

The major changes:

  1) sbuild now sanitises the environment when running external
     commands such as dpkg-buildpackage.  The allowed environment
     variables may be specified with $environment_filter in the
     configuration.  Currently, various DEB* and *FLAGS* environment
     variables are allowed, similar to debuild's behaviour.

  2) sbuild now has a testsuite to do basic regression testing.  By
     default, only Perl syntax is checked.  If configured with
     --enable-chroot-checks, it will run the various sbuild-* helpers
     and sbuild itself to build a small variety of different
     packages.  These are tested in an "unstable" chroot, which must
     be present as a prerequisite for running the tests.

  3) The apt and aptitude build dependency resolvers now use a
     temporary local apt archive for installation of the dependency
     packages.  apt-get would previously try to remove the dependency
     package under certain conditions (apt-get -f install would force
     removal), whereas using a real archive to install from prevents
     this.

  4) sbuild-update has a new option, --keygen.  This generated a GPG
     key for signing local apt archives.  The key will be generated
     automatically on first use, but if entropy on the build system is
     scarce, sbuild-update can generate it by hand at a more
     convenient time, or on another system.

  5) sbuild no longer generates the files REDO and SBUILD-REDO-DUMPED
     upon receiving a termination signal.  These were no longer used
     in buildd mode, and were only useful in a buildd context.

Thanks to everyone who contributed patches and suggestions which went
into this release.

Thanks are due again to Andres Mejia for his work on the resolver code.
The new apt resolver is now much more robust.  We now create a small
temporary apt archive for the dummy dependency packages so that apt-get
and aptitude can download and install them.  This is much better than
the previous practice of installing the dummy package with dpkg, and
then calling "apt-get -f install" to fix up the depdendencies, since
this sometimes decided to remove the dependency package.  The
dependency package is always installed correctly when using "apt-get
install".

Note that the apt archive needs a GPG signing key for security.  This
will be generated on demand, but you might want to use
"sbuild-update --keygen" to do this beforehand, or even on another
system.

On the internals side of things, there was some refactoring of other
bits, which are not user-visible:
- all apt-get usage now happens in the build-dep resolver code.  Some
  code has been moved from Sbuild::Chroot and Sbuild::ChrootSetup,
  which has made some things much cleaner (split mode, for example,
  is no longer hacked into each chroot type)
- configuration modules no longer derive from Sbuild::ConfBase.
  This lead to inflexibility in extending modules with keys from
  other modules, and in parsing files.  Now the configuration
  modules all operate on a ConfBase object, meaning a single
  configuration object may be usef for multiple tasks (e.g. driving
  sbuild using a mixed buildd/sbuild configuration object).
- unused code removed from bin/sbuild
- stats update moved from dependency resolver to top level, in
  preparation to moving all stats updates from sbuild to buildd
- last vestigies of manual source-dependencies removed from the
  watches code


Regards,
Roger


Andres Mejia (13):
      Add functions that setup a dummy apt archive for use with apt resolver.
      Supply sbuild apt archive keys for use in creating apt archives.
      Use run_apt_command() instead of running apt-get explicitely.
      Generate a key on first use instead of providing the keys during installation.
      Simplify apt archive creation by using apt-ftparchive.
      Use Sbuild::ChrootSetup::update to run apt-get update.
      Fix sbuild-update to work with new apt split refactoring.
      Fix aptitude resolver function call to pipe_aptitude_command().
      Remove checks to see if lintian or piuparts are executable.     This is already done in Conf.pm.
      Sbuild::ResolverBase: Create dummy package in temporary directory
      Fix call to generate_keys() in Sbuild::ChrootSetup.
      Create apt-keys directory during installation.
      Fix apt-keys directory permissions during installation.

Ansgar Burchardt (1):
      sbuild-update: Add --arch option.

Jamie Strandboge (1):
      Sbuild::Build: read_build_essential: Add workaround for broken Ubuntu releases

Marc Dequènes (Duck) (1):
      Sbuild::ConfBase: Only use MAILTO_HASH if defined

Modestas Vainius (1):
      Do not skip purging of build directory if chroot is cloned.

Philipp Kern (3):
      bin/create-chroot: add testing-edu
      Merge branch 'master' of alioth.debian.org:/git/buildd-tools/sbuild
      debian/control: depend on libdpkg-perl (>= 1.15.5)

Roger Leigh (62):
      Sbuild::ChrootSetup: Add hold_packages and unhold_packages functions
      Sbuild::Chroot: Filter environment using ENVIRONMENT_FILTER
      NEWS: Bump version to 0.60.6 and document environment filtering
      debian: Bump version to 0.60.6
      Sbuild::Sysconfig: drop unused DPKG_ARCHITECTURE
      Sbuild::Sysconfig: Drop programs hash
      debian: Drop unneeded programs when running configure
      sbuild: Return 'skipped' packages with zero exit status
      Buildd::Daemon: Move should_skip here
      sbuild-update: Work on multiple chroots
      NEWS: Bump version to 0.60.6
      debian: Bump version to 0.60.6-1 and close #604715
      sbuild-update: Add --keygen option to generate GPG keys for archive signing
      Merge branch 'apt-get-resolver'
      Merge branch 'master' of ssh+git://git.debian.org/git/buildd-tools/sbuild
      Sbuild::Base: Move section logging here from Sbuild::Build
      Sbuild::Build: Move install time stats writing here from InternalResolver
      Sbuild::Build: Add Install Time to generated stats
      Sbuild::Build: Move prepare_watches call here from InternalResolver
      Sbuild::Build: Remove source dependencies support in prepare_watches
      Sbuild::Resolver*: Remove use of Build object
      sbuild-update: Use resolver to perform all apt-get calls
      Sbuild::ResolverBase: Don't use Errno, and only remove archive if defined
      Sbuild::Build: Use resolver for all apt operations
      sbuild: Remove REDO and SBUILD-REDO-DUMPED handling
      sbuild: Simplify shutdown logic
      sbuild-createchroot: Use resolver to update chroot
      Sbuild::ChrootSetup: generate_keys runs as normal user
      Sbuild::ChrootSetup: shell runs as normal user
      Sbuild::ResolverBase: Cleanup with / as CWD in case build tree removed
      sbuild-update: Remove unused ChrootSetup functions
      Sbuild::ChrootSetup: Remove functions previously moved to ResolverBase
      Sbuild: Remove now unused srcdep lock configuration
      Sbuild::ResolverBase: Move chroot apt/aptitude command execution here
      sbuild-update: Begin host session to fully initialise session
      Sbuild::Build: Correctly begin host session
      Sbuild::ResolverBase: Set Defaults in session
      Sbuild::ResolverBase: Location is stored in session
      test: Add basic syntax checking of all perl scripts (perl-syntax)
      test: Don't display grep output
      Sbuild: Correct use of removed conf:: namespace in error paths
      test: Use set -e
      test: Add sbuild-update check
      build: Add test/sbuild-update
      Sbuild: Move check_group_membership here
      test: Add additional sbuild helper tests
      Sbuild::Build: Initialise install start and end times
      Sbuild::Build: update() uses the dependency resolver
      bin: sbuild-* wrappers don't need absolute paths
      Sbuild::ConfBase: Don't use as a base class
      test: sbuild only builds a single source package version
      test/.gitignore: Ignore generated scripts
      NEWS: Document new features:
      debian: Close #606001
      NEWS: Document testsuite
      sbuild.1: Update description of --maintainer
      debian: Close #605745
      debian: Document Ubuntu workaround
      debian: Close #589615
      debian: Close #605997
      NEWS: Remove duplicate entry
      debian: Tidy changelog and add major upstream changes

 Makefile.am                    |    2 +-
 NEWS                           |   34 ++-
 README                         |   24 ++
 bin/Makefile.am                |    1 +
 bin/buildd                     |    4 +-
 bin/buildd-mail                |    4 +-
 bin/buildd-uploader            |    4 +-
 bin/buildd-vlog                |    4 +-
 bin/buildd-watcher             |    4 +-
 bin/sbuild                     |  210 ++++---------
 bin/sbuild-abort               |    8 +-
 bin/sbuild-adduser             |    4 +-
 bin/sbuild-apt                 |    8 +-
 bin/sbuild-checkpackages       |   12 +-
 bin/sbuild-clean               |    2 +-
 bin/sbuild-createchroot        |   40 +--
 bin/sbuild-debuild             |   26 +--
 bin/sbuild-distupgrade         |    2 +-
 bin/sbuild-hold                |   12 +-
 bin/sbuild-shell               |    8 +-
 bin/sbuild-stats               |   28 +--
 bin/sbuild-unhold              |   12 +-
 bin/sbuild-update              |  112 +++++---
 bin/sbuild-upgrade             |    2 +-
 bin/wanna-build                |    2 +-
 bin/wanna-build-mail           |    2 +-
 configure.ac                   |   69 +++--
 debian/changelog               |   37 +++
 debian/control                 |    2 +-
 debian/rules                   |    9 +-
 debian/sbuild.install          |    1 +
 debian/sbuild.postinst         |    1 +
 etc/sbuild.conf                |   16 +-
 lib/Buildd/Conf.pm             |  149 +++++----
 lib/Buildd/Daemon.pm           |   42 +++-
 lib/Buildd/DistConf.pm         |   49 ++--
 lib/Buildd/Mail.pm             |    2 +-
 lib/Buildd/UploadQueueConf.pm  |   47 ++--
 lib/Buildd/Uploader.pm         |    2 +-
 lib/Buildd/Watcher.pm          |    2 +-
 lib/Sbuild.pm                  |   33 ++-
 lib/Sbuild/AptResolver.pm      |  145 +--------
 lib/Sbuild/AptitudeResolver.pm |  146 +--------
 lib/Sbuild/Base.pm             |   35 ++
 lib/Sbuild/Build.pm            |  216 +++++---------
 lib/Sbuild/Chroot.pm           |  209 ++-----------
 lib/Sbuild/ChrootInfo.pm       |    1 -
 lib/Sbuild/ChrootPlain.pm      |   69 ++---
 lib/Sbuild/ChrootRoot.pm       |    7 +-
 lib/Sbuild/ChrootSchroot.pm    |   42 +--
 lib/Sbuild/ChrootSetup.pm      |  155 ++++-----
 lib/Sbuild/ChrootSudo.pm       |   58 ++---
 lib/Sbuild/Conf.pm             |  435 +++++++++++++-------------
 lib/Sbuild/ConfBase.pm         |   41 ++-
 lib/Sbuild/DB/Client.pm        |    4 +-
 lib/Sbuild/DB/ClientConf.pm    |   38 ++--
 lib/Sbuild/InternalResolver.pm |  130 ++++-----
 lib/Sbuild/Makefile.am         |    1 +
 lib/Sbuild/Options.pm          |    1 -
 lib/Sbuild/OptionsBase.pm      |    1 -
 lib/Sbuild/Resolver.pm         |   58 ++++
 lib/Sbuild/ResolverBase.pm     |  672 +++++++++++++++++++++++++++++++++++++---
 lib/Sbuild/Sysconfig.pm.in     |   34 --
 lib/Sbuild/Utility.pm          |    4 +-
 lib/WannaBuild/Conf.pm         |   90 +++---
 lib/WannaBuild/Database.pm     |    2 +-
 man/sbuild-update.1.in         |   45 ++-
 man/sbuild.1.in                |    8 +-
 test/.gitignore                |   10 +
 test/Makefile.am               |   49 +++
 test/perl-syntax.in            |   30 ++
 test/sbuild-checkpackages.in   |   28 ++
 test/sbuild-clean.in           |   26 ++
 test/sbuild-distupgrade.in     |   26 ++
 test/sbuild-hold.in            |   28 ++
 test/sbuild-stats.in           |   26 ++
 test/sbuild-update.in          |   28 ++
 test/sbuild-upgrade.in         |   26 ++
 test/sbuild.in                 |   29 ++
 79 files changed, 2276 insertions(+), 1709 deletions(-)

-- 
  .''`.  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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/buildd-tools-devel/attachments/20101207/438b9637/attachment.pgp>


More information about the Buildd-tools-devel mailing list