dpkg (1.19.2ubuntu1) disco; urgency=medium
* Merge from current Debian testing; remaining Ubuntu changes:
- Change native source version/format mismatch errors into warnings
until the dust settles on Debian bug 737634 about override options.
- Add DPKG_UNTRANSLATED_MESSAGES environment check so that higher-level
tools can get untranslated dpkg terminal log messages while at the
same time having translated debconf prompts.
- Special-case arm{el,hf} ELF objects in Shlibs/Objdump.pm for multilib.
- Map unqualified package names of multiarch-same packages to the native
arch instead of throwing an error, so that we don't break on upgrade
when there are unqualified names stored in the dpkg trigger database.
- Apply a workaround from mvo to consider ^rc packages as multiarch,
during the dpkg consistency checks. (see LP: 1015567 and 1057367).
- dpkg-gencontrol: Fix Package-Type override handling for ddeb support.
- Add Zstd compression and decompression support for binary packages.
* Fix implicit declaration of getenv in i18n.c and signedness errors in
zstd patches (nod to Gianfranco Costamagna for being a human -Werror).
dpkg (1.19.2) unstable; urgency=medium
[ Guillem Jover ]
* dpkg: Fix --force-not-root for chown() and chmod() based syscalls, and
give a more meaningful error message on chroot(). Closes: #614126
* dpkg-divert, dpkg-statoverride: Add new --instdir and --root options,
and make the commands honor the DPKG_ROOT environment variable.
* libdpkg: Call the pager with «$SHELL -c» to respect POSIX. Closes: #910009
* libdpkg: Do not spawn a pager if we are going to call «cat».
* libdpkg: Honor DPKG_PAGER when spawning a pager.
Suggested by Craig Sanders <email address hidden>.
* libdpkg: Set LESS to “-FRSXMQ” if not already set, when spawning a pager.
* libdpkg: Ignore SIGPIPE when setting up a pager, and then ignore EPIPE
errors when writing to stdout, otherwise if we quit the pager early, the
program will exit with an error code.
* libdpkg: Set stdout to be fully buffered when using a pager.
* dpkg, dpkg-query: Add new --no-pager option. For dpkg this is also a
configuration option. Closes: #909754
* Perl modules:
- Dpkg::OpenPGP: Ignore Version field in enarmored output.
Fixes CPAN#127217.
- Dpkg::OpenPGP: Do not read the gpg user configuration file.
- Dpkg::Source::Functions: Reimplement is_binary() w/o using diff(1).
- Dpkg::Source::Package::V2: Split the BinaryFiles module into its own
file, and give it a more generic name (Dpkg::Source::BinaryFiles).
- Dpkg::Source::Package::V2: Move binary file detection to BinaryFiles
module.
* Documentation:
- dpkg-buildpackage(1): Clarify --build=source explanation.
- dsc(5): Clarify what “flattened” means in Testsuite-Triggers.
Prompted by Mattia Rizzolo <email address hidden>.
- dsc(5): Add a reference to where the source formats are described.
Prompted by Manuel A. Fernandez Montecelo <email address hidden>.
- dpkg-source(1): Improve documentation on vendor-specific series files.
- deb-control(5): Document Build-Ids field.
Prompted by Stuart Prescott <email address hidden>.
- dpkg(1): Clarify which fields are affected by dependency options.
Prompted by James Clarke <email address hidden>.
- dpkg-query(1): Document the PAGER environment variable usage.
- Dpkg(1): Add POD documentation about the module hierarchy and API.
* Code internals:
- dpkg-split: Use nfstrnsave() instead of nfmalloc() + memcpy().
- libdpkg: Add new fsys-dir module.
- libdpkg: Pass the file contents to the pager instead of the filename.
- libdpkg: Add a pager kill switch, so that it can be forcefully disabled.
* Build system:
- Distribute a LICENSE file on CPAN.
- Do not make the Build.PL script executable.
- Generalize PACKAGE_CPAN_SIGN by setting PACKAGE_DIST_IS_RELEASE instead.
- Add a release_status key to the CPAN metadata.
- Fix typo in CPAN recommends key.
- Improve test and author CPAN dependencies.
* Packaging:
- Break libapt-pkg5.0 instead of apt. Closes: #909959
Analysis by Sven Joachim <email address hidden>.
* Test suite:
- Skip version checks involving «dpkg --compare-versions» if not available.
This is relevant on CPAN or on non-dpkg-based systems.
[ Updated programs translations ]
* Polish (Łukasz Dulny).
[ Updated man pages translations ]
* German (Helge Kreutzmann).
dpkg (1.19.1) unstable; urgency=medium
[ Guillem Jover ]
* Fix logic in dpkg-buildpackage to decide whether to run build targets,
which broke tons of packages that are violating Debian policy MUSTs.
Thanks to James Clarke <email address hidden>. Closes: #878899
* Do not try to recompute hashes for the .dsc file when signing binary-only
builds in dpkg-buildpackage. Reported by Ximin Luo <email address hidden>.
* Pass the correct source stanza to the dpkg-buildpackage code parsing the
Rules-Requires-Root field. This meant the field was being ignored.
* Run dpkg-source directly from the current working directory in
dpkg-buildpackage, instead of changing directory back and forth.
* Setup and check rootcommand in dpkg-buildpackage only if it is going to
be needed. Reported by Niels Thykier <email address hidden>.
* Add color support to dpkg-maintscript-helper (a shell script).
* Fix warning by including <sys/sysmacros.h> for makedev() in libdpkg.
* Fix directory traversal with dpkg-deb --raw-extract, by guaranteeing
that the DEBIAN pathname does not exist. Closes: #879982
Reported by Jakub Wilk <email address hidden>.
* Add new AS, STRIP, OBJCOPY, OBJDUMP, NM, AR and RANLIB buildtools
variables to buildtools.mk. Prompted by Helmut Grohne <email address hidden>.
* Restore rejecting negated architectures in Architecture field in
dpkg-gencontrol and dpkg-genchanges. Regression introduced in dpkg 1.18.5.
* Fix dpkg-gensymbols to print "error" instead of "warning" when these
are fatal. Closes: #881488
* Rename DPKG_GAIN_ROOT_CMD to DEB_GAIN_ROOT_CMD in the R³ support, as
the variable is expected to be set by any builder, not just dpkg. And
introduce ephemeral backwards compatibility even though there are no
known users.
* Do not set DEB_GAIN_ROOT_CMD in dpkg-buildpackage when the R³ value is
<implementations-keywords>, following the specification.
* Specify that DEB_GAIN_ROOT_CMD in R³ should preserve the environment.
Proposed by Josh Triplett <email address hidden>.
* Specify new DEB_RULES_REQUIRES_ROOT variable for R³ support.
* Add new --rules-requires-root option to dpkg-buildpackage.
* Declare R³ specification as "recommendation, stable" with version 1.0.
* Export architecture variables by default from architecture.mk, as
documented in dpkg-architecture(1). Closes: #888964
Thanks to Jack Bates <email address hidden>
* Increment the line number on dpkg --set-selections on unknown packages.
Reported by Heinz Repp <email address hidden>. Closes: #888983
* Switch a DEBIAN/conffile parsing assert() in dpkg due to empty lines
into an ohshit(), because this is really a run-time error.
* Fix assert() in dselect to expect the method lock file descriptor to be
initialized, instead of non-zero.
* Switch a fatal() call in start-stop-daemon into the new BUG() macro,
because it is really an internal error.
* Switch all assert() calls (except in update-alternatives) into internerr()
or BUG() calls, to get way better reporting with variable contents and
descriptions, and to make them always present independent of NDEBUG.
* Add a new --no-rename option to dpkg-divert. This is the current default
behavior, but it will make it possible to do a default switch in 1.20.x.
* Warn when using dpkg-divert --add or --remove w/o --rename or --no-rename.
* Warn when using dpkg-divert --rename on a file from an Essential package.
* Use a single “struct filenamenode” definition for the entire code base.
Closes: #746766
* Add support for frontend locking. This makes it possible for frontends
using this new protocol, to safely lock the dpkg database w/o risk of
race conditions with other dpkg instances or frontends supporting the
same protocol. Thanks to Julian Andres Klode <email address hidden>.
* Do not emit perl warnings in dpkg-source --help on source formats w/o
options.
* Make dpkg-buildpackage validate OpenPGP signing key IDs length. Error out
for short key IDs and warn for long key IDs.
* On the dpkg conffile prompt, print the set of environment variables setup
for the conffile shell, for easier discoverability.
* Fix dpkg-buildpackage option --rules-file parsing. It was trying to parse
it as --rules-target, which due to the ordering was a no-op.
* Only check for fallback build targets presence on binary builds in
dpkg-buildpackage.
* Only check required build dependencies for known targets specified with
dpkg-buildpackage --rules-target option.
Reported by Johannes Schauer <email address hidden>.
* Track package status dirtiness in dpkg to only log and report in status-fd
when it has changed, removing duplication in output. Closes: #365921
* Use Synopsis instead of Summary for the short Description, to unify the
nomenclature and to make it more descriptive. Add a new binary:Synopsis
virtual field to dpkg-query show format.
* Add new dpkg-buildpackage --no-post-clean option, to be able to explicitly
select the current default behavior.
* Dump database package records in alphabetical order. This will give
reproducible status and available database files, and make it possible
to output other deb822 formatted data in a deterministic way.
* Require both standard input and output to be connected to a terminal to
use a pager.
* Run dpkg-query --list output through a pager if we are on a terminal,
instead of truncating it, to avoid data loss. Closes: #898603
* Fix use after free in dpkg maintainer script handling. Regression
introduced in dpkg 1.19.0.
* Flush output for dpkg-query --status, --print-avail and --listfiles at
the end, instead of after each stanza.
* Add support for dumping all dpkg-query --status and --print-avail records
from the database when no arguments are specified. Closes: #616342
* Add new dpkg-gensymbols -l option to avoid having to abuse LD_LIBRARY_PATH
for cross-build paths.
* Check that DPKG_MAINTSCRIPT_PACKAGE is defined in dpkg-maintscript-helper.
Closes: #907772
* Switch dpkg-gencontrol and dpkg-genchanges to track automatically
generated artifacts by using the Auto-Built-Package field from the binary
package instead of hardcoding package name patterns (such as «-dbgsym$»).
* Add new --reverse option to dpkg-parsechangelog, to list the changelog
entries in reverse order.
* Architecture support:
- Add support for riscv64 CPU. Closes: #822914
Thanks to Manuel A. Fernandez Montecelo <email address hidden>
- Document the purpose and columns in the tupletable file.
* Portability:
- Add libcompat md5 module to the libcompat-test library, so that we
always make sure it builds, even when we use an external implementation.
- Convert libcompat md5 module to use C99 int types, instead of mapping
them from the BSD types at configure time.
- Use MD5_CTX instead of struct MD5Context, as the prevalent more portable
type on system's <md5.h> headers.
- Check for ldconfig command in dpkg only on platforms that do have it.
- Fix file descriptor leak in start-stop-daemon on AIX.
- libcompat: Add new strchrnul() implementation.
* Perl modules:
- Dpkg::Source::Package::V1: Check that $tarname is defined before use.
Thanks to Christoph Biedl <email address hidden>.
Closes: #879124
- Dpkg::Vendor::Debian: Use proper %use_feature key. This was causing perl
errors on paths not accepted for fixdebugpath.
Reported by Mattia Rizzolo <email address hidden>, on IRC. Closes: #881051
- Dpkg::Changelog: Print versions for incorrect changelog range warnings.
Thanks to Paul Wise <email address hidden>.
- Dpkg::Shlibs::SymbolFile: Check that $state->{seen} exists instead of
$state being just defined. Fixes regression in dpkg-gensymbols symbols
output. Thanks to Dmitry Shachnev <email address hidden>. Closes: #880166
- Dpkg::Arch: Add new positive options argument to arch validators.
- Dpkg::Vendor::Debian: Mark hurd-i386 as having gcc builtin PIE.
Requested by Samuel Thibault <email address hidden>.
- Dpkg::Source::Package::V2: Print one building line per existing tarball.
- Dpkg::Source::Package: Print building lines for upstream tarball
signatures. Closes: #888787
- Dpkg::Deps: Turn virtualpkg tracking from an arrayyref into a hashref.
- Dpkg::Vendor::Debian: Mark riscv64 as having gcc builtin PIE.
- Dpkg::Shlibs::Objdump: Fix ELF program detection, for PIE binaries and
executable libraries.
- Dpkg::Version: Fix bool overload behavior back to be an is_valid()
alias. Emit a specific perl warning until 1.20.x so that users can check
whether the semantic change has any impact on the code, which can then
be quiesced. Closes: #895004
- Dpkg::Changelog::Parse: When detecting the changelog format, read the
last 4KiB of the file instead of using «tail -n40», which should be
both faster and more portable, as the default tail(1) is not POSIX
compliant on all systems (c.f. Solaris).
- Dpkg::Build::Types: Add new set_build_type_from_targets() function.
- Dpkg::Shlibs::SymbolFile: Always assign a proper Dpkg::Version to the
deprecated variable, otherwise the scalar value 0 can get confused
on scalar context to denote it is *not* deprecated instead of being
version 0.
- Dpkg::Shlibs: Disable bool overload Dpkg::Version warnings.
- Dpkg::Vendor::Debian: Inline _parse_feature_area() into
_add_build_flags(), for a small speed up and line count reduction.
- Dpkg::BuildFlags: Move default flags setting into the Dpkg::Vendor
modules.
- Dpkg::Gettext: Fix fallback textdomain() to honor its expected interface.
- Dpkg::Deps: Split subpackages into their own separate modules.
- Dpkg::Source: Do not change patch permissions if not necessary.
Closes: #898010
- Dpkg::Substvars: Reword used/unused warnings to clarify their meaning.
Closes: #904258
- Dpkg::Shlibs: Warn when using LD_LIBRARY_PATH with a private library
directory which is a descendent of the current working directory.
- Dpkg::Source::Package::V3::Quilt: Print series file used when applying
patches.
- Dpkg::OpenPGP: Return the destination path on successful ASCII armor
conversion.
- Dpkg::Control::Fields: Do not use & sigil for function calls.
- Dpkg::Shlibs: Ignore nonexistent directories present in LD_LIBRARY_PATH.
- Dpkg::Deps::KnownFacts: Satisfy :native with arch:all packages too.
These are treated as native packages everywhere else in the multi-arch
design, this was the only exception, which has become a source of
packaging problems as of late. This was apparently an oversight in
the original implementation. Closes: #854438
- Dpkg::Vendor::Debian: Add fixfilepath support to reproducible feature.
- Dpkg::Dist::Files: Add support for file attributes.
* Documentation:
- Update gettext minimal version in README.
- Add a missing dot on the dpkg-buildflags(1) «lfs» feature paragraph.
Spotted by Helge Kreutzmann <email address hidden>.
- Document DPKG_COLORS environment variable for all programs using it.
- Document DPKG_NLS environment variable for all programs using it.
- Document the Testsuite and Testsuite-Triggers fields in
deb-src-control(5). Prompted by Mattia Rizzolo <email address hidden>.
- Update git URLs for move away from alioth.debian.org.
- Fix set_build_type_from_options() description in Dpkg::Build::Types.
- Clarify PIE build flag feature semantics. Closes: #900088
- Clarify dpkg-buildpackage pre and post-clean options and their default
state.
- Add --build option equivalents for dpkg-buildpackage short build type
options in --help output.
- Fold dpkg-buildpackage --[no-]check-builddeps in --help into both -D
and -d option descriptions.
- Mark profiles as a replaceable item in dpkg-buildpackage --help output.
- Update test suite requirements in README.
- Document textdomain() and ngettext() replacement functions in
Dpkg::Gettext POD.
- Clarify arch-qualified dependency simplification in Dpkg::Deps POD.
- Improve Dpkg::Deps modules and methods documentation.
- Fix typo in deb-changes(5). Closes: #902616
- Clarify awaiting state for interest and activate directives.
Closes: #904060
- Fix man page markup. Closes: #900033, #900035, #900040
Thanks to Bjarni Ingi Gislason <email address hidden>.
- Fix Doxygen comment for libdpkg dpkg_arch_find() function.
- Document the dangers of using start-stop-daemon(8) only with --pidfile
as matching option with the pid file owned by a non-privileged user.
* Code internals:
- Do not use stringy eval to define different sub implementations,
just assign an anonymous sub to the typeglob.
- Use memccpy() instead of strncpy() to quiesce a gcc-8 warning.
- Change pkgbin_name_needs_arch() to never arch-qualify packages that
have an empty or no architecture, which was already handled as part
of varbuf_add_archqual().
- libdpkg: Factor out cached arch-qualified package name generation into
new pkgbin_name_archqual() function.
- libdpkg: Add new pkg_name() and pkgbin_name() const variants.
- libdpkg, dselect: Use new pkg_name_const() and pkgbin_name_const().
- libdpkg: Rename struct pkginfo files member to archives.
- dpkg: Call ensure_package_clientdata() defensively.
- dpkg: For read-only state functions, check that clientdata is allocated
before using it.
- libdpkg: Move files list information from dpkg clientdata to pkginfo.
- dpkg: Move ensure_package_clientdata() into its own file.
- libdpkg: Move db-fsys code from src to lib/dpkg.
- libdpkg: Rename pkg-db module to pkg-hash.
- libdpkg: Simplify pkg_files_blank() by using a pointer to pointer to
track the previous entry.
- libdpkg: Factor out package files handling into its own module.
- libdpkg: Switch to a new tiny struct to track file on-disk identity.
This should reduce the run-time memory used.
- libdpkg: Reset nfiles in files_db_reset().
- libdpkg: Split push_cleanup() into push_cleanup_fallback().
- Switch from strchr() + strlen() to strchrnul().
- libdpkg: Change dpkg_error to track errno values.
- libdpkg: Add new varbuf_new() and varbuf_free() functions.
- libdpkg: Add new file_slurp() function.
- libdpkg: Switch db-fsys to use the new file_slurp() function.
- libdpkg: Add new pkg_infodb_reset_dir().
- libdpkg: Add new m_dup() function.
- libdpkg: Factor out package stanza printing into its own function.
- libdpkg: Split pager specific code into its own module.
- libdpkg: Add pager spawning and reaping support.
- Use new pager spawning support instead of open-coding it, or piping it
via a shell invocation, which required metacharacter escaping.
- dpkg-query: Split enqperpackage() into each different action.
* Build system:
- Set distribution tarball format to ustar, instead of default v7 format.
- Mark PO4A and POD2MAN as precious variables.
- Automatically replace -Wno- with -W when testing compiler flags,
instead of passing the positive form manually.
- Enable clang -Wdocumentation warning if available.
- Enable gcc-7 -Wregister warning if available.
- Add CPAN distribution machinery for the perl modules. Closes: #821177
- Add an autogen script to help people bootstrap the project.
- Distribute the man.stamp from VPATH.
- Preserve timestamps when distributing man pages.
- Add a GitLab CI configuration file.
- Disable C optimization levels when configuring for code coverage.
* Packaging:
- Install update-alternatives policykit-1 file.
- Add Breaks to libdpkg-perl against pkg-kde-tools (<< 0.15.28~), as
that package is using private modules with no API guarantees, that
obviously broke due to recent changes in 1.19.0. Closes: #878919
- Add Breaks on debhelper << 10.10.1~ to dpkg-dev, so that debhelper users
wanting to use R³ support do not need a versioned dependency on dpkg-dev.
- Add Breaks dgit << 3.13~ to libdpkg-perl, as older dgit versions assumed
that Dpkg::Compression::Process was available, via implicit import
from Dpkg::Source::Package.
Reported by Ian Jackson <email address hidden>.
- Bump Standards-Version to 4.1.1 (no changes needed).
- Add bzip2 and xz-utils to Build-Depends, required by the functional test
suite, but shadowed by dpkg-dev from the build system pulling those in.
- Add versioned libncurses-dev as the first Build-Depends alternative.
Thanks to Sven Joachim <email address hidden>.
- Do not pass VERBOSE to test suite, as we are not using any automake
test driver, so it does not get honored.
- Rename maintainer-build DEB_BUILD_OPTIONS to new standardized terse.
- Enable verbose test suite only in non-terse builds.
- Add a Suggests on sensible-utils to libdpkg-perl.
- Switch libdpkg-perl again to depend on perl:any, now that debootstrap
in stable (stretch) supports arch-qualified dependencies.
- Update libdpkg-perl public module list in package description.
- Add Breaks on apt (<< 1.7~b) for --status-fd duplicate removals.
* Test suite:
- Skip Dpkg::OpenPGP test if gpg is not present.
- Check POD in all perl scripts.
- Consider *.PL also to be perl files.
- Infer automatically the unit test data directory.
- Infer automatically the unit test temp directory.
- Add new po author test case (use i18nspector if available).
- Add new test cases to clarify arch-qualified dependency simplification.
- Add several TODO tests cases for dependency simplification.
- Add new cppcheck author test.
- Add support for new test_get_srcdir() test_get_builddir().
- Add new unit tests for namevalue, fsys-hash and pkg-hash libdpkg modules.
- Improve coverage of perl unit tests.
- Delete fixup lines from i18nspector output instead of emptying them.
- Add new codespell author test.
- Add new test that the public libdpkg headers can be compiled with C++.
[ Josh Triplett ]
* Perl: Replace all calls to Cwd::cwd with Cwd::getcwd; the former calls
/bin/pwd, while the latter uses the getcwd() syscall directly.
[ Updated programs translations ]
* Dutch (Frans Spiesschaert). Closes: #881401
* German (Sven Joachim).
* Italian (Milo Casagrande). Closes: #883085
* Polish (Łukasz Dulny).
* Simplified Chinese (Zhou Mo, Boyuan Yang). Closes: #900547, #890806
* Spanish (Javier Fernández-Sanguino).
* Traditional Chinese (Buo-ren Lin). Closes: #905887
* Turkish (Mert Dirik). Closes: #886252
[ Updated scripts translations ]
* German (Helge Kreutzmann).
[ Updated man pages translations ]
* Dutch (Frans Spiesschaert). Closes: #881403
* German (Helge Kreutzmann).
* Simplified Chinese (Zhou Mo).
-- Adam Conrad <email address hidden> Tue, 27 Nov 2018 11:28:33 -0700