[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