[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bits from the dpkg project: 1.16.x series


This is an update to catch up on dpkg development for the 1.16.x series,
with a broad summary of new features (mostly interface additions; see the
man pages for further information) or very significant changes since the
last announce [A], covering up to dpkg 1.16.2.

There will be a followup post covering the 1.17.x series and other
general updates, split to avoid an overwhelmingly long post and to ease
future references.

[A] <https://lists.debian.org/debian-devel-announce/2012/03/msg00005.html>

dpkg 1.16.x (Debian Wheezy)

General changes

Next upload

There are several changes queued for a prospective 1.16.16 upload in the
«next/1.16.x» branch in <https://anonscm.debian.org/cgit/dpkg/dpkg.git>.
But before requesting a stable update to the SRM, I would appreciate some
more testing, particularly on the OpenVZ workaround for start-stop-daemon,
even though these changes have been in the 1.17.x branch for a while
(currently in Jessie/Sid).


* Remove assumptions of filesystem layout in the code base:
  - Do not assume existence of system pathnames in the test suite.
  - Do not hardcode program absolute pathnames in Perl and C code.
* Several fixes to the internal function compatibility replacement library.
* Fix build failures on Mac OS X.
* Fix dpkg bootstrapping builds, by making dpkg-architecture only compute
  the values that it needs (the dpkg build system only uses the host
  architecture, for which dpkg itself is not required). This is relevant
  for new ports or non-dpkg-based systems.

Changes in dpkg.deb


* New CPUs: any-arm64.
* New GNU/Linux systems: x32.
* New Atari MiNT systems: mint-m68k.


* Always activate all path components for file triggers.


* New option -S to specify the compression strategy, with values “none”,
  and “extreme” for xz.
* Treat compression level independently for each backend. This has the
  effect of changing the current behaviour for level 0 on all compressors
  except gzip.
* Deprecate lzma as a -Z compressor.
* Switch from xz-utils to liblzma to handle .xz and .lzma compressed files.


* The minor deb-split(5) format version number is now ignored in the
  same way as done for deb(5).
* Now honors DPKG_ADMINDIR.


* New virtual fields binary:Package, binary:Summary, db:Status-Abbrev,
  source:Package and source:Version.
* Do not load the available file by default anymore, there is a new
  --load-avail option for the old behavior.
* New --control-list and --control-show commands, to replace the now
  discouraged --control-path.
* The --list command now prints an architecture column.


* More stringent command-line argument checks.
* Ignore request to rename a file owned by the diverting package on
  «--add --rename».


* New database sanity checks performed by --audit on missing md5sums
  and file list files.
* Generate md5sum digests on unpack if the control file is missing
  from the binary package.
* Mark not-installed non-arch-qualified selections for removal.
* Only allow setting selections via «dpkg --set-selections» for known
  packages (i.e. those present in either the status or available files).
* Relax --merge-avail Packages file parser to not fail on bogus versions.


* More stringent command-line argument checks.
* Print master and slave alternative link names in --query.
* Always print alternative link in --config.


* Many portability fixes on GNU/Hurd, FreeBSD, NetBSD, OpenBSD and Solaris.
  - Make --name and --exec more reliable there.
* Do not follow symlinks when creating pidfiles with --pidfile.
* New -C, --no-close option.

Changes in libdpkg-perl.deb

Perl Modules

* Add support for Build-Depends-Arch and Build-Conflicts-Arch.
* Add support for ‘binary-only’ key-value in changelog header, to allow
  to semantically mark entries as part of a binNMU.
* Add support for specific arch-qualified dependencies, such as
  «pkgname:amd64 (>= 1.0)».
* Add support for “:native” arch-qualified build dependencies.
* Several API changes, see the CHANGES man page section for the relevant

Changes in dpkg-dev.deb


* New man pages: deb-origin(5), deb-src-control(5).
* Move the alternative changelog formats documentation from the
  “Debian Policy Manual” to dpkg-parsechangelog(1).
* New frontend.txt describing interfaces to use by packaging frontends.


* New --no-unapply-patches option.
* The --after-build command now automatically unapplies patches that
  where applied during --before-build.
* Now can also use «debian/source/local-patch-header» instead of


* New -A option to ignore Build-Depends-Arch and Build-Conflicts-Arch.

dpkg-gencontrol & dpkg-distaddfile

* Acquire a lock on «debian/control» before updating «debian/files» to
  avoid simultaneous updates.


* New --query-features command.
* New --status command.
* The preprocessor flag “-D_FORTIFY_SOURCE=2” is now emitted in CPPFLAGS.
* Disable “bindnow” (full relro) if “relro” is not enabled.


* When building arch-indep packages (with -A) the «*.changes» filename
  uses ‘all’ as the architecture.
* Uses ‘build-arch’ (for -B) and ‘build-indep’ (for -A) targets when
  available, but fallbacks for now to use the ‘build’ target.
* Drop PGP interface support, only GnuPG is supported now.


* Remove obsolete --udeb option, replaced with the generic --type.


Attachment: signature.asc
Description: Digital signature

Reply to: