1 NEWS -*- outline -*-
2 ----
4 Welcome to sbuild 0.61.1. Please read these release notes carefully.
6 Full installation instructions are provided in the INSTALL file. The
7 README file also contains more specific notes regarding building and
8 configuration.
10 * Major changes in 0.61.1:
12 1) 'apt' is now the default build dependency resolver. Users should
13 not see any significant changes compared with the old 'internal'
14 resolver. Please note that you may need to generate a GPG key
15 for the local archive created for dependency package
16 installation, if one does not already exist; see sbuild-update
17 (--keygen) for further details.
19 2) The 'internal' build dependency resolver is deprecated. It is
20 not recommended for future use, and will be removed once it is no
21 longer used by the buildd infrastructure. Please use the 'apt'
22 resolver as a drop-in replacement.
24 3) The 'aptitude' build dependency resolver will, unlike 'apt' and
25 'internal', consider alternative dependencies by default, rather
26 than only using the first alternative. This is intended to both
27 preserve backward compatibility, and make the 'aptitude' resolver
28 the preferred choice for more complex situations, such as
29 building for experimental.
31 4) sbuild.conf is now automatically generated from the help text and
32 defaults in the source code. This means that the examples will
33 always be syntactically correct, the help text will always be
34 current, and the defaults will always match the defaults in the
35 source code.
37 5) All of the allowed values in sbuild.conf are now documented in a
38 new sbuild.conf(5) manual page. Like sbuild.conf, this is
39 entirely generated from the source code, so will always match the
40 defaults for the same sbuild version.
42 6) Non-scalar (or reference) types are deprecated in sbuild.conf.
43 This is because it is not possible to tell the difference between
44 an empty and an undefined value. Values using array or hash
45 types should use the equivalent array reference or hash
46 reference, which have been supported for some time. The old
47 style array and hash values will remain supported for now, but
48 will be removed in a future release.
50 7) sbuild now performs an apt dist-upgrade at the start of each
51 build by default, rather than an upgrade. This is to reduce the
52 amount of manual administration required to keep chroots up to
53 date, and is not much more risky than upgrade in this context.
55 8) A new option, --keep-session, has been added. This prevents the
56 automatic removal of session-managed snapshot chroots.
57 Previously, snapshots would not be deleted if purging of the
58 build directory or build dependencies was disabled, but this was
59 not always desirable, hence it is now configurable separately.
61 * Major changes in 0.61.0:
63 1) The apt and aptitude build dependency resolvers now use only the
64 first alternative in alternative dependencies. The other
65 alternatives are stripped out entirely. This makes the apt and
66 aptitude resolvers behave exactly like the internal resolver.
67 Note that this is configurable with the $resolve_alternatives
68 option, so alternative resolving may be re-enabled with this
69 option if desired. This is useful for e.g. backports, but not
70 for unstable where the strict consistency and reproducibility
71 offered by only using the first alternative is required.
73 * Major changes in 0.60.9:
75 1) The architecture specified with --arch (defaulting to the host
76 system architecture) must match the chroot architecture. This
77 was previously allowed to be superceded by the chroot
78 architecture. This change is to avoid any abiguity regarding the
79 host/build architecture for the package being built.
81 * Major changes in 0.60.8:
83 None.
85 * Major changes in 0.60.7:
87 None.
89 * Major changes in 0.60.6:
91 1) sbuild now sanitises the environment when running external
92 commands such as dpkg-buildpackage. The allowed environment
93 variables may be specified with $environment_filter in the
94 configuration. Currently, various DEB* and *FLAGS* environment
95 variables are allowed, similar to debuild's behaviour.
97 2) sbuild now has a testsuite to do basic regression testing. By
98 default, only Perl syntax is checked. If configured with
99 --enable-chroot-checks, it will run the various sbuild-* helpers
100 and sbuild itself to build a small variety of different
101 packages. These are tested in an "unstable" chroot, which must
102 be present as a prerequisite for running the tests.
104 3) The apt and aptitude build dependency resolvers now use a
105 temporary local apt archive for installation of the dependency
106 packages. apt-get would previously try to remove the dependency
107 package under certain conditions (apt-get -f install would force
108 removal), whereas using a real archive to install from prevents
109 this.
111 4) sbuild-update has a new option, --keygen. This generated a GPG
112 key for signing local apt archives. The key will be generated
113 automatically on first use, but if entropy on the build system is
114 scarce, sbuild-update can generate it by hand at a more
115 convenient time, or on another system.
117 5) sbuild no longer generates the files REDO and SBUILD-REDO-DUMPED
118 upon receiving a termination signal. These were no longer used
119 in buildd mode, and were only useful in a buildd context.
121 * Major changes in 0.60.5:
123 1) A new resolver, 'apt', has been added. Like the aptitude
124 resolver, this installs a dependency package to install build
125 dependencies and remove build conflicts, but uses apt-get rather
126 than aptitude. This resolver is currently experimental and may
127 not yet perform correctly under all circumstances. Use at your
128 own risk.
130 2) It is now possible to run piuparts on the build packages with the
131 new --run-piuparts option.
133 * Major changes in 0.60.4:
135 1) The default dependency resolver has been reverted back to
136 'internal' for the present. 'aptitude' will become the default
137 again once it has had further testing. Feedback regarding the
138 'aptitude' resolver would be much appreciated.
140 * Major changes in 0.60.3:
142 1) The aptitude resolver is now the default resolver. Users wishing
143 to continue to use the old internal resolver should set
144 $build_dep_resolver='internal' in their configuration. The
145 aptitude resolver is far superior to the internal resolver,
146 because it can correctly resolve complex alternative and virtual
147 packages in build dependencies where the internal resolver would
148 fail.
150 2) The aptitude resolver is now entirely separate from the internal
151 resolver, and greatly simplified. All Build-Depends and
152 -Conflicts are now passed directly to aptitude (with
153 architecture-specific dependencies filtered out). As before, a
154 dummy dependency package is used to install and remove build
155 dependencies and build-conflicts.
157 3) The sbuild-clean program has been moved into sbuild-update, as
158 for the other sbuild- helper programs. The sbuild-* helper
159 programs now take the sbuild chroot lock used by sbuild to
160 prevent concurrent builds in the same chroot, making it safe to
161 run the maintenance commands while builds are running (they will
162 wait until the build has finished before making any changes).
163 The sbuild-* helper programs now operate on source chroots, where
164 available (for lvm-snapshot and btrfs-snapshot type chroots).
166 4) The sbuild-createchroot program can now create tarballs from the
167 created chroot, with gzip, bzip2, lzma and xz compression. Use
168 the new --make-sbuild-tarball option for this purpose.
170 5) sbuild may now be used on an unpacked source directory, in a
171 similar manner to debuild. The directory will be packaged using
172 'dpkg-source -b' prior to building. If a source package or
173 directory is not specified, sbuild will use the current working
174 directory like debuild.
176 6) Lintian may now be run after a package build with the
177 --run-lintian option.
179 7) External commands may now be run before and after a build and
180 during chroot setup and cleanup. These may be used to do
181 additional setup and checking during a build, for example to run
182 piuparts.
184 * Major changes in 0.60.2:
186 1) Virtual packages may now be used in Build-Depends using the
187 internal resolver. This is very simple, and picks the first
188 package providing the dependency in alphabetical order. The
189 aptitude resolver is rather more sophisticated, and should be
190 used if this is insufficiently clever.
192 2) Build-Conflicts are correctly removed and reinstalled, and sbuild
193 can now remove packages which depend upon other packages, due to
194 using "apt-get remove" in place of "dpkg --remove".
196 3) Package build-dependency installation in now preceeded by
197 installation of "core" dependencies (currently build-essential)
198 and "essential" dependencies (essential packages listed in
199 build-essential), to ensure a working build environment. These
200 should, of course, already be installed; this change is an
201 additional consistency check to ensure the build environment is
202 sane.
204 4) schroot sessions may be preserved on failure (failure to build or
205 failure to install build dependencies), to allow easier
206 troubleshooting.
208 * Major changes in 0.60.1:
210 1) Improvements in building of dpkg-source v3 source formats.
212 2) sbuild includes a new option --no-source to disable building
213 of source packages. This is the reciprocal of the existing
214 --source option.
216 * Major changes in 0.60.0:
218 1) sbuild no longer defaults the distribution to "unstable", and
219 requires setting by hand with --distribution unless configured in
220 .sbuildrc. This is to prevent accidental uploads to the wrong
221 distribution.
223 2) sbuild now lists all packages (including versions) installed in
224 the build chroot in the package build log. This may aid
225 identifying problems with builds using buggy or outdated package
226 versions.
228 3) With a recent versions of man-db (>= 2.5.6-4), man-db will be
229 configured not to rebuild its database during package
230 installation and removal in the build chroot.
232 4) sbuild has added new options to allow APT cleaning, upgrading and
233 dist-upgrading of the build chroot, in addition to the existing
234 updating option.
236 5) buildd has been synched with the buildd code in use on the Debian
237 buildd infrastructure, and is now in use on most, if not all,
238 running buildds. It has undergone extensive changes since the
239 previous release, and is now suitable for production use. Note
240 that the packaged version of wanna-build is not yet ready for use
241 with buildd.
243 6) buildd no longer bind mounts /home into the chroot.
245 7) buildd now handles all wanna-build interaction. All sbuild
246 wanna-build usage has been removed, including the
247 --auto-give-back and --database options.
249 * Major changes in 0.59.0:
251 1) The wanna-build options --no-propagation and
252 --no-down-propagation have been removed. These options no longer
253 have any effect, and were only present for backward-compatibility
254 with older versions of buildd. buildd no longer uses these
255 options, making it safe to remove them.
257 2) The wanna-build configuration options used by buildd in
258 buildd.conf have been renamed for better compatibility with future
259 planned sbuild changes. buildd.conf will require updating with the
260 new option names:
262 ┌───────────────────────┬─────────────────────────────────────┐
263 │ old │ new │
264 ├───────────────────────┼─────────────────────────────────────┤
265 │ $wanna_build_dbbase │ $wanna_build_db_name │
266 │ $wanna_build_user │ $wanna_build_db_user │
267 │ $ssh_user │ $wanna_build_ssh_user │
268 │ $ssh_host │ $wanna_build_ssh_host │
269 │ $ssh_socket │ $wanna_build_ssh_socket │
270 │ @ssh_options │ $wanna_build_ssh_options (arrayref) │
271 └───────────────────────┴─────────────────────────────────────┘
273 3) sbuild will set the "attempted" and "given-back" states for
274 certain failures. If wanna-build updates are configured with
275 --database and --auto-give-back by buildd, it will set the
276 "built" state on build completion, and "attempted" if the build
277 failed. As before, "given-back" will be set for most other
278 failure conditions.
280 * Major changes in 0.58.6:
282 None.
284 * Major changes in 0.58.5:
286 None.
288 * Major changes in 0.58.4:
290 None.
292 * Major changes in 0.58.3:
294 1) The broken options --add-depends and --force-depends have been
295 replaced by --add-depends, --add-conflicts, --add-depends-indep
296 and --add-conflicts-indep. These options each take a single
297 dependency, using the same dependency syntax one would use in
298 debian/control.
300 2) The wanna-build configuration has been moved back to
301 /etc/buildd/wanna-build.conf. However, the option names have
302 been renamed and your configuration will require updating.
304 3) When reading configuration files, stricter checking is performed.
305 If you see a "Global symbol "$x" requires explicit package
306 name" error, then the option $x is not valid and should be
307 removed from the configuration file indicated.
309 4) The maintainer name no longer defaults to DEBEMAIL as in most
310 cases the maintainer in the .dsc should be used.
312 * Major changes in 0.58.2:
314 None.
316 * Major changes in 0.58.1:
318 None.
320 * Major changes in 0.58.0:
322 1) The configuration option @no_auto_upgrade, which was no longer
323 used, has been removed. To prevent packages being upgraded
324 automatically, please use sbuild-hold. See sbuild-hold(1).
326 2) The configuration option $chroot_mode has been restored, allowing
327 chroot access by both schroot (which remains the default) and
328 sudo.
330 3) A new configuration option $chroot_split has been added. This
331 allows both schroot and sudo chroot access to be modified to run
332 apt/dpkg on the host system. Note that schroot needs sudo to run
333 commands as root on the host system.
335 4) Deprecated commands from /usr/lib/sbuild have been removed.
336 Please use the sbuild-* replacements found in /usr/bin.
338 5) The maintainer name defaults to DEBEMAIL if set in the
339 environment, so no longer needs setting explicitly in .sbuildrc.
341 6) Unless configured as a buildd ($sbuild_mode), when using sudo
342 chroot access, chroots are searched for in /etc/sbuild/chroots.
343 This directory should contain symlinks to the chroots, with the
344 distribution name being the name of the symlink. Buildd mode
345 will continue to use the old method of current-$distribution
346 symlinks in the current directory.
348 7) The log format used for build logs has been updated to use a more
349 readable format, and is now encoded in UTF-8 rather than
350 US-ASCII. Code which parses the log file may need to be updated
351 to handle the new format. Further log format changes made in the
352 future.
354 8) All commands now have a corresponding manual page.
356 9) The wanna-build configuration has moved from
357 /etc/wanna-build/wanna-build.conf into /etc/sbuild/sbuild.conf as
358 part of ongoing refactoring work. It is expected that this will
359 be split into a separate file in the future once this work is
360 completed.
362 10) wanna-build can now correctly dump and restore its databases
363 using the --export and --import options. Note that
364 wanna-build-catmldbm and related commands can not correctly dump
365 the current database format, can not be used to restore the dump
366 and will be removed in the future.
368 11) The wanna-build commands do-merge-packages and do-merge-quinn
369 have been renamed to wanna-build-merge-packages and
370 wanna-build-merge-quinn.
372 12) wanna-build changes from the official Debian wanna-build
373 installation have been merged.
375 13) Initial support for a wanna-build PostgreSQL backend backend has
376 been added, but is not currently functional. The database
377 schema is also included, but not yet finalised.
379 * Major changes in 0.57.5:
381 1) sbuild-createchroot now supports most of the options found in
382 debootstrap. It no longer adds main and contrib to
383 /etc/apt/sources.list in the chroot (the components are now
384 specified with --components instead of being hard-coded).
386 2) All sbuild commands now support --help and --version options.
388 3) sbuild-abort and sbuild have been updated to work with the
389 current dpkg-buildpackage and handle build termination
390 gracefully.
392 * Major changes in 0.57.4:
394 None.
396 * Major changes in 0.57.3:
398 None.
400 * Major changes in 0.57.2:
402 1) The new dpkg source format is now supported.
404 2) The chroot to build in may be specified independently of the
405 distribution.
407 3) Purging of files in the chroot has been made more reliable, by
408 putting all of the build files in a single temporary directory
409 which is purged after the build completes.
411 4) $mailto no longer needs setting in .sbuildrc if not running as a
412 buildd.
414 5) An option to always update the APT package list has been added
415 ($apt_update in sbuild.conf).
417 6) wanna-build, the database used to track which packages need
418 rebuilding, has been added as a separate package.
420 * Major changes in 0.57.1:
422 1) While not used in the Debian packaging, the buildd and
423 wanna-build sources have been merged from the separate buildd.git
424 repository. They will be built as packages in a future release.
426 2) Helper scripts in the Debian package have been moved from
427 /usr/lib/sbuild back to /usr/share/sbuild, where they were
428 located prior to 0.57.0.
430 3) schroot "directory" type chroots are now purged correctly
431 following a package build.
433 * Major changes in 0.57.0:
435 1) All programs have been moved from /usr/share/sbuild to /usr/bin
436 (with the exception of dobuildlog), with an sbuild- prefix. In
437 some cases, the names have been changed. The older programs are
438 still available under /usr/lib/sbuild.
440 2) All programs (with the exception of dobuildlog) now have manual
441 pages.
443 3) sbuild now runs apt-get with APT::Install-Recommends set to
444 false.
446 4) sbuild can be optionally configured to use an alternative
447 algorithm to compute build dependencies, to allow installation of
448 alternative build dependencies.
450 5) sbuild-createchroot (formerly buildd.chroot) now creates a fully
451 working chroot, with no manual setup required other than adding
452 the schroot configuration.
