ChangeLog -*- outline -*- --------- Welcome to @PACKAGE@ @VERSION@. Please read these release notes carefully. Full installation instructions are provided in the INSTALL file. The README file also contains more specific notes regarding building and configuration. * Major changes in 0.80.0: 1) sbuild became a Debian native package -- consult debian/changelog or /usr/share/doc/sbuild/changelog.Debian.gz instead * Major changes in 0.79.1: 1) buildd: add --dpkg-file-suffix option * Major changes in 0.79.0: 1) sbuild-createchroot: handle building armel/armhf on arm64, mipsel on mips64el and powerpc on ppc64 2) avoid using gzip --keep option, gzip in wheezy doesn't have it 3) sbuild: add --dpkg-file-suffix option 4) sbuild: pass the right .changes file to lintian 5) sbuild-createchroot: use umask 0022 6) sbuild: add APT_KEEP_DOWNLOADED_PACKAGES config variable * Major changes in 0.78.1: None (bugfix release) * Major changes in 0.78.0: 1) core: Add libc-dev and libstdc++-dev to Build-Depends when cross compiling 2) core: default to --no-arch-all when cross compiling 3) core: Set build profiles cross and nocheck by default when cross compiling 4) core: Switch to C.UTF-8 for $LC_ALL 5) core: allow chroots with nothing more but Essenital:yes packages, apt and their hard dependencies and create missing users and groups as needed 6) sbuild: add --build-dir option 7) sbuild: add --no-source-only-changes option 8) sbuild: add --post-build-failed-commands hook 9) sbuild: let --append-to-version imply --no-arch-all 10) sbuild-createchroot: Don't usrmerge even if it is the debootstrap default * Major changes in 0.77.1: 1) sbuild: run dpkg-source --before-build and --after-build 2) core: fix bd-uninstallable dose explainer for cross-building * Major changes in 0.77.0: 1) core: New chroot mode "unshare" which allows unprivileged package builds by using Linux user namespaces. Only requires lightweight newuidmap and newgidmap suid binaries. Chroots can be created and updated without needing sudo and are stored in ~/.cache/sbuild or an arbitrary absolute path given via the --chroot option. 2) core: Add null resolver which does not install, upgrade or remove any packages. This allows one to take full control over the package installation process by using hooks. 3) core: Remove support for signing the dummy archive because Squeeze LTS support ended in February 2016: remove the --keygen option from sbuild-update, remove the SBUILD_BUILD_DEPENDS_SECRET_KEY and SBUILD_BUILD_DEPENDS_PUBLIC_KEY configuration variables. 4) core: disable network during dpkg-buildpackage for backends that support it (currently only the unshare backend) 5) core: Install (cross-)build-essential, manual depends and build depends with a single dummy package instead of using a multi-step process to avoid having later steps change what was installed in earlier steps. 6) core: Filter out foreign essential and multiarch foreign packages before passing them to dose3 when cross building to prevent solutions that use essential and multiarch foreign packages from the non-native architecture. 7) sbuild: Command line option --make-binNMU now implies --no-arch-all 8) sbuild: only run autopkgtest if debian/tests/control exists 9) sbuild: Add new build log filtering for /build/pkg-minimal-XXX/resolver-YYY: <> 10) sbuild: Additional Lintian reasons in build log: info and warn. 11) sbuild: Dump content of the input .dsc before extracting it. 12) sbuild: Also print kernel version in build log 13) sbuild-createchroot: do not attempt several setup options when the user specified --setup-only together with --make-sbuild-tarball because then the unpacked directory does not exist 14) sbuild-createchroot: make the mirror argument optional as well (just as it is in debootstrap) 15) sbuild-createchroot: add --chroot-mode=unshare which allows running debootstrap and creating a chroot tarball without needing sudo 16) sbuild-createchroot: refuse to operate if output tarball or directory already exist 17) sbuild-update: add --chroot-mode option and support for unshare backend * Major changes in 0.76.0: 1) sbuild-update-all: exit 0 when no chroots are set up. * Major changes in 0.75.0: 1) buildd: only build arch:any packages 2) buildd: do not run lintian 3) remove harmful unnecessary lintian binary check * Major changes in 0.74.0: 1) Install dose-distcheck and lintian for the native architecture 2) remove DCMD config value which is not used and just uselessly making libsbuild-perl depend on devscripts 3) use dpkg-query instead of grep-status so that dependency on grep-dctrl is not needed anymore 4) suppress schroot writing to stderr in sbuild-createchroot 5) check for modprobe in sbuild-createchroot 6) Add missing newline character to a bunch of error messages 7) dose3 failures no longer mask the --build-deps-failed-commands 8) Build arch: all packages by default. 9) Run lintian by default. 10) sbuild-createchroot: add --command-prefix 11) add sbuild-debian-developer-setup package * Major changes in 0.73.0: 1) starting-build-command and finished-build-commands are now run as root. 2) Output .buildinfo in buildlog. 3) The autopkgtest-virt backends are no longer supplied with the chroot name. 4) Add SBUILD_BUILD_ARCH percent escape. 5) Use Dpkg::Build::Info::get_build_env_whitelist() to generate the default of ENVIRONMENT_FILTER. 6) For binNMUs, instead of copying the timestamp of the last changelog entry, generate a new one. 7) Add the --binNMU-timestamp command line option to allow one to pass a custom timestamp for the new binNMU changelog entry. 8) Add option --binNMU-changelog which allows one to pass a complete debian/changelog entry for binary-only builds. 9) Extra packages can now be used to upgrade already installed packages. 10) The autopkgtest backend now runs into its own process group. 11) Extra repositories are now unconditionally updated. 12) Allow passing a directory to --extra-package which will add all .deb inside. * Major changes in 0.72.0: 1) Add option --purge-extra-packages which makes sure to remove all non-essential packages before the package build starts. 2) Stop depending on newlines being produced by the build to detect timeouts 3) Accommodate for the autopkgtest 4.0 release by renaming all adt command line options and configuration variables from adt to autopkgtest because the same renaming was done by the autopkgtest release. 4) Add --bd-uninstallable-explainer which gives an explanation of why the build dependencies of a source package cannot be installed. * Major changes in 0.71.0: 1) Undo exporting private keys in armored ASCII format as introduced by the last release. It turns out, that this is not necessary to support gpg cross-version compatibility. This should fix problems with gpg 2.x as well as chroots not having gpg installed as apt stopped depending on it. 2) Undo the SUITE-VARIANT syntax of sbuild-createchroot as introduced by the last release. It turns out that overloading the suite name argument with a variant name was a bad idea because there exist distributions with a minus in its name. Variant names can now be specified using the --chroot-prefix option which works analogous to the --chroot-suffix option. 3) Add percent escape support to piuparts, autopkgtest and adt-virt options. 4) Add sbuild-destroychroot. * Major changes in 0.70.0: 1) Fix reproducibility issue by not writing the $HOME as set during the build into config files and man pages anymore 2) Add an EXAMPLE section to the sbuild man page 3) sbuild-createchroot now has support for SUITE-VARIANT chroot names. This is useful to create variants of base suits like jessie-backports or unstable-experimental. 4) sbuild-createchroot now has the --no-deb-src option which allows one to create a chroot without a deb-src entry in its sources.list. This is useful to save bandwidth and disk space for chroots that will never be used to download source packages as the source indices do not have to downloaded, stored and later updated from the mirrors. 5) sbuild-createchroot now has the --alias option which is useful to add a shorthand alias to a chroot which will be used for chroot selection. This is for example useful for a Debian unstable chroot which will be automatically selected for package builds that have UNRELEASED in their debian/changelog, if the UNRELEASED alias is added to the Debian unstable chroot. 6) suild-createchroot now has the --extra-repository which works like the --extra-repository option for sbuild and permanently adds another line to the chroot's sources.list. 7) Private/public key pairs are now stored in armored ASCII format to maintain compatibility between different gpg versions on the host and within the chroot. Re-running `sbuild-update --keygen` will create the new key types. 8) Chroots can now have gpg >= 2.x installed as sbuild will properly clean up any remaining gpg-agent processes and "apt-key add" is not used anymore (it will leave a gpg-agent process around that cannot properly be killed). 9) Add the --source-only-changes option which will create a .changes file suitable for a source-only upload alongside the normal binary .changes file. 10) Do not install debfoster by default in sbuild-createchroot to keep the build chroot as minimal as possible. Users that use debfoster can use the --include option of sbuild-createchroot. 11) Drop requirement for gpg inside the chroot as external archive keys are now processed without gpg and signing of the internal repository is entirely optional with helpful warning and error messages in case signing failed. 12) Allow running autopkgtest after a successful build in the same manner that piuparts can be run after a successful build. * Major changes in 0.69.0: 1) Decouple chroot from host in terms of filesystem access to allow chroot backends like qemu, ssh or lxc. Deprecate external command percentage escape %SBUILD_CHROOT_DIR in favour of %SBUILD_CHROOT_EXEC. 2) Experimental adt backend. Enable with --chroot-mode=adt. Choose the virtualization server with --adt-virt-server and add options with --adt-virt-server-opt. This allows sbuild to use qemu, ssh and lxc chroots. 3) Allow to build packages without specifying a version. Earlier it was possible to let sbuild "apt-get download" a dsc by specifying "package_version" as a command line argument. The version part is not necessary anymore. No manual version lookup by the user is required anymore. 4) Disallow conflicting command line options, thus making command line switches position independent and remove the deprecated --arch-all-only option in the process. 5) The aspcud resolver criteria is not hardcoded anymore but can be chosen with --aspcud-criteria. The default criteria is -removed,-changed,-new. To minimize the number of packages from experimental, use: -count(solution,APT-Release:=/a=experimental/),-removed,-changed,-new 6) Apt doesn't download translations anymore. 7) Dummy archive is now signed with SHA-512 8) Cron script etc/sbuild-update-all allows one to periodically update all sbuild chroots. 9) Add another --*-failed-commands external command: --chroot-update-failed-commands 10) Documentation of configuration options in sbuild.conf(5) and in /etc/sbuild/sbuild.conf now reference related command line options from sbuild(1). 11) Documentation of command line options in sbuild(1) now references the respective configuration options from sbuild.conf(5). 12) Remove configuration options which can be set on the command line from the __INTERNAL group, thus exposing them in sbuild.conf as well and referencing them in sbuild(1). * Major changes in 0.68.0: 1) Dummy binary packages are now used for native building *and* cross building (apt-get build-dep was used for the latter so far). For an extensive rationale for this choice, read the commit message of commit e227c8f3. 2) Deprecate --arch-all-only option which was introduced two releases ago in favour of --arch-all --no-arch-any. The option will be completely removed in the next release to remove redundancy and for overall clarity. * Major changes in 0.67.0: 1) add --clean-source and --no-clean-source to allow building a package from an unpacked directory without calling debian/rules clean 2) allow changing the user running dpkg-buildpackage inside the chroot 3) sbuild-createchroot: use union-type=overlay for directory chroot 4) Quit processing when external commands fail 5) Add the --no-arch-any and --arch-any options which give a better control over building or not building architecture specific packages than --arch-all-only 6) Set [trusted=yes] for internal dummy repository to make key generation optional * Major changes in 0.66.0: 1) add option --arch-all-only to build arch:all packages 2) environment variable SBUILD_CONFIG allows to specify a custom configuration file 3) add option --build-path to set a deterministic build path 4) fix crossbuild dependency resolution 5) add option --extra-repository-key for extra apt keys 6) add option --build-dep-resolver=aspcud for aspcud based resolver 6) allow complex commands as sbuild hooks 7) add now external command %SBUILD_SHELL produces an interactive shell 8) add options --build-deps-failed-commands, --build-failed-commands and --anything-failed-commands * Major changes in 0.65.2: None. * Major changes in 0.65.1: None. * Major changes in 0.65.0: 1) Add support for build profiles. The specified profile is used in the build if -P or --profiles is passed or the DEB_BUILD_PROFILES environment variable is set. 2) An extra build-time repository and/or individual packages can be made available during the build. See the --extra-repository and --extra-package options. 3) Add more substitution variables for use in External commands: host architecture (%a), chroot directory (%r), build directory inside chroot (%b), and package build directory inside chroot (%p). See man sbuild for details and alternate long names. * Major changes in 0.64.3: 1) Add support for multiarch builds. Explicit build-deps on foreign-arch packages enable that arch for the build. 2) Command hook changes: chroot-setup-commands run as root. 2 new user -command hooks run immediately before/after inner build (--starting-build-commands/--finished-build-commands). * Major changes in 0.64.2: 1) Allow to Define custom debootstrap variant. 2) Allow to define custom suffixes in chroot names. * Major changes in 0.64.1: 1) Bugfixes to work with Perl 5.18; use File::Temp and File::Spec explicitly. 2) Drop autoflush workaround added for Perl 5.10. * Major changes in 0.64.0: 1) The number of times buildd will try to build before sleeping is now configurable with MAX_SBUILD_FAILS. 2) Lintian is now run inside the chroot rather than the host system. 3) binNMUs now set binary-only=yes in the changelog. 4) Cross-building improvements. * Major changes in 0.63.2: 1) New options --no-run-lintian and --no-run-piuparts. If lintian or piuparts are configured to run automatically following a successful build, there options disable this behaviour for the build. 2) New option --purge-build. This behaves identically to the old --purge option. --purge now purges everything (build directory, build dependencies and schroot session) and is equivalent to using --purge-build, --purge-deps and --purge-session together. 3) If building from unpacked sources in the current working directory, logs will be created in '..' rather than '.'. * Major changes in 0.63.1: None. * Major changes in 0.63.0: 1) Support for cross-compiling has been added. This includes the addition of $host and $build configuration variables, with corresponding --host and --build command-line options. This includes the addition of a new 'xapt' dependency resolver. 2) The deprecated 'internal' dependency resolver has been removed, along with the configuration variables $apt_policy, $check_depends_algorithm and $resolve_virtual, and the command-line option --check-depends-algorithm. The 'apt' resolver is the default replacement for 'internal'. 3) Support for watches has been removed. The configuration variables $check_watches, $ignore_watches_no_build_deps and $watches (and obsolete variables @ignore_watches_no_build_deps and %watches) have also been removed. 3) sbuild-stats and support for build time and space statistics recording has been removed. These statistics are recorded in both the build log and are available as build metadata internally. The statistics recorded in the database were not particularly informative; storing the statistics in a proper relational database is recommended. The configuration variables $avg_time_db and $avg_space_db have been removed. * Major changes in 0.62.6: 1) The use of alternatives in Build-Depends and Build-Depends-Indep may be turned on or off by the configuration variable $resolve_alternatives. It may also be enabled or disabled at build time using the --resolve-alternatives and --no-resolve-alternatives options, respectively. 2) The new Build-Depends-Arch and Build-Conflicts-Arch fields in debian/control are now supported. These may be manually set with --add-depends-arch and --add-conflicts-arch, respectively. 3) schroot namespaces are now fully supported, meaning that current 1.5.x schroot versions now work with sbuild. * Major changes in 0.62.5: None. * Major changes in 0.62.4: 1) The distribution in the build summary is coloured yellow if it does not match the distribution in the changelog. This is to indicate that there may be a potential problem, such as potentially uploading a package intended for experimental to unstable by building for unstable by accident. Additionally, lintian test results are also coloured to highlight success and failure. Log colouring may now be disabled using $log_colour. 2) sbuild only permits building one source package at once. Previously sbuild would allow building of more than one package in a single invocation. Making this change means that the exit status will always be the status of the build rather than the last build, and it also means the logging is simplified and may be started earlier. 3) Added new directory /var/lib/sbuild/build to hold build trees for sbuild when building. This will be bind mounted on /build inside the chroot following an update to the schroot sbuild and buildd fstab configuration for schroot. This saves significant amounts of space when using LVM snapshot chroots, and it also makes it easier to preserve build trees for failing builds when using snapshots. 4) Extra environment variables to be set when running dpkg-buildpackage may now be set using $build_environment; these will supplement the existing environment (e.g. PATH, LD_LIBRARY_PATH). These variables will not be subject to filtering with $environment_filter. * Major changes in 0.62.3: 1) The apt and internal resolvers will resolve some alternatives even when resolving alternative dependencies is disabled. For relations involving the same package, the alternative will be permitted when the package names are the same for each alternative. For example, foo (<< x) | foo (>= y) | bar will be reduced to foo (<< x) | foo (>= y) while foo | bar will be reduced to foo 2) The sbuild-schroot wrapper has been removed. This will be moved into the schroot package in its next release. 3) The schroot "buildd" configuration profile has been moved to the schroot package itself. This is due to being generated and being architecture-dependent, and sbuild being an arch-all package (the configuration would only be valid for the architecture sbuild was built on). 4) A new option, "-j", has been added to allow parallel builds. * Major changes in 0.62.2: 1) New options --no-apt-clean, --no-apt-update, --no-apt-upgrade and --no-apt-distupgrade have been added to allow these actions to be disabled even when set as the default in the configuration. 2) --keep-session is replaced by --purge-session=(always|successful|never). This will allow the session to be purged for all, successful and no builds, respectively. 3) $purge_session uses the same purge modes as $purge_build_deps and $purge_build_directory, rather than a boolean value. 4) Log filtering may be disabled using $log_filter = 0 in the configuration. The replacement text is now also surrounded with "«" and "»" so that strings such as CHROOT and BUILDDIR can't be confused with any actual appearance of the same string in the build log. 5) Log colouring may be disabled using $log_colour = 0 in the configuration. * Major changes in 0.62.1: 1) Fixed security issue in the sbuild-schroot wrapper program which did not enforce sbuild group membership in order to allow users to access the chroots as user sbuild. * Major changes in 0.62.0: 1) 'apt' is now the default build dependency resolver. Users should not see any significant changes compared with the old 'internal' resolver. Please note that you may need to generate a GPG key for the local archive created for dependency package installation, if one does not already exist; see sbuild-update (--keygen) for further details. 2) The 'internal' build dependency resolver is deprecated. It is not recommended for future use, and will be removed once it is no longer used by the buildd infrastructure. Please use the 'apt' resolver as a drop-in replacement. 3) The 'aptitude' build dependency resolver will, unlike 'apt' and 'internal', consider alternative dependencies by default, rather than only using the first alternative. This is intended to both preserve backward compatibility, and make the 'aptitude' resolver the preferred choice for more complex situations, such as building for experimental. 4) sbuild.conf and buildd.conf are now automatically generated from the help text and defaults in the source code. This means that the examples will always be syntactically correct, the help text will always be current, and the defaults will always match the defaults in the source code. 5) All of the allowed values in sbuild.conf and buildd.conf are now documented in the new sbuild.conf(5) and buildd.conf(5) manual pages, respectively. Like sbuild.conf, this is entirely generated from the source code, so will always match the defaults for the same sbuild version. 6) Non-scalar (or reference) types are deprecated in sbuild.conf. This is because it is not possible to tell the difference between an empty and an undefined value. Values using array or hash types should use the equivalent array reference or hash reference, which have been supported for some time. The old style array and hash values will remain supported for now, but will be removed in a future release. 7) sbuild now performs an apt dist-upgrade at the start of each build by default, rather than an upgrade. This is to reduce the amount of manual administration required to keep chroots up to date, and is not much more risky than upgrade in this context. 8) A new option, --keep-session, has been added. This prevents the automatic removal of session-managed snapshot chroots. Previously, snapshots would not be deleted if purging of the build directory or build dependencies was disabled, but this was not always desirable, hence it is now configurable separately. 9) Internally, building and other actions in the chroot are performed by the 'sbuild' system user, where previously the user invoking sbuild would be used instead. The aim of this change is to separate privileges to increase security and reduce the chance of accidental or deliberate tampering of the build environment. While the latter is not addressed by these changes, this will be taken care of during future architectural changes. 10) In order to handle errors more robustly, the build code now has initial support for exception handling. Normal operation will not be affected, but fatal errors may be logged in a different order than seen previously. Fatal errors will now be seen at the end of the build log, which should make it easier to spot problems. 11) sbuild now always cleans up fully when receiving a termination signal such as SIGINT or SIGTERM. Note that you may need to wait while the cleanup actions are performed, or the current task is completed prior to initiating cleanup. When running interactively, hitting Ctrl-C will sent SIGINT to the entire process group; doing this while apt-get or aptitude are running will potentially leave dpkg in an inconsistent state, so aborting at this point is not recommended. Sending a SIGTERM to the sbuild process will always work cleanly. 12) Long paths such as the chroot location and the build directory inside the chroot are now filtered in the build log and replaced with small, constant, abbreviations. This makes the build logs comparable between builds with tools such as diff(1). 13) Logging messages have been improved, and important messages are now coloured when running interactively (does not affect log files). Errors, warnings and informational messages are coloured red, yellow and green, respectively. Build status is coloured green for success and red for all failure conditions. 14) The sbuild package build directory created inside the chroot now has a reduced name length. It's now /build/packagename-XXXXXX where XXXXXX are random characters. This helps reduce the chance of hitting path length restrictions on some architectures, particularly when using sockets. 15) Build log mails are now compressed and mailed in MIME format by default, together with a copy of the .changes file. The old behaviour (plain mailing of uncompressed logs) may be restored by setting $mime_build_log_mails=0 in the configuration, and compression may also be disabled in the MIME mails by setting $compress_build_log_mails=0. Note that it is no longer possible to send compressed log mails unless MIME mailing is enabled. 16) The wanna-build database has been removed entirely. This part of the sbuild package was not used, and was not maintained for some time. Users wishing to use wanna-build should investigate the version in the wanna-build.git repository used by the Debian autobuilding infrastructure. This version is actively maintained and in continual use. * Major changes in 0.61.0: 1) The apt and aptitude build dependency resolvers now use only the first alternative in alternative dependencies. The other alternatives are stripped out entirely. This makes the apt and aptitude resolvers behave exactly like the internal resolver. Note that this is configurable with the $resolve_alternatives option, so alternative resolving may be re-enabled with this option if desired. This is useful for e.g. backports, but not for unstable where the strict consistency and reproducibility offered by only using the first alternative is required. * Major changes in 0.60.9: 1) The architecture specified with --arch (defaulting to the host system architecture) must match the chroot architecture. This was previously allowed to be superseded by the chroot architecture. This change is to avoid any abiguity regarding the host/build architecture for the package being built. * Major changes in 0.60.8: None. * Major changes in 0.60.7: None. * Major changes in 0.60.6: 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. * Major changes in 0.60.5: 1) A new resolver, 'apt', has been added. Like the aptitude resolver, this installs a dependency package to install build dependencies and remove build conflicts, but uses apt-get rather than aptitude. This resolver is currently experimental and may not yet perform correctly under all circumstances. Use at your own risk. 2) It is now possible to run piuparts on the build packages with the new --run-piuparts option. * Major changes in 0.60.4: 1) The default dependency resolver has been reverted back to 'internal' for the present. 'aptitude' will become the default again once it has had further testing. Feedback regarding the 'aptitude' resolver would be much appreciated. * 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. * Major changes in 0.60.2: 1) Virtual packages may now be used in Build-Depends using the internal resolver. This is very simple, and picks the first package providing the dependency in alphabetical order. The aptitude resolver is rather more sophisticated, and should be used if this is insufficiently clever. 2) Build-Conflicts are correctly removed and reinstalled, and sbuild can now remove packages which depend upon other packages, due to using "apt-get remove" in place of "dpkg --remove". 3) Package build-dependency installation in now preceeded by installation of "core" dependencies (currently build-essential) and "essential" dependencies (essential packages listed in build-essential), to ensure a working build environment. These should, of course, already be installed; this change is an additional consistency check to ensure the build environment is sane. 4) schroot sessions may be preserved on failure (failure to build or failure to install build dependencies), to allow easier troubleshooting. * Major changes in 0.60.1: 1) Improvements in building of dpkg-source v3 source formats. 2) sbuild includes a new option --no-source to disable building of source packages. This is the reciprocal of the existing --source option. * Major changes in 0.60.0: 1) sbuild no longer defaults the distribution to "unstable", and requires setting by hand with --distribution unless configured in .sbuildrc. This is to prevent accidental uploads to the wrong distribution. 2) sbuild now lists all packages (including versions) installed in the build chroot in the package build log. This may aid identifying problems with builds using buggy or outdated package versions. 3) With a recent versions of man-db (>= 2.5.6-4), man-db will be configured not to rebuild its database during package installation and removal in the build chroot. 4) sbuild has added new options to allow APT cleaning, upgrading and dist-upgrading of the build chroot, in addition to the existing updating option. 5) buildd has been synched with the buildd code in use on the Debian buildd infrastructure, and is now in use on most, if not all, running buildds. It has undergone extensive changes since the previous release, and is now suitable for production use. Note that the packaged version of wanna-build is not yet ready for use with buildd. 6) buildd no longer bind mounts /home into the chroot. 7) buildd now handles all wanna-build interaction. All sbuild wanna-build usage has been removed, including the --auto-give-back and --database options. * Major changes in 0.59.0: 1) The wanna-build options --no-propagation and --no-down-propagation have been removed. These options no longer have any effect, and were only present for backward-compatibility with older versions of buildd. buildd no longer uses these options, making it safe to remove them. 2) The wanna-build configuration options used by buildd in buildd.conf have been renamed for better compatibility with future planned sbuild changes. buildd.conf will require updating with the new option names: ┌───────────────────────┬─────────────────────────────────────┐ │ old │ new │ ├───────────────────────┼─────────────────────────────────────┤ │ $wanna_build_dbbase │ $wanna_build_db_name │ │ $wanna_build_user │ $wanna_build_db_user │ │ $ssh_user │ $wanna_build_ssh_user │ │ $ssh_host │ $wanna_build_ssh_host │ │ $ssh_socket │ $wanna_build_ssh_socket │ │ @ssh_options │ $wanna_build_ssh_options (arrayref) │ └───────────────────────┴─────────────────────────────────────┘ 3) sbuild will set the "attempted" and "given-back" states for certain failures. If wanna-build updates are configured with --database and --auto-give-back by buildd, it will set the "built" state on build completion, and "attempted" if the build failed. As before, "given-back" will be set for most other failure conditions. * Major changes in 0.58.6: None. * Major changes in 0.58.5: None. * Major changes in 0.58.4: None. * Major changes in 0.58.3: 1) The broken options --add-depends and --force-depends have been replaced by --add-depends, --add-conflicts, --add-depends-indep and --add-conflicts-indep. These options each take a single dependency, using the same dependency syntax one would use in debian/control. 2) The wanna-build configuration has been moved back to /etc/buildd/wanna-build.conf. However, the option names have been renamed and your configuration will require updating. 3) When reading configuration files, stricter checking is performed. If you see a "Global symbol "$x" requires explicit package name" error, then the option $x is not valid and should be removed from the configuration file indicated. 4) The maintainer name no longer defaults to DEBEMAIL as in most cases the maintainer in the .dsc should be used. * Major changes in 0.58.2: None. * Major changes in 0.58.1: None. * Major changes in 0.58.0: 1) The configuration option @no_auto_upgrade, which was no longer used, has been removed. To prevent packages being upgraded automatically, please use sbuild-hold. See sbuild-hold(1). 2) The configuration option $chroot_mode has been restored, allowing chroot access by both schroot (which remains the default) and sudo. 3) A new configuration option $chroot_split has been added. This allows both schroot and sudo chroot access to be modified to run apt/dpkg on the host system. Note that schroot needs sudo to run commands as root on the host system. 4) Deprecated commands from /usr/lib/sbuild have been removed. Please use the sbuild-* replacements found in /usr/bin. 5) The maintainer name defaults to DEBEMAIL if set in the environment, so no longer needs setting explicitly in .sbuildrc. 6) Unless configured as a buildd ($sbuild_mode), when using sudo chroot access, chroots are searched for in /etc/sbuild/chroots. This directory should contain symlinks to the chroots, with the distribution name being the name of the symlink. Buildd mode will continue to use the old method of current-$distribution symlinks in the current directory. 7) The log format used for build logs has been updated to use a more readable format, and is now encoded in UTF-8 rather than US-ASCII. Code which parses the log file may need to be updated to handle the new format. Further log format changes made in the future. 8) All commands now have a corresponding manual page. 9) The wanna-build configuration has moved from /etc/wanna-build/wanna-build.conf into /etc/sbuild/sbuild.conf as part of ongoing refactoring work. It is expected that this will be split into a separate file in the future once this work is completed. 10) wanna-build can now correctly dump and restore its databases using the --export and --import options. Note that wanna-build-catmldbm and related commands can not correctly dump the current database format, can not be used to restore the dump and will be removed in the future. 11) The wanna-build commands do-merge-packages and do-merge-quinn have been renamed to wanna-build-merge-packages and wanna-build-merge-quinn. 12) wanna-build changes from the official Debian wanna-build installation have been merged. 13) Initial support for a wanna-build PostgreSQL backend backend has been added, but is not currently functional. The database schema is also included, but not yet finalised. * Major changes in 0.57.5: 1) sbuild-createchroot now supports most of the options found in debootstrap. It no longer adds main and contrib to /etc/apt/sources.list in the chroot (the components are now specified with --components instead of being hard-coded). 2) All sbuild commands now support --help and --version options. 3) sbuild-abort and sbuild have been updated to work with the current dpkg-buildpackage and handle build termination gracefully. * Major changes in 0.57.4: None. * Major changes in 0.57.3: None. * Major changes in 0.57.2: 1) The new dpkg source format is now supported. 2) The chroot to build in may be specified independently of the distribution. 3) Purging of files in the chroot has been made more reliable, by putting all of the build files in a single temporary directory which is purged after the build completes. 4) $mailto no longer needs setting in .sbuildrc if not running as a buildd. 5) An option to always update the APT package list has been added ($apt_update in sbuild.conf). 6) wanna-build, the database used to track which packages need rebuilding, has been added as a separate package. * Major changes in 0.57.1: 1) While not used in the Debian packaging, the buildd and wanna-build sources have been merged from the separate buildd.git repository. They will be built as packages in a future release. 2) Helper scripts in the Debian package have been moved from /usr/lib/sbuild back to /usr/share/sbuild, where they were located prior to 0.57.0. 3) schroot "directory" type chroots are now purged correctly following a package build. * Major changes in 0.57.0: 1) All programs have been moved from /usr/share/sbuild to /usr/bin (with the exception of dobuildlog), with an sbuild- prefix. In some cases, the names have been changed. The older programs are still available under /usr/lib/sbuild. 2) All programs (with the exception of dobuildlog) now have manual pages. 3) sbuild now runs apt-get with APT::Install-Recommends set to false. 4) sbuild can be optionally configured to use an alternative algorithm to compute build dependencies, to allow installation of alternative build dependencies. 5) sbuild-createchroot (formerly buildd.chroot) now creates a fully working chroot, with no manual setup required other than adding the schroot configuration.