From a34a7702dbcc28bdc8a4f4769a5f67cb96f4421a57f922eeb4af1da2f12802fb Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Mon, 7 Jun 2021 13:39:12 +0000 Subject: [PATCH 1/4] Accepting request 890017 from home:glaubitz:branches:system:packagemanager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Refresh patches for new version * update-alternatives-suse.patch - Set minimum version for po4a to 0.59 in BuildRequires - Update file list in %files section - Version update to 1.20.9 (boo#1181867) [ Guillem Jover ] * Test suite: - Pass --ignore-builtin-builddeps to dpkg-buildpackage. - from version 1.20.8 [ Guillem Jover ] * start-stop-daemon: Open the --output file in append mode. * dpkg: Fix --auto-deconfigure for essential and protected during installation. Reported by Julian Andres Klode . See #983014. * dpkg-realpath: Fix resolution for absolute symlinks on «/». Closes: #983855 * dpkg-realpath: Fix symlink loop tracker. * Perl modules: - Test::Dpkg: Fix test data path fetching on CPAN. - Dpkg::Exit: Preserve exit code in END block. * Build system: - Group Test::Dpkg changelog entries into “Perl modules” section. * Packaging: - Run autopkgtest test suites in verbose mode. * Test suite: - Set PERL in the perl test suite. - Use gunzip instead of zcat and assume it might not be present. - Mock dpkg and gcc for architecture detection code. - Initialize DEB_BUILD_ARCH and DEB_HOST_ARCH to avoid computing them. - Update suppressions for cppcheck 2.4. OBS-URL: https://build.opensuse.org/request/show/890017 OBS-URL: https://build.opensuse.org/package/show/system:packagemanager/dpkg?expand=0&rev=81 --- dpkg.changes | 1450 ++++++++++++++++++++++++++++++++ dpkg.spec | 9 +- dpkg_1.19.0.5.tar.xz | 3 - dpkg_1.20.9.tar.xz | 3 + update-alternatives-suse.patch | 88 +- update-alternatives.changes | 1450 ++++++++++++++++++++++++++++++++ update-alternatives.spec | 2 +- 7 files changed, 2955 insertions(+), 50 deletions(-) delete mode 100644 dpkg_1.19.0.5.tar.xz create mode 100644 dpkg_1.20.9.tar.xz diff --git a/dpkg.changes b/dpkg.changes index 3b0ba70..d11364c 100644 --- a/dpkg.changes +++ b/dpkg.changes @@ -1,3 +1,1453 @@ +------------------------------------------------------------------- +Thu Apr 29 08:28:48 UTC 2021 - John Paul Adrian Glaubitz + +- Refresh patches for new version + * update-alternatives-suse.patch +- Set minimum version for po4a to 0.59 in BuildRequires +- Update file list in %files section +- Version update to 1.20.9 (boo#1181867) + [ Guillem Jover ] + * Test suite: + - Pass --ignore-builtin-builddeps to dpkg-buildpackage. +- from version 1.20.8 + [ Guillem Jover ] + * start-stop-daemon: Open the --output file in append mode. + * dpkg: Fix --auto-deconfigure for essential and protected during + installation. Reported by Julian Andres Klode . + See #983014. + * dpkg-realpath: Fix resolution for absolute symlinks on «/». + Closes: #983855 + * dpkg-realpath: Fix symlink loop tracker. + * Perl modules: + - Test::Dpkg: Fix test data path fetching on CPAN. + - Dpkg::Exit: Preserve exit code in END block. + * Build system: + - Group Test::Dpkg changelog entries into “Perl modules” section. + * Packaging: + - Run autopkgtest test suites in verbose mode. + * Test suite: + - Set PERL in the perl test suite. + - Use gunzip instead of zcat and assume it might not be present. + - Mock dpkg and gcc for architecture detection code. + - Initialize DEB_BUILD_ARCH and DEB_HOST_ARCH to avoid computing them. + - Update suppressions for cppcheck 2.4. + [ Update man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #981884 + * German (Helge Kreutzmann). + * Portuguese (Américo Monteiro). Closes: #980018 + [ Update programs translations ] + * Dutch (Frans Spiesschaert). Closes: #981882 + [ Update scripts translations ] + * German (Helge Kreutzmann). Closes: #983865 +- from version 1.20.7 + [ Guillem Jover ] + * libdpkg: Do not consider the database locked with a missing lock file. + Reported by David Kalnischkies . + * Documentation: + - man: Clarify and expand information on dpkg-realpath(1) man page. + Closes: #979564 + * Packaging: + - Update copyright notices in debian/copyright. + - Bump Standards-Version to 4.5.1 (no changes required). + * Test suite: + - On as-root mode do not use sudo if already running as root. + - Print WARN instead of FAIL for maintscript fd leaks. + [ Update man pages translations ] + * German (Helge Kreutzmann). + [ Update programs translations ] + * German (Sven Joachim). +- from version 1.20.6 + [ Guillem Jover ] + * libdpkg: Fix undefined behavior in varbuf functions. + Reported by KOLANICH . + * libdpkg: Fix memory leaks in tar_extractor(). + * libdpkg: Fix memory leak in trigger deferred processing. + Reported by KOLANICH . + * libdpkg: Fix memory leak in filesystem treewalk node free function. + * libdpkg: Fix memory leak in filesystem treewalk iterator. + * libdpkg: Fix single-instance memory leak with fsys dir. + * libdpkg: Fix short-lived memory leaks. + * libdpkg: Reset error context errmsg after free(). + * dpkg: Fix memory leak for cidir. + Reported by KOLANICH . + * dpkg: Fix short-lived memory leak in --force-help output. + Based on a patch by KOLANICH . + * dpkg-deb: Fix single-instance memory leak on missing conffiles control + file. + * dpkg-divert: Fix short-lived memory leaks. + * dpkg-realpath: Add new -z, --zero option. + Requested by Johannes Schauer . + * dpkg-deb: Make decompression error message more descriptive. + Closes: #968442 + * dpkg-architecture: Add a --print-format option. + Prompted by #968963. + * dpkg-buildpackage: Warn on known R³ values in uppercase. + Reported by Niels Thykier . + * dpkg-buildpackage: Error out on R³ "yes" value. + Requested by Niels Thykier . + * dpkg-buildpackage: Clarify R³ keyword diagnostic messages. + * dpkg-deb, dpkg-split: Fix time handling to support 64-bit time. + * libdpkg: Check that the ar archive time is within bounds. + * libdpkg: Ignore not-installed packages for source related virtual fields. + Closes: #972580 + * libdpkg: Make source version parsing more robust on missing data. + See #972580. + * libdpkg: Do not forget not-installed packages that are set on hold. + Reported by David Kalnischkies . + * update-alternatives: Fix memory leaks for alternative database context on + load errors. + * update-alternatives: Fix short-lived memory leaks for alternative structs. + * update-alternatives: Fix memory leaks with new_choice. + * update-alternatives: Fix short-lived memory leaks for log_file and admdir. + * dpkg-buildflags: Add support for DFLAGS. Closes: #975896 + * dpkg-parsechanaglog: Document --file in --help output. + * libdpkg: Fix allocation size wrap around when growing a varbuf. + * dpkg-query: Do not print database loading progress. Closes: #977240 + * Rename taint tag to merged-usr-via-aliased-dirs. + * dpkg-buildflags: Enable reproducible=fixfilepath by default. + Thanks to Vagrant Cascadian . + See https://lists.debian.org/debian-devel/2020/10/msg00222.html. + Closes: #974087 + * start-stop-daemon: Move umask setup before any file has been created. + * start-stop-daemon: Add a new --output option to redirect stderr and stdout. + * dpkg-maintscript-helper: Do not pass DPKG_ROOT prefixed pathmames to + dpkg-realpath. + * dpkg: When removing old files check the pathname with diversion and + instdir. + * dpkg-realpath: Make 'link includes root prefix' error more verbose. + * libdpkg: Make sure we do not walk on rootless trees. + * dpkg: Fix incorrect logic around printing dependency warnings. + Thanks to Jessica Clarke . + Reported by Helmut Grohne . + * Support remove-on-upgrade conffile flag via DEBIAN/conffiles. + Based on a patch by Niels Thykier . Closes: #822462 + * dpkg-fsys-usrunmess: New program. + * Perl modules: + - Dpkg::Index: Add new item_opts option. + - Dpkg::Exit: Fix exit handler on program termination. Closes: #966083 + - Dpkg::Changelog::Entry::Debian: Fix format string. + Prompted by #967911. + - Dpkg::Changelog::Parse: Add new verbose option. + Prompted by #967911. + - Dpkg::Changelog::Parse: Document 'label' option. + - Dpkg::Source::Package::V1: Print a message when verifying tarball + signatures. + - Dpkg::Path: Fix pathname traversal check for symlinks. Closes: #971203 + - Dpkg::Source::Package: Honor no_check for directory traversal checks. + See #971203. + - Dpkg::Source::Package: Call syserr() instead of syserror(). + Reported by Drew Parsons . + See #849752. Closes: #976249 + - Dpkg::Path: Check first whether the files are the same by comparing + string-wise. Closes: #849752 + - Dpkg::OpenPGP: Refactor gpg armor code into its own function. + * Documentation: + - man: Fix typo in --print-unset option reference. + Reported by Ferenc Wágner . Closes: #966110 + - man: Clarify that dpkg-architecture uses some of its own variables. + Closes: #966111 + - man: Fix casing and namespacing in VARIABLES definitions. + - man: Fix typo in dpkg-source(1). + Thanks to Paul Wise . + - man: Add a reference to deb-symbols(5) in deb-src-symbols(5) DESCRIPTION. + Prompted by #970083. + - man: Specify that symbol, version and id are separated by a single + whitespace. Closes: #970083 + - man: Clarify day-of-month format in deb-changelog(5). + Reported by Axel Beckert . + See #971977. + - man: Update update-alternatives maintainer script usage information. + Prompted by Niels Thykier . + - man: Switch to use L<> markup for URLs instead of B<>. + - doc, man: Clarify that R³ values are case sensitive. + Prompted by Niels Thykier . + - man: Add references to deb822(5) to file formats based on it. + Prompted by Niels Thykier . + - man: Clarify config-files state in dpkg(1). + Prompted by Stuart Prescott . + - man: Fix typos. + - man: Hyphenate multiple words in deb-override(5) format description. + - man: Uppercase acronyms and logic operators. + - man: Empty or whitespace-only lines in deb-conffiles(5) are not accepted. + * Code internals: + - libcompat, dpkg: Stop using deprecated security_context_t data type. + - update-alternatives: Refactor alternative database context freeing into a + new function. + - libdpkg: Do not define the clamp macro when compiling C++ code. + Reported by Helmut Grohne . + - libdpkg: Replace FSF address by pointing to the gnu.org URL. + - libdpkg: Initialize pkgbin's newhash to NULL. + Prompted by Steinar H. Gunderson . + - libdpkg: Use memset() instead of open-coding struct blanking. + Prompted by Steinar H. Gunderson . + - Do not call fsys_hash_init() before command actions. + Prompted by Steinar H. Gunderson . + - libdpkg: Fix m_pipe() function definition prototype to match declaration. + - libdpkg: Refactor new str_rtrim_spaces(). + Based on a patch by Niels Thykier . + - dpkg: Call fsys_hash_find_node() outside tar_fsys_namenode_queue_push(). + - Use a conffilename variable to track the actual conffile name in the + buffer. + Thanks to Niels Thykier . + * Build system: + - Add new gen-changelog tool. + - Pre-process the curses header before parsing it. Closes: #970545 + - Fix variable substitution in man pages. + Reported by Niels Thykier . Closes: #978983 + - Add a README.cpan to be installed as README in the CPAN distribution. + - Do not try to use on GNU/Linux. + - Fix «make distcheck» for man pages. + - Update GitLab CI configuration to use built-in functional test suite. + - Make it possible to override PKGDATADIR on built scripts too. + - Disable umask to 0 for Docker executor in GitLab CI. + - Disable functional test suite debug mode on GitLab CI. + - Sort po4a entries in po4a.cfg. + * Packaging: + - Do not fail the bug-script if readlink fails. Closes: #968397 + - Improve cron file robustness on missing or empty backup files. + Closes: #969472 + - Use AUTOPKGTEST_TMP instead of writing into the source tree. + - Hook the functional test suite into autopkgtest. + - Remove trailing comma from lintian profile file. + - Do not hardcode libdpkg-perl dependency on perl:any. + Thanks to Sven Joachim . + * Test suite: + - Fix short lived memory leaks in unit tests. + - Print the ehandle unit test error output on verbose mode. + - Improve dpkg-divert test to output stdout and stderr. + - Use intermediate variable for directory traversal item iteration. + - Refactor root handling in Dpkg::Path unit tests. + - Refactor test verbose check into an inline function. + - Make it possible to include test.h from benchmarks. + - Disable hash reports in benchmark tests unless verbose. + - Add support for basic test try/catch/finally keywords. + - Merge the dpkg-tests.git repository into tests/. + - Update merged functional test suite assumptions. + - Remove redundant test cases from the functional test suite. + - Remove source package building support from functional test suite. + - When using DPKG_BUILDTREE add scripts/ to DPKG_PATH. + [ Add man pages translations ] + * Portuguese (Américo Monteiro). Closes: #964751 + [ Update dselect translations ] + * Dutch (Frans Spiesschaert). Closes: #968294 + * French (Didier Vidal). Closes: #964749 + [ Update man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #968743 + * German (Helge Kreutzmann). + [ Update programs translations ] + * Dutch (Frans Spiesschaert). Closes: #968744 + * German (Sven Joachim). + [ Update scripts translations ] + * German (Helge Kreutzmann). +- from version 1.20.5 + [ Guillem Jover ] + * Revert change to prefix the specs file spec string self_spec with + + instead of *. The prefix is supposed to go in the text itself + instead of the spec name, which already had it. This change only + apparently fixed the issue at hand because gcc started parsing it as + the «[SUFFIX]:» case, completely disabling the PIE handling. + Thanks to Thorsten Glaser . + * Perl modules: + - Dpkg::Source::Package::V1: Explicitly initialize constructor options to + their implicit values, otherwise other code end up assuming different + defaults. This is required here too as this class does not call the + initialization from its parent. + * Build system: + - Detect the GNU program variants for make, patch and tar in the CPAN + distribution to replace in the Dpkg module. + - Set DEB_BUILD_ARCH to a dummy “amd64” in the CPAN distribution tests + to not require a dpkg(1) in the system. + * Test suite: + - Only print the Dpkg::Path::check_directory_traversal() error on failure. + [ Updated scripts translations ] + * German (Helge Kreutzmann). +- from version 1.20.4 + [ Guillem Jover ] + * Improve PIE flags support: + - Prefix the specs file spec string self_spec with + instead of *. + This way we do not override any previous setting, otherwise when + passing the -specs options twice (f.ex. to compile and link), only the + last one will take effect, which can break the build. Closes: #870383 + * Perl modules: + - Dpkg::Source::Package: Explicitly initialize constructor options to + their implicit values, otherwise other code end up assuming different + defaults. Closes: #964017 + - Dpkg::OpenPGP: Use a temporary directory for the GnuPG homedir in + verify_signature(), to make sure we do not write to the user home + directory, except for the trustkeys.db file if present. + - Dpkg::Path: Refactor new check_directory_traversal() function out of + Dpkg::Source::Package->extract(). + - Dpkg::Path: Do not do partial matches for directory traversal checks, + expect a trailing slash after the base directory name. + - Dpkg::Path: Catch uncanonicanizable pathnames with a proper error. + Closes: #964111 + - Dpkg::Path: Do not consider missing symlink targets a directory + traversal attempt. Closes: #964234 + - Dpkg::Path: Allow /dev/null for directory traversals. + Reported by Holger Levsen . + * Build system: + - Add Module::Signature as configure recommends for CPAN. + * Test suite: + - Use File::Path::make_path() instead of chained mkdir() in Dpkg_Path.t. + - Add unit tests for Dpkg::Path::check_directory_traversal(). + [ Updated programs translations ] + * German (Sven Joachim). +- from version 1.20.3 + [ Guillem Jover ] + * Perl modules: + - Dpkg::OpenPGP: Pass --no-options to gpg in verify_signature(). + Reported by Bertrand Marc . Closes: #963839 + - Dpkg::Build::Info: Clarify by giving context to the + get_build_env_whitelist() deprecation warning. Closes: #963844 + Reported by Sven Joachim . + - Dpkg::Source::Package: Fix check_original_tarball_signature() to make + import_key() honor require_valid_signature, which should default to + false. Reported by Mattia Rizzolo . + - Dpkg::OpenPGP: Use a temporary directory for the GnuPG homedir in + import_key(), to make sure we do not write to the user home directory, + which might be read-only or non-existent. Closes: #963944 + Reported by Mattia Rizzolo . + * Code internals: + - libdpkg: Print a notice if we cannot write to the log file. + * Build system: + - Improve error diagnosis for configure version fetching script. + Prompted by Norbert Preining . + [ Updated programs translations ] + * German (Sven Joachim). +- from version 1.20.2 + * dpkg: Do not include the architecture with --robot --version. + * update-alternatives: Create alternatives directory (/etc/alternatives) + if it is missing, to help with installation bootstrapping. + Reported by Johannes Schauer . + * update-alternatives: Create the log directory if it is missing. + * Perl modules: + - Dpkg::Source::Package: Turn the missing expected tarball signature + error into a warning for now, as it is causing unintended fallout, + and does not play nice (yet) with tarballs repackaged by uscan(1). + Closes: #963821 + * Code internals: + - update-alternatives: Move log_msg() after make_path() so that we can use + the latter. + - update-alternatives: Add new xstrndup() and xdirname() functions. + * Build system: + - Set SHELL in the test environment. + - Do not fail if po4a is not found, and search for it just once. + - Fix name and section generation for translated man pages. This caused + pod2man to get an empty --name argument and not output anything, + resulting in generating empty man pages. Closes: #963794 + * Packaging: + - Sort debian/dpkg-dev.manpages. + - Install deb-src-symbols(5) in dpkg-dev package. +- from version 1.20.1 + [ Guillem Jover ] + * Fix dpkg logging regression introduced in 1.20.0: + - libdpkg: Use varbuf member .used instead of .size in log_message(), + to avoid printing garbage. + - libdpkg: Open the log file as write-only instead of read-only. + Thanks to Roderich Schupp . Closes: #953684 + * Unify and cleanup Makefile fragment files comments, including information + about version of introduction. + * Add new buildopts.mk Makefile fragment to support parsing DEB_BUILD_OPTIONS + options with arguments, such as “parallel” as DEB_BUILD_OPTION_PARALLEL. + * dpkg-genchanges: Handle empty Date fields from parsed debian/changelog. + Based on a patch by Baptiste BEAUPLAT . Closes: #956321 + * dpkg-source: Check that debian/tests/control has the required fields. + Prompted by Felix Lechner . + * dpkg-deb, dpkg: Do not accept relative pathnames in DEBIAN/conffiles. + Reported by Niels Thykier . + * dpkg-split: Fix off-by-one check in ar header padding, that was making + parsing error out on valid archives. Regression introduced in dpkg 1.18.8. + * libdpkg: Fix error message for ending version character in dependency + parser: + - Move the version unterminated case before the catchall. + - Print the actual wrong character and print what is expected. + * libdpkg: Do not use econtext->errmsg on out of context abort, as it might + be uninitialized. + * update-alternatives: Set the umask to 022 on program start. + Reported by Paul Wise . + * dpkg-parsechangelog: Fix --show-field for multiline fields. We were not + stripping trailing whitespace, and were not prefixing empty lines with + a ‘.’, like when printing with the field names. + Reported by Paul Wise . + * dpkg: Add a new --robot option to be used with --version. + * dpkg, dpkg-query: Document missing options in --help output. + * Unify ellipsis formatting in programs --help output. + * Add Protected field support. + * dpkg-realpath: New program, to be used by dpkg-maintscript-helper, and + any maintainer script that needs a realpath that can handle pathnames + relative to the dpkg root directory. + * dpkg-realpath: Add support for DPKG_ROOT. + Thanks to Helmut Grohne . + * dpkg-realpath: Add support for --root and --instdir options. + * dpkg-maintscript-helper: Add support for DPKG_ROOT: + - Add DPKG_ROOT support for conffiles. + Thanks to David Kalnischkies . + - Add DPKG_ROOT support for symlink to and from directory switches. + Based on a patch by Bastien ROUCARIÈS . + Closes: #832176 + * update-alternatives: Add DPKG_ROOT support, and new --root and --instdir + options. Closes: #871808 + * Portability: + - libdpkg: When using uselocale(), include for locale_t if + the header is available. Needed on BSDs. + Reported by Sirio Balmelli . + * Perl modules: + - Dpkg: Add a LICENSE section to the POD. + - Dpkg::Source::Package: Add new get_upstream_signing_key() method. + - Dpkg::Source::Package: Check missing expected tarball signatures. + - Dpkg::Source::Package::V1: Check version format matching source format. + - Dpkg::Vendor::Debian: Add debian-nonupload.gpg keyring. + Thanks to Taowa Munene-Tardif . Closes: #956055 + - Dpkg::Vendor::Debian: Detect merged-usr-via-symlinks also with absolute + pathnames. Reported by Adam Borowski . + - Dpkg::Build::Info: Avoid whitelist in function name. + - Dpkg::Shlibs::SymbolFile: Avoid blacklist and whitelist terms. + * Documentation: + - man: Fix misused two-fonts macros. + Thanks to Bjarni Ingi Gislason . Closes: #955028 + - man: Trim trailing whitespace from output. + Thanks to Bjarni Ingi Gislason . Closes: #955030 + - man: Mention that dpkg(1) does not provide all back-end interfaces. + Prompted by Elana Hashman . + - man: Clarify and fix file formats SYNOPSIS. + - man: Clarify that deb-control(5) is a subset of deb-src-control(5). + Closes: #958229 + - man: Unify warning and note admonitions formatting. + - man: Remove useless commented out macros. + - man: Fix unbalanced quotes in macro arguments. + - man: Specify the indentation level for all following .IP macros, not + just the first one. + - man: Use .TP macros instead of hand-crafted formatting. + - man: Fix font markup for some variable and literal strings. + - dpkg-maintscript-helper: Add -?, --help and --version to --help output. + - man: Fix apt and aptitude references. + Reported by Helge Kreutzmann . + - man: Mark commands (eval) in bold and quote library names (libgcc). + Reported by Helge Kreutzmann . + - man: Use UTF-8 quotes instead of ancient groff register variables. + - man: Use literal double quotes instead of groff escape sequences. + - man: Clarify that we resolve bug reports not bug report numbers. + Reported by Helge Kreutzmann . + - man: Clarify POSIX shell eval command usage in dpkg-architecture(1). + - man: Use item lists instead of verbatim or hand-crafted formatting. + - man: Do not use verbatim formatting for text that is not an example. + - man: Markup examples explicitly with .EX/.EE. + - man: Fix indentation for a note admonition in dpkg-scansources(1). + - man: Document that a 3.0 (quilt) patch cannot create or modify symlinks. + Thanks to Johannes Schauer . + - man: Reword text to reduce length in verbatim code block. + - man: Add semicolons before verbatim code blocks. + - man: Update dselect methods provided. Several got removed in 1.20.0. + - man: The Installed-Size field does not get its value from du(1) since + 1.18.0. + - man: Fix dpkg-gencontrol -P description to not refer to dpkg-source. + Reported by Jakub Wilk . + - man: Place description of override value column on its own paragraph. + - man: Surround markup within verbatim blocks with .nf/.fi. + - man: Balance font markup. + - man: Do not nest font markup. + - man: Use .ig/.. macros to disable text instead of commenting it out. + - man: Do not mark end of sentence period with bold. + - man: Add a missing comma after man page reference in SEE ALSO section. + - man: Convert man pages from roff to POD. + - man: Clarify the dpkg --no-act admonition. + - man: Avoid whitelist term in dpkg-source man page. + * Code internals: + - Use $() in shell or qx() in perl instead of ``. + - dpkg-split: Switch part number variables from unsigned int to int. + - scripts: Refactor shell error handling into a shell library + - Reformat shell code to follow the coding style. + - update-alternatives: Parametrize option names in output strings. + - update-alternatives: Move logging function close to output functions. + - update-alternatives: Move argument parsing functions close to main(). + - update-alternatives: Add general purpose non-failing functions for + administrative directory access. + - update-alternatives: Add filesystem abstraction functions. + * Build system: + - Handle .git being a plain file when getting the dpkg tree version. + - Add debian/changelog as a Changes file to the CPAN distribution. + - Set DPKG_SERIES to 1.20.x when running the functional test suite. + - When using po4a require at least po4a 0.59. Change the po4a --porefs + argument from no longer supported “noline,wrap” to “file”, as wrapping + is the default since po4a 0.58. We require po4a 0.59 as 0.58 had a + regression in its --srcdir support. + - Switch to set the po4a addendum in the po4a_paths section instead of + repeating it for each man page. + - Use po4a conditional addendum support, and remove empty addenda. + - Use po4a mode=eof support in addenda. + - Do not use make prerequisites on suffix rule definitions. + Closes: #961850 + - Add man page number suffixes to the automake SUFFIXES variable. + - Update false positive suppressions for cppcheck 2.1. + - Install specifications and API contracts in docdir. + - Add support for switching man pages from roff to POD format. + - Fix shell files substitution for version variable. + * Packaging: + - Switch to debhelper compatibility level 13. + - Remove debian/tmp prefix from manpages debhelper fragment files. + - Handle missing localized man pages gracefully. + - Install AUTHORS, THANKS, usertags, README.api and + README.feature-removal-schedule only in dpkg.deb. + - Rename debian/usertags to debian/README.bug-usertags. + - Install specifications to /usr/share/doc/dpkg/ in the dpkg-dev package. + - Detect merged-usr-via-symlinks also with absolute pathnames in + bug-script. Reported by Adam Borowski . + * Test suite: + - Rename deb-content test cases to make them more descriptive. + - Skip autogenerated files from codespell. + [ Updated programs translations ] + * German (Sven Joachim). + * Simplified Chinese (Boyuan Yang). Closes: #958437 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * German (Helge Kreutzmann). +- from version 1.20.0 + [ Guillem Jover ] + * libdpkg: Do not generate a backup file for the available database. + Closes: #343578 + * 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 ambiguous. + * 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. Closes: #927752 + * dpkg-shlibdeps: Add support for new Build-Depends-Packages, to be able + to specify multiple packages. Closes: #926669 + Based on a patch by Frank Schaefer . + * 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. Closes: #934980 + * libdpkg, dpkg: Use new versiondescribe_c() for non-localizable call sites, + such as when writing to a log, which should not be localized. + Reported by Julien Cristau . + * dpkg-query: Try to use the package synopsis from the available file if + not installed. Closes: #43573 + * dpkg-gencontrol: Take into account hardlinks when computing the + Installed-Size substvar. Closes: #923475 + Patch co-authored with Sven Joachim . + * dpkg: Fix and clarify behavior for packages marked to be on “hold”. These + need to be processed for configuration and triggers. Closes: #926472 + * dpkg: Use DPKG_ADMINDIR to set the admindir. Closes: #900071 + * dpkg-source: Remove backwards compatibility code for legacy build-profiles. + * perl: Give more context on field parsing errors. Closes: #637060 + * dpkg-buildpackage: Add option to sanitize environment. Closes: #843776 + * 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: + Closes: #914515 + - 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. + Closes: #647911 + - 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 . + * dpkg-buildpackage: Do not accept equal signs as part of the hook names. + Reported by Daniel Shahaf . Closes: #948291 + * 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 . + - 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. Closes: #920878 + * po: Fix translation of --compare-versions. Closes: #951614 + Thanks to Boyuan Yang . + * Perl modules: + - Dpkg::Source::Package: Verify original tarball signatures at build time. + - Dpkg::BuildFlags: Add new unset() method. + Requested by Daniel Schepler . + - Dpkg::Source::Package::V2: Emit a special patch header on + single-debian-patch. Closes: #933152 + - Dpkg::Vendor::Debian: Only scan /usr/local/ directories that exist. + Closes: #932967 + - Dpkg::Vendor::Debian: Do not set -Werror=implicit-function-declaration + for C++. Closes: #939969 + - Dpkg::Deps: Check for valid virtual package version relations. Do not + allow non-equal version relations in virtual provides. Closes: #930317 + - 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 internal 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. + Closes: #932841 + - 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 . + * 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 . + - Dpkg::Changelog: Document methods provided by subclasses. + Reported by Felix Lechner . + - 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 . + - man: Clarify deb-changelog(5) format. Closes: #946780 + - man: Clarify debian/source/include-binaries format in dpkg-source(1). + Prompted by Felix Lechner . + - 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 . + - 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 redundant 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 unimportant 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 . Closes: #939516 + - dselect: Remove methods state files on purge. + Spotted by Sven Joachim . + - 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). Closes: #935695 + * Simplified Chinese (Mo Zhou). Closes: #942195, #945776 + [ Updated dselect translations ] + * German (Sven Joachim). + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * German (Helge Kreutzmann). Closes: #931135 +- from version 1.19.7 + [ Guillem Jover ] + * dpkg: Fix off-by-one error in dpkg --abort-error. Closes: #924886 + Thanks to Tom Goulet . + * dpkg: Set the force defaults before loading the config file, otherwise we + incorrectly override them. Regression introduced in dpkg 1.19.5. + Closes: #928671 + * dpkg: Split the trigger dependtry into two, the second of which will be + the one checking trigger cycles when deferring trigger processing due to + unsatisfiable dependencies. Closes: #928429 + * dpkg-deb: Validate ar member magic before normalizing any of its fields. + * dpkg-deb: Honor --nocheck when building packages with newlines in + filenames. Regression introduced in dpkg 1.18.1. Closes: #929727 + * Documentation: + - rootless-builds.txt: Expand what the builder means. Mention the + dpkg-deb option to use to set the owner and group to root. And reword + the prototyping section to be less confusing with what is currently + implemented. Closes: #929019 + - README: Clarify when autopoint is needed. Closes: #929601 + - Fix typos in docs and output strings. Warned by codespell. + [ Updated programs translations ] + * Catalan (Guillem Jover). + [ Updated dselect translations ] + * Catalan (Guillem Jover). + [ Updated scripts translations ] + * Catalan (Guillem Jover). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #926665 + * French (Jean-Pierre Giraud). Closes: #929664 +- from version 1.19.6 + [ Guillem Jover ] + * libdpkg: Add a new TAR_FORMAT_UNKNOWN enum value. + * libdpkg: Set tar_entry to zero on tar_entry_destroy(), to avoid double + free()s and the subsequent crashes. + * libdpkg: Handle non end-of-tape errors from tar_header_decode(). + * libdpkg: Use ERANGE instead of EINVAL for tar_atol8() out-of-range error. + * dpkg-gencontrol: Check presence of package build dir before traversing it. + * Perl modules: + - Dpkg::Source::Package::V1: Change default build option style to -sa. + Using -sA by default means the user might lose data on overwrite if + there is already a directory with the same name laying around. + Closes: #910737 + - Dpkg::Source::Package: Handle Format field being undefined. On source + format 1.0, the default is for the debian/source/format file not being + present, which means we'll start with an empty Format field name. + Regression introduced in dpkg 1.19.3. + * Packaging: + - Update usertags. + - Install a lintian profile for dpkg based on the debian profile, so that + we can suppress Debian-specific tags, such as the controversial one on + vendor-specific patch series files. + - Add Breaks on lsb-base due to start-stop-daemon exposing breakage in + the killproc function from /lib/lsb/init-functions. Closes: #923861 + * Test suite: + - Stop requiring (pseudo-)root in the functional test suite. + - Export and move TESTDATA definition close to the PATH definition. + - Quote the 'yes' command to make a comment clearer. + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #924776 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #924777 + * German (Helge Kreutzmann). +- from version 1.19.5 + [ Guillem Jover ] + * start-stop-daemon: Make sure that we get a meaningful errno on + parse_unsigned(), so that the error messages always make sense. + * start-stop-daemon: Add new fatalv() and fatale() functions and use the + latter for system errors, so that we are explicit on whether we want to + use errno for error reporting or not. + * start-stop-daemon: Always refuse to parse a world-writable pidfile, + except when that is /dev/null. + * dpkg: Print the current set of enabled force options on --force-help. + * dpkg: Parse and set new DPKG_FORCE environment variable for subprocesses. + Closes: #666147 + * dpkg-statoverride: Add support for --force-* options. + * dpkg-statoverride: Switch from --force option to new --force- + options. Deprecate --force option which will be considered an alias for + --force-all for now. + * dpkg, dpkg-statoverride: Add new option --refuse-security-mac to control + SELinux. See #811037. + * dpkg: Clarify error on unknown system user/group in statoverride database. + Closes: #920880 + * dpkg-buildpackage: Clarify the warning/error on short OpenPGP key IDs. + Closes: #922039 + * dpkg-maintscript-helper: Restrict find for dir-to-symlink move to + -maxdepth 1. Thanks to Ralf Treinen . Closes: #922799 + * dpkg-genbuildinfo: Add support for a new Build-Tainted-By field in + .buildinfo files. Suggested by Alexander E. Patrakov . + * libdpkg: Clarify field names in error and warning messages. + * libdpkg: Optimize error handling. Move the error reporting outside the + involved functions so that we do not need to call gettext if there is no + error, which has a significant performance cost. + * libdpkg: Merge nicknames table into fieldinfos, to stop penalizing the + lookup of non-obsolete fieldnames. + * libdpkg: Print a more accurate warning for Revision nicknames. + * libdpkg: Increase the pkg-hash bins size to 65521, to improve hash table + performance at the cost of a bit more memory usage. + * libdpkg: Blank packages that are not-installed with unknown selection. + Closes: #922410 + * libdpkg, dpkg: Print the dpkg database directory on access errors. + Closes: #883700 + * Perl modules: + - Dpkg::Vendor::Debian: Add support for merged-usr-via-symlinks tainted + tag. Suggested by Alexander E. Patrakov . + - Dpkg::Vendor::Debian: Add support for usr-local-has-* tainted tags. + - Dpkg::Source::Package: Add a missing use Dpkg::Source::Format. + Diagnosed by Ian Jackson . + Closes: #921031 + * Documentation: + - start-stop-daemon(1): Document behavior of --pidfile security checks. + Closes: #921557 + - dpkg(1): Document the unknown selection state. Closes: #922407 + * Code internals: + - dpkg: Move SELinux fallback label to the SELinux specific code path. + - dpkg: Simplify maintscript_set_exec_context(). + - dpkg: Move force options support into its own file. + - dpkg: Do not hardcode the program name in the --force-help output. + - dpkg: Switch force options from individual variables to bit fields. + - dpkg: Switch from a char to an enum to track the force options types. + - dpkg: Switch to set the default force option from the forceinfos array. + - libdpkg: New benchmark programs and infrastructure. + - libdpkg: Add new dpkg_error_move() function. + - libdpkg: Add new dpkg_has_error() function. + - libdpkg: Move status names from parse errors to arguments. + - libdpkg: Use va_arg copy instead of the original on a vasprintf() call. + - libdpkg: Include in pager.c. + Reported by Y . Closes: #922212 + - libdpkg: Use pkg_set_want() instead of a direct assignment. + * Build system: + - Check whether this dist is a release, based only on the version format. + This will avoid having to do a two staged release to get a proper perl + distribution tarball. + * Packaging: + - autopkgtest: Add file to Depends fields. + - autopkgtest: Clarify behavior on root/non-root requirement. + - Bump Standards-Version to 4.3.0 (no changes required). + - Remove now unused assert usertag description. + - Remove trailing whitespace from changelog. + - Remove Origin and Bugs fields from control file. + - Include a bug-script to report on tainted merged-usr-via-symlinks. + * Test suite: + - libdpkg: Fix unit test for file_slurp(). Closes: #920974 + Diagnosed by Frank Schaefer . + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #921942 + * German (Sven Joachim). + * Simplified Chinese (Zhou Mo). Closes: #920972 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #921943 + * French (Jean-Pierre Giraud). Closes: #920905 + * German (Helge Kreutzmann). +- from version 1.19.4 + * start-stop-daemon: Do not sanity check the pidfile when it is specified as + /dev/null, as that implies the caller wants to start the program no matter + what. Closes: #920242 + * Portability: + - start-stop-daemon: Only use SO_PASSCRED if defined. Fixes build failure + at least on GNU/Hurd. + * Packaging: + - autopkgtest: Pass --disable-nls and --disable-dselect to configure. + - autopkgtest: Change Depends to «build-essential, autoconf, pkg-config». +- from version 1.19.3 + [ Guillem Jover ] + * dpkg-source: Stop filtering @builddeps@ from Testsuite-Triggers field. + Closes: #910734 + * dpkg-genchanges: Only reference binary packages being uploaded, which + means that for a source-only upload, the Binary and Description fields + should be empty. Closes: #818618 + * dpkg-scanpackages: Do not compute unnecessary checksums when using the + --hash argument. Based on a patch by Chris Lamb . + Closes: #916456 + * dpkg-scanpackages: Emit a warning with the list of repeat packages. + Prompted by Johannes Schauer . + * start-stop-daemon: Check whether standalone --pidfile use is secure. + Prompted by Michael Orlitzky . + * start-stop-daemon: Print complete verbose lines, instead of partial lines + with no newlines and a final print with a newline. + * start-stop-daemon: Add new --notify-await and --notify-timeout options, + which implement the systemd readiness protocol for services. + Closes: #910707 + * update-alternatives: Add new --debug option. + * update-alternatives: Fix removal of obsolete slaves from the linked list. + Reported by Andreas Beckmann . Closes: #916799 + * vendor.mk: Fix dpkg_vendor_derives_from macro documentation. + Thanks to Colin Watson . Closes: #913816 + * vendor.mk: Add support for an improved dpkg_vendor_derives_from macro. + Version the macros so that both can be used, and default the unversioned + one to the version 0 macro. + * dpkg: Mark the package we are giving up on a trigger cycle as "istobe" + normal, so that the dependency checks know they cannot expect this package + to be processed anymore. Otherwise we ended up never detecting that we + were not making progress, as we expected to process this package at a later + point, when that would never happen anymore. This then was causing asserts + in the process queue loop. Closes: #901127, #910819 + * dpkg: Reset progress_bytrigproc once we have injected it into the current + package process queue iteration, so that we do not keep trying to process + it, which might end up generating artificial trigger cycles, if + dependencies are not satisfied yet. + * dpkg: Convert one trigger processing required type into the new try-queued + one, so that we stop skipping unsatisfiable dependency checks. + * dpkg: Move trigproc cycle reset inside try-deferred conditional. We should + only reset the cycle detection in case we are not bailing out from the + processing with an error, otherwise we could come back to this package and + detect an artificial trigger cycle. + * dpkg: Introduce a new dependency try level for trigger processing. This + completely defers trigger processing until after the dependency cycle + breaking level, so to avoid generating artificial trigger cycles, when we + end up trying to process triggers with yet unsatisifiable dependencies. + Closes: #810724, #854478, #911620 + * dpkg: Fix --help output, to clarify which arguments are optional. + * libdpkg: Add proper tar error handling. This makes the tar extractor + track and report back parse errors, so that we can give more descriptive + messages. + * libdpkg: Detect unsupported tar entry types to give better error messages. + * libdpkg: Add new db-fsys:Files and db-fsys:Last-Modified virtual fields. + * Perl modules: + - Dpkg::Changelog::Debian: Preserve modelines at EOF. Closes: #916056 + Thanks to Chris Lamb for initial test cases. + - Dpkg::File: Make file_slurp() also accept pathnames in addition to + filehandles. + - Dpkg::Vendor::Ubuntu: Fix buildflags override after default setting move. + Based on a patch by Iain Lane and + Adam Conrad . Closes: #915881 + - Dpkg::Shlibs::Objdump: Remove unused Dpkg::IPC import. + - Dpkg::Shlibs::Objdump: Only select objdump program when going to use it. + - Dpkg::Source::Package: Do not reinitialize fields member in constructor. + - Dpkg::Source::Patch: Do not recommend --include-removal when not + supported. Closes: #913012 + - Dpkg::Source::Package::V3::Bzr: Fix format name in output message. + - Dpkg::Source::Package: Add a new format option to the new constructor. + Prompted by James McCoy . + - Dpkg::Source::Package: Improve debian/source/format parsing and + validation. + - Dpkg::Source::Format: New public module. + Prompted by Mattia Rizzolo . + * Documentation: + - dpkg(1): Clarify --remove action. Closes: #914478 + - dpkg-query(1): Clarify --list option behavior when no arguments are + specified. Closes: #917098 + - deb-control(5): Clarify by adding a reference to deb-src-control(5) and + removing an invalid comment in the example. + Prompted by Helmut Grohne . + - dpkg(1): Clarify databases used by --yet-to-unpack and --predep-package. + Prompted by Johannes Schauer . + - Clarify character classes for various formats in man pages, by + explicitly listing the character ranges within parenthesis. + Prompted by Ian Jackson . + - dpkg-query(1): Document the version introducing the -f option. + - dpkg-architecture(1): Add reference to the TERMS section in the + VARIABLES section. Prompted by Axel Beckert . + - Fix POD for Dpkg::Interface::Storable derived method implementations. + - Dpkg::Deps::Simple(3): Fix POD signature for new constructor. + * Code internals: + - dpkg-maintscript-helper: Use an explicit escape instead of a literal + backslash. + - Quote shell variables. Reported by Johannes Schauer . + - Switch perl code to use the new Dpkg::Source::Format module. + - dpkg-source: Move source format selection earlier in the build. + - dpkg-source: Use new format argument for Dpkg::Source::Package->new(). + - dpkg-shlibdeps: Remove unused variable. + - dpkg-scanpackages: Unroll a single iteration loop. + - start-stop-daemon: Compare foundany against 0 instead of treating it + like a boolean. + - start-stop-daemon: Switch code to use new info() and debug() functions. + - update-alternatives: Use enums for actions instead of strings. + - update-alternatives: Switch verbose selection into an enum. + - dpkg: Negate tortoise_not_in_hare() function name and return value. + - dpkg: Initialize trigcyclenode's next member once. + - dpkg: Use common pattern of assigning as an iterator. + - dpkg: Factor trigproc_new_cyclenode() out from check_trigger_cycle(). + - dpkg: Switch dependtry from an int to an enum. + - dpkg: Move dependtry description from deferred_configure() to its + declaration. + - dpkg: Split trigger processing types into required, try-queued and + try-deferred. + - dpkg-query: Rename variable to avoid shadowing a local function. + - When allocating use the variable instead of the type in sizeof(). + - dselect: Rename variable r to pkgbin. + - libdpkg, dpkg: Rename r variables to fnn. + - libdpkg: Rename ret variable to next. + - libdpkg: Cleanup fsys module symbol names. + - libdpkg: Rename pkg_db symbols to pkg_hash. + - libdpkg: Add new warning printer setter function. + Prompted by Julian Andres Klode . + - libdpkg: Add new DPKG_ERROR_OBJECT macro. + * Build system: + - get-version: Use a format string with printf. + - run-script: Use $() instead of deprecated ``. + - run-script: Remove unused PERL_PROFILE variable, PERL5OPT can be used + instead, and does not require leaving an unquoted variable around. + - run-script: Add «set -e». + - Build.PL: Set environment variables only for CPAN tests. + - Build.PL: Set locale for CPAN tests to C. Fixes CPAN#127314. + - configure: Split AM_INIT_AUTOMAKE arguments into different lines. + * Packaging: + - Bump Standards-Version to 4.2.1 (no changes needed). + - Switch to debhelper compatibility level 11. + - Create the log file in postinst only if it does not exist. + Prompted by Johannes Schauer . + - Add superficial autopkgtest functional tests. + * Test suite: + - Add new shellcheck author test. + - Add descriptions for the shellcheck exclude codes. + - Update cppcheck suppressions. + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #912023 + * German (Sven Joachim). + * Italian (Milo Casagrande). Closes: #915610 + * Portuguese (Miguel Figueiredo). Closes: #917813 + * Simplified Chinese (Zhou Mo). Closes: #919040 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #912024 + * German (Helge Kreutzmann). +- from version 1.19.2 + [ 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. + Closes: #487108 + * 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 . + * 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 . + - dsc(5): Add a reference to where the source formats are described. + Prompted by Manuel A. Fernandez Montecelo . + - dpkg-source(1): Improve documentation on vendor-specific series files. + - deb-control(5): Document Build-Ids field. + Prompted by Stuart Prescott . + - dpkg(1): Clarify which fields are affected by dependency options. + Prompted by James Clarke . + - 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 . + * 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). +- from version 1.19.1 + [ 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 . Closes: #878899 + * Do not try to recompute hashes for the .dsc file when signing binary-only + builds in dpkg-buildpackage. Reported by Ximin Luo . + * 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 . + * Add color support to dpkg-maintscript-helper (a shell script). + * Fix warning by including 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 . + * Add new AS, STRIP, OBJCOPY, OBJDUMP, NM, AR and RANLIB buildtools + variables to buildtools.mk. Prompted by Helmut Grohne . + * 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 + , following the specification. + * Specify that DEB_GAIN_ROOT_CMD in R³ should preserve the environment. + Proposed by Josh Triplett . + * 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 + * Increment the line number on dpkg --set-selections on unknown packages. + Reported by Heinz Repp . 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 . + Closes: #850417, #851984 + * 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 . + * 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 + - 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 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 . + 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 , on IRC. Closes: #881051 + - Dpkg::Changelog: Print versions for incorrect changelog range warnings. + Thanks to Paul Wise . + - 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 . 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 . + - 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 . + - 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 . + - 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 . + - 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 . + - 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 . + - 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). + ------------------------------------------------------------------- Fri Apr 23 09:07:05 UTC 2021 - Martin Liška diff --git a/dpkg.spec b/dpkg.spec index 0225f2e..ea1a504 100644 --- a/dpkg.spec +++ b/dpkg.spec @@ -17,7 +17,7 @@ Name: dpkg -Version: 1.19.0.5 +Version: 1.20.9 Release: 0 Summary: Debian package management system License: GPL-2.0-or-later @@ -41,7 +41,7 @@ BuildRequires: libmd-devel BuildRequires: libselinux-devel BuildRequires: libtool BuildRequires: ncurses-devel -BuildRequires: po4a +BuildRequires: po4a >= 0.59 BuildRequires: update-alternatives BuildRequires: xz-devel BuildRequires: zlib-devel @@ -162,7 +162,8 @@ exit 0 %license COPYING %doc ABOUT-NLS AUTHORS doc/triggers.txt NEWS README* THANKS TODO debian/changelog %{_mandir}/man*/* -%exclude %{_mandir}/man*/update-alternatives* +%exclude %{_datadir}/doc/dpkg/*.txt +%exclude %{_datadir}/doc/dpkg/README* %dir %{_sysconfdir}/dpkg %config(noreplace) %{_sysconfdir}/dpkg/* %{_bindir}/* @@ -173,9 +174,9 @@ exit 0 %{perl_vendorlib}/Dpkg %{perl_vendorlib}/Dpkg.pm %{perl_vendorlib}/Dselect -%{perl_vendorlib}/Dselect/Ftp.pm %files devel +%{_datadir}/aclocal/*.m4 %{_libdir}/libdpkg.a %{_libdir}/libdpkg.la %{_libdir}/pkgconfig/libdpkg.pc diff --git a/dpkg_1.19.0.5.tar.xz b/dpkg_1.19.0.5.tar.xz deleted file mode 100644 index ab00561..0000000 --- a/dpkg_1.19.0.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:818046927a7f77c1bcbbad7d8dbc04cdf0f3e6ec4e1a4f9d313378ecc69d85b5 -size 4557428 diff --git a/dpkg_1.20.9.tar.xz b/dpkg_1.20.9.tar.xz new file mode 100644 index 0000000..17cad2f --- /dev/null +++ b/dpkg_1.20.9.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ce242830f213b5620f08e6c4183adb1ef4dc9da28d31988a27c87c71fe534ce +size 4954428 diff --git a/update-alternatives-suse.patch b/update-alternatives-suse.patch index 987540d..4c85514 100644 --- a/update-alternatives-suse.patch +++ b/update-alternatives-suse.patch @@ -1,43 +1,62 @@ -Index: dpkg-1.18.23/man/update-alternatives.man -=================================================================== ---- dpkg-1.18.23.orig/man/update-alternatives.man -+++ dpkg-1.18.23/man/update-alternatives.man -@@ -34,7 +34,7 @@ update\-alternatives \- maintain symboli - .SH DESCRIPTION - .B update\-alternatives +diff -Nru dpkg-1.20.9.orig/man/update-alternatives.pod dpkg-1.20.9/man/update-alternatives.pod +--- dpkg-1.20.9.orig/man/update-alternatives.pod 2021-01-30 07:09:02.000000000 +0100 ++++ dpkg-1.20.9/man/update-alternatives.pod 2021-04-28 11:43:20.093959620 +0200 +@@ -37,7 +37,7 @@ + + B creates, removes, maintains and displays information about the symbolic -links comprising the Debian alternatives system. +links comprising the SUSE alternatives system. - .PP + It is possible for several programs fulfilling the same or similar functions to be installed on a single system at the same time. -@@ -44,7 +44,7 @@ different editor, if desired, but makes +@@ -47,7 +47,7 @@ to make a good choice for an editor to invoke if the user has not specified a particular preference. - .PP + -Debian's alternatives system aims to solve this problem. +SUSE's alternatives system aims to solve this problem. A generic name in the filesystem is shared by all files providing interchangeable functionality. The alternatives system and the system administrator -@@ -83,10 +83,10 @@ installed, changed or removed, +@@ -85,8 +85,8 @@ + B is called to update information about that file in the alternatives system. - .B update\-alternatives - is usually called from the --.B postinst -+.B post - (configure) or - .B prerm --(remove and deconfigure) scripts in Debian packages. -+(remove and deconfigure) scripts in SUSE packages. - .PP - It is often useful for a number of alternatives to be synchronized, - so that they are changed as a group; for example, when several versions -Index: dpkg-1.18.23/utils/update-alternatives.c -=================================================================== ---- dpkg-1.18.23.orig/utils/update-alternatives.c -+++ dpkg-1.18.23/utils/update-alternatives.c -@@ -70,7 +70,7 @@ static int opt_force = 0; + B +-is usually called from the following Debian package maintainer scripts, +-B ++is usually called from the following SUSE package maintainer scripts, ++B + (configure) to install the alternative and from + B and B + (remove) to remove the alternative. +diff -Nru dpkg-1.20.9.orig/utils/Makefile.am dpkg-1.20.9/utils/Makefile.am +--- dpkg-1.20.9.orig/utils/Makefile.am 2021-01-30 07:09:02.000000000 +0100 ++++ dpkg-1.20.9/utils/Makefile.am 2021-04-28 11:44:41.674722417 +0200 +@@ -45,8 +45,8 @@ + + update_alternatives_CPPFLAGS = \ + -DALT_TMP_EXT=\".dpkg-tmp\" \ +- -DADMINDIR_ENVVAR=\"DPKG_ADMINDIR\" \ +- -DINSTDIR_ENVVAR=\"DPKG_ROOT\" \ ++ -DADMINDIR_ENVVAR=\"RPM_ADMINDIR\" \ ++ -DINSTDIR_ENVVAR=\"RPM_ROOT\" \ + $(AM_CPPFLAGS) + + update_alternatives_LDADD = \ +@@ -79,7 +79,7 @@ + uninstall-local: + rm -f $(DESTDIR)$(sysconfdir)/alternatives/README + +-TEST_ENV_VARS = DPKG_DATADIR=$(top_srcdir)/data ++TEST_ENV_VARS = RPM_DATADIR=$(top_srcdir)/data + + test_tmpdir = t.tmp + test_scripts = \ +diff -Nru dpkg-1.20.9.orig/utils/update-alternatives.c dpkg-1.20.9/utils/update-alternatives.c +--- dpkg-1.20.9.orig/utils/update-alternatives.c 2021-03-02 03:15:25.000000000 +0100 ++++ dpkg-1.20.9/utils/update-alternatives.c 2021-04-28 11:43:44.998192415 +0200 +@@ -115,7 +115,7 @@ static void version(void) { @@ -46,18 +65,3 @@ Index: dpkg-1.18.23/utils/update-alternatives.c printf("\n"); printf(_( -Index: dpkg-1.18.23/utils/Makefile.am -=================================================================== ---- dpkg-1.18.23.orig/utils/Makefile.am -+++ dpkg-1.18.23/utils/Makefile.am -@@ -25,8 +25,8 @@ update_alternatives_SOURCES = \ - update-alternatives.c - - update_alternatives_CPPFLAGS = \ -- -DALT_TMP_EXT=\".dpkg-tmp\" \ -- -DADMINDIR_ENVVAR=\"DPKG_ADMINDIR\" \ -+ -DALT_TMP_EXT=\".rpm-tmp\" \ -+ -DADMINDIR_ENVVAR=\"RPM_ADMINDIR\" \ - $(AM_CPPFLAGS) - - update_alternatives_LDADD = \ diff --git a/update-alternatives.changes b/update-alternatives.changes index 7462228..7c1e53e 100644 --- a/update-alternatives.changes +++ b/update-alternatives.changes @@ -1,3 +1,1453 @@ +------------------------------------------------------------------- +Thu Apr 29 08:28:48 UTC 2021 - John Paul Adrian Glaubitz + +- Refresh patches for new version + * update-alternatives-suse.patch +- Set minimum version for po4a to 0.59 in BuildRequires +- Update file list in %files section +- Version update to 1.20.9 (boo#1181867) + [ Guillem Jover ] + * Test suite: + - Pass --ignore-builtin-builddeps to dpkg-buildpackage. +- from version 1.20.8 + [ Guillem Jover ] + * start-stop-daemon: Open the --output file in append mode. + * dpkg: Fix --auto-deconfigure for essential and protected during + installation. Reported by Julian Andres Klode . + See #983014. + * dpkg-realpath: Fix resolution for absolute symlinks on «/». + Closes: #983855 + * dpkg-realpath: Fix symlink loop tracker. + * Perl modules: + - Test::Dpkg: Fix test data path fetching on CPAN. + - Dpkg::Exit: Preserve exit code in END block. + * Build system: + - Group Test::Dpkg changelog entries into “Perl modules” section. + * Packaging: + - Run autopkgtest test suites in verbose mode. + * Test suite: + - Set PERL in the perl test suite. + - Use gunzip instead of zcat and assume it might not be present. + - Mock dpkg and gcc for architecture detection code. + - Initialize DEB_BUILD_ARCH and DEB_HOST_ARCH to avoid computing them. + - Update suppressions for cppcheck 2.4. + [ Update man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #981884 + * German (Helge Kreutzmann). + * Portuguese (Américo Monteiro). Closes: #980018 + [ Update programs translations ] + * Dutch (Frans Spiesschaert). Closes: #981882 + [ Update scripts translations ] + * German (Helge Kreutzmann). Closes: #983865 +- from version 1.20.7 + [ Guillem Jover ] + * libdpkg: Do not consider the database locked with a missing lock file. + Reported by David Kalnischkies . + * Documentation: + - man: Clarify and expand information on dpkg-realpath(1) man page. + Closes: #979564 + * Packaging: + - Update copyright notices in debian/copyright. + - Bump Standards-Version to 4.5.1 (no changes required). + * Test suite: + - On as-root mode do not use sudo if already running as root. + - Print WARN instead of FAIL for maintscript fd leaks. + [ Update man pages translations ] + * German (Helge Kreutzmann). + [ Update programs translations ] + * German (Sven Joachim). +- from version 1.20.6 + [ Guillem Jover ] + * libdpkg: Fix undefined behavior in varbuf functions. + Reported by KOLANICH . + * libdpkg: Fix memory leaks in tar_extractor(). + * libdpkg: Fix memory leak in trigger deferred processing. + Reported by KOLANICH . + * libdpkg: Fix memory leak in filesystem treewalk node free function. + * libdpkg: Fix memory leak in filesystem treewalk iterator. + * libdpkg: Fix single-instance memory leak with fsys dir. + * libdpkg: Fix short-lived memory leaks. + * libdpkg: Reset error context errmsg after free(). + * dpkg: Fix memory leak for cidir. + Reported by KOLANICH . + * dpkg: Fix short-lived memory leak in --force-help output. + Based on a patch by KOLANICH . + * dpkg-deb: Fix single-instance memory leak on missing conffiles control + file. + * dpkg-divert: Fix short-lived memory leaks. + * dpkg-realpath: Add new -z, --zero option. + Requested by Johannes Schauer . + * dpkg-deb: Make decompression error message more descriptive. + Closes: #968442 + * dpkg-architecture: Add a --print-format option. + Prompted by #968963. + * dpkg-buildpackage: Warn on known R³ values in uppercase. + Reported by Niels Thykier . + * dpkg-buildpackage: Error out on R³ "yes" value. + Requested by Niels Thykier . + * dpkg-buildpackage: Clarify R³ keyword diagnostic messages. + * dpkg-deb, dpkg-split: Fix time handling to support 64-bit time. + * libdpkg: Check that the ar archive time is within bounds. + * libdpkg: Ignore not-installed packages for source related virtual fields. + Closes: #972580 + * libdpkg: Make source version parsing more robust on missing data. + See #972580. + * libdpkg: Do not forget not-installed packages that are set on hold. + Reported by David Kalnischkies . + * update-alternatives: Fix memory leaks for alternative database context on + load errors. + * update-alternatives: Fix short-lived memory leaks for alternative structs. + * update-alternatives: Fix memory leaks with new_choice. + * update-alternatives: Fix short-lived memory leaks for log_file and admdir. + * dpkg-buildflags: Add support for DFLAGS. Closes: #975896 + * dpkg-parsechanaglog: Document --file in --help output. + * libdpkg: Fix allocation size wrap around when growing a varbuf. + * dpkg-query: Do not print database loading progress. Closes: #977240 + * Rename taint tag to merged-usr-via-aliased-dirs. + * dpkg-buildflags: Enable reproducible=fixfilepath by default. + Thanks to Vagrant Cascadian . + See https://lists.debian.org/debian-devel/2020/10/msg00222.html. + Closes: #974087 + * start-stop-daemon: Move umask setup before any file has been created. + * start-stop-daemon: Add a new --output option to redirect stderr and stdout. + * dpkg-maintscript-helper: Do not pass DPKG_ROOT prefixed pathmames to + dpkg-realpath. + * dpkg: When removing old files check the pathname with diversion and + instdir. + * dpkg-realpath: Make 'link includes root prefix' error more verbose. + * libdpkg: Make sure we do not walk on rootless trees. + * dpkg: Fix incorrect logic around printing dependency warnings. + Thanks to Jessica Clarke . + Reported by Helmut Grohne . + * Support remove-on-upgrade conffile flag via DEBIAN/conffiles. + Based on a patch by Niels Thykier . Closes: #822462 + * dpkg-fsys-usrunmess: New program. + * Perl modules: + - Dpkg::Index: Add new item_opts option. + - Dpkg::Exit: Fix exit handler on program termination. Closes: #966083 + - Dpkg::Changelog::Entry::Debian: Fix format string. + Prompted by #967911. + - Dpkg::Changelog::Parse: Add new verbose option. + Prompted by #967911. + - Dpkg::Changelog::Parse: Document 'label' option. + - Dpkg::Source::Package::V1: Print a message when verifying tarball + signatures. + - Dpkg::Path: Fix pathname traversal check for symlinks. Closes: #971203 + - Dpkg::Source::Package: Honor no_check for directory traversal checks. + See #971203. + - Dpkg::Source::Package: Call syserr() instead of syserror(). + Reported by Drew Parsons . + See #849752. Closes: #976249 + - Dpkg::Path: Check first whether the files are the same by comparing + string-wise. Closes: #849752 + - Dpkg::OpenPGP: Refactor gpg armor code into its own function. + * Documentation: + - man: Fix typo in --print-unset option reference. + Reported by Ferenc Wágner . Closes: #966110 + - man: Clarify that dpkg-architecture uses some of its own variables. + Closes: #966111 + - man: Fix casing and namespacing in VARIABLES definitions. + - man: Fix typo in dpkg-source(1). + Thanks to Paul Wise . + - man: Add a reference to deb-symbols(5) in deb-src-symbols(5) DESCRIPTION. + Prompted by #970083. + - man: Specify that symbol, version and id are separated by a single + whitespace. Closes: #970083 + - man: Clarify day-of-month format in deb-changelog(5). + Reported by Axel Beckert . + See #971977. + - man: Update update-alternatives maintainer script usage information. + Prompted by Niels Thykier . + - man: Switch to use L<> markup for URLs instead of B<>. + - doc, man: Clarify that R³ values are case sensitive. + Prompted by Niels Thykier . + - man: Add references to deb822(5) to file formats based on it. + Prompted by Niels Thykier . + - man: Clarify config-files state in dpkg(1). + Prompted by Stuart Prescott . + - man: Fix typos. + - man: Hyphenate multiple words in deb-override(5) format description. + - man: Uppercase acronyms and logic operators. + - man: Empty or whitespace-only lines in deb-conffiles(5) are not accepted. + * Code internals: + - libcompat, dpkg: Stop using deprecated security_context_t data type. + - update-alternatives: Refactor alternative database context freeing into a + new function. + - libdpkg: Do not define the clamp macro when compiling C++ code. + Reported by Helmut Grohne . + - libdpkg: Replace FSF address by pointing to the gnu.org URL. + - libdpkg: Initialize pkgbin's newhash to NULL. + Prompted by Steinar H. Gunderson . + - libdpkg: Use memset() instead of open-coding struct blanking. + Prompted by Steinar H. Gunderson . + - Do not call fsys_hash_init() before command actions. + Prompted by Steinar H. Gunderson . + - libdpkg: Fix m_pipe() function definition prototype to match declaration. + - libdpkg: Refactor new str_rtrim_spaces(). + Based on a patch by Niels Thykier . + - dpkg: Call fsys_hash_find_node() outside tar_fsys_namenode_queue_push(). + - Use a conffilename variable to track the actual conffile name in the + buffer. + Thanks to Niels Thykier . + * Build system: + - Add new gen-changelog tool. + - Pre-process the curses header before parsing it. Closes: #970545 + - Fix variable substitution in man pages. + Reported by Niels Thykier . Closes: #978983 + - Add a README.cpan to be installed as README in the CPAN distribution. + - Do not try to use on GNU/Linux. + - Fix «make distcheck» for man pages. + - Update GitLab CI configuration to use built-in functional test suite. + - Make it possible to override PKGDATADIR on built scripts too. + - Disable umask to 0 for Docker executor in GitLab CI. + - Disable functional test suite debug mode on GitLab CI. + - Sort po4a entries in po4a.cfg. + * Packaging: + - Do not fail the bug-script if readlink fails. Closes: #968397 + - Improve cron file robustness on missing or empty backup files. + Closes: #969472 + - Use AUTOPKGTEST_TMP instead of writing into the source tree. + - Hook the functional test suite into autopkgtest. + - Remove trailing comma from lintian profile file. + - Do not hardcode libdpkg-perl dependency on perl:any. + Thanks to Sven Joachim . + * Test suite: + - Fix short lived memory leaks in unit tests. + - Print the ehandle unit test error output on verbose mode. + - Improve dpkg-divert test to output stdout and stderr. + - Use intermediate variable for directory traversal item iteration. + - Refactor root handling in Dpkg::Path unit tests. + - Refactor test verbose check into an inline function. + - Make it possible to include test.h from benchmarks. + - Disable hash reports in benchmark tests unless verbose. + - Add support for basic test try/catch/finally keywords. + - Merge the dpkg-tests.git repository into tests/. + - Update merged functional test suite assumptions. + - Remove redundant test cases from the functional test suite. + - Remove source package building support from functional test suite. + - When using DPKG_BUILDTREE add scripts/ to DPKG_PATH. + [ Add man pages translations ] + * Portuguese (Américo Monteiro). Closes: #964751 + [ Update dselect translations ] + * Dutch (Frans Spiesschaert). Closes: #968294 + * French (Didier Vidal). Closes: #964749 + [ Update man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #968743 + * German (Helge Kreutzmann). + [ Update programs translations ] + * Dutch (Frans Spiesschaert). Closes: #968744 + * German (Sven Joachim). + [ Update scripts translations ] + * German (Helge Kreutzmann). +- from version 1.20.5 + [ Guillem Jover ] + * Revert change to prefix the specs file spec string self_spec with + + instead of *. The prefix is supposed to go in the text itself + instead of the spec name, which already had it. This change only + apparently fixed the issue at hand because gcc started parsing it as + the «[SUFFIX]:» case, completely disabling the PIE handling. + Thanks to Thorsten Glaser . + * Perl modules: + - Dpkg::Source::Package::V1: Explicitly initialize constructor options to + their implicit values, otherwise other code end up assuming different + defaults. This is required here too as this class does not call the + initialization from its parent. + * Build system: + - Detect the GNU program variants for make, patch and tar in the CPAN + distribution to replace in the Dpkg module. + - Set DEB_BUILD_ARCH to a dummy “amd64” in the CPAN distribution tests + to not require a dpkg(1) in the system. + * Test suite: + - Only print the Dpkg::Path::check_directory_traversal() error on failure. + [ Updated scripts translations ] + * German (Helge Kreutzmann). +- from version 1.20.4 + [ Guillem Jover ] + * Improve PIE flags support: + - Prefix the specs file spec string self_spec with + instead of *. + This way we do not override any previous setting, otherwise when + passing the -specs options twice (f.ex. to compile and link), only the + last one will take effect, which can break the build. Closes: #870383 + * Perl modules: + - Dpkg::Source::Package: Explicitly initialize constructor options to + their implicit values, otherwise other code end up assuming different + defaults. Closes: #964017 + - Dpkg::OpenPGP: Use a temporary directory for the GnuPG homedir in + verify_signature(), to make sure we do not write to the user home + directory, except for the trustkeys.db file if present. + - Dpkg::Path: Refactor new check_directory_traversal() function out of + Dpkg::Source::Package->extract(). + - Dpkg::Path: Do not do partial matches for directory traversal checks, + expect a trailing slash after the base directory name. + - Dpkg::Path: Catch uncanonicanizable pathnames with a proper error. + Closes: #964111 + - Dpkg::Path: Do not consider missing symlink targets a directory + traversal attempt. Closes: #964234 + - Dpkg::Path: Allow /dev/null for directory traversals. + Reported by Holger Levsen . + * Build system: + - Add Module::Signature as configure recommends for CPAN. + * Test suite: + - Use File::Path::make_path() instead of chained mkdir() in Dpkg_Path.t. + - Add unit tests for Dpkg::Path::check_directory_traversal(). + [ Updated programs translations ] + * German (Sven Joachim). +- from version 1.20.3 + [ Guillem Jover ] + * Perl modules: + - Dpkg::OpenPGP: Pass --no-options to gpg in verify_signature(). + Reported by Bertrand Marc . Closes: #963839 + - Dpkg::Build::Info: Clarify by giving context to the + get_build_env_whitelist() deprecation warning. Closes: #963844 + Reported by Sven Joachim . + - Dpkg::Source::Package: Fix check_original_tarball_signature() to make + import_key() honor require_valid_signature, which should default to + false. Reported by Mattia Rizzolo . + - Dpkg::OpenPGP: Use a temporary directory for the GnuPG homedir in + import_key(), to make sure we do not write to the user home directory, + which might be read-only or non-existent. Closes: #963944 + Reported by Mattia Rizzolo . + * Code internals: + - libdpkg: Print a notice if we cannot write to the log file. + * Build system: + - Improve error diagnosis for configure version fetching script. + Prompted by Norbert Preining . + [ Updated programs translations ] + * German (Sven Joachim). +- from version 1.20.2 + * dpkg: Do not include the architecture with --robot --version. + * update-alternatives: Create alternatives directory (/etc/alternatives) + if it is missing, to help with installation bootstrapping. + Reported by Johannes Schauer . + * update-alternatives: Create the log directory if it is missing. + * Perl modules: + - Dpkg::Source::Package: Turn the missing expected tarball signature + error into a warning for now, as it is causing unintended fallout, + and does not play nice (yet) with tarballs repackaged by uscan(1). + Closes: #963821 + * Code internals: + - update-alternatives: Move log_msg() after make_path() so that we can use + the latter. + - update-alternatives: Add new xstrndup() and xdirname() functions. + * Build system: + - Set SHELL in the test environment. + - Do not fail if po4a is not found, and search for it just once. + - Fix name and section generation for translated man pages. This caused + pod2man to get an empty --name argument and not output anything, + resulting in generating empty man pages. Closes: #963794 + * Packaging: + - Sort debian/dpkg-dev.manpages. + - Install deb-src-symbols(5) in dpkg-dev package. +- from version 1.20.1 + [ Guillem Jover ] + * Fix dpkg logging regression introduced in 1.20.0: + - libdpkg: Use varbuf member .used instead of .size in log_message(), + to avoid printing garbage. + - libdpkg: Open the log file as write-only instead of read-only. + Thanks to Roderich Schupp . Closes: #953684 + * Unify and cleanup Makefile fragment files comments, including information + about version of introduction. + * Add new buildopts.mk Makefile fragment to support parsing DEB_BUILD_OPTIONS + options with arguments, such as “parallel” as DEB_BUILD_OPTION_PARALLEL. + * dpkg-genchanges: Handle empty Date fields from parsed debian/changelog. + Based on a patch by Baptiste BEAUPLAT . Closes: #956321 + * dpkg-source: Check that debian/tests/control has the required fields. + Prompted by Felix Lechner . + * dpkg-deb, dpkg: Do not accept relative pathnames in DEBIAN/conffiles. + Reported by Niels Thykier . + * dpkg-split: Fix off-by-one check in ar header padding, that was making + parsing error out on valid archives. Regression introduced in dpkg 1.18.8. + * libdpkg: Fix error message for ending version character in dependency + parser: + - Move the version unterminated case before the catchall. + - Print the actual wrong character and print what is expected. + * libdpkg: Do not use econtext->errmsg on out of context abort, as it might + be uninitialized. + * update-alternatives: Set the umask to 022 on program start. + Reported by Paul Wise . + * dpkg-parsechangelog: Fix --show-field for multiline fields. We were not + stripping trailing whitespace, and were not prefixing empty lines with + a ‘.’, like when printing with the field names. + Reported by Paul Wise . + * dpkg: Add a new --robot option to be used with --version. + * dpkg, dpkg-query: Document missing options in --help output. + * Unify ellipsis formatting in programs --help output. + * Add Protected field support. + * dpkg-realpath: New program, to be used by dpkg-maintscript-helper, and + any maintainer script that needs a realpath that can handle pathnames + relative to the dpkg root directory. + * dpkg-realpath: Add support for DPKG_ROOT. + Thanks to Helmut Grohne . + * dpkg-realpath: Add support for --root and --instdir options. + * dpkg-maintscript-helper: Add support for DPKG_ROOT: + - Add DPKG_ROOT support for conffiles. + Thanks to David Kalnischkies . + - Add DPKG_ROOT support for symlink to and from directory switches. + Based on a patch by Bastien ROUCARIÈS . + Closes: #832176 + * update-alternatives: Add DPKG_ROOT support, and new --root and --instdir + options. Closes: #871808 + * Portability: + - libdpkg: When using uselocale(), include for locale_t if + the header is available. Needed on BSDs. + Reported by Sirio Balmelli . + * Perl modules: + - Dpkg: Add a LICENSE section to the POD. + - Dpkg::Source::Package: Add new get_upstream_signing_key() method. + - Dpkg::Source::Package: Check missing expected tarball signatures. + - Dpkg::Source::Package::V1: Check version format matching source format. + - Dpkg::Vendor::Debian: Add debian-nonupload.gpg keyring. + Thanks to Taowa Munene-Tardif . Closes: #956055 + - Dpkg::Vendor::Debian: Detect merged-usr-via-symlinks also with absolute + pathnames. Reported by Adam Borowski . + - Dpkg::Build::Info: Avoid whitelist in function name. + - Dpkg::Shlibs::SymbolFile: Avoid blacklist and whitelist terms. + * Documentation: + - man: Fix misused two-fonts macros. + Thanks to Bjarni Ingi Gislason . Closes: #955028 + - man: Trim trailing whitespace from output. + Thanks to Bjarni Ingi Gislason . Closes: #955030 + - man: Mention that dpkg(1) does not provide all back-end interfaces. + Prompted by Elana Hashman . + - man: Clarify and fix file formats SYNOPSIS. + - man: Clarify that deb-control(5) is a subset of deb-src-control(5). + Closes: #958229 + - man: Unify warning and note admonitions formatting. + - man: Remove useless commented out macros. + - man: Fix unbalanced quotes in macro arguments. + - man: Specify the indentation level for all following .IP macros, not + just the first one. + - man: Use .TP macros instead of hand-crafted formatting. + - man: Fix font markup for some variable and literal strings. + - dpkg-maintscript-helper: Add -?, --help and --version to --help output. + - man: Fix apt and aptitude references. + Reported by Helge Kreutzmann . + - man: Mark commands (eval) in bold and quote library names (libgcc). + Reported by Helge Kreutzmann . + - man: Use UTF-8 quotes instead of ancient groff register variables. + - man: Use literal double quotes instead of groff escape sequences. + - man: Clarify that we resolve bug reports not bug report numbers. + Reported by Helge Kreutzmann . + - man: Clarify POSIX shell eval command usage in dpkg-architecture(1). + - man: Use item lists instead of verbatim or hand-crafted formatting. + - man: Do not use verbatim formatting for text that is not an example. + - man: Markup examples explicitly with .EX/.EE. + - man: Fix indentation for a note admonition in dpkg-scansources(1). + - man: Document that a 3.0 (quilt) patch cannot create or modify symlinks. + Thanks to Johannes Schauer . + - man: Reword text to reduce length in verbatim code block. + - man: Add semicolons before verbatim code blocks. + - man: Update dselect methods provided. Several got removed in 1.20.0. + - man: The Installed-Size field does not get its value from du(1) since + 1.18.0. + - man: Fix dpkg-gencontrol -P description to not refer to dpkg-source. + Reported by Jakub Wilk . + - man: Place description of override value column on its own paragraph. + - man: Surround markup within verbatim blocks with .nf/.fi. + - man: Balance font markup. + - man: Do not nest font markup. + - man: Use .ig/.. macros to disable text instead of commenting it out. + - man: Do not mark end of sentence period with bold. + - man: Add a missing comma after man page reference in SEE ALSO section. + - man: Convert man pages from roff to POD. + - man: Clarify the dpkg --no-act admonition. + - man: Avoid whitelist term in dpkg-source man page. + * Code internals: + - Use $() in shell or qx() in perl instead of ``. + - dpkg-split: Switch part number variables from unsigned int to int. + - scripts: Refactor shell error handling into a shell library + - Reformat shell code to follow the coding style. + - update-alternatives: Parametrize option names in output strings. + - update-alternatives: Move logging function close to output functions. + - update-alternatives: Move argument parsing functions close to main(). + - update-alternatives: Add general purpose non-failing functions for + administrative directory access. + - update-alternatives: Add filesystem abstraction functions. + * Build system: + - Handle .git being a plain file when getting the dpkg tree version. + - Add debian/changelog as a Changes file to the CPAN distribution. + - Set DPKG_SERIES to 1.20.x when running the functional test suite. + - When using po4a require at least po4a 0.59. Change the po4a --porefs + argument from no longer supported “noline,wrap” to “file”, as wrapping + is the default since po4a 0.58. We require po4a 0.59 as 0.58 had a + regression in its --srcdir support. + - Switch to set the po4a addendum in the po4a_paths section instead of + repeating it for each man page. + - Use po4a conditional addendum support, and remove empty addenda. + - Use po4a mode=eof support in addenda. + - Do not use make prerequisites on suffix rule definitions. + Closes: #961850 + - Add man page number suffixes to the automake SUFFIXES variable. + - Update false positive suppressions for cppcheck 2.1. + - Install specifications and API contracts in docdir. + - Add support for switching man pages from roff to POD format. + - Fix shell files substitution for version variable. + * Packaging: + - Switch to debhelper compatibility level 13. + - Remove debian/tmp prefix from manpages debhelper fragment files. + - Handle missing localized man pages gracefully. + - Install AUTHORS, THANKS, usertags, README.api and + README.feature-removal-schedule only in dpkg.deb. + - Rename debian/usertags to debian/README.bug-usertags. + - Install specifications to /usr/share/doc/dpkg/ in the dpkg-dev package. + - Detect merged-usr-via-symlinks also with absolute pathnames in + bug-script. Reported by Adam Borowski . + * Test suite: + - Rename deb-content test cases to make them more descriptive. + - Skip autogenerated files from codespell. + [ Updated programs translations ] + * German (Sven Joachim). + * Simplified Chinese (Boyuan Yang). Closes: #958437 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * German (Helge Kreutzmann). +- from version 1.20.0 + [ Guillem Jover ] + * libdpkg: Do not generate a backup file for the available database. + Closes: #343578 + * 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 ambiguous. + * 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. Closes: #927752 + * dpkg-shlibdeps: Add support for new Build-Depends-Packages, to be able + to specify multiple packages. Closes: #926669 + Based on a patch by Frank Schaefer . + * 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. Closes: #934980 + * libdpkg, dpkg: Use new versiondescribe_c() for non-localizable call sites, + such as when writing to a log, which should not be localized. + Reported by Julien Cristau . + * dpkg-query: Try to use the package synopsis from the available file if + not installed. Closes: #43573 + * dpkg-gencontrol: Take into account hardlinks when computing the + Installed-Size substvar. Closes: #923475 + Patch co-authored with Sven Joachim . + * dpkg: Fix and clarify behavior for packages marked to be on “hold”. These + need to be processed for configuration and triggers. Closes: #926472 + * dpkg: Use DPKG_ADMINDIR to set the admindir. Closes: #900071 + * dpkg-source: Remove backwards compatibility code for legacy build-profiles. + * perl: Give more context on field parsing errors. Closes: #637060 + * dpkg-buildpackage: Add option to sanitize environment. Closes: #843776 + * 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: + Closes: #914515 + - 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. + Closes: #647911 + - 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 . + * dpkg-buildpackage: Do not accept equal signs as part of the hook names. + Reported by Daniel Shahaf . Closes: #948291 + * 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 . + - 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. Closes: #920878 + * po: Fix translation of --compare-versions. Closes: #951614 + Thanks to Boyuan Yang . + * Perl modules: + - Dpkg::Source::Package: Verify original tarball signatures at build time. + - Dpkg::BuildFlags: Add new unset() method. + Requested by Daniel Schepler . + - Dpkg::Source::Package::V2: Emit a special patch header on + single-debian-patch. Closes: #933152 + - Dpkg::Vendor::Debian: Only scan /usr/local/ directories that exist. + Closes: #932967 + - Dpkg::Vendor::Debian: Do not set -Werror=implicit-function-declaration + for C++. Closes: #939969 + - Dpkg::Deps: Check for valid virtual package version relations. Do not + allow non-equal version relations in virtual provides. Closes: #930317 + - 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 internal 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. + Closes: #932841 + - 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 . + * 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 . + - Dpkg::Changelog: Document methods provided by subclasses. + Reported by Felix Lechner . + - 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 . + - man: Clarify deb-changelog(5) format. Closes: #946780 + - man: Clarify debian/source/include-binaries format in dpkg-source(1). + Prompted by Felix Lechner . + - 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 . + - 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 redundant 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 unimportant 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 . Closes: #939516 + - dselect: Remove methods state files on purge. + Spotted by Sven Joachim . + - 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). Closes: #935695 + * Simplified Chinese (Mo Zhou). Closes: #942195, #945776 + [ Updated dselect translations ] + * German (Sven Joachim). + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * German (Helge Kreutzmann). Closes: #931135 +- from version 1.19.7 + [ Guillem Jover ] + * dpkg: Fix off-by-one error in dpkg --abort-error. Closes: #924886 + Thanks to Tom Goulet . + * dpkg: Set the force defaults before loading the config file, otherwise we + incorrectly override them. Regression introduced in dpkg 1.19.5. + Closes: #928671 + * dpkg: Split the trigger dependtry into two, the second of which will be + the one checking trigger cycles when deferring trigger processing due to + unsatisfiable dependencies. Closes: #928429 + * dpkg-deb: Validate ar member magic before normalizing any of its fields. + * dpkg-deb: Honor --nocheck when building packages with newlines in + filenames. Regression introduced in dpkg 1.18.1. Closes: #929727 + * Documentation: + - rootless-builds.txt: Expand what the builder means. Mention the + dpkg-deb option to use to set the owner and group to root. And reword + the prototyping section to be less confusing with what is currently + implemented. Closes: #929019 + - README: Clarify when autopoint is needed. Closes: #929601 + - Fix typos in docs and output strings. Warned by codespell. + [ Updated programs translations ] + * Catalan (Guillem Jover). + [ Updated dselect translations ] + * Catalan (Guillem Jover). + [ Updated scripts translations ] + * Catalan (Guillem Jover). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #926665 + * French (Jean-Pierre Giraud). Closes: #929664 +- from version 1.19.6 + [ Guillem Jover ] + * libdpkg: Add a new TAR_FORMAT_UNKNOWN enum value. + * libdpkg: Set tar_entry to zero on tar_entry_destroy(), to avoid double + free()s and the subsequent crashes. + * libdpkg: Handle non end-of-tape errors from tar_header_decode(). + * libdpkg: Use ERANGE instead of EINVAL for tar_atol8() out-of-range error. + * dpkg-gencontrol: Check presence of package build dir before traversing it. + * Perl modules: + - Dpkg::Source::Package::V1: Change default build option style to -sa. + Using -sA by default means the user might lose data on overwrite if + there is already a directory with the same name laying around. + Closes: #910737 + - Dpkg::Source::Package: Handle Format field being undefined. On source + format 1.0, the default is for the debian/source/format file not being + present, which means we'll start with an empty Format field name. + Regression introduced in dpkg 1.19.3. + * Packaging: + - Update usertags. + - Install a lintian profile for dpkg based on the debian profile, so that + we can suppress Debian-specific tags, such as the controversial one on + vendor-specific patch series files. + - Add Breaks on lsb-base due to start-stop-daemon exposing breakage in + the killproc function from /lib/lsb/init-functions. Closes: #923861 + * Test suite: + - Stop requiring (pseudo-)root in the functional test suite. + - Export and move TESTDATA definition close to the PATH definition. + - Quote the 'yes' command to make a comment clearer. + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #924776 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #924777 + * German (Helge Kreutzmann). +- from version 1.19.5 + [ Guillem Jover ] + * start-stop-daemon: Make sure that we get a meaningful errno on + parse_unsigned(), so that the error messages always make sense. + * start-stop-daemon: Add new fatalv() and fatale() functions and use the + latter for system errors, so that we are explicit on whether we want to + use errno for error reporting or not. + * start-stop-daemon: Always refuse to parse a world-writable pidfile, + except when that is /dev/null. + * dpkg: Print the current set of enabled force options on --force-help. + * dpkg: Parse and set new DPKG_FORCE environment variable for subprocesses. + Closes: #666147 + * dpkg-statoverride: Add support for --force-* options. + * dpkg-statoverride: Switch from --force option to new --force- + options. Deprecate --force option which will be considered an alias for + --force-all for now. + * dpkg, dpkg-statoverride: Add new option --refuse-security-mac to control + SELinux. See #811037. + * dpkg: Clarify error on unknown system user/group in statoverride database. + Closes: #920880 + * dpkg-buildpackage: Clarify the warning/error on short OpenPGP key IDs. + Closes: #922039 + * dpkg-maintscript-helper: Restrict find for dir-to-symlink move to + -maxdepth 1. Thanks to Ralf Treinen . Closes: #922799 + * dpkg-genbuildinfo: Add support for a new Build-Tainted-By field in + .buildinfo files. Suggested by Alexander E. Patrakov . + * libdpkg: Clarify field names in error and warning messages. + * libdpkg: Optimize error handling. Move the error reporting outside the + involved functions so that we do not need to call gettext if there is no + error, which has a significant performance cost. + * libdpkg: Merge nicknames table into fieldinfos, to stop penalizing the + lookup of non-obsolete fieldnames. + * libdpkg: Print a more accurate warning for Revision nicknames. + * libdpkg: Increase the pkg-hash bins size to 65521, to improve hash table + performance at the cost of a bit more memory usage. + * libdpkg: Blank packages that are not-installed with unknown selection. + Closes: #922410 + * libdpkg, dpkg: Print the dpkg database directory on access errors. + Closes: #883700 + * Perl modules: + - Dpkg::Vendor::Debian: Add support for merged-usr-via-symlinks tainted + tag. Suggested by Alexander E. Patrakov . + - Dpkg::Vendor::Debian: Add support for usr-local-has-* tainted tags. + - Dpkg::Source::Package: Add a missing use Dpkg::Source::Format. + Diagnosed by Ian Jackson . + Closes: #921031 + * Documentation: + - start-stop-daemon(1): Document behavior of --pidfile security checks. + Closes: #921557 + - dpkg(1): Document the unknown selection state. Closes: #922407 + * Code internals: + - dpkg: Move SELinux fallback label to the SELinux specific code path. + - dpkg: Simplify maintscript_set_exec_context(). + - dpkg: Move force options support into its own file. + - dpkg: Do not hardcode the program name in the --force-help output. + - dpkg: Switch force options from individual variables to bit fields. + - dpkg: Switch from a char to an enum to track the force options types. + - dpkg: Switch to set the default force option from the forceinfos array. + - libdpkg: New benchmark programs and infrastructure. + - libdpkg: Add new dpkg_error_move() function. + - libdpkg: Add new dpkg_has_error() function. + - libdpkg: Move status names from parse errors to arguments. + - libdpkg: Use va_arg copy instead of the original on a vasprintf() call. + - libdpkg: Include in pager.c. + Reported by Y . Closes: #922212 + - libdpkg: Use pkg_set_want() instead of a direct assignment. + * Build system: + - Check whether this dist is a release, based only on the version format. + This will avoid having to do a two staged release to get a proper perl + distribution tarball. + * Packaging: + - autopkgtest: Add file to Depends fields. + - autopkgtest: Clarify behavior on root/non-root requirement. + - Bump Standards-Version to 4.3.0 (no changes required). + - Remove now unused assert usertag description. + - Remove trailing whitespace from changelog. + - Remove Origin and Bugs fields from control file. + - Include a bug-script to report on tainted merged-usr-via-symlinks. + * Test suite: + - libdpkg: Fix unit test for file_slurp(). Closes: #920974 + Diagnosed by Frank Schaefer . + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #921942 + * German (Sven Joachim). + * Simplified Chinese (Zhou Mo). Closes: #920972 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #921943 + * French (Jean-Pierre Giraud). Closes: #920905 + * German (Helge Kreutzmann). +- from version 1.19.4 + * start-stop-daemon: Do not sanity check the pidfile when it is specified as + /dev/null, as that implies the caller wants to start the program no matter + what. Closes: #920242 + * Portability: + - start-stop-daemon: Only use SO_PASSCRED if defined. Fixes build failure + at least on GNU/Hurd. + * Packaging: + - autopkgtest: Pass --disable-nls and --disable-dselect to configure. + - autopkgtest: Change Depends to «build-essential, autoconf, pkg-config». +- from version 1.19.3 + [ Guillem Jover ] + * dpkg-source: Stop filtering @builddeps@ from Testsuite-Triggers field. + Closes: #910734 + * dpkg-genchanges: Only reference binary packages being uploaded, which + means that for a source-only upload, the Binary and Description fields + should be empty. Closes: #818618 + * dpkg-scanpackages: Do not compute unnecessary checksums when using the + --hash argument. Based on a patch by Chris Lamb . + Closes: #916456 + * dpkg-scanpackages: Emit a warning with the list of repeat packages. + Prompted by Johannes Schauer . + * start-stop-daemon: Check whether standalone --pidfile use is secure. + Prompted by Michael Orlitzky . + * start-stop-daemon: Print complete verbose lines, instead of partial lines + with no newlines and a final print with a newline. + * start-stop-daemon: Add new --notify-await and --notify-timeout options, + which implement the systemd readiness protocol for services. + Closes: #910707 + * update-alternatives: Add new --debug option. + * update-alternatives: Fix removal of obsolete slaves from the linked list. + Reported by Andreas Beckmann . Closes: #916799 + * vendor.mk: Fix dpkg_vendor_derives_from macro documentation. + Thanks to Colin Watson . Closes: #913816 + * vendor.mk: Add support for an improved dpkg_vendor_derives_from macro. + Version the macros so that both can be used, and default the unversioned + one to the version 0 macro. + * dpkg: Mark the package we are giving up on a trigger cycle as "istobe" + normal, so that the dependency checks know they cannot expect this package + to be processed anymore. Otherwise we ended up never detecting that we + were not making progress, as we expected to process this package at a later + point, when that would never happen anymore. This then was causing asserts + in the process queue loop. Closes: #901127, #910819 + * dpkg: Reset progress_bytrigproc once we have injected it into the current + package process queue iteration, so that we do not keep trying to process + it, which might end up generating artificial trigger cycles, if + dependencies are not satisfied yet. + * dpkg: Convert one trigger processing required type into the new try-queued + one, so that we stop skipping unsatisfiable dependency checks. + * dpkg: Move trigproc cycle reset inside try-deferred conditional. We should + only reset the cycle detection in case we are not bailing out from the + processing with an error, otherwise we could come back to this package and + detect an artificial trigger cycle. + * dpkg: Introduce a new dependency try level for trigger processing. This + completely defers trigger processing until after the dependency cycle + breaking level, so to avoid generating artificial trigger cycles, when we + end up trying to process triggers with yet unsatisifiable dependencies. + Closes: #810724, #854478, #911620 + * dpkg: Fix --help output, to clarify which arguments are optional. + * libdpkg: Add proper tar error handling. This makes the tar extractor + track and report back parse errors, so that we can give more descriptive + messages. + * libdpkg: Detect unsupported tar entry types to give better error messages. + * libdpkg: Add new db-fsys:Files and db-fsys:Last-Modified virtual fields. + * Perl modules: + - Dpkg::Changelog::Debian: Preserve modelines at EOF. Closes: #916056 + Thanks to Chris Lamb for initial test cases. + - Dpkg::File: Make file_slurp() also accept pathnames in addition to + filehandles. + - Dpkg::Vendor::Ubuntu: Fix buildflags override after default setting move. + Based on a patch by Iain Lane and + Adam Conrad . Closes: #915881 + - Dpkg::Shlibs::Objdump: Remove unused Dpkg::IPC import. + - Dpkg::Shlibs::Objdump: Only select objdump program when going to use it. + - Dpkg::Source::Package: Do not reinitialize fields member in constructor. + - Dpkg::Source::Patch: Do not recommend --include-removal when not + supported. Closes: #913012 + - Dpkg::Source::Package::V3::Bzr: Fix format name in output message. + - Dpkg::Source::Package: Add a new format option to the new constructor. + Prompted by James McCoy . + - Dpkg::Source::Package: Improve debian/source/format parsing and + validation. + - Dpkg::Source::Format: New public module. + Prompted by Mattia Rizzolo . + * Documentation: + - dpkg(1): Clarify --remove action. Closes: #914478 + - dpkg-query(1): Clarify --list option behavior when no arguments are + specified. Closes: #917098 + - deb-control(5): Clarify by adding a reference to deb-src-control(5) and + removing an invalid comment in the example. + Prompted by Helmut Grohne . + - dpkg(1): Clarify databases used by --yet-to-unpack and --predep-package. + Prompted by Johannes Schauer . + - Clarify character classes for various formats in man pages, by + explicitly listing the character ranges within parenthesis. + Prompted by Ian Jackson . + - dpkg-query(1): Document the version introducing the -f option. + - dpkg-architecture(1): Add reference to the TERMS section in the + VARIABLES section. Prompted by Axel Beckert . + - Fix POD for Dpkg::Interface::Storable derived method implementations. + - Dpkg::Deps::Simple(3): Fix POD signature for new constructor. + * Code internals: + - dpkg-maintscript-helper: Use an explicit escape instead of a literal + backslash. + - Quote shell variables. Reported by Johannes Schauer . + - Switch perl code to use the new Dpkg::Source::Format module. + - dpkg-source: Move source format selection earlier in the build. + - dpkg-source: Use new format argument for Dpkg::Source::Package->new(). + - dpkg-shlibdeps: Remove unused variable. + - dpkg-scanpackages: Unroll a single iteration loop. + - start-stop-daemon: Compare foundany against 0 instead of treating it + like a boolean. + - start-stop-daemon: Switch code to use new info() and debug() functions. + - update-alternatives: Use enums for actions instead of strings. + - update-alternatives: Switch verbose selection into an enum. + - dpkg: Negate tortoise_not_in_hare() function name and return value. + - dpkg: Initialize trigcyclenode's next member once. + - dpkg: Use common pattern of assigning as an iterator. + - dpkg: Factor trigproc_new_cyclenode() out from check_trigger_cycle(). + - dpkg: Switch dependtry from an int to an enum. + - dpkg: Move dependtry description from deferred_configure() to its + declaration. + - dpkg: Split trigger processing types into required, try-queued and + try-deferred. + - dpkg-query: Rename variable to avoid shadowing a local function. + - When allocating use the variable instead of the type in sizeof(). + - dselect: Rename variable r to pkgbin. + - libdpkg, dpkg: Rename r variables to fnn. + - libdpkg: Rename ret variable to next. + - libdpkg: Cleanup fsys module symbol names. + - libdpkg: Rename pkg_db symbols to pkg_hash. + - libdpkg: Add new warning printer setter function. + Prompted by Julian Andres Klode . + - libdpkg: Add new DPKG_ERROR_OBJECT macro. + * Build system: + - get-version: Use a format string with printf. + - run-script: Use $() instead of deprecated ``. + - run-script: Remove unused PERL_PROFILE variable, PERL5OPT can be used + instead, and does not require leaving an unquoted variable around. + - run-script: Add «set -e». + - Build.PL: Set environment variables only for CPAN tests. + - Build.PL: Set locale for CPAN tests to C. Fixes CPAN#127314. + - configure: Split AM_INIT_AUTOMAKE arguments into different lines. + * Packaging: + - Bump Standards-Version to 4.2.1 (no changes needed). + - Switch to debhelper compatibility level 11. + - Create the log file in postinst only if it does not exist. + Prompted by Johannes Schauer . + - Add superficial autopkgtest functional tests. + * Test suite: + - Add new shellcheck author test. + - Add descriptions for the shellcheck exclude codes. + - Update cppcheck suppressions. + [ Updated programs translations ] + * Dutch (Frans Spiesschaert). Closes: #912023 + * German (Sven Joachim). + * Italian (Milo Casagrande). Closes: #915610 + * Portuguese (Miguel Figueiredo). Closes: #917813 + * Simplified Chinese (Zhou Mo). Closes: #919040 + [ Updated scripts translations ] + * German (Helge Kreutzmann). + [ Updated man pages translations ] + * Dutch (Frans Spiesschaert). Closes: #912024 + * German (Helge Kreutzmann). +- from version 1.19.2 + [ 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. + Closes: #487108 + * 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 . + * 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 . + - dsc(5): Add a reference to where the source formats are described. + Prompted by Manuel A. Fernandez Montecelo . + - dpkg-source(1): Improve documentation on vendor-specific series files. + - deb-control(5): Document Build-Ids field. + Prompted by Stuart Prescott . + - dpkg(1): Clarify which fields are affected by dependency options. + Prompted by James Clarke . + - 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 . + * 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). +- from version 1.19.1 + [ 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 . Closes: #878899 + * Do not try to recompute hashes for the .dsc file when signing binary-only + builds in dpkg-buildpackage. Reported by Ximin Luo . + * 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 . + * Add color support to dpkg-maintscript-helper (a shell script). + * Fix warning by including 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 . + * Add new AS, STRIP, OBJCOPY, OBJDUMP, NM, AR and RANLIB buildtools + variables to buildtools.mk. Prompted by Helmut Grohne . + * 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 + , following the specification. + * Specify that DEB_GAIN_ROOT_CMD in R³ should preserve the environment. + Proposed by Josh Triplett . + * 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 + * Increment the line number on dpkg --set-selections on unknown packages. + Reported by Heinz Repp . 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 . + Closes: #850417, #851984 + * 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 . + * 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 + - 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 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 . + 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 , on IRC. Closes: #881051 + - Dpkg::Changelog: Print versions for incorrect changelog range warnings. + Thanks to Paul Wise . + - 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 . 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 . + - 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 . + - 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 . + - 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 . + - 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 . + - 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 . + - 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). + ------------------------------------------------------------------- Thu Jan 14 09:33:00 UTC 2021 - Ludwig Nussel diff --git a/update-alternatives.spec b/update-alternatives.spec index c491de5..9769e55 100644 --- a/update-alternatives.spec +++ b/update-alternatives.spec @@ -17,7 +17,7 @@ Name: update-alternatives -Version: 1.19.0.5 +Version: 1.20.9 Release: 0 Summary: Maintain symbolic links determining default commands License: GPL-2.0-or-later From 28727f17d6843c56dc53b8f9532cd1204faf8a9c5b2f42ff4ec73e9c04254486 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Tue, 8 Jun 2021 12:46:29 +0000 Subject: [PATCH 2/4] Accepting request 898417 from system:packagemanager - use-clamp-from-C-STD-library.patch: actually remove the clamp macro instead of using fragile preprocessor patches OBS-URL: https://build.opensuse.org/request/show/898417 OBS-URL: https://build.opensuse.org/package/show/system:packagemanager/dpkg?expand=0&rev=82 --- dpkg.changes | 6 +++++ use-clamp-from-C-STD-library.patch | 41 ++++++++++++++++-------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/dpkg.changes b/dpkg.changes index d11364c..dfb6e1b 100644 --- a/dpkg.changes +++ b/dpkg.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jun 8 11:37:06 UTC 2021 - Adam Majer + +- use-clamp-from-C-STD-library.patch: actually remove the clamp + macro instead of using fragile preprocessor patches + ------------------------------------------------------------------- Thu Apr 29 08:28:48 UTC 2021 - John Paul Adrian Glaubitz diff --git a/use-clamp-from-C-STD-library.patch b/use-clamp-from-C-STD-library.patch index 4b9c43e..75feebd 100644 --- a/use-clamp-from-C-STD-library.patch +++ b/use-clamp-from-C-STD-library.patch @@ -7,27 +7,30 @@ Subject: [PATCH] Use clamp from C++ STD library. lib/dpkg/macros.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/lib/dpkg/macros.h b/lib/dpkg/macros.h -index 0c1937a..34387d9 100644 ---- a/lib/dpkg/macros.h -+++ b/lib/dpkg/macros.h -@@ -112,7 +112,6 @@ - #ifndef max - #define max(a, b) ((a) > (b) ? (a) : (b)) +Index: dpkg-1.20.9/lib/dpkg/macros.h +=================================================================== +--- dpkg-1.20.9.orig/lib/dpkg/macros.h ++++ dpkg-1.20.9/lib/dpkg/macros.h +@@ -144,22 +144,6 @@ #endif + #endif + +-/** +- * @def clamp +- * +- * Returns a normalized value within the low and high limits. +- * +- * @param v The value to clamp. +- * @param l The low limit. +- * @param h The high limit. +- */ +-/* For C++ use native implementations from STL or similar. */ +-#ifndef __cplusplus +-#ifndef clamp +-#define clamp(v, l, h) ((v) > (h) ? (h) : ((v) < (l) ? (l) : (v))) -#endif - - /** - * @def clamp -@@ -127,6 +126,8 @@ - #define clamp(v, l, h) ((v) > (h) ? (h) : ((v) < (l) ? (l) : (v))) - #endif - -+#endif -+ +-#endif +- /** @} */ #endif /* LIBDPKG_MACROS_H */ --- -2.31.1 - From 2e6429b69da77136d87e059d87b99f29b82eac0ce36ed09f344c2296ab0bc6d7 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Tue, 8 Jun 2021 12:56:50 +0000 Subject: [PATCH 3/4] - use-clamp-from-C-STD-library.patch: removed, upstreamed OBS-URL: https://build.opensuse.org/package/show/system:packagemanager/dpkg?expand=0&rev=83 --- dpkg.changes | 3 +-- dpkg.spec | 3 --- use-clamp-from-C-STD-library.patch | 36 ------------------------------ 3 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 use-clamp-from-C-STD-library.patch diff --git a/dpkg.changes b/dpkg.changes index dfb6e1b..932a38f 100644 --- a/dpkg.changes +++ b/dpkg.changes @@ -1,8 +1,7 @@ ------------------------------------------------------------------- Tue Jun 8 11:37:06 UTC 2021 - Adam Majer -- use-clamp-from-C-STD-library.patch: actually remove the clamp - macro instead of using fragile preprocessor patches +- use-clamp-from-C-STD-library.patch: removed, upstreamed ------------------------------------------------------------------- Thu Apr 29 08:28:48 UTC 2021 - John Paul Adrian Glaubitz diff --git a/dpkg.spec b/dpkg.spec index ea1a504..2da7bc1 100644 --- a/dpkg.spec +++ b/dpkg.spec @@ -30,8 +30,6 @@ Patch1: update-alternatives-suse.patch # PATCH-FIX-SUSE: tar of Leap 42.{2,3} does not recognize --sort=name, --clamp-mtime options Patch2: drop-tar-option.patch Patch3: ncurses-fix.patch -# PATCH-FIX-OPENSUSE: Use clamp from C++ STD library. -Patch4: use-clamp-from-C-STD-library.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ @@ -91,7 +89,6 @@ Libraries and header files for dpkg. %patch2 -p1 %endif %patch3 -p1 -%patch4 -p1 %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects diff --git a/use-clamp-from-C-STD-library.patch b/use-clamp-from-C-STD-library.patch deleted file mode 100644 index 75feebd..0000000 --- a/use-clamp-from-C-STD-library.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 43bf69b419bcfc0c601015d753b921b6849bae06 Mon Sep 17 00:00:00 2001 -From: Martin Liska -Date: Fri, 23 Apr 2021 11:03:59 +0200 -Subject: [PATCH] Use clamp from C++ STD library. - ---- - lib/dpkg/macros.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: dpkg-1.20.9/lib/dpkg/macros.h -=================================================================== ---- dpkg-1.20.9.orig/lib/dpkg/macros.h -+++ dpkg-1.20.9/lib/dpkg/macros.h -@@ -144,22 +144,6 @@ - #endif - #endif - --/** -- * @def clamp -- * -- * Returns a normalized value within the low and high limits. -- * -- * @param v The value to clamp. -- * @param l The low limit. -- * @param h The high limit. -- */ --/* For C++ use native implementations from STL or similar. */ --#ifndef __cplusplus --#ifndef clamp --#define clamp(v, l, h) ((v) > (h) ? (h) : ((v) < (l) ? (l) : (v))) --#endif --#endif -- - /** @} */ - - #endif /* LIBDPKG_MACROS_H */ From cb5e5d44ed40dde1dc8a107f6c072a712c07412ffa75c8bfd4b9197d612b7ff0 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Thu, 10 Jun 2021 10:39:06 +0000 Subject: [PATCH 4/4] - do not include update-alternative manpages in dpkg OBS-URL: https://build.opensuse.org/package/show/system:packagemanager/dpkg?expand=0&rev=84 --- dpkg.changes | 3 ++- dpkg.spec | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dpkg.changes b/dpkg.changes index 932a38f..9d3fbb8 100644 --- a/dpkg.changes +++ b/dpkg.changes @@ -1,6 +1,7 @@ ------------------------------------------------------------------- -Tue Jun 8 11:37:06 UTC 2021 - Adam Majer +Thu Jun 10 10:36:50 UTC 2021 - Adam Majer +- do not include update-alternative manpages in dpkg - use-clamp-from-C-STD-library.patch: removed, upstreamed ------------------------------------------------------------------- diff --git a/dpkg.spec b/dpkg.spec index 2da7bc1..670aaf2 100644 --- a/dpkg.spec +++ b/dpkg.spec @@ -159,6 +159,7 @@ exit 0 %license COPYING %doc ABOUT-NLS AUTHORS doc/triggers.txt NEWS README* THANKS TODO debian/changelog %{_mandir}/man*/* +%exclude %{_mandir}/man*/update-alternatives* %exclude %{_datadir}/doc/dpkg/*.txt %exclude %{_datadir}/doc/dpkg/README* %dir %{_sysconfdir}/dpkg