Typo fix for release
[buildd-tools/sbuild.git] / NEWS
1 NEWS                                                            -*- outline -*-
2 ----
3
4 Welcome to sbuild 0.61.1.  Please read these release notes carefully.
5
6 Full installation instructions are provided in the INSTALL file.  The
7 README file also contains more specific notes regarding building and
8 configuration.
9
10 * Major changes in 0.61.1:
11
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.
18
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.
23
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.
30
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.
36
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.
41
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.
49
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.
54
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.
60
61 * Major changes in 0.61.0:
62
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.
72
73 * Major changes in 0.60.9:
74
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.
80
81 * Major changes in 0.60.8:
82
83   None.
84
85 * Major changes in 0.60.7:
86
87   None.
88
89 * Major changes in 0.60.6:
90
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.
96
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.
103
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.
110
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.
116
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.
120
121 * Major changes in 0.60.5:
122
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.
129
130   2) It is now possible to run piuparts on the build packages with the
131      new --run-piuparts option.
132
133 * Major changes in 0.60.4:
134
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.
139
140 * Major changes in 0.60.3:
141
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.
149
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.
156
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).
165
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.
169
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.
175
176   6) Lintian may now be run after a package build with the
177      --run-lintian option.
178
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.
183
184 * Major changes in 0.60.2:
185
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.
191
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".
195
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.
203
204   4) schroot sessions may be preserved on failure (failure to build or
205      failure to install build dependencies), to allow easier
206      troubleshooting.
207
208 * Major changes in 0.60.1:
209
210   1) Improvements in building of dpkg-source v3 source formats.
211
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.
215
216 * Major changes in 0.60.0:
217
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.
222
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.
227
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.
231
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.
235
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.
242
243   6) buildd no longer bind mounts /home into the chroot.
244
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.
248
249 * Major changes in 0.59.0:
250
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.
256
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:
261
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      └───────────────────────┴─────────────────────────────────────┘
272
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.
279
280 * Major changes in 0.58.6:
281
282   None.
283
284 * Major changes in 0.58.5:
285
286   None.
287
288 * Major changes in 0.58.4:
289
290   None.
291
292 * Major changes in 0.58.3:
293
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.
299
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.
303
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.
308
309   4) The maintainer name no longer defaults to DEBEMAIL as in most
310      cases the maintainer in the .dsc should be used.
311
312 * Major changes in 0.58.2:
313
314   None.
315
316 * Major changes in 0.58.1:
317
318   None.
319
320 * Major changes in 0.58.0:
321
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).
325
326   2) The configuration option $chroot_mode has been restored, allowing
327      chroot access by both schroot (which remains the default) and
328      sudo.
329
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.
334
335   4) Deprecated commands from /usr/lib/sbuild have been removed.
336      Please use the sbuild-* replacements found in /usr/bin.
337
338   5) The maintainer name defaults to DEBEMAIL if set in the
339      environment, so no longer needs setting explicitly in .sbuildrc.
340
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.
347
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.
353
354   8) All commands now have a corresponding manual page.
355
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.
361
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.
367
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.
371
372   12) wanna-build changes from the official Debian wanna-build
373       installation have been merged.
374
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.
378
379 * Major changes in 0.57.5:
380
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).
385
386   2) All sbuild commands now support --help and --version options.
387
388   3) sbuild-abort and sbuild have been updated to work with the
389      current dpkg-buildpackage and handle build termination
390      gracefully.
391
392 * Major changes in 0.57.4:
393
394   None.
395
396 * Major changes in 0.57.3:
397
398   None.
399
400 * Major changes in 0.57.2:
401
402   1) The new dpkg source format is now supported.
403
404   2) The chroot to build in may be specified independently of the
405      distribution.
406
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.
410
411   4) $mailto no longer needs setting in .sbuildrc if not running as a
412      buildd.
413
414   5) An option to always update the APT package list has been added
415      ($apt_update in sbuild.conf).
416
417   6) wanna-build, the database used to track which packages need
418      rebuilding, has been added as a separate package.
419
420 * Major changes in 0.57.1:
421
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.
425
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.
429
430   3) schroot "directory" type chroots are now purged correctly
431      following a package build.
432
433 * Major changes in 0.57.0:
434
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.
439
440   2) All programs (with the exception of dobuildlog) now have manual
441      pages.
442
443   3) sbuild now runs apt-get with APT::Install-Recommends set to
444      false.
445
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.
449
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.