Path to this page:
Subject: CVS commit: pkgsrc/misc/dpkg
From: Adam Ciarcinski
Date: 2020-04-11 13:53:43
Message id: 20200411115343.59F27FB27@cvs.NetBSD.org
Log Message:
dpkg: updated to 1.20.0
dpkg (1.20.0) experimental; urgency=medium
* libdpkg: Do not generate a backup file for the available database.
* perl: Switch Getopt::Long from bundling to bundling_values. This means
the few scripts using Getopt::Long will stop accepting options in the
form «-ab» for «-a -b», which is not future-proof, as it does not allow
these options to get new arguments without making them abiguous.
* dpkg-buildpackage: Remove transient backwards R³ compatibility code.
* buildtools.mk: Add support for nostrip in DEB_BUILD_OPTIONS when setting
the STRIP variable.
* dpkg-genbuildinfo: Do not include irrelevant packages in the Binary field.
* dpkg: Do not clear selections for unknown packages.
* dpkg-shlibdeps: Add support for new Build-Depends-Packages, to be able
to specify multiple packages.
Based on a patch by Frank Schaefer <kelledin@gmail.com>.
* perl: Remove support for versioned GnuPG 2 program and packages.
* libdpkg: Clarify lock contender error message. Print the PID of the lock
contender, and add a warning explaining that removing the lock file is
never the correct solution.
* dpkg-genchanges, dpkg-mergechangelogs: Remove support for ~vola
versioning, as volatile.debian.org was decommissioned some time ago.
* dpkg-genchanges, dpkg-mergechangelogs: Match ~deb also as a backport
marker in versions.
* libdpkg, dpkg: Use new versiondescribe_c() for non-localizable call sites,
such as when writing to a log, which should not be localized.
* dpkg-query: Try to use the package synopsis from the available file if
not installed.
* dpkg-gencontrol: Take into account hardlinks when computing the
Installed-Size substvar.
Patch co-authored with Sven Joachim <svenjoac@gmx.de>.
* dpkg: Fix and clarify behavior for packages marked to be on “hold”. These
need to be processed for configuration and triggers.
* dpkg: Use DPKG_ADMINDIR to set the admindir.
* dpkg-source: Remove backwards compatibility code for legacy build-profiles.
* perl: Give more context on field parsing errors.
* dpkg-buildpackage: Add option to sanitize environment.
* update-alternatives: Cope with a missing administrative directory.
* update-alternatives: Create the administrative directory on demand.
* dpkg-split: Cope with a missing parts/ database directory.
* dpkg-split: Create the parts/ database directory on demand.
* libdpkg: Consider msdbrw_needsuperuser equivalent to msdbrw_write, so
the same checks are performed on normal non --force-not-root operation.
* libdpkg: Add support for bootstrapping the installation of dpkg:
- Create the logfile with correct permissions, and remove the code
setting up the logfile from the dpkg postinst.
- Allow missing status and available databases, so that they get created
on write, and remove the code setting them up from the dpkg postinst.
- Do not change the ownership of the triggers database directory. Either
we are running as root:root which means the ownership should be correct
already, or we are not which means we cannot change it anyway.
- Create the dpkg database directory on demand.
- Create the updates/ database directory on demand.
- Create the info/ database directory on demand.
* dpkg-architecture: Fix handling of exec failing in --command.
Reported by Helmut Grohne <helmut@subdivi.de>.
* dpkg-buildpackage: Do not accept equal signs as part of the hook names.
Reported by Daniel Shahaf <danielsh@apache.org>.
* dselect: Mark a string for translation.
* dselect: Cleanup access methods:
- Remove harddisk methods, as they were non-functional due to fdisk
interface changes, and do not make sense anymore as we can expect users
to mount any such filesystem on their own, to then use a filesystem
method instead. Prompted by Helmut Grohne <helmut@subdivi.de>.
- Remove cdrom method superseded by the multi_cd method.
- Remove nfs methods, as there is nothing special about NFS, and mounting
these should just be left to the local admin, who can mount any other
remote filesystem too.
- Remove multi_mount method, as the multi_cd method can take care of
mounting the necessary images or devices.
- Replace changelog with correct copyright in file header.
* dpkg, dselect: Stop using first-person singular in output messages.
* libdpkg: Fix memory leak in parsedb context close.
* buildtools.mk: Add QMAKE variable.
* po: Fix translation of --compare-versions.
Thanks to Boyuan Yang <byang@debian.org>.
* Perl modules:
- Dpkg::Source::Package: Verify original tarball signatures at build time.
- Dpkg::BuildFlags: Add new unset() method.
Requested by Daniel Schepler <dschepler@gmail.com>.
- Dpkg::Source::Package::V2: Emit a special patch header on
single-debian-patch.
- Dpkg::Vendor::Debian: Only scan /usr/local/ directories that exist.
- Dpkg::Vendor::Debian: Do not set -Werror=implicit-function-declaration
for C++.
- Dpkg::Deps: Check for valid virtual package version relations. Do not
allow non-equal version relations in virtual provides.
- Dpkg: Remove internal lowercase variables $version, $progname,
$admindir, $dpkglibdir and $pkgdatadir.
- Dpkg::Changelog: Remove obsolete methods dpkg() and rfc822().
- Dpkg::Changelog::Entry::Debian: Remove obsolete methods check_header()
and check_trailer(). Hide variables $regex_header and $regex_trailer.
- Dpkg::Changelog::Parse: Remove warnings of obsolete options forceplugin
and libdir. Remove obsolete functions changelog_parse_debian() and
changelog_parse_plugin().
- Dpkg::Compression: Hide internal lowercase variables
$default_compression, $default_compression_level and
$compression_re_file_ext.
- Dpkg::Deps::KnownFacts: Remove obsolete check_package() method.
- Dpkg::Exit: Hide internal lowercase @handlers variable.
- Dpkg::Gettext: Remove obsolete _g() function.
- Dpkg::Source::Package: Hide internal lowercase variable
@tar_ignore_default_pattern. Remove iternal lowercase variable alias
$diff_ignore_default_regexp.
- Dpkg::Substvars: Remove obsolete no_warn() method.
- Dpkg::Index: Change default value for unique_tuple_key to 1.
- Dpkg::Version: Remove deprecation warning from semantic change in
bool overload.
- Dpkg::Checksums: Remove obsolete 'program' property warning.
- Dpkg::Conf: Remove obsolete methods and obsolete croak for method option.
- Dpkg::Vendor: Remove obsolete 'keyrings' hook.
- Dpkg::Exit: Unregister all signal handlers once we have executed them.
- Dpkg::Exit: Register exit handlers also for __DIE__.
- Dpkg::Source::Package::V3::Native: Do not say v1.0 for 3.0 formats.
- Dpkg::Dist::Files: On filename parse error say file instead of package.
- Dpkg::Substvars: Add new vendor:Name and vendor:Id substvars.
- Dpkg::Source::Package: Detect directory traversals under debian
directory. Reported by Felix Lechner <felix.lechner@lease-up.com>.
* Documentation:
- man: Fix uncommon wording constructs.
- man: Use a minus sign for a literal string.
- man: Clarify that the pager is called via «$SHELL -c».
- dpkg-shlibdeps: Document split_soname() function.
Prompted by Christopher Crim <christopher.crim@quoininc.com>.
- Dpkg::Changelog: Document methods provided by subclasses.
Reported by Felix Lechner <felix.lechner@lease-up.com>.
- man: Globally adjust left and disable hyphenation.
- man: Split dselect(1) --color from --colour option items.
- man: Describe the SONAME formats supported in deb-shlibs(5).
- man: Move template symbol documentation into new deb-src-symbols(5).
- Dpkg::Changelog::Parse: Remove $ sigil from option names in POD.
- Dpkg: Say class instead of object when appropriate.
- Dpkg::Changelog: Clarify that these classes inherit from some other
base class, which will contain the missing documentation.
Prompted by intrigeri <intrigeri@debian.org>.
- man: Clarify deb-changelog(5) format.
- man: Clarify debian/source/include-binaries format in dpkg-source(1).
Prompted by Felix Lechner <felix.lechner@lease-up.com>.
- man, doc: Clarify that the postinst "triggered" argument gets the
trigger-name(s) as a space-separated list in the second argument.
Prompted by Michael Biebl <biebl@debian.org>.
- dselect: Update the multicd README file.
- doc, man: Mark T and I package instances to avoid misreadings.
* Code internals:
- Dpkg::Source::Package: Refactor original tarball handling.
- perl: Use File::Copy instead of spawning mv/cp commands.
- Dpkg::OpenPGP: Refactor signature verification into a new function.
- Dpkg::OpenPGP: Make it possible to verify detached signatures.
- Dpkg::OpenPGP: Add support for importing an OpenPGP key into a keyring.
- Dpkg::BuildFlags: Remove unused hash keys.
- libdpkg: Use the variable instead of a type as sizeof() argument.
- libdpkg: Use the totalwritten variable for a consistency check.
- dselect: Reduce scope of variable, to avoid it being unused in a branch.
- dpkg-deb: Fold two adjacent if conditionals into a single one.
- dpkg: Initialize flagdeppossi in check_conflict().
- libdpkg: Add new C locale switch over support.
- libdpkg: Add new versiondescribe_c() to force a C locale.
- dselect: Make baselist::draw_column_*() col arguments const.
- libdpkg: Use p instead of name in dpkg_arch_name_is_illegal().
- dpkg: Remove redudant condition for sourcefile in updateavailable().
- dpkg, update-alternatives: Make variables static.
- libdpkg: Add missing symbols to the version map.
- libdpkg: Fix fiemap memory layout usage that confuses gcc 10 to emit a
warning.
- libdpkg: Only use varbuf_printf() in pkg_format_show() when necessary.
This should speed up «dpkg-query --show» formatting.
- libdpkg: Fix package format string to be a string literal.
This suppresses a gcc warning.
- dpkg: Fix short lived memory leak in --force-help handling.
- dpkg-split: Fix short lived file descriptor leak in --auto.
- start-stop-daemon: Explicitly ignore uninmportant function return values.
- start-stop-daemon: Fix memory leak on multiple --chuid arguments.
- start-stop-daemon: Close the notification socket in the child.
- libdpkg: Fix memory leaks in zlib and bz2 decompression functions.
- libdpkg: Add new dir_make_path() and dir_make_path_parent() functions.
- libdpkg: Add new atomic file flag to create the base path when missing.
- libdpkg: Fix modstatdb_rw enum comments.
- libdpkg, dpkg-query: Optimize db-fsys:Files virtual variable loading.
We load either the entire db-fsys for all packages, possibly optimized
per platform (such as by using fiemap), or the specific ones for the
requested packages. This also fixes a problematic cast removing the
constness of a variable.
- Dpkg::Dist::Files: Document the two filename pattern formats.
- update-alternatives: Remove redundant condition in argument parser.
- update-alternatives: Move error context setup before calling setjmp(),
so that cppcheck stops being confused.
- test: Reformat 200_Dpkg_Shlibs.cpp for coding style conformance.
- dpkg: Make it possible for the compiler to check printf() format
string arguments on dependency printer.
- dselect: Reorder branches in packagelist::deselect_one_of so that they
are not duplicated.
- dselect: Use nullptr instead of NULL.
- dselect: Use static_cast<> instead of old-style type qualifier cast.
- dselect: Do not use unnecessary old-style casts.
- dselect: Fix variable types to avoid needing old-style casts.
- libcompat: Disarm libselinux setexecfilecon() declaration for
libcompat-test.
- libdpkg: Define new VARBUF_OBJECT macro.
- libdpkg: Add new ATOMIC_FILE_NORMAL enum value to avoid a cast in C++.
- libdpkg: Use a new DPKG_NULL macro that works in C and C++.
- libdpkg: Use a new DPKG_STATIC_CAST macro that works in C and C++.
- libdpkg: Move printing of errno into dpkg_error_set().
- libdpkg: Use a varbuf to store the problem messages per parsedb context.
- libdpkg: Fix Doxygen comments.
* Build system:
- Bump minimal Perl version to 5.24.1.
- Add a serial versioning to the m4 files.
- Install m4 files into system aclocal directory.
- Bump minimal gettext version to 0.19.8, to get the m4 files that can
cross-build for musl-based systems.
- Enable more compiler warnings.
- Update Doxygen configuration from version 1.8.16.
* Packaging:
- Remove obsolete Breaks satisfied since oldstable.
- Replace custom rule for 'configure' with call to dh_autoreconf.
Thanks to Dan Streetman <ddstreet@canonical.com>.
- dselect: Remove methods state files on purge.
Spotted by Sven Joachim <svenjoac@gmx.de>.
- Switch to debhelper compatibility level 12.
- Switch from debian/compat to debhelper-commpat in Build-Depends.
- Bump Standards-Version to 4.5.0 (no changes required).
* Test suite:
- Remove perlcritic Documentation::RequirePodLinksIncludeText suppression.
- Clarify cppcheck va_list_usedBeforeStarted suppression.
- Skip build directories from codespell check.
- Update stopwords for codespell 1.16.0.
- Suppress new bogus cppcheck 1.90 false positives.
- libdpkg: Remove redundant assignment in t-ehandle unit test.
- Skip backup files from codespell check.
- Ignore python-3.8 runtime warnings in codespell.
[ Updated programs translations ]
* German (Sven Joachim).
* Portuguese (Miguel Figueiredo).
* Simplified Chinese (Mo Zhou).
[ Updated dselect translations ]
* German (Sven Joachim).
[ Updated scripts translations ]
* German (Helge Kreutzmann).
[ Updated man pages translations ]
* German (Helge Kreutzmann)
Files: