[buildd-tools-devel] sbuild 0.60.3 released

Roger Leigh rleigh at codelibre.net
Sun Nov 7 22:50:46 UTC 2010


Hi,

sbuild 0.60.3 has been released.  This release includes some pretty
exciting changes:

* Major changes in 0.60.3:

  1) The aptitude resolver is now the default resolver.  Users wishing
     to continue to use the old internal resolver should set
     $build_dep_resolver='internal' in their configuration.  The
     aptitude resolver is far superior to the internal resolver,
     because it can correctly resolve complex alternative and virtual
     packages in build dependencies where the internal resolver would
     fail.

  2) The aptitude resolver is now entirely separate from the internal
     resolver, and greatly simplified.  All Build-Depends and
     -Conflicts are now passed directly to aptitude (with
     architecture-specific dependencies filtered out).  As before, a
     dummy dependency package is used to install and remove build
     dependencies and build-conflicts.

  3) The sbuild-clean program has been moved into sbuild-update, as
     for the other sbuild- helper programs.  The sbuild-* helper
     programs now take the sbuild chroot lock used by sbuild to
     prevent concurrent builds in the same chroot, making it safe to
     run the maintenance commands while builds are running (they will
     wait until the build has finished before making any changes).
     The sbuild-* helper programs now operate on source chroots, where
     available (for lvm-snapshot and btrfs-snapshot type chroots).

  4) The sbuild-createchroot program can now create tarballs from the
     created chroot, with gzip, bzip2, lzma and xz compression.  Use
     the new --make-sbuild-tarball option for this purpose.

  5) sbuild may now be used on an unpacked source directory, in a
     similar manner to debuild.  The directory will be packaged using
     'dpkg-source -b' prior to building.  If a source package or
     directory is not specified, sbuild will use the current working
     directory like debuild.

  6) Lintian may now be run after a package build with the
     --run-lintian option.

  7) External commands may now be run before and after a build and
     during chroot setup and cleanup.  These may be used to do
     additional setup and checking during a build, for example to run
     piuparts.

Many thanks in particular are owed to Andres Mejia for all his efforts
in implementing the external command framework and lintian invocation.
Andres has also implemented the support for sbuild-createchroot to
create tarballs and schroot configuration for file chroots.  He has
also implemented "debuild-like" functionality for schroot, which
allows one to build a source package directly from the unpacked
source directory.  So that's quite a lot of very cool new features!

On the build-dependency resolver front, the old "internal" resolver
has been replaced with the "aptitude" resolver by default.  The
aptitude resolver has also had some cleanup, and the Build-Depends
provided by the package are now passed directly to aptitude via the
"dependency package" method used previously, together with the
build-essential and any other additional dependencies required, e.g.
gcc-snapshot deps and other manual dependencies.  This is vastly
cleaner and more robust than before.  The only downside is increased
runtime compared with the internal resolver--it is a little slower,
but far more capable.  Alternative build-dependencies, virtual
packages etc., which the internal resolver did not support, now work
perfectly.

The internal resolver has also seen some cleanup (removal of dead
code), but no functional changes will be made going forward.  It's
just too complex and crufty to maintain.  Once the buildds have
switched to the aptitude resolver, it will be removed.

While all of the above changes have been tested, it's quite possible
that there may be some issues due to the changed resolver, and corner-
cases we didn't pick up during testing.  Please do let us know if you
run into any problems.


Regards,
Roger

Andres Mejia (61):
      Improve the parse_file() utility subroutine by being able to handle filehandles
      Supply more options to be used with sbuild
      Implement support for supplying directories as arguments, running lintian, and running pre and post build commands
      Have sbuild process current directory if no arguments are supplied
      Update sbuild man page for new features
      Update build system and Debian packaging
      Clean the source dir before building a the source packages
      Sbuild::Build: dpkg-source and lintian options may be undefined
      Merge remote branch 'rleigh/debuild-am2' into debuild-functionality
      Fixup various problems from merge.
      Make pre/post build commands specified in command line to be array refs
      Fix up sbuild man page.
      Clarify that pre/post build commands in configuration file are array of array of strings.
      Implement creating sbuild chroot tarballs.
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into sbuild-update
      Support multiple tarball compression formats besides gzip.
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into debuild-functionality
      Merge sbuild-clean functionality with sbuild-update.     This deprecates sbuild-clean.
      Don't prepend 'sudo' in example command to run piuparts.     How users run piuparts as root is at their discretion.
      Update sbuild-createchroot explaining how a tarball is generated based on a specified extension.
      Support running external commands inside and outside chroot.     There's also a fix to get external commands from config files detected properly.
      Change to using a hash of arrays of arrays as the data structure for external commands.
      Deprecate setup-hook option in favor of chroot-setup-commands feature.
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into debuild-functionality
      Remove deprecated key 'priority' from being added in configuration files.
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into debuild-functionality
      Fix comparison of $debug_level. Only compare if it's defined.
      Run commands only if there are commands to run
      Merge branch 'master' into debuild-functionality
      Fix breakage of commands that are run in root filesystem.
      Merge branch 'master' into sbuild-createchroot
      Merge branch 'master' into sbuild-update
      Merge branch 'master' into debuild-functionality
      Sbuild: Fix uninitalised value warning in debug2
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into debuild-functionality
      Merge branch 'master' into debuild-functionality
      Fix permissions on generated sbuild tarball.
      Setup host session with reasonable defaults.     This fixes issue where commands run on the host would not be logged.
      Do not ignore options that are set to undef.
      Fix logging of external commands, only logging when specified to log stdout or stderr of commands.
      Fix addition of lintian options to command to run.
      Fix builds from debianized source directories.
      Fix where logging begins/ends.
      Now really fix builds for debianized source directories.

Roger Leigh (83):
      Sbuild::Conf: Use arrayref for dpkg-buildpackage and lintian options
      Sbuild::Chroot: Default I/O streams to standard I/O
      Sbuild::Build: Simplify debugging output
      Sbuild::Build: Use ChrootRoot for running commands on host
      Sbuild::ChrootRoot: Don't inherit from ChrootPlain
      Sbuild::Build: Move object member initialisation earlier in construction
      Sbuild::Chroot: Simplify logic for executing on host
      Sbuild::BuildDepSatisfierBase: Replace uninstall_debs with run_apt call
      Sbuild::AptitudeBuildDepSatisfier: Handle Build-Conflicts and error conditions
      Sbuild::AptitudeBuildDepSatisfier: Clean up dummy deb files
      build: Restore check for aptitude
      Sbuild::Build: Remove 'Have DSC Build Deps'
      Sbuild::AptitudeBuildDepSatisfier: Use package build dependencies directly
      Sbuild::Build: Drop unused is_superset
      Sbuild::BuildDepSatisfierBase: Display toolchain packages directly from dpkg
      Sbuild::Build: Remove unused get_altlist
      Sbuild::Build: Remove unused functions
      Sbuild::BuildDepSatisfierBase: Move merge_pkg_build_deps here
      Sbuild: Fully separate internal and aptitude resolvers
      Sbuild::Options: Fix warning when using gcc-snapshot
      Sbuild::BuildDepSatisfierBase: Add chroot locking functions
      Buildd: Remove srcdep and install locks
      sbuild: Call unlock_chroot() on shutdown
      Sbuild: Rename BuildDepSatisfier classes to Resolver
      Sbuild::Build: Use Dpkg::Control to parse .dsc
      Merge branch 'master' into sbuild-update
      NEWS: Bump version to 0.60.3
      debian: Bump version to 0.60.3-1
      debian: Close #403246
      debian: Close #464376
      Sbuild::Conf: Make aptitude the default resolver
      NEWS: aptitude is the default resolver
      debian: aptitude is the default resolver
      Merge branch 'master' into sbuild-createchroot
      AUTHORS: Add Andres Mejia and also document in sbuild-createchroot(8)
      man: Add Andres Mejia to AUTHORS/COPYRIGHT
      sbuild-createchroot: Rename --keep-sbuildchroot-dir to --keep-sbuild-chroot-dir
      sbuild-createchroot: Default to .tar.gz rather than .tgz
      sbuild-createchroot: Correct message to print .tar.gz rather than .tgz
      Sbuild::ConfBase: Never set Sbuild::debug_level to undef
      debian: Close #602318
      debian: Document tarball creation by sbuild-createchroot
      NEWS: Document sbuild-createchroot tarball creation
      debian: Close #545215
      Sbuild: Internal resolver uses AptDependencies
      Sbuild::InternalResolver: Remove use of obsolete $conf::srcdep_over
      Sbuild::InternalResolver: Remove obsolete sourcedeps override support
      Sbuild::Chroot: Move chroot locking here
      sbuild-update: Lock chroot to block if a build is running
      Merge branch 'master' into debuild-functionality
      Sbuild::Build: Create Host ChrootRoot object in constructur
      Sbuild::Build: Remove removed install_core function call and reindent
      Sbuild::Build: Don't strip epoch before calling set_version
      Sbuild: Handle failure paths better
      Sbuild::InternalResolver: Move get_dpkg_status and get_apt_policy here
      Sbuild::Conf: Default RESOLVE_VIRTUAL to off
      debian: Default $resolve_virtual to 0
      Merge branch 'master' into debuild-functionality
      Sbuild::Build: Only log to build log during a package build
      Sbuild::Build::run_external_commands: Initialise $chroot to 0
      Sbuild::Conf: external_commands is a hashref
      sbuild.conf: Remove obsolete %alternatives
      man: external_commands is a hashref
      Sbuild::ResolverBase: Move get_dpkg_status here
      Sbuild::Build: Install core build dependencies separately
      Sbuild::Base: Don't warn about undefined log streams unless debugging
      Sbuild::Build: Rearrange order of external commands
      Sbuild::Build: Log source package creation
      debian: Close #551311 and document lintian and external commands
      Sbuild::Build: run_external_commands: Don't log section if no commands specified
      Sbuild::Build: Log summary statistics
      AUTHORS: Add lintian/external commands authorship
      Sbuild::ChrootInfoSchroot: Parse chroot namespaces
      Sbuild::Conf: Log external command output by default
      Sbuild::ChrootInfo: Add support for namespaces
      debian: Close #567505
      Sbuild::ChrootInfo: Support namespaces properly with sudo
      sbuild.conf: Document $build_dep_resolver
      Sbuild::ResolverBase: Don't log Build-Depends/Conflicts by default
      Sbuild: Update copyright
      debian: Fix typo
      NEWS: Document new features
      debian: Correct version

 AUTHORS                                 |    9 +
 NEWS                                    |   46 ++-
 bin/sbuild                              |   14 +-
 bin/sbuild-apt                          |    2 +-
 bin/sbuild-checkpackages                |    2 +-
 bin/sbuild-clean                        |  123 +-----
 bin/sbuild-createchroot                 |   97 +++-
 bin/sbuild-hold                         |    2 +-
 bin/sbuild-shell                        |    2 +-
 bin/sbuild-unhold                       |    2 +-
 bin/sbuild-update                       |   89 +++-
 configure.ac                            |    3 +-
 debian/changelog                        |   46 ++
 debian/control                          |    2 +-
 debian/rules                            |    3 +-
 etc/sbuild.conf                         |   89 ++--
 lib/Sbuild.pm                           |    8 +-
 lib/Sbuild/AptitudeBuildDepSatisfier.pm |  366 -------------
 lib/Sbuild/AptitudeResolver.pm          |  272 ++++++++++
 lib/Sbuild/Base.pm                      |    2 +-
 lib/Sbuild/Build.pm                     |  889 +++++++++++++++----------------
 lib/Sbuild/BuildDepSatisfierBase.pm     |  520 ------------------
 lib/Sbuild/Chroot.pm                    |   76 +++-
 lib/Sbuild/ChrootInfo.pm                |   43 +-
 lib/Sbuild/ChrootInfoSchroot.pm         |   79 ++--
 lib/Sbuild/ChrootInfoSudo.pm            |   22 +-
 lib/Sbuild/Conf.pm                      |   48 ++-
 lib/Sbuild/ConfBase.pm                  |    2 +-
 lib/Sbuild/InternalBuildDepSatisfier.pm |  444 ---------------
 lib/Sbuild/InternalResolver.pm          |  576 ++++++++++++++++++++
 lib/Sbuild/Makefile.am                  |    6 +-
 lib/Sbuild/Options.pm                   |   58 ++-
 lib/Sbuild/ResolverBase.pm              |  302 +++++++++++
 lib/Sbuild/Sysconfig.pm.in              |    1 +
 lib/Sbuild/Utility.pm                   |   19 +-
 man/Makefile.am                         |    2 +-
 man/sbuild-clean.1.in                   |   83 ---
 man/sbuild-createchroot.8.in            |   54 ++-
 man/sbuild-update.1.in                  |   46 ++-
 man/sbuild.1.in                         |  145 +++++-
 40 files changed, 2432 insertions(+), 2162 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/20101107/be0aba8a/attachment.pgp>


More information about the Buildd-tools-devel mailing list