[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