summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-07 13:33:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-07 13:33:19 +0000
commit3f1258827986359d7b6b317da851c40bff20d120 (patch)
treef20c0da4a146994152f62b31569ec29adf864bf8
parentReleasing progress-linux version 1.22.10-0.0~progress7.99u1. (diff)
downloaddpkg-3f1258827986359d7b6b317da851c40bff20d120.tar.xz
dpkg-3f1258827986359d7b6b317da851c40bff20d120.zip
Merging upstream version 1.22.11.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--.dist-vcs-id2
-rw-r--r--.dist-version2
-rw-r--r--ChangeLog280
-rwxr-xr-xconfigure22
-rw-r--r--dselect/po/bs.po2
-rw-r--r--dselect/po/ca.po2
-rw-r--r--dselect/po/cs.po2
-rw-r--r--dselect/po/da.po2
-rw-r--r--dselect/po/de.po2
-rw-r--r--dselect/po/dselect.pot4
-rw-r--r--dselect/po/el.po2
-rw-r--r--dselect/po/es.po2
-rw-r--r--dselect/po/et.po2
-rw-r--r--dselect/po/eu.po2
-rw-r--r--dselect/po/fr.po2
-rw-r--r--dselect/po/gl.po2
-rw-r--r--dselect/po/hu.po2
-rw-r--r--dselect/po/id.po2
-rw-r--r--dselect/po/it.po2
-rw-r--r--dselect/po/ja.po2
-rw-r--r--dselect/po/ko.po2
-rw-r--r--dselect/po/nb.po2
-rw-r--r--dselect/po/nl.po2
-rw-r--r--dselect/po/nn.po2
-rw-r--r--dselect/po/pl.po2
-rw-r--r--dselect/po/pt.po2
-rw-r--r--dselect/po/pt_BR.po2
-rw-r--r--dselect/po/ro.po2
-rw-r--r--dselect/po/ru.po2
-rw-r--r--dselect/po/sk.po2
-rw-r--r--dselect/po/sv.po2
-rw-r--r--dselect/po/tl.po2
-rw-r--r--dselect/po/vi.po2
-rw-r--r--dselect/po/zh_CN.po2
-rw-r--r--dselect/po/zh_TW.po2
-rw-r--r--man/de/deb-buildinfo.pod2
-rw-r--r--man/de/deb-changes.pod2
-rw-r--r--man/de/deb-substvars.pod2
-rw-r--r--man/de/dpkg-buildpackage.pod16
-rw-r--r--man/de/dpkg-deb.pod12
-rw-r--r--man/de/dsc.pod2
-rw-r--r--man/deb-buildinfo.pod2
-rw-r--r--man/deb-changes.pod2
-rw-r--r--man/dsc.pod2
-rw-r--r--man/fr/deb-buildinfo.pod2
-rw-r--r--man/fr/deb-changes.pod2
-rw-r--r--man/fr/dsc.pod2
-rw-r--r--man/nl/deb-buildinfo.pod2
-rw-r--r--man/nl/deb-changes.pod2
-rw-r--r--man/nl/dsc.pod2
-rw-r--r--man/po/de.po152
-rw-r--r--man/po/dpkg-man.pot6
-rw-r--r--man/po/es.po4
-rw-r--r--man/po/fr.po8
-rw-r--r--man/po/hu.po4
-rw-r--r--man/po/it.po4
-rw-r--r--man/po/ja.po4
-rw-r--r--man/po/nl.po8
-rw-r--r--man/po/pl.po4
-rw-r--r--man/po/pt.po8
-rw-r--r--man/po/pt_BR.po4
-rw-r--r--man/po/ru.po4
-rw-r--r--man/po/sv.po8
-rw-r--r--man/po/zh_CN.po4
-rw-r--r--man/pt/deb-buildinfo.pod2
-rw-r--r--man/pt/deb-changes.pod2
-rw-r--r--man/pt/dsc.pod2
-rw-r--r--man/sv/deb-buildinfo.pod2
-rw-r--r--man/sv/deb-changes.pod2
-rw-r--r--man/sv/dsc.pod2
-rw-r--r--po/ast.po2
-rw-r--r--po/bs.po2
-rw-r--r--po/ca.po2
-rw-r--r--po/cs.po2
-rw-r--r--po/da.po2
-rw-r--r--po/de.gmobin173740 -> 176503 bytes
-rw-r--r--po/de.po62
-rw-r--r--po/dpkg.pot4
-rw-r--r--po/dz.po2
-rw-r--r--po/el.po2
-rw-r--r--po/eo.po2
-rw-r--r--po/es.po2
-rw-r--r--po/et.po2
-rw-r--r--po/eu.po2
-rw-r--r--po/fr.po2
-rw-r--r--po/gl.po2
-rw-r--r--po/hu.po2
-rw-r--r--po/id.po2
-rw-r--r--po/it.po2
-rw-r--r--po/ja.po2
-rw-r--r--po/km.po2
-rw-r--r--po/ko.po2
-rw-r--r--po/ku.po2
-rw-r--r--po/lt.po2
-rw-r--r--po/mr.po2
-rw-r--r--po/nb.po2
-rw-r--r--po/ne.po2
-rw-r--r--po/nl.po2
-rw-r--r--po/nn.po2
-rw-r--r--po/oc.po2
-rw-r--r--po/pa.po2
-rw-r--r--po/pl.po2
-rw-r--r--po/pt.po2
-rw-r--r--po/pt_BR.po2
-rw-r--r--po/ro.po2
-rw-r--r--po/ru.po2
-rw-r--r--po/sk.po2
-rw-r--r--po/sv.po2
-rw-r--r--po/th.po2
-rw-r--r--po/tl.po2
-rw-r--r--po/tr.po2
-rw-r--r--po/vi.po2
-rw-r--r--po/zh_CN.po2
-rw-r--r--po/zh_TW.po2
-rw-r--r--scripts/Dpkg/OpenPGP/Backend/GnuPG.pm8
-rw-r--r--scripts/Dpkg/Shlibs/Cppfilt.pm2
-rw-r--r--scripts/Makefile.am14
-rw-r--r--scripts/Makefile.in14
-rw-r--r--scripts/po/ca.po2
-rw-r--r--scripts/po/de.gmobin121524 -> 125208 bytes
-rw-r--r--scripts/po/de.po146
-rw-r--r--scripts/po/dpkg-dev.pot4
-rw-r--r--scripts/po/es.po2
-rw-r--r--scripts/po/fr.po2
-rw-r--r--scripts/po/nl.po2
-rw-r--r--scripts/po/pl.po2
-rw-r--r--scripts/po/pt.po2
-rw-r--r--scripts/po/ru.po2
-rw-r--r--scripts/po/sv.po2
-rw-r--r--scripts/t/Dpkg_Changelog.t486
-rw-r--r--scripts/t/Dpkg_Shlibs.t713
-rw-r--r--scripts/t/Dpkg_Shlibs/anglebrackets.cpp23
-rw-r--r--scripts/t/Dpkg_Shlibs/anglebrackets.symbols7
-rw-r--r--scripts/t/Dpkg_Shlibs/objdump.anglebrackets71
-rwxr-xr-xscripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl1
-rw-r--r--scripts/t/Dpkg_Shlibs_Cppfilt.t40
-rw-r--r--src/at/package.m44
-rwxr-xr-xsrc/at/testsuite10
138 files changed, 1458 insertions, 907 deletions
diff --git a/.dist-vcs-id b/.dist-vcs-id
index 5a10a19..9867029 100644
--- a/.dist-vcs-id
+++ b/.dist-vcs-id
@@ -1 +1 @@
-ef5536cfe24e4c41c6fdc56e4530161fade3887c
+ee7e9118d0a9581cb00c5ce02dccd561b3096387
diff --git a/.dist-version b/.dist-version
index f5ae945..3dfc2ec 100644
--- a/.dist-version
+++ b/.dist-version
@@ -1 +1 @@
-1.22.10
+1.22.11
diff --git a/ChangeLog b/ChangeLog
index d5b7793..cf0004a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,283 @@
+commit ee7e9118d0a9581cb00c5ce02dccd561b3096387
+Author: Guillem Jover <guillem@debian.org>
+Date: Thu Aug 1 12:44:43 2024 +0200
+
+ Release 1.22.11
+
+ debian/changelog | 30 +++++++++++++++++++++++++++---
+ 1 file changed, 27 insertions(+), 3 deletions(-)
+
+commit 54aec70de7aad9c7ed45befae9eb68ce72e5fdc1
+Author: Guillem Jover <guillem@debian.org>
+Date: Thu Aug 1 12:39:15 2024 +0200
+
+ po: Regenerate .pot files and merge .po files with them
+
+ dselect/po/bs.po | 2 +-
+ dselect/po/ca.po | 2 +-
+ dselect/po/cs.po | 2 +-
+ dselect/po/da.po | 2 +-
+ dselect/po/de.po | 2 +-
+ dselect/po/dselect.pot | 4 ++--
+ dselect/po/el.po | 2 +-
+ dselect/po/es.po | 2 +-
+ dselect/po/et.po | 2 +-
+ dselect/po/eu.po | 2 +-
+ dselect/po/fr.po | 2 +-
+ dselect/po/gl.po | 2 +-
+ dselect/po/hu.po | 2 +-
+ dselect/po/id.po | 2 +-
+ dselect/po/it.po | 2 +-
+ dselect/po/ja.po | 2 +-
+ dselect/po/ko.po | 2 +-
+ dselect/po/nb.po | 2 +-
+ dselect/po/nl.po | 2 +-
+ dselect/po/nn.po | 2 +-
+ dselect/po/pl.po | 2 +-
+ dselect/po/pt.po | 2 +-
+ dselect/po/pt_BR.po | 2 +-
+ dselect/po/ro.po | 2 +-
+ dselect/po/ru.po | 2 +-
+ dselect/po/sk.po | 2 +-
+ dselect/po/sv.po | 2 +-
+ dselect/po/tl.po | 2 +-
+ dselect/po/vi.po | 2 +-
+ dselect/po/zh_CN.po | 2 +-
+ dselect/po/zh_TW.po | 2 +-
+ man/po/de.po | 54 ++++++++++++++++++++++++++++---------------------
+ man/po/dpkg-man.pot | 6 +++---
+ man/po/es.po | 4 ++--
+ man/po/fr.po | 8 ++++++--
+ man/po/hu.po | 4 ++--
+ man/po/it.po | 4 ++--
+ man/po/ja.po | 4 ++--
+ man/po/nl.po | 8 ++++++--
+ man/po/pl.po | 4 ++--
+ man/po/pt.po | 8 ++++++--
+ man/po/pt_BR.po | 4 ++--
+ man/po/ru.po | 4 ++--
+ man/po/sv.po | 8 ++++++--
+ man/po/zh_CN.po | 4 ++--
+ po/ast.po | 2 +-
+ po/bs.po | 2 +-
+ po/ca.po | 2 +-
+ po/cs.po | 2 +-
+ po/da.po | 2 +-
+ po/de.po | 2 +-
+ po/dpkg.pot | 4 ++--
+ po/dz.po | 2 +-
+ po/el.po | 2 +-
+ po/eo.po | 2 +-
+ po/es.po | 2 +-
+ po/et.po | 2 +-
+ po/eu.po | 2 +-
+ po/fr.po | 2 +-
+ po/gl.po | 2 +-
+ po/hu.po | 2 +-
+ po/id.po | 2 +-
+ po/it.po | 2 +-
+ po/ja.po | 2 +-
+ po/km.po | 2 +-
+ po/ko.po | 2 +-
+ po/ku.po | 2 +-
+ po/lt.po | 2 +-
+ po/mr.po | 2 +-
+ po/nb.po | 2 +-
+ po/ne.po | 2 +-
+ po/nl.po | 2 +-
+ po/nn.po | 2 +-
+ po/oc.po | 2 +-
+ po/pa.po | 2 +-
+ po/pl.po | 2 +-
+ po/pt.po | 2 +-
+ po/pt_BR.po | 2 +-
+ po/ro.po | 2 +-
+ po/ru.po | 2 +-
+ po/sk.po | 2 +-
+ po/sv.po | 2 +-
+ po/th.po | 2 +-
+ po/tl.po | 2 +-
+ po/tr.po | 2 +-
+ po/vi.po | 2 +-
+ po/zh_CN.po | 2 +-
+ po/zh_TW.po | 2 +-
+ scripts/po/ca.po | 2 +-
+ scripts/po/de.po | 12 +++++++----
+ scripts/po/dpkg-dev.pot | 4 ++--
+ scripts/po/es.po | 2 +-
+ scripts/po/fr.po | 2 +-
+ scripts/po/nl.po | 2 +-
+ scripts/po/pl.po | 2 +-
+ scripts/po/pt.po | 2 +-
+ scripts/po/ru.po | 2 +-
+ scripts/po/sv.po | 2 +-
+ 98 files changed, 168 insertions(+), 140 deletions(-)
+
+commit 9bd4e1b17aefac90a3f20855e237d3873b90c3b9
+Author: Guillem Jover <guillem@debian.org>
+Date: Thu Aug 1 09:22:04 2024 +0200
+
+ doc: Replace references to crypto-refresh and RFC4880 with RFC9580
+
+ The refresh to the RFC4880 has been approved now, and it is called
+ RFC9580, so we can use its final name instead of the obsolete RFC
+ or the previous draft ones.
+
+ man/deb-buildinfo.pod | 2 +-
+ man/deb-changes.pod | 2 +-
+ man/dsc.pod | 2 +-
+ scripts/Dpkg/OpenPGP/Backend/GnuPG.pm | 8 +++-----
+ 4 files changed, 6 insertions(+), 8 deletions(-)
+
+commit 3e2046ecd9ecc4e6b8116ff2fb06d6e6e7ed9bfe
+Author: Guillem Jover <guillem@debian.org>
+Date: Sun Jul 28 16:14:43 2024 +0200
+
+ Dpkg::Shlibs::Cppfilt: Do not normalize angle brackets for operators
+
+ We should not normalize angle brackets for these operators, otherwise
+ we turn them into invalid syntax.
+
+ Closes: #1076067
+
+ scripts/Dpkg/Shlibs/Cppfilt.pm | 2 +
+ scripts/Makefile.am | 10 ++++
+ scripts/t/Dpkg_Shlibs/anglebrackets.cpp | 23 ++++++++++
+ scripts/t/Dpkg_Shlibs/anglebrackets.symbols | 7 +++
+ scripts/t/Dpkg_Shlibs/objdump.anglebrackets | 71 +++++++++++++++++++++++++++++
+ scripts/t/Dpkg_Shlibs_Cppfilt.t | 18 +++++++-
+ 6 files changed, 130 insertions(+), 1 deletion(-)
+
+commit 322ecd6cdd6fdc7c865069bbfef3297751e02763
+Author: Guillem Jover <guillem@debian.org>
+Date: Sun Jul 28 16:13:38 2024 +0200
+
+ test: Refactor load_objdump_obj()
+
+ We are doing the same thing over and over. Refactor into a single
+ function.
+
+ scripts/t/Dpkg_Shlibs.t | 86 ++++++++++++++-----------------------------------
+ 1 file changed, 24 insertions(+), 62 deletions(-)
+
+commit dc8f6ffc0e69fb21f9132e4255b5972440ced2f2
+Author: Guillem Jover <guillem@debian.org>
+Date: Mon Jul 29 00:28:52 2024 +0200
+
+ test: Unroll Dpkg::Changelog file tests loop
+
+ The unit tests were using a loop, which had a tiny common part and the
+ rest was specific logic for each individual file, which made reading
+ the loop and following the code path more complex than needed.
+
+ Unroll the loop, to have one section per file.
+
+ scripts/t/Dpkg_Changelog.t | 452 ++++++++++++++++++++++++---------------------
+ 1 file changed, 237 insertions(+), 215 deletions(-)
+
+commit e718824ff597f78cacd6c6bab424a9e902babb3e
+Author: Guillem Jover <guillem@debian.org>
+Date: Mon Jul 29 00:36:29 2024 +0200
+
+ test: Refactor setup_changelog() in Dpkg::Changelog test
+
+ scripts/t/Dpkg_Changelog.t | 82 ++++++++++++++++++++++++++--------------------
+ 1 file changed, 47 insertions(+), 35 deletions(-)
+
+commit b08c26021f3e2398743ebf95510838ab54d6f071
+Author: Guillem Jover <guillem@debian.org>
+Date: Mon Jul 29 00:31:29 2024 +0200
+
+ test: Improve Dpkg::Changelog data test case message
+
+ scripts/t/Dpkg_Changelog.t | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 958f881063aff9a9a43510e68b6ef1d09a7a2cc5
+Author: Guillem Jover <guillem@debian.org>
+Date: Mon Jul 29 00:29:16 2024 +0200
+
+ test: Fix coding style in perl test cases
+
+ Remove spurious spaces around parenthesis in function calls.
+
+ scripts/t/Dpkg_Changelog.t | 10 +-
+ scripts/t/Dpkg_Shlibs.t | 627 +++++++++++++++++++++++++++-------------
+ scripts/t/Dpkg_Shlibs_Cppfilt.t | 22 +-
+ 3 files changed, 436 insertions(+), 223 deletions(-)
+
+commit f562efd82303542892ea0af7186093acc2980db5
+Author: Guillem Jover <guillem@debian.org>
+Date: Sun Jul 28 14:59:10 2024 +0200
+
+ build: Add declaration for funcs symbols in spacesyms.c
+
+ Warned-by: gcc -Wmissing-variable-declarations
+
+ scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 266c62412918f40b6966d699b08dc48354ceac4e
+Author: Guillem Jover <guillem@debian.org>
+Date: Sun Jul 28 14:58:02 2024 +0200
+
+ build: Remove generated spacesyms.o and spacesyms.c on clean
+
+ Both these files are generated, so we should be cleaning them up.
+
+ scripts/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 4fc2add4b8f68e9fcb13d4753cfd800c6f2f1f43
+Author: Guillem Jover <guillem@debian.org>
+Date: Sun Jul 28 15:02:05 2024 +0200
+
+ build: Use 'command -v' instead of 'which'
+
+ The latter is not portable, and at least in Debian there was an attempt
+ to deprecate it.
+
+ scripts/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 356a1068021cea2df51cb017a47c11ce14d85a0b
+Author: Sven Joachim <svenjoac@gmx.de>
+Date: Sat Jul 27 17:22:55 2024 +0200
+
+ po: Update German programs translation
+
+ Update to 1195t.
+
+ po/de.po | 60 +++++++++++++++---------------------------------------------
+ 1 file changed, 15 insertions(+), 45 deletions(-)
+
+commit ed77a56e88136b4416033c0ac6aa8977ce499666
+Author: Helge Kreutzmann <debian@helgefjell.de>
+Date: Sat Jul 27 14:35:34 2024 +0200
+
+ po: Update German man pages translation
+
+ man/po/de.po | 114 ++++++++++++++++-------------------------------------------
+ 1 file changed, 30 insertions(+), 84 deletions(-)
+
+commit a83545d3722fda64ffdacb88873bf6fe18773bc3
+Author: Helge Kreutzmann <debian@helgefjell.de>
+Date: Sat Jul 27 14:35:11 2024 +0200
+
+ po: Update German scripts translation
+
+ scripts/po/de.po | 148 +++++++++++++++++++++++--------------------------------
+ 1 file changed, 62 insertions(+), 86 deletions(-)
+
+commit 4eacab3cf36cb8d8a5370841029483b23efb171a
+Author: Guillem Jover <guillem@debian.org>
+Date: Sat Jul 27 06:02:02 2024 +0200
+
+ Bump version to 1.22.11
+
+ debian/changelog | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
commit ef5536cfe24e4c41c6fdc56e4530161fade3887c
Author: Guillem Jover <guillem@debian.org>
Date: Sat Jul 27 05:45:16 2024 +0200
diff --git a/configure b/configure
index 3f44711..ffeb579 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for dpkg 1.22.10.
+# Generated by GNU Autoconf 2.71 for dpkg 1.22.11.
#
# Report bugs to <debian-dpkg@lists.debian.org>.
#
@@ -681,8 +681,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dpkg'
PACKAGE_TARNAME='dpkg'
-PACKAGE_VERSION='1.22.10'
-PACKAGE_STRING='dpkg 1.22.10'
+PACKAGE_VERSION='1.22.11'
+PACKAGE_STRING='dpkg 1.22.11'
PACKAGE_BUGREPORT='debian-dpkg@lists.debian.org'
PACKAGE_URL='https://wiki.debian.org/Teams/Dpkg'
@@ -1613,7 +1613,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures dpkg 1.22.10 to adapt to many kinds of systems.
+\`configure' configures dpkg 1.22.11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1684,7 +1684,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dpkg 1.22.10:";;
+ short | recursive ) echo "Configuration of dpkg 1.22.11:";;
esac
cat <<\_ACEOF
@@ -1887,7 +1887,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dpkg configure 1.22.10
+dpkg configure 1.22.11
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2703,7 +2703,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dpkg $as_me 1.22.10, which was
+It was created by dpkg $as_me 1.22.11, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3701,7 +3701,7 @@ fi
PACKAGE_COPYRIGHT_HOLDER='Dpkg Developers'
-PACKAGE_VCS_ID=ef5536cfe24e4c41c6fdc56e4530161fade3887c
+PACKAGE_VCS_ID=ee7e9118d0a9581cb00c5ce02dccd561b3096387
PACKAGE_VCS_TYPE=git
@@ -5523,7 +5523,7 @@ fi
# Define the identity of the package.
PACKAGE='dpkg'
- VERSION='1.22.10'
+ VERSION='1.22.11'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -34317,7 +34317,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by dpkg $as_me 1.22.10, which was
+This file was extended by dpkg $as_me 1.22.11, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -34386,7 +34386,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-dpkg config.status 1.22.10
+dpkg config.status 1.22.11
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/dselect/po/bs.po b/dselect/po/bs.po
index 83407a9..05a3360 100644
--- a/dselect/po/bs.po
+++ b/dselect/po/bs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-02-17 08:55+0200\n"
"Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
"Language-Team: Bosnian <lokal@linux.org.ba>\n"
diff --git a/dselect/po/ca.po b/dselect/po/ca.po
index 96c0274..8c37d83 100644
--- a/dselect/po/ca.po
+++ b/dselect/po/ca.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-12-17 19:34+0100\n"
"Last-Translator: Guillem Jover <guillem@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
diff --git a/dselect/po/cs.po b/dselect/po/cs.po
index 03de126..a15747b 100644
--- a/dselect/po/cs.po
+++ b/dselect/po/cs.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-26 13:52+0100\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
diff --git a/dselect/po/da.po b/dselect/po/da.po
index 949b1ce..10c7ed1 100644
--- a/dselect/po/da.po
+++ b/dselect/po/da.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-11-27 02:33+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
diff --git a/dselect/po/de.po b/dselect/po/de.po
index c046c71..d73406f 100644
--- a/dselect/po/de.po
+++ b/dselect/po/de.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.22.0~\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-04-25 20:26+0200\n"
"Last-Translator: Sven Joachim <svenjoac@gmx.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
diff --git a/dselect/po/dselect.pot b/dselect/po/dselect.pot
index 55041e4..c08035a 100644
--- a/dselect/po/dselect.pot
+++ b/dselect/po/dselect.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: dpkg 1.22.10\n"
+"Project-Id-Version: dpkg 1.22.11\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/dselect/po/el.po b/dselect/po/el.po
index ec28407..82f4378 100644
--- a/dselect/po/el.po
+++ b/dselect/po/el.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-02-17 08:56+0200\n"
"Last-Translator: quad-nrg.net <galaxico@quad-nrg.net>\n"
"Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
diff --git a/dselect/po/es.po b/dselect/po/es.po
index 6b12a75..857a714 100644
--- a/dselect/po/es.po
+++ b/dselect/po/es.po
@@ -40,7 +40,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-27 22:48+0100\n"
"Last-Translator: Javier Fernández-Sanguino <jfs@debian.org>\n"
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
diff --git a/dselect/po/et.po b/dselect/po/et.po
index 69f9a66..2855632 100644
--- a/dselect/po/et.po
+++ b/dselect/po/et.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.14.5\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2007-07-13 08:22+0300\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
diff --git a/dselect/po/eu.po b/dselect/po/eu.po
index 2da3f09..28e035e 100644
--- a/dselect/po/eu.po
+++ b/dselect/po/eu.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.16.8\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2012-09-01 12:21+0200\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
"Language-Team: Basque <debian-l10n-basque@lists.debian.org>\n"
diff --git a/dselect/po/fr.po b/dselect/po/fr.po
index cf0eba2..94b76c6 100644
--- a/dselect/po/fr.po
+++ b/dselect/po/fr.po
@@ -49,7 +49,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:47+0100\n"
"Last-Translator: Sébastien Poher <sebastien@volted.net>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
diff --git a/dselect/po/gl.po b/dselect/po/gl.po
index 6458882..dac45a5 100644
--- a/dselect/po/gl.po
+++ b/dselect/po/gl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2008-12-27 15:56+0100\n"
"Last-Translator: mvillarino <mvillarino@users.sourceforge.net>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/dselect/po/hu.po b/dselect/po/hu.po
index 0788793..6a9e0e0 100644
--- a/dselect/po/hu.po
+++ b/dselect/po/hu.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-10-06 03:48+0100\n"
"Last-Translator: SZERVÃC Attila <sas@321.hu>\n"
"Language-Team: Hungarian <debian-l10n-hungarian@lists.debian.org>\n"
diff --git a/dselect/po/id.po b/dselect/po/id.po
index 17208ac..796f01e 100644
--- a/dselect/po/id.po
+++ b/dselect/po/id.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-10-06 20:20+0700\n"
"Last-Translator: Arief S Fitrianto <arief@gurame.fisika.ui.ac.id>\n"
"Language-Team: Indonesian <debian-l10n-indonesian@lists.debian.org>\n"
diff --git a/dselect/po/it.po b/dselect/po/it.po
index 41eab6f..b717e87 100644
--- a/dselect/po/it.po
+++ b/dselect/po/it.po
@@ -42,7 +42,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.10.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-10-06 22:01+0200\n"
"Last-Translator: Stefano Canepa <sc@linux.it>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
diff --git a/dselect/po/ja.po b/dselect/po/ja.po
index d4945c7..62764aa 100644
--- a/dselect/po/ja.po
+++ b/dselect/po/ja.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2016-03-31 12:44+0900\n"
"Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
diff --git a/dselect/po/ko.po b/dselect/po/ko.po
index 7f7bf58..6673e4f 100644
--- a/dselect/po/ko.po
+++ b/dselect/po/ko.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-29 11:18+0100\n"
"Last-Translator: Sangdo Jun <sebuls@gmail.com>\n"
"Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n"
diff --git a/dselect/po/nb.po b/dselect/po/nb.po
index 0d9ff6d..37d4b63 100644
--- a/dselect/po/nb.po
+++ b/dselect/po/nb.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-12-05 13:25+0200\n"
"Last-Translator: Hans Fredrik Nordhaug <hans@nordhaug.priv.no>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
diff --git a/dselect/po/nl.po b/dselect/po/nl.po
index c7a5adb..0a9ca74 100644
--- a/dselect/po/nl.po
+++ b/dselect/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-09-11 21:13+0200\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
diff --git a/dselect/po/nn.po b/dselect/po/nn.po
index f1f6201..ef3bdfd 100644
--- a/dselect/po/nn.po
+++ b/dselect/po/nn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-02-17 08:57+0200\n"
"Last-Translator: HÃ¥vard Korsvoll <korsvoll@skulelinux.no>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
diff --git a/dselect/po/pl.po b/dselect/po/pl.po
index f2f305e..6bb91c3 100644
--- a/dselect/po/pl.po
+++ b/dselect/po/pl.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.15.4\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-12-21 20:58+0100\n"
"Last-Translator: Åukasz Dulny <bartekchom@poczta.onet.pl>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
diff --git a/dselect/po/pt.po b/dselect/po/pt.po
index e8927bd..de817fa 100644
--- a/dselect/po/pt.po
+++ b/dselect/po/pt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-11-30 13:28+0000\n"
"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
diff --git a/dselect/po/pt_BR.po b/dselect/po/pt_BR.po
index 2683158..d0815ea 100644
--- a/dselect/po/pt_BR.po
+++ b/dselect/po/pt_BR.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2008-06-09 02:53-0300\n"
"Last-Translator: Felipe Augusto van de Wiel <faw@debian.org>\n"
"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
diff --git a/dselect/po/ro.po b/dselect/po/ro.po
index 175b49f..13f6686 100644
--- a/dselect/po/ro.po
+++ b/dselect/po/ro.po
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-09-13 20:15+0200\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
diff --git a/dselect/po/ru.po b/dselect/po/ru.po
index 714c0c2..a82696f 100644
--- a/dselect/po/ru.po
+++ b/dselect/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-31 22:38+0100\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
diff --git a/dselect/po/sk.po b/dselect/po/sk.po
index b6ce1df..d2a4872 100644
--- a/dselect/po/sk.po
+++ b/dselect/po/sk.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2012-07-03 01:09+0100\n"
"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
"Language-Team: Slovak <debian-l10n-slovak@lists.debian.org>\n"
diff --git a/dselect/po/sv.po b/dselect/po/sv.po
index 8ad73fa..1ca7771 100644
--- a/dselect/po/sv.po
+++ b/dselect/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-10-24 18:29+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/dselect/po/tl.po b/dselect/po/tl.po
index f2fe621..dc11154 100644
--- a/dselect/po/tl.po
+++ b/dselect/po/tl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2006-02-17 08:58+0200\n"
"Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
"Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
diff --git a/dselect/po/vi.po b/dselect/po/vi.po
index 9830b32..b196eea 100644
--- a/dselect/po/vi.po
+++ b/dselect/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.17.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-12-01 08:20+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <debian-l10n-vietnamese@lists.debian.org>\n"
diff --git a/dselect/po/zh_CN.po b/dselect/po/zh_CN.po
index 3203bec..6437ad4 100644
--- a/dselect/po/zh_CN.po
+++ b/dselect/po/zh_CN.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-27 15:29-0500\n"
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n"
diff --git a/dselect/po/zh_TW.po b/dselect/po/zh_TW.po
index 456cb8a..c826085 100644
--- a/dselect/po/zh_TW.po
+++ b/dselect/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dselect 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-28 15:57+0800\n"
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
"Language-Team: Chinese (traditional) <debian-l10n-chinese@lists.debian.org>\n"
diff --git a/man/de/deb-buildinfo.pod b/man/de/deb-buildinfo.pod
index 67a5636..b893897 100644
--- a/man/de/deb-buildinfo.pod
+++ b/man/de/deb-buildinfo.pod
@@ -26,7 +26,7 @@ Jeder Bau eines Debian-Quellpakets kann die Bauinformationen in einer B<.buildin
Jedes Feld beginnt mit einer Markierung, wie B<Source> oder B<Binary> (Groß-/Kleinschreibung ist egal), gefolgt von einem Doppelpunkt und dem Inhalt des Feldes (Groß-/Kleinschreibung ist relevant, außer anders angegeben). Felder werden nur durch Feldmarkierungen begrenzt. Mit anderen Worten, Felder können mehrere Zeilen umfassen, aber die Installationswerkzeuge werden im Allgemeinen die Zeilen bei der Verarbeitung des Feldinhaltes zusammenfassen (außer im Falle der mehrzeiligen Felder B<Binary-Only-Changes>, B<Installed-Build-Depends>, B<Environment>, B<Checksums-Md5>, B<Checksums-Sha1> und B<Checksums-Sha256>, siehe unten).
-Die Steuerdaten können in eine Signatur mit einer wie in RFC4880 spezifizierten OpenPGP-ASCII-Hülle eingeschlossen sein.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
Der Name der B<.buildinfo>-Datei wird von der Art des Baus abhängen und wird so spezifisch wie notwendig sein, aber nicht mehr; der Name wird
diff --git a/man/de/deb-changes.pod b/man/de/deb-changes.pod
index 9a1d0cd..fca5947 100644
--- a/man/de/deb-changes.pod
+++ b/man/de/deb-changes.pod
@@ -26,7 +26,7 @@ Jeder Debian-Upload besteht aus einer .changes-Steuerdatei, die eine Reihe von F
Jedes Feld beginnt mit einer Markierung wie B<Source> oder B<Binary> (Groß-/Kleinschreibung ist egal), gefolgt von einem Doppelpunkt und dem Inhalt des Feldes (Groß-/Kleinschreibung ist relevant, außer anders angegeben). Felder werden nur durch Feldmarkierungen abgegrenzt. Mit anderen Worten: Der Feldtext kann sich über mehrere Zeilen erstrecken, wobei die Installationswerkzeuge die Zeilen bei der Verarbeitung des Feldinhaltes zusammenfügen werden (Ausnahmen sind die mehrzeiligen Felder B<Description>, B<Changes>, B<Files>, B<Checksums-Sha1> und B<Checksums-Sha256>, siehe unten).
-Die Steuerdaten können in eine Signatur mit einer wie in RFC4880 spezifizierten OpenPGP-ASCII-Hülle eingeschlossen sein.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 FELDER
diff --git a/man/de/deb-substvars.pod b/man/de/deb-substvars.pod
index 139413c..50e8fdf 100644
--- a/man/de/deb-substvars.pod
+++ b/man/de/deb-substvars.pod
@@ -30,7 +30,7 @@ Eine Variablenersetzung hat die Form B<${>I<Variablenname>B<}>. Variablennamen b
=head2 Dateisyntax
-Substitution variables can be specified in a file. These files consist of lines of the form I<name>B<=>I<value>, I<name>B<?=>I<value>, or I<name>B<!=>I<value>. The B<=> operator assigns a normal substitution variable, the B<?=> operator (since dpkg 1.21.8) assigns an optional substitution variable which will emit no warnings even if unused, and the B<!=> operator (since dpkg 1.22.7) assigns a required substitution variable which will error out if unused. Trailing whitespace on each line, blank lines, and lines starting with a B<#> symbol (comments) are ignored.
+Ersetzungsvariablen können in einer Datei festgelegt werden. Diese Dateien bestehen aus Zeilen der Form I<Name>B<=>I<Wert>, I<Name>B<?=>I<Wert> oder I<Name>B<!=>I<Wert>. Der Operator B<=> weist eine normale Ersetzungsvariable zu, der Operator B<?=> (seit Dpkg 1.21.8) weist eine optionale Ersetzungsvariable zu, die keine Warnungen ausgibt, selbst wenn sie nicht verwandt wird und der Operator B<!=> (seit Dpkg 1.22.7) weist eine benötigte Ersetzungsvariable zu, die einen Fehler auslöst, falls sie nicht verwandt wird. Leerraumzeichen am Zeilenende, leere Zeilen und Zeilen, die mit dem B<#>-Symbol starten (Kommentare) werden ignoriert.
=head2 Ersetzungen
diff --git a/man/de/dpkg-buildpackage.pod b/man/de/dpkg-buildpackage.pod
index 76b13f2..b69adbd 100644
--- a/man/de/dpkg-buildpackage.pod
+++ b/man/de/dpkg-buildpackage.pod
@@ -18,21 +18,21 @@ dpkg-buildpackage - Binär- oder Quellpakete aus Quellen bauen
=head1 ÃœBERSICHT
-B<dpkg-buildpackage> [I<option>...] [B<-->] [I<filename>.dsc|I<directory>]
+B<dpkg-buildpackage> [I<Option>…] [B<-->] [I<Dateiname>.dsc|I<Verzeichnis>]
=head1 BESCHREIBUNG
-B<dpkg-buildpackage> is a program that automates the process of building a Debian package.
+B<dpkg-buildpackage> ist ein Programm, das den Prozess des Bauens eines Debian-Paketes automatisiert.
-The I<filename>.dsc and I<directory> arguments are supported since dpkg 1.22.7. Their semantics are experimental.
+Die Argumente I<Dateiname>.dsc und I<Verzeichnis> werden seit Dpkg 1.22.7 unterstützt. Ihre Semantik ist experimentell.
-It consists of the following steps:
+Der Bauprozess besteht aus den folgenden Schritten:
=over
=item B<1.>
-It runs the B<preinit> hook before reading any source file. If a B<.dsc> file has been specified it unpacks it anew and changes directory to it, if a I<directory> has been specified it changes directory to it, otherwise it expects the current directory to contain the source tree. It prepares the build environment by setting various environment variables (see B<ENVIRONMENT>), runs the B<init> hook, and calls B<dpkg-source --before-build> (unless B<-T> or B<--target> has been used).
+Es wird der Hook B<preinit> ausgeführt, bevor irgendeine Quelldatei gelesen wird. Falls eine B<.dsc>-Datei angegeben wurde, wird diese erneut entpackt und in das Verzeichnis hinein gewechselt, falls ein I<Verzeichnis> angegeben wurde, wird hinein gewechselt, andernfalls wird erwartet, dass das aktuelle Verzeichnis den Qellbaum enthält. Die Bauumgebung wird vorbereitet, indem verschiedene Umgebungsvariablen gesetzt werden (siehe B<UMGEBUNG>), der B<init>-Hook ausgeführt und B<dpkg-source --before-build> aufgerufen wird (es sei denn, B<-T> oder B<--target> wurde verwandt).
=item B<2.>
@@ -44,7 +44,7 @@ Falls eines oder mehrere spezielle Ziele mit der Option B<-T> oder B<--target> a
=item B<4.>
-It runs the B<source> hook and calls B<dpkg-source -b> to generate the source package (if a B<source> build has been requested with B<--build> or equivalent options, and if no B<.dsc> has been specified).
+Der Hook B<source> wird ausgeführt und B<dpkg-source -b> aufgerufen, um das Quellpaket zu erstellen (falls mit B<--build> oder äquivalenten Optionen ein B<source> (Quell-)Bau erbeten wurde und keine B<.dsc> angegeben wurde).
=item B<5.>
@@ -52,7 +52,7 @@ Es führt den Hook B<build> aus und ruft B<debian/rules> I<Bauziel> auf. Dann fÃ
=item B<6.>
-It runs the B<buildinfo> hook and calls B<dpkg-genbuildinfo> to generate a B<.buildinfo> file. Several B<dpkg-buildpackage> options are forwarded to B<dpkg-genbuildinfo>. If a I<.dsc> has been specified, then it will be referenced in the generated B<.buildinfo> file, as we can ascertain the provenance of the source tree.
+Der Hook B<buildinfo> wird ausgeführt und B<dpkg-genbuildinfo> aufgerufen, um eine B<.buildinfo>-Datei zu erstellen. Viele Optionen von B<dpkg-buildpackage> werden an B<dpkg-genbuildinfo> weitergeleitet. Falls eine I<.dsc> angegeben wurde, dann wird sie in der erstellten B<.buildinfo>-Datei referenziert, da die Herkunft des Quellbaums sichergestellt werden kann.
=item B<7.>
@@ -94,7 +94,7 @@ Der Hook B<sign> wird ausgeführt und mittels eines OpenPGP-Backends signiert (s
=item B<12.>
-If a B<.dsc> file has been specified, it removes the extracted source directory.
+Falls eine B<.dsc>-Datei angegeben wurde, wird das extrahierte Quellverzeichnis entfernt.
=item B<13.>
diff --git a/man/de/dpkg-deb.pod b/man/de/dpkg-deb.pod
index c1643c0..33725a6 100644
--- a/man/de/dpkg-deb.pod
+++ b/man/de/dpkg-deb.pod
@@ -130,17 +130,17 @@ Die Zeichenkette darf jedes Statusfeld in der Form „${I<Feldname>}“ referenz
Die Voreinstellung für dieses Feld ist „${Package}\t${Version}\n“.
-=item B<-z>, B<--compression-level=>I<compress-level>
+=item B<-z>, B<--compression-level=>I<Komprimierungsstufe>
-Specify which compression level to use on the compressor backend, when building a package (default is 9 for gzip, 6 for xz, 3 for zstd; long option since dpkg 1.22.9). The accepted values are compressor specific. For gzip, from 0-9 with 0 being mapped to compressor none. For xz from 0-9. For zstd from 0-22, with levels from 20 to 22 enabling its ultra mode. Before dpkg 1.16.2 level 0 was equivalent to compressor none for all compressors.
+Gibt die Komprimierstufe an, die im Komprimier-Backendprogramm beim Bau eines Pakets verwendet werden soll. Standardmäßig ist dies 9 für Gzip, 6 für Xz, 3 für Zstd, lange Option seit Dpkg 1.22.9. Die akzeptierten Werte hängen vom Komprimierer ab. Für Gzip von 0-9, wobei 0 auf den Komprimierer „none“ abgebildet wird. Für Xz von 0-9. Für Zstd von 0-22, wobei die Stufen von 20-22 den Ultramodus aktivieren. Vor Dpkg 1.16.2 war die Stufe 0 äquivalent zu dem Komprimierer „none“ für alle Komprimierer.
-=item B<-S>, B<--compression-strategy=>I<compress-strategy>
+=item B<-S>, B<--compression-strategy=>I<Komprimierungsstrategie>
-Specify which compression strategy to use on the compressor backend, when building a package (since dpkg 1.16.2, long option since dpkg 1.22.9). Allowed values are B<none> (since dpkg 1.16.4), B<filtered>, B<huffman>, B<rle> and B<fixed> for gzip (since dpkg 1.17.0) and B<extreme> for xz.
+Gibt die zu verwendende Komprimierstrategie an, die für den Komprimierer-Backend beim Bau eines Pakets verwandt werden soll (seit Dpkg 1.16.2, lange Option seit Dpkg 1.22.9). Erlaubte Werte sind B<none> (seit Dpkg 1.16.4), B<filtered>, B<huffman>, B<rle> und B<fixed> für Gzip (seit Dpkg 1.17.0) und B<extreme> für Xz.
-=item B<-Z>, B<--compression=>I<compress-type>
+=item B<-Z>, B<--compression=>I<Komprimierungstyp>
-Specify which compression type to use when building a package (long option since dpkg 1.22.9). Allowed values are B<gzip>, B<xz> (since dpkg 1.15.6), B<zstd> (since dpkg 1.21.18) and B<none> (default is B<%DEB_DEFAULT_COMPRESSOR%>).
+Gibt die Art der Komprimierung beim Bau eines Pakets an (lange Option seit Dpkg 1.22.9). Erlaubte Werte sind B<gzip>, B<xz> (seit Dpkg 1.15.6), B<zstd> (seit Dpkg 1.21.18) und B<none> (voreingestellt ist B<%DEB_DEFAULT_COMPRESSOR%>).
=item B<--[no-]uniform-compression>
diff --git a/man/de/dsc.pod b/man/de/dsc.pod
index 2fd24d5..85658a6 100644
--- a/man/de/dsc.pod
+++ b/man/de/dsc.pod
@@ -26,7 +26,7 @@ Jedes Debian-Quellpaket besteht aus einer .dsc-Steuerdatei, die eine Reihe von F
Jedes Feld beginnt mit einer Markierung, wie B<Source> oder B<Binary> (Groß-/Kleinschreibung egal), gefolgt von einem Doppelpunkt und dem Inhalt des Feldes (Groß-/Kleinschreibung ist relevant, außer anders angegeben). Felder werden nur durch die Feldmarkierungen abgegrenzt. Mit anderen Worten, Feldtexte können mehrere Zeilen überspannen, aber die Installationswerkzeuge werden im Allgemeinen die Zeilen bei der Verarbeitung des Feldinhaltes zusammenfassen (mit Ausnahme der mehrzeiligen Felder B<Package-List>, B<Files>, B<Checksums-Sha1> und B<Checksums-Sha256>, sehen Sie dazu unten).
-Die Steuerdaten können in eine Signatur mit einer wie in RFC4880 spezifizierten OpenPGP-ASCII-Hülle eingeschlossen sein.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 FELDER
diff --git a/man/deb-buildinfo.pod b/man/deb-buildinfo.pod
index 9f43952..14da028 100644
--- a/man/deb-buildinfo.pod
+++ b/man/deb-buildinfo.pod
@@ -50,7 +50,7 @@ B<Checksums-Sha256>,
see below).
The control data might be enclosed in an OpenPGP ASCII Armored signature,
-as specified in RFC4880.
+as specified in RFC9580.
The name of the B<.buildinfo> file will depend on the type of build and
will be as specific as necessary but not more; the name will be:
diff --git a/man/deb-changes.pod b/man/deb-changes.pod
index 2813eba..580ef67 100644
--- a/man/deb-changes.pod
+++ b/man/deb-changes.pod
@@ -48,7 +48,7 @@ B<Checksums-Sha256>,
see below).
The control data might be enclosed in an OpenPGP ASCII Armored signature,
-as specified in RFC4880.
+as specified in RFC9580.
=head1 FIELDS
diff --git a/man/dsc.pod b/man/dsc.pod
index f82fdc9..5b50556 100644
--- a/man/dsc.pod
+++ b/man/dsc.pod
@@ -45,7 +45,7 @@ B<Package-List>, B<Files>, B<Checksums-Sha1> and B<Checksums-Sha256>,
see below).
The control data might be enclosed in an OpenPGP ASCII Armored signature,
-as specified in RFC4880.
+as specified in RFC9580.
=head1 FIELDS
diff --git a/man/fr/deb-buildinfo.pod b/man/fr/deb-buildinfo.pod
index d9fdffb..e235c4f 100644
--- a/man/fr/deb-buildinfo.pod
+++ b/man/fr/deb-buildinfo.pod
@@ -26,7 +26,7 @@ Chaque construction de paquet source Debian peut enregistrer les informations de
Chaque champ commence par une étiquette, telle que B<Source> ou B<Binary> (la casse n'importe pas), suivie d'un « : » et du contenu du champ (sensible à la casse à moins que cela ne soit stipulé autrement). Les champs sont séparés seulement par des étiquettes de champ. En d'autres termes, le contenu d'un champ peut s'étendre sur plusieurs lignes, mais les outils d'installation joindront en général les lignes pendant le traitement du contenu du champ (sauf dans le cas des champs à lignes multiples B<Binary-Only-Changes>, B<Installed-Build-Depends>, B<Environment>, B<Checksums-Md5>, B<Checksums-Sha1> et B<Checksums-Sha256>, voir ci-dessous).
-Les données de contrôle pourraient être incluses dans une signature OpenPGP « ASCII Armored », comme spécifié dans la RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
The name of the B<.buildinfo> file will depend on the type of build and will be as specific as necessary but not more; the name will be:
diff --git a/man/fr/deb-changes.pod b/man/fr/deb-changes.pod
index d540dbe..c34b83e 100644
--- a/man/fr/deb-changes.pod
+++ b/man/fr/deb-changes.pod
@@ -26,7 +26,7 @@ Chaque envoi dans Debian est composé d'un fichier de contrôle .changes qui con
Chaque champ commence par une étiquette, telle que B<Source> ou B<Binary> (la casse n'importe pas), suivie d'un « : », et du contenu du champ (sensible à la casse à moins que cela ne soit spécifié autrement). Les champs sont séparés seulement par des étiquettes de champ. En d'autres termes, le contenu d'un champ peut s'étendre sur plusieurs lignes, mais les outils d'installation joindront en général les lignes pendant le traitement du contenu du champ (sauf pour les champs à lignes multiples B<Description>, B<Changes>, B<Files>, B<Checksums-Sha1> et B<Checksums-Sha256>, voir ci-dessous).
-Les données de contrôle pourraient être incluses dans une signature OpenPGP « ASCII Armored », comme spécifié dans la RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 LES CHAMPS
diff --git a/man/fr/dsc.pod b/man/fr/dsc.pod
index d84b19c..846fd75 100644
--- a/man/fr/dsc.pod
+++ b/man/fr/dsc.pod
@@ -26,7 +26,7 @@ Chaque paquet Debian possède un fichier de contrôle .dsc qui contient un certa
Chaque champ commence par une étiquette, telle que B<Source> ou B<Binary> (la casse n'importe pas), suivie d'un « : », et du contenu du champ (sensible à la casse à moins que cela ne soit spécifié autrement). Les champs sont séparés seulement par des étiquettes de champ. En d'autres termes, le contenu d'un champ peut s'étendre sur plusieurs lignes, mais les outils d'installation joindront en général les lignes pendant le traitement du contenu du champ (sauf pour les champs à lignes multiples B<Package-List>, B<Files>, B<Checksums-Sha1> et B<Checksums-Sha256>, voir ci-dessous).
-Les données de contrôle pourraient être incluses dans une signature OpenPGP « ASCII Armored », comme spécifié dans la RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 LES CHAMPS
diff --git a/man/nl/deb-buildinfo.pod b/man/nl/deb-buildinfo.pod
index 5007723..e171c5f 100644
--- a/man/nl/deb-buildinfo.pod
+++ b/man/nl/deb-buildinfo.pod
@@ -26,7 +26,7 @@ Van elke bouw van een Debian broncodepakket kan de bouwinformatie opgeslagen wor
Ieder veld begint met een markering, zoals B<Source> of B<Binary> (niet hoofdlettergevoelig), gevolgd door een dubbele punt en de tekstinhoud van het veld (hoofdlettergevoelig tenzij anders vermeld). Velden worden enkel door veldmarkeringen begrensd. De tekstinhoud van het veld kan met andere woorden verschillende regels lang zijn, maar de installatiegereedschappen zullen bij het verwerken van de tekstinhoud de regels gewoonlijk samenvoegen (behalve in het geval van de multiregel-velden B<Binary-Only-Changes>, B<Installed-Build-Depends>, B<Environment>, B<Checksums-Md5>, B<Checksums-Sha1> en B<Checksums-Sha256>; zie hierna)
-De controle-data mogen ingesloten liggen in een OpenPGP-handtekening met ASCII-harnas volgens de specificatie RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
De naam van het B<.buildinfo>-bestand zal afhangen van het type bouw en zal zo specifiek zijn als nodig, maar niet meer dan dat; die naam zal zijn:
diff --git a/man/nl/deb-changes.pod b/man/nl/deb-changes.pod
index e331c86..5e4e3a9 100644
--- a/man/nl/deb-changes.pod
+++ b/man/nl/deb-changes.pod
@@ -26,7 +26,7 @@ Elke Debian-upload bestaat uit een controlebestand .changes, dat een aantal veld
Ieder veld begint met een markering, zoals B<Source> of B<Binary> (niet hoofdlettergevoelig), gevolgd door een dubbele punt en de tekstinhoud van het veld (hoofdlettergevoelig tenzij anders vermeld. Velden worden enkel door veldmarkeringen begrensd. De tekstinhoud van het veld kan met andere woorden verschillende regels lang zijn, maar de installatiegereedschappen zullen bij het verwerken van de tekstinhoud de regels gewoonlijk samenvoegen (behalve voor de multiregel-velden B<Description>, B<Changes>, B<Files>, B<Checksums-Sha1> en B<Checksums-Sha256>; zie hierna)
-De controle-data mogen ingesloten liggen in een OpenPGP-handtekening met ASCII-harnas volgens de specificatie RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 VELDEN
diff --git a/man/nl/dsc.pod b/man/nl/dsc.pod
index fb4564f..bafd639 100644
--- a/man/nl/dsc.pod
+++ b/man/nl/dsc.pod
@@ -26,7 +26,7 @@ Elk Debian-broncodepakket bestaat uit een .dsc-controlebestand, dat een aantal v
Ieder veld begint met een markering, zoals B<Source> of B<Binary> (niet hoofdlettergevoelig), gevolgd door een dubbele punt en de tekstinhoud van het veld (hoofdlettergevoelig tenzij anders vermeld). Velden worden enkel door veldmarkeringen begrensd. De tekstinhoud van het veld kan met andere woorden verschillende regels lang zijn, maar de installatiegereedschappen zullen bij het verwerken van de tekstinhoud de regels gewoonlijk samenvoegen (behalve in het geval van de multiregel-velden B<Package-List>, B<Files>, B<Checksums-Sha1> en B<Checksums-Sha256>; zie hierna)
-De controle-data mogen ingesloten liggen in een OpenPGP-handtekening met ASCII-harnas volgens de specificatie RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 VELDEN
diff --git a/man/po/de.po b/man/po/de.po
index f1499fb..8c7a516 100644
--- a/man/po/de.po
+++ b/man/po/de.po
@@ -11,10 +11,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: dpkg-man 1.22.7\n"
+"Project-Id-Version: dpkg-man 1.22.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
-"PO-Revision-Date: 2024-07-03 21:48+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
+"PO-Revision-Date: 2024-07-27 14:31+0200\n"
"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
@@ -127,9 +127,13 @@ msgstr ""
#. type: textblock
#: deb-buildinfo.pod deb-changes.pod dsc.pod
+#, fuzzy
+#| msgid ""
+#| "The control data might be enclosed in an OpenPGP ASCII Armored signature, "
+#| "as specified in RFC4880."
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
"Die Steuerdaten können in eine Signatur mit einer wie in RFC4880 "
"spezifizierten OpenPGP-ASCII-Hülle eingeschlossen sein."
@@ -5765,15 +5769,6 @@ msgstr "Dateisyntax"
#. type: textblock
#: deb-substvars.pod
-#, fuzzy
-#| msgid ""
-#| "Substitution variables can be specified in a file. These files consist "
-#| "of lines of the form I<name>B<=>I<value> or I<name>B<?=>I<value>. The "
-#| "B<=> operator assigns a normal substitution variable, while the B<?=> "
-#| "operator (since dpkg 1.21.8) assigns an optional substitution variable "
-#| "which will emit no warnings even if unused. Trailing whitespace on each "
-#| "line, blank lines, and lines starting with a B<#> symbol (comments) are "
-#| "ignored."
msgid ""
"Substitution variables can be specified in a file. These files consist of "
"lines of the form I<name>B<=>I<value>, I<name>B<?=>I<value>, or I<name>B<!"
@@ -5785,12 +5780,14 @@ msgid ""
"starting with a B<#> symbol (comments) are ignored."
msgstr ""
"Ersetzungsvariablen können in einer Datei festgelegt werden. Diese Dateien "
-"bestehen aus Zeilen der Form I<Name>B<=>I<Wert> oder I<Name>B<?=>I<Wert>. "
-"Der Operator B<=> weist eine normale Ersetzungsvariable zu, während der "
-"Operator B<?=> (seit Dpkg 1.21.8) eine optionale Ersetzungsvariable zuweist, "
-"die keine Warnungen ausgibt, selbst wenn sie nicht verwandt wird. "
-"Leerraumzeichen am Zeilenende, leere Zeilen und Zeilen, die mit dem B<#>-"
-"Symbol starten (Kommentare) werden ignoriert."
+"bestehen aus Zeilen der Form I<Name>B<=>I<Wert>, I<Name>B<?=>I<Wert> oder "
+"I<Name>B<!=>I<Wert>. Der Operator B<=> weist eine normale Ersetzungsvariable "
+"zu, der Operator B<?=> (seit Dpkg 1.21.8) weist eine optionale "
+"Ersetzungsvariable zu, die keine Warnungen ausgibt, selbst wenn sie nicht "
+"verwandt wird und der Operator B<!=> (seit Dpkg 1.22.7) weist eine benötigte "
+"Ersetzungsvariable zu, die einen Fehler auslöst, falls sie nicht verwandt "
+"wird. Leerraumzeichen am Zeilenende, leere Zeilen und Zeilen, die mit dem "
+"B<#>-Symbol starten (Kommentare) werden ignoriert."
#. type: =head2
#: deb-substvars.pod
@@ -11129,25 +11126,19 @@ msgstr "dpkg-buildpackage - Binär- oder Quellpakete aus Quellen bauen"
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid "B<dpkg-name> [I<option>...] [B<-->] I<file>..."
msgid ""
"B<dpkg-buildpackage> [I<option>...] [B<-->] [I<filename>.dsc|I<directory>]"
-msgstr "B<dpkg-name> [I<Option> …] [B<-->] I<Datei> …"
+msgstr ""
+"B<dpkg-buildpackage> [I<Option>…] [B<-->] [I<Dateiname>.dsc|I<Verzeichnis>]"
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid ""
-#| "B<dpkg-buildpackage> is a program that automates the process of building "
-#| "a Debian package. It consists of the following steps:"
msgid ""
"B<dpkg-buildpackage> is a program that automates the process of building a "
"Debian package."
msgstr ""
"B<dpkg-buildpackage> ist ein Programm, das den Prozess des Bauens eines "
-"Debian-Paketes automatisiert. Der Bauprozess besteht aus den folgenden "
-"Schritten:"
+"Debian-Paketes automatisiert."
#. type: textblock
#: dpkg-buildpackage.pod
@@ -11155,27 +11146,22 @@ msgid ""
"The I<filename>.dsc and I<directory> arguments are supported since dpkg "
"1.22.7. Their semantics are experimental."
msgstr ""
+"Die Argumente I<Dateiname>.dsc und I<Verzeichnis> werden seit Dpkg 1.22.7 "
+"unterstützt. Ihre Semantik ist experimentell."
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid "Installation consists of the following steps:"
msgid "It consists of the following steps:"
-msgstr "Die Installation besteht aus folgenden Schritten:"
+msgstr "Der Bauprozess besteht aus den folgenden Schritten:"
#. type: =item
#: dpkg-buildpackage.pod dpkg.pod
msgid "B<1.>"
msgstr "B<1.>"
+# FIXME s/and changes directory to it//
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid ""
-#| "It runs the B<preinit> hook before reading any source file. It prepares "
-#| "the build environment by setting various environment variables (see "
-#| "B<ENVIRONMENT>), runs the B<init> hook, and calls B<dpkg-source --before-"
-#| "build> (unless B<-T> or B<--target> has been used)."
msgid ""
"It runs the B<preinit> hook before reading any source file. If a B<.dsc> "
"file has been specified it unpacks it anew and changes directory to it, if a "
@@ -11186,10 +11172,13 @@ msgid ""
"build> (unless B<-T> or B<--target> has been used)."
msgstr ""
"Es wird der Hook B<preinit> ausgeführt, bevor irgendeine Quelldatei gelesen "
-"wird. Die Bauumgebung wird vorbereitet, indem verschiedene "
-"Umgebungsvariablen gesetzt werden (siehe B<UMGEBUNG>), der B<init>-Hook "
-"ausgeführt und B<dpkg-source --before-build> aufgerufen wird (es sei denn, "
-"B<-T> oder B<--target> wurde verwandt)."
+"wird. Falls eine B<.dsc>-Datei angegeben wurde, wird diese erneut entpackt "
+"und in das Verzeichnis hinein gewechselt, falls ein I<Verzeichnis> angegeben "
+"wurde, wird hinein gewechselt, andernfalls wird erwartet, dass das aktuelle "
+"Verzeichnis den Qellbaum enthält. Die Bauumgebung wird vorbereitet, indem "
+"verschiedene Umgebungsvariablen gesetzt werden (siehe B<UMGEBUNG>), der "
+"B<init>-Hook ausgeführt und B<dpkg-source --before-build> aufgerufen wird "
+"(es sei denn, B<-T> oder B<--target> wurde verwandt)."
#. type: =item
#: dpkg-buildpackage.pod dpkg.pod
@@ -11231,11 +11220,6 @@ msgstr "B<4.>"
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid ""
-#| "It runs the B<source> hook and calls B<dpkg-source -b> to generate the "
-#| "source package (if a B<source> build has been requested with B<--build> "
-#| "or equivalent options)."
msgid ""
"It runs the B<source> hook and calls B<dpkg-source -b> to generate the "
"source package (if a B<source> build has been requested with B<--build> or "
@@ -11243,7 +11227,7 @@ msgid ""
msgstr ""
"Der Hook B<source> wird ausgeführt und B<dpkg-source -b> aufgerufen, um das "
"Quellpaket zu erstellen (falls mit B<--build> oder äquivalenten Optionen ein "
-"B<source> (Quell-)Bau erbeten wurde)."
+"B<source> (Quell-)Bau erbeten wurde und keine B<.dsc> angegeben wurde)."
#. type: =item
#: dpkg-buildpackage.pod dpkg.pod
@@ -11282,11 +11266,6 @@ msgstr "B<6.>"
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid ""
-#| "It runs the B<buildinfo> hook and calls B<dpkg-genbuildinfo> to generate "
-#| "a B<.buildinfo> file. Several B<dpkg-buildpackage> options are forwarded "
-#| "to B<dpkg-genbuildinfo>."
msgid ""
"It runs the B<buildinfo> hook and calls B<dpkg-genbuildinfo> to generate a "
"B<.buildinfo> file. Several B<dpkg-buildpackage> options are forwarded to "
@@ -11296,7 +11275,9 @@ msgid ""
msgstr ""
"Der Hook B<buildinfo> wird ausgeführt und B<dpkg-genbuildinfo> aufgerufen, "
"um eine B<.buildinfo>-Datei zu erstellen. Viele Optionen von B<dpkg-"
-"buildpackage> werden an B<dpkg-genbuildinfo> weitergeleitet."
+"buildpackage> werden an B<dpkg-genbuildinfo> weitergeleitet. Falls eine I<."
+"dsc> angegeben wurde, dann wird sie in der erstellten B<.buildinfo>-Datei "
+"referenziert, da die Herkunft des Quellbaums sichergestellt werden kann."
#. type: =item
#: dpkg-buildpackage.pod
@@ -11407,21 +11388,17 @@ msgstr "B<12.>"
#. type: textblock
#: dpkg-buildpackage.pod
-#, fuzzy
-#| msgid ""
-#| "If set and the B<--admindir> option has not been specified, it will be "
-#| "used as the base administrative directory."
msgid ""
"If a B<.dsc> file has been specified, it removes the extracted source "
"directory."
msgstr ""
-"Falls gesetzt und die Option B<--admindir> nicht angegeben wurde, wird dies "
-"als Basis-Administrationsverzeichnis verwandt."
+"Falls eine B<.dsc>-Datei angegeben wurde, wird das extrahierte "
+"Quellverzeichnis entfernt."
#. type: =item
#: dpkg-buildpackage.pod
msgid "B<13.>"
-msgstr ""
+msgstr "B<13.>"
#. type: textblock
#: dpkg-buildpackage.pod
@@ -13809,21 +13786,11 @@ msgstr "Die Voreinstellung für dieses Feld ist „${Package}\\t${Version}\\n“
#. type: =item
#: dpkg-deb.pod
-#, fuzzy
-#| msgid "B<-z>, B<--compression-level=>I<level>"
msgid "B<-z>, B<--compression-level=>I<compress-level>"
-msgstr "B<-z>, B<--compression-level=>I<Stufe>"
+msgstr "B<-z>, B<--compression-level=>I<Komprimierungsstufe>"
#. type: textblock
#: dpkg-deb.pod
-#, fuzzy
-#| msgid ""
-#| "Specify which compression level to use on the compressor backend, when "
-#| "building a package (default is 9 for gzip, 6 for xz, 3 for zstd). The "
-#| "accepted values are compressor specific. For gzip, from 0-9 with 0 being "
-#| "mapped to compressor none. For xz from 0-9. For zstd from 0-22, with "
-#| "levels from 20 to 22 enabling its ultra mode. Before dpkg 1.16.2 level 0 "
-#| "was equivalent to compressor none for all compressors."
msgid ""
"Specify which compression level to use on the compressor backend, when "
"building a package (default is 9 for gzip, 6 for xz, 3 for zstd; long option "
@@ -13834,27 +13801,19 @@ msgid ""
msgstr ""
"Gibt die Komprimierstufe an, die im Komprimier-Backendprogramm beim Bau "
"eines Pakets verwendet werden soll. Standardmäßig ist dies 9 für Gzip, 6 für "
-"Xz, 3 für Zstd). Die akzeptierten Werte hängen vom Komprimierer ab. Für Gzip "
-"von 0-9, wobei 0 auf den Komprimierer „none“ abgebildet wird. Für Xz von "
-"0-9. Für Zstd von 0-22, wobei die Stufen von 20-22 den Ultramodus "
-"aktivieren. Vor Dpkg 1.16.2 war die Stufe 0 äquivalent zu dem Komprimierer "
-"„none“ für alle Komprimierer."
+"Xz, 3 für Zstd, lange Option seit Dpkg 1.22.9. Die akzeptierten Werte hängen "
+"vom Komprimierer ab. Für Gzip von 0-9, wobei 0 auf den Komprimierer „none“ "
+"abgebildet wird. Für Xz von 0-9. Für Zstd von 0-22, wobei die Stufen von "
+"20-22 den Ultramodus aktivieren. Vor Dpkg 1.16.2 war die Stufe 0 äquivalent "
+"zu dem Komprimierer „none“ für alle Komprimierer."
#. type: =item
#: dpkg-deb.pod
-#, fuzzy
-#| msgid "B<-Z>, B<--compression=>I<compressor>"
msgid "B<-S>, B<--compression-strategy=>I<compress-strategy>"
-msgstr "B<-Z>, B<--compression=>I<Komprimierer>"
+msgstr "B<-S>, B<--compression-strategy=>I<Komprimierungsstrategie>"
#. type: textblock
#: dpkg-deb.pod
-#, fuzzy
-#| msgid ""
-#| "Specify which compression strategy to use on the compressor backend, when "
-#| "building a package (since dpkg 1.16.2). Allowed values are B<none> "
-#| "(since dpkg 1.16.4), B<filtered>, B<huffman>, B<rle> and B<fixed> for "
-#| "gzip (since dpkg 1.17.0) and B<extreme> for xz."
msgid ""
"Specify which compression strategy to use on the compressor backend, when "
"building a package (since dpkg 1.16.2, long option since dpkg 1.22.9). "
@@ -13862,33 +13821,28 @@ msgid ""
"B<rle> and B<fixed> for gzip (since dpkg 1.17.0) and B<extreme> for xz."
msgstr ""
"Gibt die zu verwendende Komprimierstrategie an, die für den Komprimierer-"
-"Backend beim Bau eines Pakets verwandt werden soll (seit Dpkg 1.16.2). "
-"Erlaubte Werte sind B<none> (seit Dpkg 1.16.4), B<filtered>, B<huffman>, "
-"B<rle> und B<fixed> für Gzip (seit Dpkg 1.17.0) und B<extreme> für Xz."
+"Backend beim Bau eines Pakets verwandt werden soll (seit Dpkg 1.16.2, lange "
+"Option seit Dpkg 1.22.9). Erlaubte Werte sind B<none> (seit Dpkg 1.16.4), "
+"B<filtered>, B<huffman>, B<rle> und B<fixed> für Gzip (seit Dpkg 1.17.0) und "
+"B<extreme> für Xz."
#. type: =item
#: dpkg-deb.pod
-#, fuzzy
-#| msgid "B<-Z>, B<--compression=>I<compressor>"
msgid "B<-Z>, B<--compression=>I<compress-type>"
-msgstr "B<-Z>, B<--compression=>I<Komprimierer>"
+msgstr "B<-Z>, B<--compression=>I<Komprimierungstyp>"
#. type: textblock
#: dpkg-deb.pod
-#, fuzzy
-#| msgid ""
-#| "Specify which compression type to use when building a package. Allowed "
-#| "values are B<gzip>, B<xz> (since dpkg 1.15.6), B<zstd> (since dpkg "
-#| "1.21.18) and B<none> (default is B<%DEB_DEFAULT_COMPRESSOR%>)."
msgid ""
"Specify which compression type to use when building a package (long option "
"since dpkg 1.22.9). Allowed values are B<gzip>, B<xz> (since dpkg 1.15.6), "
"B<zstd> (since dpkg 1.21.18) and B<none> (default is "
"B<%DEB_DEFAULT_COMPRESSOR%>)."
msgstr ""
-"Gibt die Art der Komprimierung beim Bau eines Pakets an. Erlaubte Werte sind "
-"B<gzip>, B<xz> (seit Dpkg 1.15.6), B<zstd> (seit Dpkg 1.21.18) und B<none> "
-"(voreingestellt ist B<%DEB_DEFAULT_COMPRESSOR%>)."
+"Gibt die Art der Komprimierung beim Bau eines Pakets an (lange Option seit "
+"Dpkg 1.22.9). Erlaubte Werte sind B<gzip>, B<xz> (seit Dpkg 1.15.6), B<zstd> "
+"(seit Dpkg 1.21.18) und B<none> (voreingestellt ist "
+"B<%DEB_DEFAULT_COMPRESSOR%>)."
#. type: =item
#: dpkg-deb.pod
diff --git a/man/po/dpkg-man.pot b/man/po/dpkg-man.pot
index db666ac..d39626f 100644
--- a/man/po/dpkg-man.pot
+++ b/man/po/dpkg-man.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: dpkg-man 1.22.10\n"
+"Project-Id-Version: dpkg-man 1.22.11\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -112,7 +112,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/es.po b/man/po/es.po
index 897a43f..cc8642e 100644
--- a/man/po/es.po
+++ b/man/po/es.po
@@ -38,7 +38,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.16.8\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:42+0200\n"
"Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -167,7 +167,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/fr.po b/man/po/fr.po
index 52b2fcc..b8982e6 100644
--- a/man/po/fr.po
+++ b/man/po/fr.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:52+0100\n"
"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -129,9 +129,13 @@ msgstr ""
#. type: textblock
#: deb-buildinfo.pod deb-changes.pod dsc.pod
+#, fuzzy
+#| msgid ""
+#| "The control data might be enclosed in an OpenPGP ASCII Armored signature, "
+#| "as specified in RFC4880."
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
"Les données de contrôle pourraient être incluses dans une signature OpenPGP "
"« ASCII Armored », comme spécifié dans la RFC4880."
diff --git a/man/po/hu.po b/man/po/hu.po
index 5c7a210..579de13 100644
--- a/man/po/hu.po
+++ b/man/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:42+0200\n"
"Last-Translator: SZERVÃC Attila <sas@321.hu>\n"
"Language-Team: Hungarian <debian-l10n-hungarian@lists.debian.org>\n"
@@ -124,7 +124,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/it.po b/man/po/it.po
index 7a9d59e..7fb1bf5 100644
--- a/man/po/it.po
+++ b/man/po/it.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.16.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:43+0200\n"
"Last-Translator: Beatrice Torracca <beatricet@libero.it>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
@@ -140,7 +140,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/ja.po b/man/po/ja.po
index 3af19c7..288ef27 100644
--- a/man/po/ja.po
+++ b/man/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:43+0200\n"
"Last-Translator: TAKAHASHI Motonobu <monyo@monyo.com>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
@@ -134,7 +134,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/nl.po b/man/po/nl.po
index 6a66482..552a56b 100644
--- a/man/po/nl.po
+++ b/man/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.22.6\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-04-20 23:23+0200\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
@@ -124,9 +124,13 @@ msgstr ""
#. type: textblock
#: deb-buildinfo.pod deb-changes.pod dsc.pod
+#, fuzzy
+#| msgid ""
+#| "The control data might be enclosed in an OpenPGP ASCII Armored signature, "
+#| "as specified in RFC4880."
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
"De controle-data mogen ingesloten liggen in een OpenPGP-handtekening met "
"ASCII-harnas volgens de specificatie RFC4880."
diff --git a/man/po/pl.po b/man/po/pl.po
index cd8ab48..90705e0 100644
--- a/man/po/pl.po
+++ b/man/po/pl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.15.4\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:43+0200\n"
"Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -139,7 +139,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/pt.po b/man/po/pt.po
index 1042aa1..f7dbd06 100644
--- a/man/po/pt.po
+++ b/man/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.22.5\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-03-03 22:04+0000\n"
"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
"Language-Team: Portuguese <>\n"
@@ -123,9 +123,13 @@ msgstr ""
#. type: textblock
#: deb-buildinfo.pod deb-changes.pod dsc.pod
+#, fuzzy
+#| msgid ""
+#| "The control data might be enclosed in an OpenPGP ASCII Armored signature, "
+#| "as specified in RFC4880."
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
"Os dados de controle podem estar inclusos numa assinatura OpenPGP ASCII "
"Armored, como especificado em RFC4880."
diff --git a/man/po/pt_BR.po b/man/po/pt_BR.po
index 8192789..3c9fb8a 100644
--- a/man/po/pt_BR.po
+++ b/man/po/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:44+0200\n"
"Last-Translator: Andre Luis Lopes <andrelop@debian.org>\n"
"Language-Team: Portuguese <debian-l10n-portuguese@lists.debian.org>\n"
@@ -113,7 +113,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/ru.po b/man/po/ru.po
index 28cd460..be88ea4 100644
--- a/man/po/ru.po
+++ b/man/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:44+0200\n"
"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
@@ -123,7 +123,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/po/sv.po b/man/po/sv.po
index 89c9921..f829f78 100644
--- a/man/po/sv.po
+++ b/man/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-04-28 15:33+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Svenska <tp-sv@listor.tp-sv.se>\n"
@@ -121,9 +121,13 @@ msgstr ""
#. type: textblock
#: deb-buildinfo.pod deb-changes.pod dsc.pod
+#, fuzzy
+#| msgid ""
+#| "The control data might be enclosed in an OpenPGP ASCII Armored signature, "
+#| "as specified in RFC4880."
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
"Styrinformationen kan omges av en OpenPGP-signatur i ASCII-skal, såsom "
"beskrivs i RFC4880."
diff --git a/man/po/zh_CN.po b/man/po/zh_CN.po
index d81e455..28326d3 100644
--- a/man/po/zh_CN.po
+++ b/man/po/zh_CN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-man 1.17.21\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-24 23:02+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-08 04:44+0200\n"
"Last-Translator: Zhou Mo <cdluminate@gmail.com>\n"
"Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n"
@@ -117,7 +117,7 @@ msgstr ""
#: deb-buildinfo.pod deb-changes.pod dsc.pod
msgid ""
"The control data might be enclosed in an OpenPGP ASCII Armored signature, as "
-"specified in RFC4880."
+"specified in RFC9580."
msgstr ""
#. type: textblock
diff --git a/man/pt/deb-buildinfo.pod b/man/pt/deb-buildinfo.pod
index 53e3df7..551eb81 100644
--- a/man/pt/deb-buildinfo.pod
+++ b/man/pt/deb-buildinfo.pod
@@ -26,7 +26,7 @@ Cada compilação de pacote fonte Debian pode gravar a informação de compilaç
Cada campo começa com uma etiqueta, tal como B<Source> ou B<Binary> (insensível a maiúsculas/minúsculas), seguida de dois pontos, e do corpo do campo (sensível a maiúsculas/minúsculas a menos que declarado o contrário). Os campos são delimitados apenas pelas etiquetas (tags) dos campos. Por outras palavras, o campo de texto pode ter várias linhas de comprimento, mas as ferramentas de instalação irão geralmente juntar as linhas quando processam o corpo do campo (excepto no caso de campos multi-linha B<Binary-Only-Changes>, B<Installed-Build-Depends>, B<Environment>, B<Checksums-Md5>, B<Checksums-Sha1> e B<Checksums-Sha256>, ver abaixo).
-Os dados de controle podem estar inclusos numa assinatura OpenPGP ASCII Armored, como especificado em RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
O nome do ficheiro B<.buildinfo> irá depender do tipo de compilação e será tão específico quanto necessário mas não mais; o nome irá ser:
diff --git a/man/pt/deb-changes.pod b/man/pt/deb-changes.pod
index 6cde25f..f70940a 100644
--- a/man/pt/deb-changes.pod
+++ b/man/pt/deb-changes.pod
@@ -26,7 +26,7 @@ Cada envio Debian é composto de um ficheiro de controle .changes, o qual conté
Cada campo começa com uma etiqueta, tal como B<Source> ou B<Binary> (insensível a maiúsculas/minúsculas), seguida do símbolo dois pontos, e o corpo do campo (sensível a maiúsculas/minúsculas a menos que declarado o contrário). Os campos são delimitados apenas por etiquetas de campos. Por outras palavras, o texto do campo pode ter várias linhas de comprimento, mas as ferramentas de instalação irão geralmente juntar as linhas quando processam o corpo do campo (excepto no caso de B<Description>, B<Changes>, B<Files>, B<Checksums-Sha1> e B<Checksums-Sha256> de múltiplos campos, ver abaixo).
-Os dados de controle podem estar inclusos numa assinatura OpenPGP ASCII Armored, como especificado em RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 CAMPOS
diff --git a/man/pt/dsc.pod b/man/pt/dsc.pod
index 74cb7b6..bca470d 100644
--- a/man/pt/dsc.pod
+++ b/man/pt/dsc.pod
@@ -26,7 +26,7 @@ Cada pacote fonte Debian é composto de um ficheiro .dsc, o qual contém um núm
Cada campo começa com uma etiqueta, tal como B<Source> ou B<Binary> (insensível a maiúsculas/minúsculas), seguida do símbolo dois pontos, e o corpo do campo (sensível a maiúsculas/minúsculas a menos que declarado o contrário). Os campos são delimitados apenas por etiquetas de campos. Por outras palavras, o texto do campo pode ter várias linhas de comprimento, mas as ferramentas de instalação irão geralmente juntar as linhas quando processam o corpo do campo (excepto no caso de B<Package-List>, B<Files>, B<Checksums-Sha1> e B<Checksums-Sha256> de múltiplos campos, ver abaixo).
-Os dados de controle podem estar inclusos numa assinatura OpenPGP ASCII Armored, como especificado em RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 CAMPOS
diff --git a/man/sv/deb-buildinfo.pod b/man/sv/deb-buildinfo.pod
index a9fa166..0f46fca 100644
--- a/man/sv/deb-buildinfo.pod
+++ b/man/sv/deb-buildinfo.pod
@@ -26,7 +26,7 @@ Alla Debian-källkodspaket kan lagra bygginformation i en B<.buildinfo>-styrfil,
Varje fält börjar med en etikett, såsom B<Source> eller B<Binary> (skiftlägesoberoende), följt av ett kolontecken och fältets kropp (skiftlägesberoende såvida inte annat anges). Fält avdelas endast av fältetiketter. Med andra ord kan texten i fälten spänna över flera rader, men installationsverktygen kommer oftast att slå samman rader när kroppen tolkas (förutom när det gäller flerradsfälten B<Binary-Only-Changes>, B<Installed-Build-Depends>, B<Environment>, B<Checksums-Md5>, B<Checksums-Sha1> och B<Checksums-Sha256>, se nedan).
-Styrinformationen kan omges av en OpenPGP-signatur i ASCII-skal, såsom beskrivs i RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
Namnet på B<.buildinfo>-filen kommer att bero på byggtypen och kommer att vara så specifik som möjligt, men inte mer; namnet kommer att vara:
diff --git a/man/sv/deb-changes.pod b/man/sv/deb-changes.pod
index edd48fe..20dea0f 100644
--- a/man/sv/deb-changes.pod
+++ b/man/sv/deb-changes.pod
@@ -26,7 +26,7 @@ Varje Debianinsändning består av en styrfil .changes, som innehåller ett anta
Varje fält börjar med en etikett, såsom B<Source> eller B<Binary> (skiftlägesoberoende), följt av ett kolontecken och fältets kropp (skiftlägesberoende såvida inte annat anges). Fält avdelas endast av fältetiketter. Med andra ord kan texten i fälten spänna över flera rader, men installationsverktygen kommer oftast att slå samman rader när kroppen tolkas (förutom när det gäller flerradsfälten B<Description>, B<Changes>, B<Files>, B<Checksums-Sha1> och B<Checksums-Sha256>, se nedan).
-Styrinformationen kan omges av en OpenPGP-signatur i ASCII-skal, såsom beskrivs i RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 FÄLT
diff --git a/man/sv/dsc.pod b/man/sv/dsc.pod
index 839abc1..d17844d 100644
--- a/man/sv/dsc.pod
+++ b/man/sv/dsc.pod
@@ -26,7 +26,7 @@ Alla Debian-källkodspaket består av en .dsc-styrfil, vilken består av ett ant
Varje fält börjar med en etikett, såsom B<Source> eller B<Binary> (skiftlägesoberoende), följt av ett kolontecken och fältets kropp (skiftlägesberoende såvida inte annat anges). Fält avdelas endast av fältetiketter. Med andra ord kan texten i fälten spänna över flera rader, men installationsverktygen kommer oftast att slå samman rader när kroppen tolkas (förutom när det gäller flerradsfälten B<Package-List>, B<Files>, B<Checksums-Sha1> and B<Checksums-Sha256>, se nedan).
-Styrinformationen kan omges av en OpenPGP-signatur i ASCII-skal, såsom beskrivs i RFC4880.
+The control data might be enclosed in an OpenPGP ASCII Armored signature, as specified in RFC9580.
=head1 FÄLT
diff --git a/po/ast.po b/po/ast.po
index d5cfdbc..b7a57c1 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.14.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:47+0200\n"
"Last-Translator: Marcos Alvarez Costales <marcos.alvarez.costales@gmail."
"com>\n"
diff --git a/po/bs.po b/po/bs.po
index ae90f2b..f455969 100644
--- a/po/bs.po
+++ b/po/bs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 10:02+0200\n"
"Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
"Language-Team: Bosnian <lokal@linux.org.ba>\n"
diff --git a/po/ca.po b/po/ca.po
index dede09b..451a097 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.18\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-07-21 19:57+0200\n"
"Last-Translator: Guillem Jover <guillem@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
diff --git a/po/cs.po b/po/cs.po
index 22950e9..833013f 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-01 23:14+0100\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
diff --git a/po/da.po b/po/da.po
index 9c64e2a..439a22d 100644
--- a/po/da.po
+++ b/po/da.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:48+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
diff --git a/po/de.gmo b/po/de.gmo
index f3a72d6..a75fbd2 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 4d9f501..bf37e6d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,10 +11,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: dpkg 1.22.7\n"
+"Project-Id-Version: dpkg 1.22.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
-"PO-Revision-Date: 2024-07-17 17:10+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
+"PO-Revision-Date: 2024-07-27 17:22+0200\n"
"Last-Translator: Sven Joachim <svenjoac@gmx.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
@@ -352,7 +352,7 @@ msgstr "%s: zstd-Fehler beim Schließen"
#: lib/dpkg/compress.c
#, c-format
msgid "invalid compression level %d"
-msgstr "ungültiger Komprimierlevel %d"
+msgstr "ungültige Komprimierstufe %d"
#: lib/dpkg/compress.c
msgid "unknown compression strategy"
@@ -2636,10 +2636,9 @@ msgid "'%.255s' contains no control component '%.255s'"
msgstr "»%.255s« enthält keine control-Komponente »%.255s«"
#: src/deb/info.c
-#, fuzzy, c-format
-#| msgid "cannot open file %s"
+#, c-format
msgid "cannot open file '%.255s'"
-msgstr "Datei %s kann nicht geöffnet werden"
+msgstr "Datei »%.255s« kann nicht geöffnet werden"
#: src/deb/info.c
#, c-format
@@ -2654,16 +2653,14 @@ msgid "cannot scan directory '%.255s'"
msgstr "Verzeichnis »%.255s« kann nicht durchsucht werden"
#: src/deb/info.c
-#, fuzzy, c-format
-#| msgid "cannot get %s file metadata"
+#, c-format
msgid "cannot get file '%.255s' metadata"
-msgstr "Metadaten der Datei %s können nicht erhalten werden"
+msgstr "Metadaten der Datei »%.255s« können nicht ermittelt werden"
#: src/deb/info.c
-#, fuzzy, c-format
-#| msgid "cannot read link '%s'"
+#, c-format
msgid "cannot read file '%.255s'"
-msgstr "Link »%s« kann nicht gelesen werden"
+msgstr "Datei »%.255s« kann nicht gelesen werden"
#: src/deb/info.c
#, c-format
@@ -2766,35 +2763,7 @@ msgstr ""
"\n"
#: src/deb/main.c
-#, fuzzy, c-format
-#| msgid ""
-#| "Options:\n"
-#| " -v, --verbose Enable verbose output.\n"
-#| " -D, --debug Enable debugging output.\n"
-#| " --showformat=<format> Use alternative format for --show.\n"
-#| " --deb-format=<format> Select archive format.\n"
-#| " Allowed values: 0.939000, 2.0 "
-#| "(default).\n"
-#| " --nocheck Suppress control file check (build "
-#| "bad\n"
-#| " packages).\n"
-#| " --root-owner-group Forces the owner and groups to root.\n"
-#| " --threads-max=<threads> Use at most <threads> with "
-#| "compressor.\n"
-#| " --[no-]uniform-compression Use the compression params on all "
-#| "members.\n"
-#| " -z# Set the compression level when "
-#| "building.\n"
-#| " -Z<type> Set the compression type used when "
-#| "building.\n"
-#| " Allowed types: gzip, xz, zstd, "
-#| "none.\n"
-#| " -S<strategy> Set the compression strategy when "
-#| "building.\n"
-#| " Allowed values: none; extreme (xz);\n"
-#| " filtered, huffman, rle, fixed "
-#| "(gzip).\n"
-#| "\n"
+#, c-format
msgid ""
"Options:\n"
" -v, --verbose Enable verbose output.\n"
@@ -2835,11 +2804,12 @@ msgstr ""
" --[no-]uniform-compression Die Komprimierungsparameter für alle "
"Elemente\n"
" verwenden.\n"
-" -z# Die Komprimierungsstärke beim Bauen "
-"setzen.\n"
-" -Z<Typ> Den Komprimierungstyp beim Bauen setzen.\n"
+" -Z, --compression=<Komprimierer> Den Komprimierungstyp beim Bauen setzen.\n"
" Erlaubte Werte: gzip, xz, zstd, none.\n"
-" -S<Strategie> Die Komprimierungsstrategie beim Bauen "
+" -z, --compression-level=<Stufe> Die Komprimierungsstufe beim Bauen "
+"setzen.\n"
+" -S, --compression-strategy=<Name>\n"
+" Die Komprimierungsstrategie beim Bauen "
"setzen.\n"
" Erlaubte Werte: none, extreme (xz);\n"
" filtered, huffman, rle, fixed (gzip).\n"
diff --git a/po/dpkg.pot b/po/dpkg.pot
index f8d5400..b6ba0a6 100644
--- a/po/dpkg.pot
+++ b/po/dpkg.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: dpkg 1.22.10\n"
+"Project-Id-Version: dpkg 1.22.11\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/dz.po b/po/dz.po
index 8b2d47e..2daf753 100644
--- a/po/dz.po
+++ b/po/dz.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:48+0200\n"
"Last-Translator: Tshewang Norbu <bumthap2006@hotmail.com>\n"
"Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\n"
diff --git a/po/el.po b/po/el.po
index 48b7479..acb2170 100644
--- a/po/el.po
+++ b/po/el.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:48+0200\n"
"Last-Translator: quad-nrg.net <yodesy@quad-nrg.net>\n"
"Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
diff --git a/po/eo.po b/po/eo.po
index 0c46a4c..2e2afe9 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:49+0200\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <debian-l10n-esperanto@lists.debian.org>\n"
diff --git a/po/es.po b/po/es.po
index 1a1fe82..690a064 100644
--- a/po/es.po
+++ b/po/es.po
@@ -38,7 +38,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.16.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2017-11-08 00:59+0100\n"
"Last-Translator: Javier Fernandez-Sanguino <jfs@debian.org>\n"
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
diff --git a/po/et.po b/po/et.po
index 66175f6..648944b 100644
--- a/po/et.po
+++ b/po/et.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.14.5\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:49+0200\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
diff --git a/po/eu.po b/po/eu.po
index 6e04f3c..5fa8cc7 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.22\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:49+0200\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
"Language-Team: Basque <debian-l10n-basque@lists.debian.org>\n"
diff --git a/po/fr.po b/po/fr.po
index f0a0d36..4583dc9 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:47+0100\n"
"Last-Translator: Sébastien Poher <sebastien@volted.net>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
diff --git a/po/gl.po b/po/gl.po
index 2f6630f..17503fb 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:49+0200\n"
"Last-Translator: mvillarino <mvillarino@users.sourceforge.net>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/hu.po b/po/hu.po
index bd2b935..c0db30c 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:44+0100\n"
"Last-Translator: Nagy Elemér Károly <nagy.elemer.karoly@gmail.com>\n"
"Language-Team: Hungarian <debian-l10n-hungarian@lists.debian.org>\n"
diff --git a/po/id.po b/po/id.po
index a7772e0..60f1f0d 100644
--- a/po/id.po
+++ b/po/id.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.15\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-06-26 16:12+0200\n"
"Last-Translator: Arief S Fitrianto <arief@gurame.fisika.ui.ac.id>\n"
"Language-Team: Indonesian <debian-l10n-indonesian@lists.debian.org>\n"
diff --git a/po/it.po b/po/it.po
index 948b459..6b43eac 100644
--- a/po/it.po
+++ b/po/it.po
@@ -26,7 +26,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.19.3\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2018-12-04 12:15+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.po b/po/ja.po
index 38ecc18..9c53416 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.18.3\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2022-11-03 20:08+0100\n"
"Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
diff --git a/po/km.po b/po/km.po
index a270619..78f761b 100644
--- a/po/km.po
+++ b/po/km.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:50+0200\n"
"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
"Language-Team: Khmer <support@khmeros.info>\n"
diff --git a/po/ko.po b/po/ko.po
index bfd1305..613f0fd 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-06-26 16:12+0200\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n"
diff --git a/po/ku.po b/po/ku.po
index 675a939..70810aa 100644
--- a/po/ku.po
+++ b/po/ku.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:50+0200\n"
"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
"Language-Team: Kurdish <ku@li.org>\n"
diff --git a/po/lt.po b/po/lt.po
index 115bc5e..d49961a 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:50+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/mr.po b/po/mr.po
index 21a8ce5..dff0429 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:51+0200\n"
"Last-Translator: Priti Patil <prithisd@gmail.com>\n"
"Language-Team: Marathi <janabhaaratii@cdacmumbai.in>\n"
diff --git a/po/nb.po b/po/nb.po
index cf89363..eb5b6d9 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:51+0200\n"
"Last-Translator: Hans Fredrik Nordhaug <hans@nordhaug.priv.no>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/ne.po b/po/ne.po
index 79aa2c2..4831894 100644
--- a/po/ne.po
+++ b/po/ne.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:51+0200\n"
"Last-Translator: Nabin Gautam <nabin@mpp.org.np>\n"
"Language-Team: Nepali <info@mpp.org.np>\n"
diff --git a/po/nl.po b/po/nl.po
index 64e7062..4136992 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.22.1\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-12-03 17:45+0100\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
diff --git a/po/nn.po b/po/nn.po
index e9c6a85..389f936 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:51+0200\n"
"Last-Translator: HÃ¥vard Korsvoll <korsvoll@skulelinux.no>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
diff --git a/po/oc.po b/po/oc.po
index f324dee..e3ac91c 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:42+0100\n"
"Last-Translator: Quentin PAGÈS <quentinantonin@free.fr>\n"
"Language-Team: Occitan\n"
diff --git a/po/pa.po b/po/pa.po
index dc4d46a..98f15d0 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:51+0200\n"
"Last-Translator: A S Alam <apbrar@gmail.com>\n"
"Language-Team: Punjabi <punjabi-users@lists.sf.net>\n"
diff --git a/po/pl.po b/po/pl.po
index 3c3454c..e44d8cc 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.20.7\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2021-04-24 19:50+0200\n"
"Last-Translator: Åukasz Dulny <bartekchom@poczta.onet.pl>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
diff --git a/po/pt.po b/po/pt.po
index 94cdc6b..ad06b65 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-04 14:11+0000\n"
"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ad5b45a..bfc8c12 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:52+0200\n"
"Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
diff --git a/po/ro.po b/po/ro.po
index 4eaa7a2..083b1a6 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-10-04 11:08+0200\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
diff --git a/po/ru.po b/po/ru.po
index 564e0ae..f46c31a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-06 00:01+0100\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
diff --git a/po/sk.po b/po/sk.po
index df832bd..7044b82 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 10:01+0200\n"
"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
"Language-Team: Slovak <debian-l10n-slovak@lists.debian.org>\n"
diff --git a/po/sv.po b/po/sv.po
index ebc9dd8..bf53769 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-04-28 14:30+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Svenska <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/th.po b/po/th.po
index 7c389bd..1d1b8bc 100644
--- a/po/th.po
+++ b/po/th.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-05 23:45+0100\n"
"Last-Translator: Theppitak Karoonboonyanan <thep@debian.org>\n"
"Language-Team: Thai <thai-l10n@googlegroups.com>\n"
diff --git a/po/tl.po b/po/tl.po
index 1f96f96..b9deae9 100644
--- a/po/tl.po
+++ b/po/tl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 09:53+0200\n"
"Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
"Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
diff --git a/po/tr.po b/po/tr.po
index 0c4ad88..f572fd6 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.17.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2018-01-03 16:44+0300\n"
"Last-Translator: Mert Dirik <mertdirik@gmail.com>\n"
"Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
diff --git a/po/vi.po b/po/vi.po
index 9d7d94b..4aceb3c 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.18.2\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2016-01-14 08:22+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <debian-l10n-vietnamese@lists.debian.org>\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 331744d..c4ef041 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-01-27 15:39-0500\n"
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 3dd5949..432e89f 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg 1.13\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2018-04-15 07:06+0800\n"
"Last-Translator: æž—åšä» <Buo.Ren.Lin@gmail.com>\n"
"Language-Team: Chinese (traditional) <debian-l10n-chinese@lists.debian.org>\n"
diff --git a/scripts/Dpkg/OpenPGP/Backend/GnuPG.pm b/scripts/Dpkg/OpenPGP/Backend/GnuPG.pm
index 43ac1e2..8c23872 100644
--- a/scripts/Dpkg/OpenPGP/Backend/GnuPG.pm
+++ b/scripts/Dpkg/OpenPGP/Backend/GnuPG.pm
@@ -107,7 +107,7 @@ sub get_trusted_keyrings {
}
# _pgp_* functions are strictly for applying or removing ASCII armor.
-# See <https://datatracker.ietf.org/doc/html/rfc4880#section-6> for more
+# See <https://www.rfc-editor.org/rfc/rfc9580.html#section-6> for more
# details.
#
# Note that these _pgp_* functions are only necessary while relying on
@@ -118,8 +118,7 @@ sub _pgp_dearmor_data {
my ($type, $data) = @_;
# Note that we ignore an incorrect or absent checksum, following the
- # guidance of
- # <https://datatracker.ietf.org/doc/draft-ietf-openpgp-crypto-refresh/>.
+ # guidance of <https://www.rfc-editor.org/rfc/rfc9580.html>.
my $armor_regex = qr{
-----BEGIN\ PGP\ \Q$type\E-----[\r\t ]*\n
(?:[^:]+:\ [^\n]*[\r\t ]*\n)*
@@ -138,8 +137,7 @@ sub _pgp_dearmor_data {
sub _pgp_armor_checksum {
my ($data) = @_;
- # From the upcoming revision to RFC 4880
- # <https://datatracker.ietf.org/doc/draft-ietf-openpgp-crypto-refresh/>.
+ # From RFC9580 <https://www.rfc-editor.org/rfc/rfc9580.html>.
#
# The resulting three-octet-wide value then gets base64-encoded into
# four base64 ASCII characters.
diff --git a/scripts/Dpkg/Shlibs/Cppfilt.pm b/scripts/Dpkg/Shlibs/Cppfilt.pm
index 010fe66..e2e1a3a 100644
--- a/scripts/Dpkg/Shlibs/Cppfilt.pm
+++ b/scripts/Dpkg/Shlibs/Cppfilt.pm
@@ -101,6 +101,8 @@ sub cppfilt_demangle {
# as allowed by C++11, contrary to GNU binutils.
if ($symbol eq $demangled) {
$demangled = undef;
+ } elsif ($demangled =~ m{operator>>}) {
+ # Special case operator>> and operator>>=.
} else {
$demangled =~ s{(?<=>)(?=>)}{ }g;
}
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 005c115..9cfdc10 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -323,6 +323,8 @@ test_data = \
t/Dpkg_OpenPGP/sign-file-inline.sig \
t/Dpkg_OpenPGP/sign-file.asc \
t/Dpkg_OpenPGP/sign-file.sig \
+ t/Dpkg_Shlibs/anglebrackets.cpp \
+ t/Dpkg_Shlibs/anglebrackets.symbols \
t/Dpkg_Shlibs/basictags.c \
t/Dpkg_Shlibs/basictags.symbols \
t/Dpkg_Shlibs/ld.so.conf \
@@ -330,6 +332,7 @@ test_data = \
t/Dpkg_Shlibs/ld.so.conf.d/normal.conf \
t/Dpkg_Shlibs/ld.so.conf.d/recursive.conf \
t/Dpkg_Shlibs/ld.so.conf_2 \
+ t/Dpkg_Shlibs/objdump.anglebrackets \
t/Dpkg_Shlibs/objdump.basictags-amd64 \
t/Dpkg_Shlibs/objdump.basictags-i386 \
t/Dpkg_Shlibs/objdump.basictags-mips \
@@ -431,17 +434,24 @@ EXTRA_DIST += \
# EOL
test_data_objects = \
+ t/Dpkg_Shlibs/libobjdump.anglebrackets.so \
t/Dpkg_Shlibs/libobjdump.basictags-amd64.so \
t/Dpkg_Shlibs/libobjdump.basictags-i386.so \
t/Dpkg_Shlibs/libobjdump.basictags-mips.so \
t/Dpkg_Shlibs/libobjdump.patterns.so \
t/Dpkg_Shlibs/libobjdump.spacesyms.so \
+ t/Dpkg_Shlibs/spacesyms.c \
+ t/Dpkg_Shlibs/spacesyms.o \
# EOL
CLEANFILES += \
$(test_data_objects) \
# EOL
+$(srcdir)/t/Dpkg_Shlibs/libobjdump.anglebrackets.so: $(srcdir)/t/Dpkg_Shlibs/anglebrackets.cpp
+ $(CXX) $(CXXFLAGS) -shared -fPIC -Wl,-soname -Wl,libanglebrackets.so.1 \
+ $< -o $@
+
$(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-amd64.so: $(srcdir)/t/Dpkg_Shlibs/basictags.c
$(CC) $(CFLAGS) -shared -fPIC -Wl,-soname -Wl,libbasictags.so.1 $< \
-DAMD64 -o $@
@@ -475,6 +485,8 @@ $(srcdir)/t/Dpkg_Shlibs/libobjdump.spacesyms.so: $(srcdir)/t/Dpkg_Shlibs/spacesy
OBJDUMP = objdump -w -f -p -T -R
refresh-test-data: $(test_data_objects)
+ $(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.anglebrackets.so \
+ >$(srcdir)/t/Dpkg_Shlibs/objdump.anglebrackets
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-amd64.so \
>$(srcdir)/t/Dpkg_Shlibs/objdump.basictags-amd64
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-i386.so \
@@ -485,7 +497,7 @@ refresh-test-data: $(test_data_objects)
>$(srcdir)/t/Dpkg_Shlibs/objdump.patterns
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.spacesyms.so \
>$(srcdir)/t/Dpkg_Shlibs/objdump.spacesyms
- $(OBJDUMP) `which ls` >$(srcdir)/t/Dpkg_Shlibs/objdump.ls
+ $(OBJDUMP) `command -v ls` >$(srcdir)/t/Dpkg_Shlibs/objdump.ls
include $(top_srcdir)/build-aux/tap.am
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 985ee55..7cde80a 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -734,6 +734,8 @@ test_data = \
t/Dpkg_OpenPGP/sign-file-inline.sig \
t/Dpkg_OpenPGP/sign-file.asc \
t/Dpkg_OpenPGP/sign-file.sig \
+ t/Dpkg_Shlibs/anglebrackets.cpp \
+ t/Dpkg_Shlibs/anglebrackets.symbols \
t/Dpkg_Shlibs/basictags.c \
t/Dpkg_Shlibs/basictags.symbols \
t/Dpkg_Shlibs/ld.so.conf \
@@ -741,6 +743,7 @@ test_data = \
t/Dpkg_Shlibs/ld.so.conf.d/normal.conf \
t/Dpkg_Shlibs/ld.so.conf.d/recursive.conf \
t/Dpkg_Shlibs/ld.so.conf_2 \
+ t/Dpkg_Shlibs/objdump.anglebrackets \
t/Dpkg_Shlibs/objdump.basictags-amd64 \
t/Dpkg_Shlibs/objdump.basictags-i386 \
t/Dpkg_Shlibs/objdump.basictags-mips \
@@ -837,11 +840,14 @@ test_data = \
# EOL
test_data_objects = \
+ t/Dpkg_Shlibs/libobjdump.anglebrackets.so \
t/Dpkg_Shlibs/libobjdump.basictags-amd64.so \
t/Dpkg_Shlibs/libobjdump.basictags-i386.so \
t/Dpkg_Shlibs/libobjdump.basictags-mips.so \
t/Dpkg_Shlibs/libobjdump.patterns.so \
t/Dpkg_Shlibs/libobjdump.spacesyms.so \
+ t/Dpkg_Shlibs/spacesyms.c \
+ t/Dpkg_Shlibs/spacesyms.o \
# EOL
all: all-recursive
@@ -1409,6 +1415,10 @@ coverage: check
coverage-clean:
rm -rf cover_db
+$(srcdir)/t/Dpkg_Shlibs/libobjdump.anglebrackets.so: $(srcdir)/t/Dpkg_Shlibs/anglebrackets.cpp
+ $(CXX) $(CXXFLAGS) -shared -fPIC -Wl,-soname -Wl,libanglebrackets.so.1 \
+ $< -o $@
+
$(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-amd64.so: $(srcdir)/t/Dpkg_Shlibs/basictags.c
$(CC) $(CFLAGS) -shared -fPIC -Wl,-soname -Wl,libbasictags.so.1 $< \
-DAMD64 -o $@
@@ -1440,6 +1450,8 @@ $(srcdir)/t/Dpkg_Shlibs/libobjdump.spacesyms.so: $(srcdir)/t/Dpkg_Shlibs/spacesy
.PHONY: refresh-test-data
refresh-test-data: $(test_data_objects)
+ $(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.anglebrackets.so \
+ >$(srcdir)/t/Dpkg_Shlibs/objdump.anglebrackets
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-amd64.so \
>$(srcdir)/t/Dpkg_Shlibs/objdump.basictags-amd64
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.basictags-i386.so \
@@ -1450,7 +1462,7 @@ refresh-test-data: $(test_data_objects)
>$(srcdir)/t/Dpkg_Shlibs/objdump.patterns
$(OBJDUMP) $(srcdir)/t/Dpkg_Shlibs/libobjdump.spacesyms.so \
>$(srcdir)/t/Dpkg_Shlibs/objdump.spacesyms
- $(OBJDUMP) `which ls` >$(srcdir)/t/Dpkg_Shlibs/objdump.ls
+ $(OBJDUMP) `command -v ls` >$(srcdir)/t/Dpkg_Shlibs/objdump.ls
TEST_VERBOSE ?= 0
TEST_PARALLEL ?= 1
diff --git a/scripts/po/ca.po b/scripts/po/ca.po
index fa05c4a..9f14f8a 100644
--- a/scripts/po/ca.po
+++ b/scripts/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.21.18\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-07-21 19:57+0200\n"
"Last-Translator: Guillem Jover <guillem@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
diff --git a/scripts/po/de.gmo b/scripts/po/de.gmo
index 102d2dc..9e51c39 100644
--- a/scripts/po/de.gmo
+++ b/scripts/po/de.gmo
Binary files differ
diff --git a/scripts/po/de.po b/scripts/po/de.po
index ab85b9b..8ff6bc8 100644
--- a/scripts/po/de.po
+++ b/scripts/po/de.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: dpkg-dev 1.22.6\n"
+"Project-Id-Version: dpkg-dev 1.22.10\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
-"PO-Revision-Date: 2024-07-03 21:25+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
+"PO-Revision-Date: 2024-07-27 14:36+0200\n"
"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
@@ -268,10 +268,9 @@ msgid "%s needs a parameter"
msgstr "%s benötigt einen Parameter"
#: scripts/dpkg-buildpackage.pl
-#, fuzzy, perl-format
-#| msgid "Usage: %s [<option>...] [<control-file>]"
+#, perl-format
msgid "Usage: %s [<option>...] [--] [<filename.dsc>|<directory>]"
-msgstr "Aufruf: %s [<Option> …] [<Steuerdatei>]"
+msgstr "Aufruf: %s [<Option>…] [--] [<Dateiname.dsc>|<Verzeichnis>]"
#: scripts/dpkg-buildpackage.pl
msgid ""
@@ -568,32 +567,29 @@ msgid "sign-command '%s' not found"
msgstr "Signierbefehl »%s« nicht gefunden"
#: scripts/dpkg-buildpackage.pl
-#, fuzzy, perl-format
-#| msgid "cannot change directory %s mode"
+#, perl-format
msgid "cannot change directory to %s"
-msgstr "Verzeichnismodus von %s kann nicht geändert werden"
+msgstr "Verzeichnis kann nicht nach %s geändert werden"
#: scripts/dpkg-buildpackage.pl
#, perl-format
msgid "building source package would overwrite input source %s"
-msgstr ""
+msgstr "Bauen des Quellpakets würde Eingabequellen %s überschreiben"
#: scripts/dpkg-buildpackage.pl
-#, fuzzy, perl-format
-#| msgid "leave original source packed in current directory"
+#, perl-format
msgid "source package %s is expected in the current directory"
-msgstr "ursprüngliche Quelle im aktuellen Verzeichnis gepackt lassen"
+msgstr "Quellpaket %s wird im aktuellen Verzeichnis erwartet"
#: scripts/dpkg-buildpackage.pl
#, perl-format
msgid "source directory %s exists already, aborting"
-msgstr ""
+msgstr "Quellverzeichnis %s existiert bereits, Abbruch"
#: scripts/dpkg-buildpackage.pl
-#, fuzzy, perl-format
-#| msgid "extracting unsigned source package (%s)"
+#, perl-format
msgid "extracting source package %s"
-msgstr "unsigniertes Quellpaket wird extrahiert (%s)"
+msgstr "Quellpaket wird extrahiert (%s)"
#: scripts/dpkg-buildpackage.pl
msgid "source package"
@@ -641,10 +637,9 @@ msgstr ""
"UNRELEASED-Bau nicht signiert; verwenden Sie --force-sign zum Ãœbersteuern"
#: scripts/dpkg-buildpackage.pl
-#, fuzzy, perl-format
-#| msgid "created directory '%s'"
+#, perl-format
msgid "removing extracted source directory %s"
-msgstr "Verzeichnis %s erstellt"
+msgstr "extrahiertes Quellverzeichnis %s wird entfernt"
#: scripts/dpkg-buildpackage.pl
#, perl-format
@@ -2330,30 +2325,26 @@ msgid "'%s' is not a legal architecture in list '%s'"
msgstr "»%s« ist keine gültige Architektur in der Liste »%s«"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot parse %s field"
+#, perl-format
msgid "cannot get archive %s size"
-msgstr "das Feld %s kann nicht ausgewertet werden"
+msgstr "Größe des Archivs %s kann nicht ermittelt werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot create file %s"
+#, perl-format
msgid "cannot open or create archive %s"
-msgstr "Datei %s kann nicht erstellt werden"
+msgstr "Archiv %s kann nicht geöffnet oder erstellt werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot write signature file %s"
+#, perl-format
msgid "cannot write magic into archive %s"
-msgstr "Signaturdatei %s kann nicht geschrieben werden"
+msgstr "Signatur kann nicht in Archiv %s geschrieben werden"
#. TRANSLATORS: The first %s string is either "the archive magic" or
#. "a file header".
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot parse %s field"
+#, perl-format
msgid "cannot read %s; archive %s at offset %d"
-msgstr "das Feld %s kann nicht ausgewertet werden"
+msgstr "%s kann nicht gelesen werden: Archiv %s bei Versatz %d"
#. TRANSLATORS: The first %s string is either "the archive magic" or
#. "a file header".
@@ -2361,93 +2352,88 @@ msgstr "das Feld %s kann nicht ausgewertet werden"
#, perl-format
msgid "cannot read %s; archive %s is truncated at offset %d"
msgstr ""
+"%s kann nicht gelesen werden: Archiv %s ist bei Versatz %d abgeschnitten"
#: scripts/Dpkg/Archive/Ar.pm
msgid "the archive magic"
-msgstr ""
+msgstr "die Archivsignatur"
#: scripts/Dpkg/Archive/Ar.pm
#, perl-format
msgid "archive %s contains no magic"
-msgstr ""
+msgstr "Archiv %s enthält keine Signatur"
#: scripts/Dpkg/Archive/Ar.pm
#, perl-format
msgid "archive %s contains bad magic"
-msgstr ""
+msgstr "Archiv %s enthält fehlerhafte Signatur"
#: scripts/Dpkg/Archive/Ar.pm
msgid "a file header"
-msgstr ""
+msgstr "Dateikopfzeilen"
#: scripts/Dpkg/Archive/Ar.pm
#, perl-format
msgid "file header at offset %d in archive %s contains bad magic"
msgstr ""
+"Dateikopfzeilen bei Versatz %d in Archiv %s enthält fehlerhafte Signatur"
#: scripts/Dpkg/Archive/Ar.pm
#, perl-format
msgid "cannot seek into next file header at offset %d from archive %s"
msgstr ""
+"kann nicht zu den nächsten Dateikopfzeilen bei Versatz %d aus Archiv %s "
+"suchen"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot seek into file %s"
+#, perl-format
msgid "cannot seek into beginning of archive %s"
-msgstr "auf die Datei %s kann nicht mit seek zugegriffen werden"
+msgstr "kann nicht in den Anfang des Archivs %s suchen"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot create file %s"
+#, perl-format
msgid "cannot read file %s"
-msgstr "Datei %s kann nicht erstellt werden"
+msgstr "Datei %s kann nicht gelesen werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot create file %s"
+#, perl-format
msgid "cannot write file %s"
-msgstr "Datei %s kann nicht erstellt werden"
+msgstr "Datei %s kann nicht geschrieben werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot create pipe for %s"
+#, perl-format
msgid "cannot create file %s to extract from archive %s"
-msgstr "Pipe für %s kann nicht angelegt werden"
+msgstr "Datei %s kann nicht zum Extrahieren aus Archiv %s erstellt werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot read files list file"
+#, perl-format
msgid "cannot write file %s to the filesystem"
-msgstr "Dateilistendatei kann nicht gelesen werden"
+msgstr "Datei %s kann nicht in das Dateisystem geschrieben werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot remove destination file %s"
+#, perl-format
msgid "cannot write file header into archive %s"
-msgstr "Zieldatei %s kann nicht entfernt werden"
+msgstr "Datei-Kopfzeilen können nicht in Archiv %s geschrieben werden"
#: scripts/Dpkg/Archive/Ar.pm
#, perl-format
msgid "filename %s is too long"
-msgstr ""
+msgstr "Dateiname %s ist zu lang"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot open file %s for binary detection"
+#, perl-format
msgid "cannot open file %s to append to archive %s"
-msgstr "kann Datei %s nicht zur Binärerkennung öffnen"
+msgstr "Datei %s kann nicht zum Anhängen an Archiv %s geöffnet werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot create file %s"
+#, perl-format
msgid "cannot get file %s size"
-msgstr "Datei %s kann nicht erstellt werden"
+msgstr "Größe der Datei %s kann nicht ermittelt werden"
#: scripts/Dpkg/Archive/Ar.pm
-#, fuzzy, perl-format
-#| msgid "cannot write signature file %s"
+#, perl-format
msgid "cannot write file %s padding to archive %s"
-msgstr "Signaturdatei %s kann nicht geschrieben werden"
+msgstr "Auffüllung für Datei %s in Archiv %s kann nicht geschrieben werden"
#: scripts/Dpkg/BuildAPI.pm
msgid "dpkg build API level needs an exact version"
@@ -2469,10 +2455,9 @@ msgid "dpkg build API level '%s' greater than max '%s'"
msgstr "Dpkg-Bau-API-Stufe »%s« größer als Maximum »%s«"
#: scripts/Dpkg/BuildDriver.pm
-#, fuzzy, perl-format
-#| msgid "changelog format %s is unknown: %s"
+#, perl-format
msgid "build driver %s is unknown: %s"
-msgstr "unbekanntes Changelog-Format %s: %s"
+msgstr "Bautreiber %s ist unbekannt: %s"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
msgid "using a gain-root-command while being root"
@@ -2492,10 +2477,9 @@ msgid "gain-root-command '%s' not found"
msgstr "root-werde-Befehl »%s« nicht gefunden"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
-#, fuzzy, perl-format
-#| msgid "disallowed target in %s field keyword \"%s\""
+#, perl-format
msgid "disallowed target in %s field keyword %s"
-msgstr "nicht erlaubtes Ziel im %s-Feld-Schlüsselwort »%s«"
+msgstr "nicht erlaubtes Ziel im %s-Feld-Schlüsselwort %s"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
#, perl-format
@@ -2521,10 +2505,9 @@ msgid "%s field keyword \"%s\" is unknown"
msgstr "%s-Feldschlüsselwort »%s« ist unbekannt"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
-#, fuzzy, perl-format
-#| msgid "field %s contains duplicate keyword \"%s\""
+#, perl-format
msgid "field %s contains duplicate keyword %s"
-msgstr "Feld %s enthält doppeltes Schlüsselwort »%s«"
+msgstr "Feld %s enthält doppeltes Schlüsselwort %s"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
#, perl-format
@@ -2534,10 +2517,9 @@ msgstr ""
"Schlüsselwörter"
#: scripts/Dpkg/BuildDriver/DebianRules.pm
-#, fuzzy, perl-format
-#| msgid "debian/rules is not executable; fixing that"
+#, perl-format
msgid "%s is not executable; fixing that"
-msgstr "debian/rules ist nicht ausführbar: wird korrigiert"
+msgstr "%s ist nicht ausführbar: wird korrigiert"
#: scripts/Dpkg/BuildFlags.pm scripts/Dpkg/Compression/FileHandle.pm
#: scripts/Dpkg/File.pm scripts/Dpkg/Interface/Storable.pm
@@ -2763,7 +2745,7 @@ msgstr "der Abspann passte nicht auf den erwarteten regulären Ausdruck"
#: scripts/Dpkg/Changelog/Parse.pm
#, perl-format
msgid "cannot seek into file %s"
-msgstr "auf die Datei %s kann nicht mit seek zugegriffen werden"
+msgstr "in Datei %s kann nicht gesucht werden"
#: scripts/Dpkg/Changelog/Parse.pm
#, perl-format
@@ -3384,10 +3366,9 @@ msgstr[1] ""
"include-binaries hinzu, um ihre Aufnahme zu erlauben)."
#: scripts/Dpkg/Source/Format.pm
-#, fuzzy, perl-format
-#| msgid "source package format '%s' is not supported: %s"
+#, perl-format
msgid "source package format '%s' is invalid"
-msgstr "Quellpaketformat »%s« wird nicht unterstützt: %s"
+msgstr "Quellpaketformat »%s« ist ungültig"
#: scripts/Dpkg/Source/Functions.pm
#, perl-format
@@ -4448,10 +4429,9 @@ msgid "substitution variable ${%s} used, but is not defined"
msgstr "Substitutionsvariable ${%s} verwandt, aber nicht definiert"
#: scripts/Dpkg/Substvars.pm
-#, fuzzy, perl-format
-#| msgid "deprecated substitution variable ${%s}"
+#, perl-format
msgid "required substitution variable ${%s} not used"
-msgstr "veraltete Substitutionsvariable ${%s}"
+msgstr "benötigte Substitutionsvariable ${%s} wird nicht verwandt"
#: scripts/Dpkg/Substvars.pm
#, perl-format
diff --git a/scripts/po/dpkg-dev.pot b/scripts/po/dpkg-dev.pot
index 94c6410..753ac7b 100644
--- a/scripts/po/dpkg-dev.pot
+++ b/scripts/po/dpkg-dev.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: dpkg 1.22.10\n"
+"Project-Id-Version: dpkg 1.22.11\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/scripts/po/es.po b/scripts/po/es.po
index f325dee..38a10e6 100644
--- a/scripts/po/es.po
+++ b/scripts/po/es.po
@@ -31,7 +31,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.16.8\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2014-12-02 20:24+0100\n"
"Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
diff --git a/scripts/po/fr.po b/scripts/po/fr.po
index f638038..f1ff576 100644
--- a/scripts/po/fr.po
+++ b/scripts/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.21.20\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-10 02:16+0100\n"
"Last-Translator: Sébastien Poher <sebastien@volted.net>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
diff --git a/scripts/po/nl.po b/scripts/po/nl.po
index b533265..578392b 100644
--- a/scripts/po/nl.po
+++ b/scripts/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.21.19\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-02-02 17:51+0100\n"
"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
"Language-Team: \n"
diff --git a/scripts/po/pl.po b/scripts/po/pl.po
index cc4fb95..973e83d 100644
--- a/scripts/po/pl.po
+++ b/scripts/po/pl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.15.4\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 07:05+0200\n"
"Last-Translator: Åukasz Dulny <BartekChom@poczta.onet.pl>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
diff --git a/scripts/po/pt.po b/scripts/po/pt.po
index d799ae6..16f1ba9 100644
--- a/scripts/po/pt.po
+++ b/scripts/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2023-03-08 22:31+0000\n"
"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
"Language-Team: Portuguese <>\n"
diff --git a/scripts/po/ru.po b/scripts/po/ru.po
index 1e582c8..8ef5f0e 100644
--- a/scripts/po/ru.po
+++ b/scripts/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.17.23\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2015-04-07 07:02+0200\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
diff --git a/scripts/po/sv.po b/scripts/po/sv.po
index 7194de1..b8b69e0 100644
--- a/scripts/po/sv.po
+++ b/scripts/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dpkg-dev 1.22.0\n"
"Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2024-07-27 05:43+0200\n"
+"POT-Creation-Date: 2024-08-01 12:38+0200\n"
"PO-Revision-Date: 2024-04-28 14:34+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Svenska <tp-sv@listor.tp-sv.se>\n"
diff --git a/scripts/t/Dpkg_Changelog.t b/scripts/t/Dpkg_Changelog.t
index c3e7413..c4cc8b7 100644
--- a/scripts/t/Dpkg_Changelog.t
+++ b/scripts/t/Dpkg_Changelog.t
@@ -33,10 +33,10 @@ my $datadir = test_get_data_path();
my $vendor = get_current_vendor();
-#########################
-
-foreach my $file ("$datadir/countme", "$datadir/shadow", "$datadir/fields",
- "$datadir/regressions", "$datadir/date-format", "$datadir/stop-modeline") {
+sub setup_changelog
+{
+ my $name = shift;
+ my $file = "$datadir/$name";
my $changes = Dpkg::Changelog::Debian->new(verbose => 0);
$changes->load($file);
@@ -45,170 +45,208 @@ foreach my $file ("$datadir/countme", "$datadir/shadow", "$datadir/fields",
cmp_ok($content, 'eq', "$changes", "string output of Dpkg::Changelog on $file");
my $errors = $changes->get_parse_errors();
- my $basename = basename( $file );
- is($errors, '', "Parse example changelog $file without errors" );
+ my $basename = basename($file);
+ is($errors, '', "Parse example changelog $file without errors");
my @data = @$changes;
- ok(@data, 'data is not empty');
-
- if ($file eq "$datadir/countme") {
- # test range options
- cmp_ok(@data, '==', 7, 'no options -> count');
- my $all_versions = join( '/', map { $_->get_version() } @data);
-
- sub check_options {
- my (%opts) = @_;
-
- my @cnt = $changes->get_range($opts{range});
- cmp_ok(@cnt, '==', $opts{count}, "$opts{name} -> count");
- if ($opts{count} == @{$opts{data}}) {
- is_deeply(\@cnt, $opts{data}, "$opts{name} -> returns all");
- } else {
- is_deeply([ map { $_->get_version() } @cnt ],
- $opts{versions}, "$opts{name} -> versions" );
- }
- }
-
- my %ref = (
- changes => $changes,
- data => \@data,
- );
-
- check_options(%ref, range => { count => 3 },
- count => 3,
- versions => [ '2:2.0-1', '1:2.0~rc2-3', '1:2.0~rc2-2' ],
- name => 'positive count');
- check_options(%ref, range => { count => 3, reverse => 1 },
- count => 3,
- versions => [ '1:2.0~rc2-2', '1:2.0~rc2-3', '2:2.0-1' ],
- name => 'positive reverse count');
- check_options(%ref, range => { count => -3 },
- count => 3,
- versions => [
- '1:2.0~rc2-1sarge2',
- '1:2.0~rc2-1sarge1',
- '1.5-1',
- ],
- name => 'negative count');
- check_options(%ref, range => { count => 1 },
- count => 1,
- versions => [ '2:2.0-1' ],
- name => 'count 1');
- check_options(%ref, range => { count => 1, default_all => 1 },
- count => 1,
- versions => [ '2:2.0-1' ],
- name => 'count 1 (d_a 1)');
- check_options(%ref, range => { count => -1 },
- count => 1,
- versions => [ '1.5-1' ],
- name => 'count -1');
-
- check_options(%ref, range => { count => 3, offset => 2 },
- count => 3,
- versions => [
- '1:2.0~rc2-2',
- '1:2.0~rc2-1sarge3',
- '1:2.0~rc2-1sarge2',
- ],
- name => 'positive count + positive offset');
- check_options(%ref, range => { count => -3, offset => 4 },
- count => 3,
- versions => [
- '1:2.0~rc2-3',
- '1:2.0~rc2-2',
- '1:2.0~rc2-1sarge3',
- ],
- name => 'negative count + positive offset');
-
- check_options(%ref, range => { count => 4, offset => 5 },
- count => 2,
- versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
- name => 'positive count + positive offset (>max)');
- check_options(%ref, range => { count => -4, offset => 2 },
- count => 2,
- versions => [ '2:2.0-1', '1:2.0~rc2-3' ],
- name => 'negative count + positive offset (<0)');
-
- check_options(%ref, range => { count => 3, offset => -4 },
- count => 3,
- versions => [
- '1:2.0~rc2-1sarge3',
- '1:2.0~rc2-1sarge2',
- '1:2.0~rc2-1sarge1',
- ],
- name => 'positive count + negative offset');
- check_options(%ref, range => { count => -3, offset => -3 },
- count => 3,
- versions => [
- '1:2.0~rc2-3',
- '1:2.0~rc2-2',
- '1:2.0~rc2-1sarge3',
- ],
- name => 'negative count + negative offset');
-
- check_options(%ref, range => { count => 5, offset => -2 },
- count => 2,
- versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
- name => 'positive count + negative offset (>max)');
- check_options(%ref, range => { count => -5, offset => -4 },
- count => 3,
- versions => [ '2:2.0-1', '1:2.0~rc2-3', '1:2.0~rc2-2' ],
- name => 'negative count + negative offset (<0)');
-
- check_options(%ref, range => { count => 7 },
- count => 7,
- name => 'count 7 (max)');
- check_options(%ref, range => { count => -7 },
- count => 7,
- name => 'count -7 (-max)');
- check_options(%ref, range => { count => 10 },
- count => 7,
- name => 'count 10 (>max)');
- check_options(%ref, range => { count => -10 },
- count => 7,
- name => 'count -10 (<-max)');
-
- check_options(%ref, range => { from => '1:2.0~rc2-1sarge3' },
- count => 4,
- versions => [
- '2:2.0-1',
- '1:2.0~rc2-3',
- '1:2.0~rc2-2',
- '1:2.0~rc2-1sarge3',
- ],
- name => 'from => "1:2.0~rc2-1sarge3"');
- check_options(%ref, range => { since => '1:2.0~rc2-1sarge3' },
- count => 3,
- versions => [
- '2:2.0-1',
- '1:2.0~rc2-3',
- '1:2.0~rc2-2',
- ],
- name => 'since => "1:2.0~rc2-1sarge3"');
- $SIG{__WARN__} = sub {};
- check_options(%ref, range => { since => 0 },
- count => 7,
- name => 'since => 0 returns all');
- delete $SIG{__WARN__};
- check_options(%ref, range => { to => '1:2.0~rc2-1sarge2' },
- count => 3,
- versions => [
- '1:2.0~rc2-1sarge2',
- '1:2.0~rc2-1sarge1',
- '1.5-1',
- ],
- name => 'to => "1:2.0~rc2-1sarge2"');
- ## no critic (ControlStructures::ProhibitUntilBlocks)
- check_options(%ref, range => { until => '1:2.0~rc2-1sarge2' },
- count => 2,
- versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
- name => 'until => "1:2.0~rc2-1sarge2"');
- ## use critic
- #TODO: test combinations
+ ok(@data, "data from $file is not empty");
+
+ SKIP: {
+ skip('avoid spurious warning with only one entry', 2)
+ if @data == 1;
+
+ my $str;
+ my $oldest_version = $data[-1]->{Version};
+ $str = $changes->format_range('dpkg', { since => $oldest_version });
+
+ $str = $changes->format_range('rfc822');
+
+ ok(1, 'TODO check rfc822 output');
+
+ $str = $changes->format_range('rfc822', { since => $oldest_version });
+
+ ok(1, 'TODO check rfc822 output with ranges');
+ }
+
+ return ($changes, \@data);
+}
+
+#########################
+
+my $changes;
+my $data;
+
+
+## File: countme
+
+($changes, $data) = setup_changelog('countme');
+
+# Test range options.
+cmp_ok(@{$data}, '==', 7, 'no options -> count');
+my $all_versions = join('/', map { $_->get_version() } @{$data});
+
+sub check_options {
+ my (%opts) = @_;
+
+ my @cnt = $changes->get_range($opts{range});
+ cmp_ok(@cnt, '==', $opts{count}, "$opts{name} -> count");
+ if ($opts{count} == @{$opts{data}}) {
+ is_deeply(\@cnt, $opts{data}, "$opts{name} -> returns all");
+ } else {
+ is_deeply([ map { $_->get_version() } @cnt ],
+ $opts{versions}, "$opts{name} -> versions");
}
- if ($file eq "$datadir/fields") {
- my $str = $changes->format_range('dpkg', { all => 1 });
- my $expected = 'Source: fields
+}
+
+my %ref = (
+ changes => $changes,
+ data => $data,
+);
+
+check_options(%ref, range => { count => 3 },
+ count => 3,
+ versions => [ '2:2.0-1', '1:2.0~rc2-3', '1:2.0~rc2-2' ],
+ name => 'positive count');
+check_options(%ref, range => { count => 3, reverse => 1 },
+ count => 3,
+ versions => [ '1:2.0~rc2-2', '1:2.0~rc2-3', '2:2.0-1' ],
+ name => 'positive reverse count');
+check_options(%ref, range => { count => -3 },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-1sarge2',
+ '1:2.0~rc2-1sarge1',
+ '1.5-1',
+ ],
+ name => 'negative count');
+check_options(%ref, range => { count => 1 },
+ count => 1,
+ versions => [ '2:2.0-1' ],
+ name => 'count 1');
+check_options(%ref, range => { count => 1, default_all => 1 },
+ count => 1,
+ versions => [ '2:2.0-1' ],
+ name => 'count 1 (d_a 1)');
+check_options(%ref, range => { count => -1 },
+ count => 1,
+ versions => [ '1.5-1' ],
+ name => 'count -1');
+
+check_options(%ref, range => { count => 3, offset => 2 },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-2',
+ '1:2.0~rc2-1sarge3',
+ '1:2.0~rc2-1sarge2',
+ ],
+ name => 'positive count + positive offset');
+check_options(%ref, range => { count => -3, offset => 4 },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-3',
+ '1:2.0~rc2-2',
+ '1:2.0~rc2-1sarge3',
+ ],
+ name => 'negative count + positive offset');
+
+check_options(%ref, range => { count => 4, offset => 5 },
+ count => 2,
+ versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
+ name => 'positive count + positive offset (>max)');
+check_options(%ref, range => { count => -4, offset => 2 },
+ count => 2,
+ versions => [ '2:2.0-1', '1:2.0~rc2-3' ],
+ name => 'negative count + positive offset (<0)');
+
+check_options(%ref, range => { count => 3, offset => -4 },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-1sarge3',
+ '1:2.0~rc2-1sarge2',
+ '1:2.0~rc2-1sarge1',
+ ],
+ name => 'positive count + negative offset');
+check_options(%ref, range => { count => -3, offset => -3 },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-3',
+ '1:2.0~rc2-2',
+ '1:2.0~rc2-1sarge3',
+ ],
+ name => 'negative count + negative offset');
+
+check_options(%ref, range => { count => 5, offset => -2 },
+ count => 2,
+ versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
+ name => 'positive count + negative offset (>max)');
+check_options(%ref, range => { count => -5, offset => -4 },
+ count => 3,
+ versions => [ '2:2.0-1', '1:2.0~rc2-3', '1:2.0~rc2-2' ],
+ name => 'negative count + negative offset (<0)');
+
+check_options(%ref, range => { count => 7 },
+ count => 7,
+ name => 'count 7 (max)');
+check_options(%ref, range => { count => -7 },
+ count => 7,
+ name => 'count -7 (-max)');
+check_options(%ref, range => { count => 10 },
+ count => 7,
+ name => 'count 10 (>max)');
+check_options(%ref, range => { count => -10 },
+ count => 7,
+ name => 'count -10 (<-max)');
+
+check_options(%ref, range => { from => '1:2.0~rc2-1sarge3' },
+ count => 4,
+ versions => [
+ '2:2.0-1',
+ '1:2.0~rc2-3',
+ '1:2.0~rc2-2',
+ '1:2.0~rc2-1sarge3',
+ ],
+ name => 'from => "1:2.0~rc2-1sarge3"');
+check_options(%ref, range => { since => '1:2.0~rc2-1sarge3' },
+ count => 3,
+ versions => [
+ '2:2.0-1',
+ '1:2.0~rc2-3',
+ '1:2.0~rc2-2',
+ ],
+ name => 'since => "1:2.0~rc2-1sarge3"');
+$SIG{__WARN__} = sub {};
+check_options(%ref, range => { since => 0 },
+ count => 7,
+ name => 'since => 0 returns all');
+delete $SIG{__WARN__};
+check_options(%ref, range => { to => '1:2.0~rc2-1sarge2' },
+ count => 3,
+ versions => [
+ '1:2.0~rc2-1sarge2',
+ '1:2.0~rc2-1sarge1',
+ '1.5-1',
+ ],
+ name => 'to => "1:2.0~rc2-1sarge2"');
+## no critic (ControlStructures::ProhibitUntilBlocks)
+check_options(%ref, range => { until => '1:2.0~rc2-1sarge2' },
+ count => 2,
+ versions => [ '1:2.0~rc2-1sarge1', '1.5-1' ],
+ name => 'until => "1:2.0~rc2-1sarge2"');
+## use critic
+#TODO: test combinations
+
+
+## File: shadow
+
+($changes, $data) = setup_changelog('shadow');
+
+
+## File: fields
+
+($changes, $data) = setup_changelog('fields');
+
+ my $str = $changes->format_range('dpkg', { all => 1 });
+ my $expected = 'Source: fields
Version: 2.0-0etch1
Distribution: stable
Urgency: high
@@ -245,13 +283,13 @@ Xb-Userfield2: foobar
Xc-Userfield: foobar
';
- if ($vendor eq 'Ubuntu') {
- $expected =~ s/^(Closes:.*)/$1\nLaunchpad-Bugs-Fixed: 12345 54321 424242 2424242/m;
- }
- cmp_ok($str, 'eq', $expected, 'fields handling');
+ if ($vendor eq 'Ubuntu') {
+ $expected =~ s/^(Closes:.*)/$1\nLaunchpad-Bugs-Fixed: 12345 54321 424242 2424242/m;
+ }
+ cmp_ok($str, 'eq', $expected, 'fields handling');
- $str = $changes->format_range('dpkg', { offset => 1, count => 2 });
- $expected = 'Source: fields
+ $str = $changes->format_range('dpkg', { offset => 1, count => 2 });
+ $expected = 'Source: fields
Version: 2.0-1
Distribution: unstable frozen
Urgency: medium
@@ -278,13 +316,13 @@ Changes:
Xc-Userfield: foobar
';
- if ($vendor eq 'Ubuntu') {
- $expected =~ s/^(Closes:.*)/$1\nLaunchpad-Bugs-Fixed: 12345 424242/m;
- }
- cmp_ok($str, 'eq', $expected, 'fields handling 2');
+ if ($vendor eq 'Ubuntu') {
+ $expected =~ s/^(Closes:.*)/$1\nLaunchpad-Bugs-Fixed: 12345 424242/m;
+ }
+ cmp_ok($str, 'eq', $expected, 'fields handling 2');
- $str = $changes->format_range('rfc822', { offset => 2, count => 2 });
- $expected = 'Source: fields
+ $str = $changes->format_range('rfc822', { offset => 2, count => 2 });
+ $expected = 'Source: fields
Version: 2.0~b1-1
Distribution: unstable
Urgency: low
@@ -312,63 +350,59 @@ Changes:
Xb-Userfield2: foobar
';
- cmp_ok($str, 'eq', $expected, 'fields handling 3');
-
- # Test Dpkg::Changelog::Entry methods
- is($data[1]->get_version(), '2.0-1', 'get_version');
- is($data[1]->get_source(), 'fields', 'get_source');
- is(scalar $data[1]->get_distributions(), 'unstable', 'get_distribution');
- is(join('|', $data[1]->get_distributions()), 'unstable|frozen',
- 'get_distributions');
- is($data[3]->get_optional_fields(),
- "Urgency: high\nCloses: 1000000\nXb-Userfield2: foobar\n",
- 'get_optional_fields');
- is($data[1]->get_maintainer(), 'Frank Lichtenheld <djpig@debian.org>',
- 'get_maintainer');
- is($data[1]->get_timestamp(), 'Sun, 12 Jan 2008 15:49:19 +0100',
- 'get_timestamp');
- my @items = $data[1]->get_change_items();
- is($items[0], " [ Frank Lichtenheld ]\n", 'change items 1');
- is($items[4], ' * New upstream release.
+ cmp_ok($str, 'eq', $expected, 'fields handling 3');
+
+ # Test Dpkg::Changelog::Entry methods
+ is($data->[1]->get_version(), '2.0-1', 'get_version');
+ is($data->[1]->get_source(), 'fields', 'get_source');
+ is(scalar $data->[1]->get_distributions(), 'unstable', 'get_distribution');
+ is(join('|', $data->[1]->get_distributions()), 'unstable|frozen',
+ 'get_distributions');
+ is($data->[3]->get_optional_fields(),
+ "Urgency: high\nCloses: 1000000\nXb-Userfield2: foobar\n",
+ 'get_optional_fields');
+ is($data->[1]->get_maintainer(), 'Frank Lichtenheld <djpig@debian.org>',
+ 'get_maintainer');
+ is($data->[1]->get_timestamp(), 'Sun, 12 Jan 2008 15:49:19 +0100',
+ 'get_timestamp');
+ my @items = $data->[1]->get_change_items();
+ is($items[0], " [ Frank Lichtenheld ]\n", 'change items 1');
+ is($items[4], ' * New upstream release.
- implements a
- implements b
', 'change items 2');
- is($items[5], " * Update S-V.\n", 'change items 3');
- }
- if ($file eq "$datadir/date-format") {
- is($data[0]->get_timestamp(), '01 Jul 2100 23:59:59 -1200',
- 'get date w/o DoW, and negative timezone offset');
- is($data[1]->get_timestamp(), 'Tue, 27 Feb 2050 12:00:00 +1245',
- 'get date w/ DoW, and positive timezone offset');
- is($data[2]->get_timestamp(), 'Mon, 01 Jan 2000 00:00:00 +0000',
- 'get date w/ DoW, and zero timezone offset');
- }
- if ($file eq "$datadir/stop-modeline") {
- is($changes->get_unparsed_tail(), "vim: et\n",
- 'get unparsed modeline at EOF');
- }
- if ($file eq "$datadir/regressions") {
- my $f = ($changes->format_range('dpkg'))[0];
- is("$f->{Version}", '0', 'version 0 correctly parsed');
- }
+ is($items[5], " * Update S-V.\n", 'change items 3');
- SKIP: {
- skip('avoid spurious warning with only one entry', 2)
- if @data == 1;
- my $str;
- my $oldest_version = $data[-1]->{Version};
- $str = $changes->format_range('dpkg', { since => $oldest_version });
+## File: date-format
- $str = $changes->format_range('rfc822');
+($changes, $data) = setup_changelog('date-format');
- ok(1, 'TODO check rfc822 output');
+is($data->[0]->get_timestamp(), '01 Jul 2100 23:59:59 -1200',
+ 'get date w/o DoW, and negative timezone offset');
+is($data->[1]->get_timestamp(), 'Tue, 27 Feb 2050 12:00:00 +1245',
+ 'get date w/ DoW, and positive timezone offset');
+is($data->[2]->get_timestamp(), 'Mon, 01 Jan 2000 00:00:00 +0000',
+ 'get date w/ DoW, and zero timezone offset');
- $str = $changes->format_range('rfc822', { since => $oldest_version });
- ok(1, 'TODO check rfc822 output with ranges');
- }
-}
+## File: stop-modeline
+
+($changes, $data) = setup_changelog('stop-modeline');
+
+is($changes->get_unparsed_tail(), "vim: et\n",
+ 'get unparsed modeline at EOF');
+
+
+## File: regressions
+
+($changes, $data) = setup_changelog('regressions');
+
+my $f = ($changes->format_range('dpkg'))[0];
+is("$f->{Version}", '0', 'version 0 correctly parsed');
+
+
+## Files
foreach my $test (([ "$datadir/misplaced-tz", 6 ],
[ "$datadir/unreleased", 5, 7 ])) {
@@ -379,5 +413,5 @@ foreach my $test (([ "$datadir/misplaced-tz", 6 ],
my @errors = $changes->get_parse_errors();
ok(@errors, 'errors occured');
- is_deeply( [ map { $_->[1] } @errors ], $test, 'check line numbers' );
+ is_deeply([ map { $_->[1] } @errors ], $test, 'check line numbers');
}
diff --git a/scripts/t/Dpkg_Shlibs.t b/scripts/t/Dpkg_Shlibs.t
index 774f409..3430d54 100644
--- a/scripts/t/Dpkg_Shlibs.t
+++ b/scripts/t/Dpkg_Shlibs.t
@@ -40,6 +40,17 @@ my %tmp;
my $datadir = test_get_data_path();
+sub load_objdump_obj {
+ my $name = shift;
+
+ my $obj = Dpkg::Shlibs::Objdump::Object->new();
+ open my $objdump, '<', "$datadir/objdump.$name"
+ or die "$datadir/objdump.$name: $!";
+ $obj->parse_objdump_output($objdump);
+ close $objdump;
+ return $obj;
+}
+
my @librarypaths;
{
@@ -67,26 +78,23 @@ Dpkg::Shlibs::parse_ldso_conf('t/Dpkg_Shlibs/ld.so.conf');
chdir($cwd);
@librarypaths = Dpkg::Shlibs::get_library_paths();
-is_deeply(\@librarypaths,
- [ qw(/nonexistent32 /nonexistent/lib64
- /usr/local/lib /nonexistent/lib128) ], 'parsed library paths');
+is_deeply(\@librarypaths, [ qw(
+ /nonexistent32
+ /nonexistent/lib64
+ /usr/local/lib
+ /nonexistent/lib128
+ ) ],
+ 'parsed library paths');
use_ok('Dpkg::Shlibs::Objdump');
-my $obj = Dpkg::Shlibs::Objdump::Object->new;
+my $obj;
-open my $objdump, '<', "$datadir/objdump.dbd-pg"
- or die "$datadir/objdump.dbd-pg: $!";
-$obj->parse_objdump_output($objdump);
-close $objdump;
+$obj = load_objdump_obj('dbd-pg');
ok(!$obj->is_public_library(), 'Pg.so is not a public library');
ok(!$obj->is_executable(), 'Pg.so is not an executable');
-open $objdump, '<', "$datadir/objdump.ls"
- or die "$datadir/objdump.ls: $!";
-$obj->reset();
-$obj->parse_objdump_output($objdump);
-close $objdump;
+$obj = load_objdump_obj('ls');
ok(!$obj->is_public_library(), 'ls is not a public library');
ok($obj->is_executable(), 'ls is an executable');
@@ -94,22 +102,12 @@ my $sym = $obj->get_symbol('optarg@GLIBC_2.0');
ok($sym, 'optarg@GLIBC_2.0 exists');
ok(!$sym->{defined}, 'R_*_COPY relocations are taken into account');
-open $objdump, '<', "$datadir/objdump.space"
- or die "$datadir/objdump.space: $!";
-$obj->reset();
-$obj->parse_objdump_output($objdump);
-close $objdump;
-
# Non-regression test for #506139
+$obj = load_objdump_obj('space');
$sym = $obj->get_symbol('singlespace');
ok($sym, 'version less symbol separated by a single space are correctly parsed');
-open $objdump, '<', "$datadir/objdump.libc6-2.6"
- or die "$datadir/objdump.libc6-2.6: $!";
-$obj->reset();
-$obj->parse_objdump_output($objdump);
-close $objdump;
-
+$obj = load_objdump_obj('libc6-2.6');
ok($obj->is_public_library(), 'libc6 is a public library');
ok($obj->is_executable(), 'libc6 is an executable');
@@ -122,32 +120,46 @@ is_deeply($obj->{NEEDED}, [ 'ld-linux.so.2' ], 'NEEDED');
is_deeply([ $obj->get_needed_libraries ], [ 'ld-linux.so.2' ], 'NEEDED');
$sym = $obj->get_symbol('_sys_nerr@GLIBC_2.3');
-is_deeply( $sym, { name => '_sys_nerr', version => 'GLIBC_2.3',
- soname => 'libc.so.6', objid => 'libc.so.6',
- section => '.rodata', dynamic => 1,
- debug => '', type => 'O', weak => '',
- local => '', global => 1, visibility => '',
- hidden => 1, defined => 1 }, 'Symbol' );
+is_deeply($sym, {
+ name => '_sys_nerr',
+ version => 'GLIBC_2.3',
+ soname => 'libc.so.6',
+ objid => 'libc.so.6',
+ section => '.rodata',
+ dynamic => 1,
+ debug => '',
+ type => 'O',
+ weak => '',
+ local => '',
+ global => 1,
+ visibility => '',
+ hidden => 1,
+ defined => 1,
+ },
+ 'Symbol');
$sym = $obj->get_symbol('_IO_stdin_used');
-is_deeply( $sym, { name => '_IO_stdin_used', version => '',
- soname => 'libc.so.6', objid => 'libc.so.6',
- section => '*UND*', dynamic => 1,
- debug => '', type => ' ', weak => 1,
- local => '', global => '', visibility => '',
- hidden => '', defined => '' }, 'Symbol 2' );
+is_deeply($sym, {
+ name => '_IO_stdin_used',
+ version => '',
+ soname => 'libc.so.6',
+ objid => 'libc.so.6',
+ section => '*UND*',
+ dynamic => 1,
+ debug => '',
+ type => ' ',
+ weak => 1,
+ local => '',
+ global => '',
+ visibility => '',
+ hidden => '',
+ defined => '',
+ },
+ 'Symbol 2');
my @syms = $obj->get_exported_dynamic_symbols;
-is( scalar @syms, 2231, 'defined && dynamic' );
+is(scalar @syms, 2231, 'defined && dynamic');
@syms = $obj->get_undefined_dynamic_symbols;
-is( scalar @syms, 9, 'undefined && dynamic' );
-
-
-my $obj_old = Dpkg::Shlibs::Objdump::Object->new;
-
-open $objdump, '<', "$datadir/objdump.libc6-2.3"
- or die "$datadir/objdump.libc6-2.3: $!";
-$obj_old->parse_objdump_output($objdump);
-close $objdump;
+is(scalar @syms, 9, 'undefined && dynamic');
use_ok('Dpkg::Shlibs::SymbolFile');
@@ -157,36 +169,52 @@ my $sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbol_file.tmp")
my $sym_file_dup = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbol_file.tmp");
my $sym_file_old = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbol_file.tmp");
+my $obj_old = load_objdump_obj('libc6-2.3');
+
$sym_file->merge_symbols($obj_old, '2.3.6.ds1-13');
$sym_file_old->merge_symbols($obj_old, '2.3.6.ds1-13');
-ok( $sym_file->has_object('libc.so.6'), 'SONAME in sym file' );
+ok($sym_file->has_object('libc.so.6'), 'SONAME in sym file');
$sym_file->merge_symbols($obj, '2.6-1');
-ok( $sym_file->get_new_symbols($sym_file_old), 'has new symbols' );
-ok( $sym_file_old->get_lost_symbols($sym_file), 'has lost symbols' );
+ok($sym_file->get_new_symbols($sym_file_old), 'has new symbols');
+ok($sym_file_old->get_lost_symbols($sym_file), 'has lost symbols');
-is( $sym_file_old->lookup_symbol('__bss_start@Base', ['libc.so.6']),
- undef, 'internal symbols are ignored' );
+is($sym_file_old->lookup_symbol('__bss_start@Base', ['libc.so.6']),
+ undef, 'internal symbols are ignored');
%tmp = $sym_file->lookup_symbol('_errno@GLIBC_2.0', ['libc.so.6'], 1);
isa_ok($tmp{symbol}, 'Dpkg::Shlibs::Symbol');
-is_deeply(\%tmp, { symbol => Dpkg::Shlibs::Symbol->new(symbol => '_errno@GLIBC_2.0',
- minver => '2.3.6.ds1-13', dep_id => 0,
- deprecated => '2.6-1'), soname => 'libc.so.6' },
- 'deprecated symbol');
+is_deeply(\%tmp, {
+ symbol => Dpkg::Shlibs::Symbol->new(
+ symbol => '_errno@GLIBC_2.0',
+ minver => '2.3.6.ds1-13',
+ dep_id => 0,
+ deprecated => '2.6-1',
+ ),
+ soname => 'libc.so.6'
+ },
+ 'deprecated symbol');
# Wildcard test
my $pat = $sym_file_old->create_symbol('*@GLIBC_PRIVATE 2.3.6.wildcard');
$sym_file_old->add_symbol($pat, 'libc.so.6');
$sym_file_old->merge_symbols($obj, '2.6-1');
$sym = $sym_file_old->lookup_symbol('__nss_services_lookup@GLIBC_PRIVATE', 'libc.so.6');
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__nss_services_lookup@GLIBC_PRIVATE',
- minver => '2.3.6.wildcard', dep_id => 0, deprecated => 0,
- tags => { symver => undef, optional => undef },
- tagorder => [ 'symver', 'optional' ],
- matching_pattern => $pat ), 'wildcarded symbol');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '__nss_services_lookup@GLIBC_PRIVATE',
+ minver => '2.3.6.wildcard',
+ dep_id => 0,
+ deprecated => 0,
+ tags => {
+ symver => undef,
+ optional => undef,
+ },
+ tagorder => [ 'symver', 'optional' ],
+ matching_pattern => $pat,
+ ),
+ 'wildcarded symbol');
# Save -> Load test
use File::Temp;
@@ -209,24 +237,24 @@ sub save_load_test {
}
}
-save_load_test( $sym_file, 'save -> load' );
+save_load_test($sym_file, 'save -> load');
# Test ignoring internal symbols
-open $objdump, '<', "$datadir/objdump.internal"
- or die "objdump.internal: $!";
-$obj->reset();
-$obj->parse_objdump_output($objdump);
-close $objdump;
+$obj = load_objdump_obj('internal');
# Do not ignore any internal symbols
$sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.internal-filter");
$sym_file->merge_symbols($obj, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol@Base', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol@Base',
- minver => '1.0', dep_id => 0, deprecated => 0),
- 'symbol unaffected w/o including internal symbols');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol@Base',
+ minver => '1.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol unaffected w/o including internal symbols');
$sym = $sym_file->lookup_symbol('.gomp_critical_user_foo@Base', ['libinternal.so.0']);
is($sym, undef, 'gomp symbol omitted while filtering internal symbols');
@@ -242,96 +270,158 @@ $sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.internal-all
$sym_file->merge_symbols($obj, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol@Base', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol@Base',
- minver => '1.0', dep_id => 0, deprecated => 0),
- 'symbol unaffected while including internal symbols via symbol tag');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol@Base',
+ minver => '1.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol unaffected while including internal symbols via symbol tag');
$sym = $sym_file->lookup_symbol('.gomp_critical_user_foo@Base', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '.gomp_critical_user_foo@Base',
- minver => '2.0', dep_id => 0, deprecated => 0,
- tags => { 'allow-internal' => undef },
- tagorder => [ 'allow-internal' ]),
- 'internal gomp symbol included via symbol tag');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '.gomp_critical_user_foo@Base',
+ minver => '2.0',
+ dep_id => 0,
+ deprecated => 0,
+ tags => {
+ 'allow-internal' => undef,
+ },
+ tagorder => [ 'allow-internal' ],
+ ),
+ 'internal gomp symbol included via symbol tag');
$sym = $sym_file->lookup_symbol('__aeabi_lcmp@GCC_3.0', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__aeabi_lcmp@GCC_3.0',
- minver => '3.0', dep_id => 0, deprecated => 0,
- tags => { 'allow-internal' => undef },
- tagorder => [ 'allow-internal' ]),
- 'internal known aeabi symbol included via symbol tag');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '__aeabi_lcmp@GCC_3.0',
+ minver => '3.0',
+ dep_id => 0,
+ deprecated => 0,
+ tags => {
+ 'allow-internal' => undef,
+ },
+ tagorder => [ 'allow-internal' ],
+ ),
+ 'internal known aeabi symbol included via symbol tag');
$sym = $sym_file->lookup_symbol('__aeabi_unknown@GCC_4.0', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__aeabi_unknown@GCC_4.0',
- minver => '4.0', dep_id => 0, deprecated => 0,
- tags => { 'allow-internal' => undef },
- tagorder => [ 'allow-internal' ]),
- 'internal unknown aeabi symbol omitted via symbol tag');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '__aeabi_unknown@GCC_4.0',
+ minver => '4.0',
+ dep_id => 0,
+ deprecated => 0,
+ tags => {
+ 'allow-internal' => undef,
+ },
+ tagorder => [ 'allow-internal' ],
+ ),
+ 'internal unknown aeabi symbol omitted via symbol tag');
# Include internal symbols using the Allow-Internal-Symbol-Groups field
$sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.internal-allow-groups");
$sym_file->merge_symbols($obj, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol@Base', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol@Base',
- minver => '1.0', dep_id => 0, deprecated => 0),
- 'symbol unaffected w/o including internal symbols');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol@Base',
+ minver => '1.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol unaffected w/o including internal symbols');
$sym = $sym_file->lookup_symbol('.gomp_critical_user_foo@Base', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '.gomp_critical_user_foo@Base',
- minver => '2.0', dep_id => 0, deprecated => 0),
- 'internal gomp symbol included via library field');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '.gomp_critical_user_foo@Base',
+ minver => '2.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'internal gomp symbol included via library field');
$sym = $sym_file->lookup_symbol('__aeabi_lcmp@GCC_3.0', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__aeabi_lcmp@GCC_3.0',
- minver => '3.0', dep_id => 0, deprecated => 0),
- 'internal known aeabi symbol included via library field');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '__aeabi_lcmp@GCC_3.0',
+ minver => '3.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'internal known aeabi symbol included via library field');
$sym = $sym_file->lookup_symbol('__aeabi_unknown@GCC_4.0', ['libinternal.so.0']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__aeabi_unknown@GCC_4.0',
- minver => '4.0', dep_id => 0, deprecated => 0),
- 'internal unknown aeabi symbol included via library field');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => '__aeabi_unknown@GCC_4.0',
+ minver => '4.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'internal unknown aeabi symbol included via library field');
# Test include mechanism of SymbolFile
$sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-1");
$sym = $sym_file->lookup_symbol('symbol_before@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_before@Base',
- minver => '0.9', dep_id => 0, deprecated => 0),
- 'symbol before include not lost');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol_before@Base',
+ minver => '0.9',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol before include not lost');
$sym = $sym_file->lookup_symbol('symbol_after@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_after@Base',
- minver => '1.1', dep_id => 0, deprecated => 0),
- 'symbol after include not lost');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol_after@Base',
+ minver => '1.1',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol after include not lost');
$sym = $sym_file->lookup_symbol('symbol1_fake1@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol1_fake1@Base',
- minver => '1.0', dep_id => 0, deprecated => 0),
- 'overrides order with #include');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol1_fake1@Base',
+ minver => '1.0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'overrides order with #include');
$sym = $sym_file->lookup_symbol('symbol3_fake1@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol3_fake1@Base',
- minver => '0', dep_id => 0, deprecated => 0),
- 'overrides order with #include');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol3_fake1@Base',
+ minver => '0',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'overrides order with #include');
is($sym_file->get_smallest_version('libfake.so.1'), '0',
- 'get_smallest_version with null version');
+ 'get_smallest_version with null version');
$sym = $sym_file->lookup_symbol('symbol_in_libdivert@Base', ['libdivert.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_in_libdivert@Base',
- minver => '1.0~beta1', dep_id => 0, deprecated => 0),
- '#include can change current object');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol_in_libdivert@Base',
+ minver => '1.0~beta1',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ '#include can change current object');
$sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-2");
$sym = $sym_file->lookup_symbol('symbol1_fake2@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol1_fake2@Base',
- minver => '1.0', dep_id => 1, deprecated => 0),
- 'overrides order with circular #include');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol1_fake2@Base',
+ minver => '1.0',
+ dep_id => 1,
+ deprecated => 0,
+ ),
+ 'overrides order with circular #include');
is($sym_file->get_smallest_version('libfake.so.1'), '1.0',
- 'get_smallest_version');
+ 'get_smallest_version');
my $io_data;
my $io;
@@ -351,46 +441,55 @@ is($io_data,
# Check parsing of objdump output on ia64 (local symbols
# without versions and with visibility attribute)
-$obj = Dpkg::Shlibs::Objdump::Object->new;
-
-open $objdump, '<', "$datadir/objdump.glib-ia64"
- or die "$datadir/objdump.glib-ia64: $!";
-$obj->parse_objdump_output($objdump);
-close $objdump;
+$obj = load_objdump_obj('glib-ia64');
ok($obj->is_public_library(), 'glib-ia64 is a public library');
ok(!$obj->is_executable(), 'glib-ia64 is not an executable');
$sym = $obj->get_symbol('IA__g_free');
-is_deeply( $sym, { name => 'IA__g_free', version => '',
- soname => 'libglib-2.0.so.0', objid => 'libglib-2.0.so.0',
- section => '.text', dynamic => 1,
- debug => '', type => 'F', weak => '',
- local => 1, global => '', visibility => 'hidden',
- hidden => '', defined => 1 },
- 'symbol with visibility without version' );
+is_deeply($sym, {
+ name => 'IA__g_free', version => '',
+ soname => 'libglib-2.0.so.0',
+ objid => 'libglib-2.0.so.0',
+ section => '.text',
+ dynamic => 1,
+ debug => '',
+ type => 'F',
+ weak => '',
+ local => 1,
+ global => '',
+ visibility => 'hidden',
+ hidden => '',
+ defined => 1,
+ },
+ 'symbol with visibility without version');
# Check parsing of objdump output when symbol names contain spaces
-$obj = Dpkg::Shlibs::Objdump::Object->new;
-
-open $objdump, '<', "$datadir/objdump.spacesyms"
- or die "$datadir/objdump.spacesyms: $!";
-$obj->parse_objdump_output($objdump);
-close $objdump;
+$obj = load_objdump_obj('spacesyms');
sub check_spacesym {
my ($name, $version, $visibility) = @_;
$visibility //= '';
$sym = $obj->get_symbol($name . "@" . $version);
- is_deeply($sym, { name => $name, version => $version,
- soname => 'libspacesyms.so.1',
- objid => 'libspacesyms.so.1',
- section => '.text', dynamic => 1,
- debug => '', type => 'F', weak => '',
- local => '', global => 1, visibility => $visibility,
- hidden => '', defined => 1 }, $name);
+ is_deeply($sym, {
+ name => $name,
+ version => $version,
+ soname => 'libspacesyms.so.1',
+ objid => 'libspacesyms.so.1',
+ section => '.text',
+ dynamic => 1,
+ debug => '',
+ type => 'F',
+ weak => '',
+ local => '',
+ global => 1,
+ visibility => $visibility,
+ hidden => '',
+ defined => 1,
+ },
+ $name);
ok(defined $obj->{dynrelocs}{$name . "@@" . $version},
- "dynreloc found for $name");
+ "dynreloc found for $name");
}
check_spacesym('symdefaultvernospacedefault', 'Base');
@@ -461,23 +560,15 @@ is($io_data,
symbol51_untagged@Base 5.1
', 'template vs. non-template on i386');
-ok (defined $sym_file->{objects}{'libbasictags.so.1'}{syms}{'symbol21_amd64@Base'},
- 'syms keys are symbol names without quotes');
+ok(defined $sym_file->{objects}{'libbasictags.so.1'}{syms}{'symbol21_amd64@Base'},
+ 'syms keys are symbol names without quotes');
# Preload objdumps
-my $tags_obj_i386 = Dpkg::Shlibs::Objdump::Object->new();
-open $objdump, '<', "$datadir/objdump.basictags-i386"
- or die "$datadir/objdump.basictags-i386: $!";
-$tags_obj_i386->parse_objdump_output($objdump);
-close $objdump;
+my $tags_obj_i386 = load_objdump_obj('basictags-i386');
$sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
is_deeply($sym_file, $sym_file_dup, 'is objdump.basictags-i386 and basictags.symbols in sync');
-my $tags_obj_amd64 = Dpkg::Shlibs::Objdump::Object->new();
-open $objdump, '<', "$datadir/objdump.basictags-amd64"
- or die "$datadir/objdump.basictags-amd64: $!";
-$tags_obj_amd64->parse_objdump_output($objdump);
-close $objdump;
+my $tags_obj_amd64 = load_objdump_obj('basictags-amd64');
# Merge/get_{new,lost} tests for optional tag:
# - disappeared
@@ -486,33 +577,56 @@ delete $tags_obj_i386->{dynsyms}{'symbol11_optional@Base'};
$sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
- symbol_templ => 'symbol11_optional@Base',
- minver => '1.1', dep_id => 1, deprecated => '100.MISSING',
- tags => { optional => undef }, tagorder => [ 'optional' ]),
- 'disappeared optional symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol11_optional@Base',
+ symbol_templ => 'symbol11_optional@Base',
+ minver => '1.1',
+ dep_id => 1,
+ deprecated => '100.MISSING',
+ tags => {
+ optional => undef,
+ },
+ tagorder => [ 'optional' ],
+ ),
+ 'disappeared optional symbol gets deprecated');
$sym_file->merge_symbols($tags_obj_i386, '101.MISSING');
$sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
- symbol_templ => 'symbol11_optional@Base',
- minver => '1.1', dep_id => 1, deprecated => '101.MISSING',
- tags => { optional => undef }, tagorder => [ 'optional' ]),
- 'deprecated text of MISSING optional symbol gets rebumped each merge');
-
-is( scalar($sym_file->get_lost_symbols($sym_file_dup)), 0, 'missing optional symbol is not LOST');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol11_optional@Base',
+ symbol_templ => 'symbol11_optional@Base',
+ minver => '1.1',
+ dep_id => 1,
+ deprecated => '101.MISSING',
+ tags => {
+ optional => undef,
+ },
+ tagorder => [ 'optional' ],
+ ),
+ 'deprecated text of MISSING optional symbol gets rebumped each merge');
+
+is(scalar($sym_file->get_lost_symbols($sym_file_dup)), 0,
+ 'missing optional symbol is not LOST');
# - reappeared (undeprecate, minver should be 1.1, not 100.MISSED)
$tags_obj_i386->add_dynamic_symbol($symbol11);
$sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
- symbol_templ => 'symbol11_optional@Base',
- minver => '1.1', dep_id => 1, deprecated => 0,
- tags => { optional => undef }, tagorder => [ 'optional' ]),
- 'reappeared optional symbol gets undeprecated + minver');
-is( scalar($sym_file->get_lost_symbols($sym_file_dup) +
- $sym_file->get_new_symbols($sym_file_dup)), 0, 'reappeared optional symbol: neither NEW nor LOST');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol11_optional@Base',
+ symbol_templ => 'symbol11_optional@Base',
+ minver => '1.1',
+ dep_id => 1,
+ deprecated => 0,
+ tags => {
+ optional => undef,
+ },
+ tagorder => [ 'optional' ],
+ ),
+ 'reappeared optional symbol gets undeprecated + minver');
+is(scalar($sym_file->get_lost_symbols($sym_file_dup) +
+ $sym_file->get_new_symbols($sym_file_dup)), 0,
+ 'reappeared optional symbol: neither NEW nor LOST');
# Merge/get_{new,lost} tests for arch tag:
# - arch specific appears on wrong arch: 'arch' tag should be removed
@@ -520,13 +634,19 @@ my $symbol21 = $tags_obj_amd64->get_symbol('symbol21_amd64@Base');
$tags_obj_i386->add_dynamic_symbol($symbol21);
$sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol21_amd64@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol21_amd64@Base',
- symbol_templ => 'symbol21_amd64@Base', symbol_quoted => "'",
- minver => '2.1', dep_id => 0, deprecated => 0),
- 'symbol appears on foreign arch, arch tag should be removed');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol21_amd64@Base',
+ symbol_templ => 'symbol21_amd64@Base',
+ symbol_quoted => "'",
+ minver => '2.1',
+ dep_id => 0,
+ deprecated => 0,
+ ),
+ 'symbol appears on foreign arch, arch tag should be removed');
@tmp = map { $_->{symbol}->get_symbolname() } $sym_file->get_new_symbols($sym_file_dup);
-is_deeply( \@tmp, [ 'symbol21_amd64@Base' ], 'symbol from foreign arch is NEW');
-is( $sym->get_symbolspec(1), ' symbol21_amd64@Base 2.1', 'no tags => no quotes in the symbol name' );
+is_deeply(\@tmp, [ 'symbol21_amd64@Base' ], 'symbol from foreign arch is NEW');
+is($sym->get_symbolspec(1), ' symbol21_amd64@Base 2.1',
+ 'no tags => no quotes in the symbol name');
# - arch specific symbol disappears
delete $tags_obj_i386->{dynsyms}{'symbol22_i386@Base'};
@@ -537,76 +657,134 @@ delete $tags_obj_i386->{dynsyms}{'symbol41_i386_and_optional@Base'};
$sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
$sym = $sym_file->lookup_symbol('symbol22_i386@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol22_i386@Base',
- symbol_templ => 'symbol22_i386@Base',
- minver => '2.2', dep_id => 0, deprecated => '100.MISSING',
- tags => { arch => '!amd64 !ia64 !mips' },
- tagorder => [ 'arch' ]),
- 'disappeared arch specific symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol22_i386@Base',
+ symbol_templ => 'symbol22_i386@Base',
+ minver => '2.2',
+ dep_id => 0,
+ deprecated => '100.MISSING',
+ tags => {
+ arch => '!amd64 !ia64 !mips',
+ },
+ tagorder => [ 'arch' ],
+ ),
+ 'disappeared arch specific symbol gets deprecated');
$sym = $sym_file->lookup_symbol('symbol24_32@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol24_32@Base',
- symbol_templ => 'symbol24_32@Base',
- minver => '2.4', dep_id => 0, deprecated => '100.MISSING',
- tags => { 'arch-bits' => '32' },
- tagorder => [ 'arch-bits' ]),
- 'disappeared arch bits specific symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol24_32@Base',
+ symbol_templ => 'symbol24_32@Base',
+ minver => '2.4',
+ dep_id => 0,
+ deprecated => '100.MISSING',
+ tags => {
+ 'arch-bits' => '32',
+ },
+ tagorder => [ 'arch-bits' ],
+ ),
+ 'disappeared arch bits specific symbol gets deprecated');
$sym = $sym_file->lookup_symbol('symbol26_little@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol26_little@Base',
- symbol_templ => 'symbol26_little@Base',
- minver => '2.6', dep_id => 0, deprecated => '100.MISSING',
- tags => { 'arch-endian' => 'little' },
- tagorder => [ 'arch-endian' ]),
- 'disappeared arch endian specific symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol26_little@Base',
+ symbol_templ => 'symbol26_little@Base',
+ minver => '2.6',
+ dep_id => 0,
+ deprecated => '100.MISSING',
+ tags => {
+ 'arch-endian' => 'little',
+ },
+ tagorder => [ 'arch-endian' ],
+ ),
+ 'disappeared arch endian specific symbol gets deprecated');
$sym = $sym_file->lookup_symbol('symbol28_little_32@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol28_little_32@Base',
- symbol_templ => 'symbol28_little_32@Base',
- minver => '2.8', dep_id => 0, deprecated => '100.MISSING',
- tags => { 'arch-bits' => '32', 'arch-endian' => 'little' },
- tagorder => [ 'arch-bits', 'arch-endian' ]),
- 'disappeared arch bits and endian specific symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol28_little_32@Base',
+ symbol_templ => 'symbol28_little_32@Base',
+ minver => '2.8',
+ dep_id => 0,
+ deprecated => '100.MISSING',
+ tags => {
+ 'arch-bits' => '32',
+ 'arch-endian' => 'little',
+ },
+ tagorder => [ 'arch-bits', 'arch-endian' ],
+ ),
+ 'disappeared arch bits and endian specific symbol gets deprecated');
$sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol41_i386_and_optional@Base',
- symbol_templ => 'symbol41_i386_and_optional@Base',
- symbol_quoted => '"',
- minver => '4.1', dep_id => 0, deprecated => '100.MISSING',
- tags => { arch => 'i386', optional => 'reason' },
- tagorder => [ 'arch', 'optional' ]),
- 'disappeared optional arch specific symbol gets deprecated');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol41_i386_and_optional@Base',
+ symbol_templ => 'symbol41_i386_and_optional@Base',
+ symbol_quoted => '"',
+ minver => '4.1',
+ dep_id => 0,
+ deprecated => '100.MISSING',
+ tags => {
+ arch => 'i386',
+ optional => 'reason',
+ },
+ tagorder => [ 'arch', 'optional' ],
+ ),
+ 'disappeared optional arch specific symbol gets deprecated');
@tmp = sort map { $_->{symbol}->get_symbolname() } $sym_file->get_lost_symbols($sym_file_dup);
-is_deeply(\@tmp, [ 'symbol22_i386@Base', 'symbol24_32@Base',
- 'symbol26_little@Base', 'symbol28_little_32@Base' ],
- "missing arch specific is LOST, but optional arch specific isn't");
+is_deeply(\@tmp, [
+ 'symbol22_i386@Base',
+ 'symbol24_32@Base',
+ 'symbol26_little@Base',
+ 'symbol28_little_32@Base',
+ ],
+ "missing arch specific is LOST, but optional arch specific isn't");
# Tests for tagged #includes
$sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-3", arch => 'i386');
$sym = $sym_file->lookup_symbol('symbol2_fake1@Base', ['libbasictags.so.2']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol2_fake1@Base',
- minver => '1.0',
- tags => { optional => undef, 'random tag' => 'random value' },
- tagorder => [ 'optional', 'random tag' ] ),
- 'symbols from #included file inherits tags');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol2_fake1@Base',
+ minver => '1.0',
+ tags => {
+ optional => undef,
+ 'random tag' => 'random value',
+ },
+ tagorder => [ 'optional', 'random tag' ],
+ ),
+ 'symbols from #included file inherits tags');
$sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol41_i386_and_optional@Base',
- symbol_templ => 'symbol41_i386_and_optional@Base',
- symbol_quoted => '"',
- minver => '4.1',
- tags => { optional => 'reason', t => 'v', arch => 'i386' },
- tagorder => [ 'optional', 't', 'arch' ]),
- 'symbols in #included file can override tag values');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol41_i386_and_optional@Base',
+ symbol_templ => 'symbol41_i386_and_optional@Base',
+ symbol_quoted => '"',
+ minver => '4.1',
+ tags => {
+ optional => 'reason',
+ t => 'v',
+ arch => 'i386',
+ },
+ tagorder => [ 'optional', 't', 'arch' ],
+ ),
+ 'symbols in #included file can override tag values');
$sym = $sym_file->lookup_symbol('symbol51_untagged@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol51_untagged@Base',
- minver => '5.1',
- tags => { optional => 'from parent', t => 'v' },
- tagorder => [ 'optional', 't' ]),
- 'symbols are properly cloned when #including');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(
+ symbol => 'symbol51_untagged@Base',
+ minver => '5.1',
+ tags => {
+ optional => 'from parent',
+ t => 'v',
+ },
+ tagorder => [ 'optional', 't' ],
+ ),
+ 'symbols are properly cloned when #including');
# Test Symbol::clone()
-$sym = Dpkg::Shlibs::Symbol->new(symbol => 'foobar', testfield => 1, teststruct => { foo => 1 });
+$sym = Dpkg::Shlibs::Symbol->new(
+ symbol => 'foobar',
+ testfield => 1,
+ teststruct => {
+ foo => 1,
+ },
+);
$tmp = $sym->clone();
$tmp->{teststruct}{foo} = 3;
$tmp->{testfield} = 3;
-is ( $sym->{teststruct}{foo}, 1, 'original field "foo" not changed' );
-is ( $sym->{testfield}, 1, 'original field "testfield" not changed' );
+is($sym->{teststruct}{foo}, 1, 'original field "foo" not changed');
+is($sym->{testfield}, 1, 'original field "testfield" not changed');
############ Test symbol patterns ###########
@@ -615,11 +793,7 @@ SKIP: {
skip 'c++filt not available', 41 if not can_run('c++filt');
sub load_patterns_obj {
- $obj = Dpkg::Shlibs::Objdump::Object->new();
- open $objdump, '<', "$datadir/objdump.patterns"
- or die "$datadir/objdump.patterns: $!";
- $obj->parse_objdump_output($objdump);
- close $objdump;
+ $obj = load_objdump_obj('patterns');
return $obj;
}
@@ -634,7 +808,7 @@ load_patterns_symbols();
save_load_test($sym_file, 'save -> load test of patterns template', template_mode => 1);
-isnt( $sym_file->get_patterns('libpatterns.so.1') , 0,
+isnt($sym_file->get_patterns('libpatterns.so.1'), 0,
'patterns.symbols has patterns');
$sym_file->merge_symbols($obj, '100.MISSING');
@@ -654,12 +828,13 @@ is($sym->{minver}, '1.method1', 'specific symbol preferred over pattern');
$sym = $sym_file->lookup_symbol('_ZN3NSB6Symver14symver_method2Ev@SYMVER_1', 'libpatterns.so.1');
is($sym->{minver}, '1.method2', 'c++ alias pattern preferred over generic pattern');
is($sym->get_pattern()->get_symbolname(), 'NSB::Symver::symver_method2()@SYMVER_1',
- 'c++ alias pattern preferred over generic pattern, on demangled name');
+ 'c++ alias pattern preferred over generic pattern, on demangled name');
$sym = $sym_file->lookup_symbol('_ZN3NSB6SymverD1Ev@SYMVER_1', 'libpatterns.so.1');
-is ( $sym->{minver}, '1.generic', 'generic (c++ & symver) pattern covers the rest (destructor)' );
+is($sym->{minver}, '1.generic',
+ 'generic (c++ & symver) pattern covers the rest (destructor)');
ok($sym->get_pattern()->equals($sym_file->create_symbol('(c++|symver)SYMVER_1 1.generic')),
- 'generic (c++ & symver) pattern covers the rest (destructor), compared');
+ 'generic (c++ & symver) pattern covers the rest (destructor), compared');
# Test old style wildcard support
load_patterns_symbols();
@@ -674,10 +849,10 @@ is_deeply($pat, $sym, 'old style wildcard is the same as (symver|optional)');
# Get rid of all SymverOptional symbols
foreach my $tmp (keys %{$obj->{dynsyms}}) {
- delete $obj->{dynsyms}{$tmp} if ($tmp =~ /SymverOptional/);
+ delete $obj->{dynsyms}{$tmp} if $tmp =~ /SymverOptional/;
}
$sym_file->merge_symbols($obj, '100.MISSING');
-is_deeply ( [ map { $_->get_symbolname() } $pat->get_pattern_matches() ],
+is_deeply([ map { $_->get_symbolname() } $pat->get_pattern_matches() ],
[], 'old style wildcard matches nothing.');
is($pat->{deprecated}, '100.MISSING', 'old style wildcard gets deprecated.');
@tmp = map { $_->{symbol}->get_symbolname() } $sym_file->get_lost_symbols($sym_file_dup);
@@ -688,7 +863,7 @@ load_patterns_obj();
@tmp = grep { $_->get_symbolname() =~ /Internal/ } $sym_file->get_symbols('libpatterns.so.1');
$sym = $sym_file->create_symbol('(regex|c++)^_Z(T[ISV])?N3NSA6ClassA8Internal.*@Base$ 1.internal');
$pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1');
-is_deeply ([ sort $pat->get_pattern_matches() ], [ sort @tmp ],
+is_deeply([ sort $pat->get_pattern_matches() ], [ sort @tmp ],
'Pattern covers all internal symbols');
is($tmp[0]->{minver}, '1.internal', 'internal pattern covers first symbol');
@@ -707,13 +882,13 @@ my @private_symnames = sort qw(
);
$sym = $sym_file->create_symbol('(c++|regex|optional)NSA::ClassA::Private(::.*)?@Base 1');
$pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1');
-isnt( $pat, undef, 'pattern for private class has been found' );
-is_deeply( [ sort map { $_->get_symbolname() } $pat->get_pattern_matches() ],
+isnt($pat, undef, 'pattern for private class has been found');
+is_deeply([ sort map { $_->get_symbolname() } $pat->get_pattern_matches() ],
\@private_symnames, 'private pattern matched expected symbols');
-ok( ($pat->get_pattern_matches())[0]->is_optional(),
- 'private symbol is optional like its pattern');
-ok( $sym_file->lookup_symbol(($pat->get_pattern_matches())[0], 'libpatterns.so.1'),
- 'lookup_symbol() finds symbols matched by pattern (after merge)');
+ok(($pat->get_pattern_matches())[0]->is_optional(),
+ 'private symbol is optional like its pattern');
+ok($sym_file->lookup_symbol(($pat->get_pattern_matches())[0], 'libpatterns.so.1'),
+ 'lookup_symbol() finds symbols matched by pattern (after merge)');
# Get rid of a private symbol, it should not be lost
delete $obj->{dynsyms}{$private_symnames[0]};
@@ -734,23 +909,23 @@ $sym_file->merge_symbols($obj, '100.MISSING');
$pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1', 1);
@tmp = $sym_file->get_lost_symbols($sym_file_dup);
-is_deeply( \@tmp, [ ],
- 'All private symbols gone, but pattern is not LOST because it is optional.');
-is( $pat->{deprecated}, '100.MISSING',
- 'All private symbols gone - pattern deprecated.');
+is_deeply(\@tmp, [ ],
+ 'All private symbols gone, but pattern is not LOST because it is optional.');
+is($pat->{deprecated}, '100.MISSING',
+ 'All private symbols gone - pattern deprecated.');
# Internal symbols. All covered by the pattern?
@tmp = grep { $_->get_symbolname() =~ /Internal/ } values %{$sym_file->{objects}{'libpatterns.so.1'}{syms}};
$sym = $sym_file->create_symbol('(regex|c++)^_Z(T[ISV])?N3NSA6ClassA8Internal.*@Base$ 1.internal');
$pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1');
-is_deeply ([ sort $pat->get_pattern_matches() ], [ sort @tmp ],
+is_deeply([ sort $pat->get_pattern_matches() ], [ sort @tmp ],
'Pattern covers all internal symbols');
is($tmp[0]->{minver}, '1.internal', 'internal pattern covers first symbol');
# Delete matches of the non-optional pattern
$sym = $sym_file->create_symbol('(c++)"non-virtual thunk to NSB::ClassD::generate_vt(char const*) const@Base" 1');
$pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1');
-isnt( $pat, undef, 'lookup_pattern() finds alias-based pattern' );
+isnt($pat, undef, 'lookup_pattern() finds alias-based pattern');
is(scalar($pat->get_pattern_matches()), 2, 'two matches for the generate_vt pattern');
foreach my $tmp ($pat->get_pattern_matches()) {
@@ -763,8 +938,8 @@ $pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1', 1);
@tmp = map { scalar $sym_file->lookup_pattern($_->{symbol}, 'libpatterns.so.1', 1) }
$sym_file->get_lost_symbols($sym_file_dup);
is_deeply(\@tmp, [ $pat ], 'No matches - generate_vt() pattern is LOST.');
-is( $pat->{deprecated}, '100.MISSING',
- 'No matches - generate_vt() pattern is deprecated.');
+is($pat->{deprecated}, '100.MISSING',
+ 'No matches - generate_vt() pattern is deprecated.');
# Pattern undeprecation when matches are discovered
load_patterns_obj();
@@ -776,12 +951,12 @@ $pat = $sym_file->lookup_pattern($sym, 'libpatterns.so.1');
$pat->{deprecated} = '0.1-1';
$sym_file->merge_symbols($obj, '100.FOUND');
-ok( ! $pat->{deprecated},
- 'Previously deprecated pattern with matches got undeprecated');
-is( $pat->{minver}, '100.FOUND',
- 'Previously deprecated pattern with matches got minver bumped');
+ok(! $pat->{deprecated},
+ 'Previously deprecated pattern with matches got undeprecated');
+is($pat->{minver}, '100.FOUND',
+ 'Previously deprecated pattern with matches got minver bumped');
@tmp = map { $_->{symbol}->get_symbolspec(1) } $sym_file->get_new_symbols($sym_file_dup);
-is_deeply( \@tmp, [ $pat->get_symbolspec(1) ],
+is_deeply(\@tmp, [ $pat->get_symbolspec(1) ],
'Previously deprecated pattern with matches is NEW. Matches themselves are not NEW.');
foreach my $sym ($pat->get_pattern_matches()) {
ok(!$sym->{deprecated}, $sym->get_symbolname() . ': not deprecated');
diff --git a/scripts/t/Dpkg_Shlibs/anglebrackets.cpp b/scripts/t/Dpkg_Shlibs/anglebrackets.cpp
new file mode 100644
index 0000000..0db112e
--- /dev/null
+++ b/scripts/t/Dpkg_Shlibs/anglebrackets.cpp
@@ -0,0 +1,23 @@
+#define EXPORT(x) x {}
+
+class AngleBrackets {
+public:
+ AngleBrackets();
+ ~AngleBrackets();
+
+ void operator>>(int a);
+ void operator>>=(int a);
+
+ template<typename T>
+ void operator>>(T a);
+
+ template<typename T>
+ void operator>>=(T a);
+};
+
+EXPORT(AngleBrackets::AngleBrackets())
+EXPORT(AngleBrackets::~AngleBrackets())
+EXPORT(void AngleBrackets::operator>>(int a))
+EXPORT(void AngleBrackets::operator>>=(int a))
+template<> void AngleBrackets::operator>><float>(float a) {}
+template<> void AngleBrackets::operator>>=<float>(float a) {}
diff --git a/scripts/t/Dpkg_Shlibs/anglebrackets.symbols b/scripts/t/Dpkg_Shlibs/anglebrackets.symbols
new file mode 100644
index 0000000..a98846d
--- /dev/null
+++ b/scripts/t/Dpkg_Shlibs/anglebrackets.symbols
@@ -0,0 +1,7 @@
+libanglebrackets.so.1 libanglebrackets1 #MINVER#
+ (c++)AngleBrackets::AngleBrackets() 1
+ (c++)AngleBrackets::~AngleBrackets() 1
+ (c++)AngleBrackets::operator>>=(int) 1
+ (c++)"void AngleBrackets::operator>>=<float>(float)" 1
+ (c++)AngleBrackets::operator>>(int) 1
+ (c++)"void AngleBrackets::operator>><float>(float)" 1
diff --git a/scripts/t/Dpkg_Shlibs/objdump.anglebrackets b/scripts/t/Dpkg_Shlibs/objdump.anglebrackets
new file mode 100644
index 0000000..68a1e1a
--- /dev/null
+++ b/scripts/t/Dpkg_Shlibs/objdump.anglebrackets
@@ -0,0 +1,71 @@
+
+./t/Dpkg_Shlibs/libobjdump.anglebrackets.so: file format elf32-i386
+architecture: i386, flags 0x00000150:
+HAS_SYMS, DYNAMIC, D_PAGED
+start address 0x00000000
+
+Program Header:
+ LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
+ filesz 0x000003f4 memsz 0x000003f4 flags r--
+ LOAD off 0x00001000 vaddr 0x00001000 paddr 0x00001000 align 2**12
+ filesz 0x000001a8 memsz 0x000001a8 flags r-x
+ LOAD off 0x00002000 vaddr 0x00002000 paddr 0x00002000 align 2**12
+ filesz 0x00000118 memsz 0x00000118 flags r--
+ LOAD off 0x00002f2c vaddr 0x00003f2c paddr 0x00003f2c align 2**12
+ filesz 0x000000d8 memsz 0x000000dc flags rw-
+ DYNAMIC off 0x00002f34 vaddr 0x00003f34 paddr 0x00003f34 align 2**2
+ filesz 0x000000b0 memsz 0x000000b0 flags rw-
+ NOTE off 0x00000154 vaddr 0x00000154 paddr 0x00000154 align 2**2
+ filesz 0x00000024 memsz 0x00000024 flags r--
+EH_FRAME off 0x00002000 vaddr 0x00002000 paddr 0x00002000 align 2**2
+ filesz 0x0000004c memsz 0x0000004c flags r--
+ STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4
+ filesz 0x00000000 memsz 0x00000000 flags rw-
+ RELRO off 0x00002f2c vaddr 0x00003f2c paddr 0x00003f2c align 2**0
+ filesz 0x000000d4 memsz 0x000000d4 flags r--
+
+Dynamic Section:
+ SONAME libanglebrackets.so.1
+ INIT 0x00001000
+ FINI 0x00001194
+ INIT_ARRAY 0x00003f2c
+ INIT_ARRAYSZ 0x00000004
+ FINI_ARRAY 0x00003f30
+ FINI_ARRAYSZ 0x00000004
+ GNU_HASH 0x00000178
+ STRTAB 0x0000028c
+ SYMTAB 0x000001bc
+ STRSZ 0x0000012d
+ SYMENT 0x00000010
+ PLTGOT 0x00003ff4
+ REL 0x000003bc
+ RELSZ 0x00000038
+ RELENT 0x00000008
+ RELCOUNT 0x00000003
+
+DYNAMIC SYMBOL TABLE:
+00000000 w D *UND* 00000000 __cxa_finalize
+00000000 w D *UND* 00000000 _ITM_registerTMCloneTable
+00000000 w D *UND* 00000000 _ITM_deregisterTMCloneTable
+00000000 w D *UND* 00000000 __gmon_start__
+00001170 g DF .text 00000001 _ZN13AngleBracketsrSEi
+00001190 g DF .text 00000001 _ZN13AngleBracketsrSIfEEvT_
+00001180 g DF .text 00000001 _ZN13AngleBracketsrsIfEEvT_
+00001160 g DF .text 00000001 _ZN13AngleBracketsrsEi
+00001140 g DF .text 00000001 _ZN13AngleBracketsC1Ev
+00001140 g DF .text 00000001 _ZN13AngleBracketsC2Ev
+00001150 g DF .text 00000001 _ZN13AngleBracketsD1Ev
+00001150 g DF .text 00000001 _ZN13AngleBracketsD2Ev
+
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+00003f2c R_386_RELATIVE *ABS*
+00003f30 R_386_RELATIVE *ABS*
+00004000 R_386_RELATIVE *ABS*
+00003fe4 R_386_GLOB_DAT __cxa_finalize
+00003fe8 R_386_GLOB_DAT _ITM_registerTMCloneTable
+00003fec R_386_GLOB_DAT _ITM_deregisterTMCloneTable
+00003ff0 R_386_GLOB_DAT __gmon_start__
+
+
diff --git a/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl b/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl
index 48434f4..2d1f326 100755
--- a/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl
+++ b/scripts/t/Dpkg_Shlibs/spacesyms-c-gen.pl
@@ -30,6 +30,7 @@ foreach my $version (qw(defaultver longver shortver)) {
}
}
+print "extern void (*funcs[])(void);\n";
print "void (*funcs[])(void) = {\n";
foreach my $symbol (@symbols) {
print "$symbol,\n";
diff --git a/scripts/t/Dpkg_Shlibs_Cppfilt.t b/scripts/t/Dpkg_Shlibs_Cppfilt.t
index f5bd22e..eaf0b56 100644
--- a/scripts/t/Dpkg_Shlibs_Cppfilt.t
+++ b/scripts/t/Dpkg_Shlibs_Cppfilt.t
@@ -24,7 +24,7 @@ use Config;
test_needs_command('c++filt');
if (defined $Config{bin_ELF} && $Config{bin_ELF} eq 'define') {
- plan tests => 124;
+ plan tests => 154;
} else {
plan skip_all => 'only ELF is currently supported';
}
@@ -32,17 +32,23 @@ if (defined $Config{bin_ELF} && $Config{bin_ELF} eq 'define') {
use_ok('Dpkg::Shlibs::Cppfilt');
# Simple C++ demangling tests
-is ( cppfilt_demangle_cpp('_ZNSt10istrstreamC1EPKcl'),
- 'std::istrstream::istrstream(char const*, long)',
- 'demangle symbol' );
-is ( cppfilt_demangle_cpp('_ZNSt10istrstreamC1EPKcl@Base'),
- 'std::istrstream::istrstream(char const*, long)@Base',
- 'demangle symbol with extra postfix' );
-is ( cppfilt_demangle_cpp('foobar _ZNSt10istrstreamC1EPKcl@Base'),
- 'foobar std::istrstream::istrstream(char const*, long)@Base',
- 'demangle symbol with garbage around it' );
-is ( cppfilt_demangle_cpp('FoobarInvalidSymbol'), undef,
- 'non-demanglable string' );
+is(cppfilt_demangle_cpp('_ZNSt10istrstreamC1EPKcl'),
+ 'std::istrstream::istrstream(char const*, long)',
+ 'demangle symbol');
+is(cppfilt_demangle_cpp('_ZNSt10istrstreamC1EPKcl@Base'),
+ 'std::istrstream::istrstream(char const*, long)@Base',
+ 'demangle symbol with extra postfix');
+is(cppfilt_demangle_cpp('foobar _ZNSt10istrstreamC1EPKcl@Base'),
+ 'foobar std::istrstream::istrstream(char const*, long)@Base',
+ 'demangle symbol with garbage around it');
+is(cppfilt_demangle_cpp('_ZN13AngleBracketsrSEi'),
+ 'AngleBrackets::operator>>=(int)',
+ 'demangle symbol exempt from normalized angle brackets');
+is(cppfilt_demangle_cpp('_ZN13AngleBracketsrSIfEEvT_'),
+ 'void AngleBrackets::operator>>=<float>(float)',
+ 'demangle template symbol exempt from normalized angle brackets');
+is(cppfilt_demangle_cpp('FoobarInvalidSymbol'), undef,
+ 'non-demanglable string');
# Mass C++ demangling. Checking if c++filt does not hang and cppfilt_demangle()
# immediately provides a correct answer to the caller (i.e. no buffering).
@@ -65,6 +71,11 @@ my @mangledtext = split(/\n+/s, <<'END');
00000000000bff30 g DF .text 0000000000000019 _ZNSt18condition_variable10notify_oneEv@GLIBCXX_3.4.11
00000000000666a0 g DF .text 000000000000003f _ZNKSt3tr14hashIRKSbIwSt11char_traitsIwESaIwEEEclES6_@GLIBCXX_3.4.10
00000000002f6160 w DO .data.rel.ro 0000000000000050 _ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4
+
+0000000000001170 g DF .text 0000000000000001 _ZN13AngleBracketsrSEi
+0000000000001190 g DF .text 0000000000000001 _ZN13AngleBracketsrSIfEEvT_
+0000000000001180 g DF .text 0000000000000001 _ZN13AngleBracketsrsIfEEvT_
+0000000000001160 g DF .text 0000000000000001 _ZN13AngleBracketsrsEi
END
my @demangledtext = split(/\n+/s, <<'END');
@@ -86,6 +97,11 @@ my @demangledtext = split(/\n+/s, <<'END');
00000000000bff30 g DF .text 0000000000000019 std::condition_variable::notify_one()@GLIBCXX_3.4.11
00000000000666a0 g DF .text 000000000000003f std::tr1::hash<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&>::operator()(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) const@GLIBCXX_3.4.10
00000000002f6160 w DO .data.rel.ro 0000000000000050 VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4
+
+0000000000001170 g DF .text 0000000000000001 AngleBrackets::operator>>=(int)
+0000000000001190 g DF .text 0000000000000001 void AngleBrackets::operator>>=<float>(float)
+0000000000001180 g DF .text 0000000000000001 void AngleBrackets::operator>><float>(float)
+0000000000001160 g DF .text 0000000000000001 AngleBrackets::operator>>(int)
END
for my $try (1 .. 7) {
diff --git a/src/at/package.m4 b/src/at/package.m4
index 4d78255..285d1bd 100644
--- a/src/at/package.m4
+++ b/src/at/package.m4
@@ -1,7 +1,7 @@
# Signature of the current package.
m4_define([AT_PACKAGE_NAME], [dpkg])
m4_define([AT_PACKAGE_TARNAME], [dpkg])
-m4_define([AT_PACKAGE_VERSION], [1.22.10])
-m4_define([AT_PACKAGE_STRING], [dpkg 1.22.10])
+m4_define([AT_PACKAGE_VERSION], [1.22.11])
+m4_define([AT_PACKAGE_STRING], [dpkg 1.22.11])
m4_define([AT_PACKAGE_URL], [https://wiki.debian.org/Teams/Dpkg])
m4_define([AT_PACKAGE_BUGREPORT], [debian-dpkg@lists.debian.org])
diff --git a/src/at/testsuite b/src/at/testsuite
index 61126b7..f4573fa 100755
--- a/src/at/testsuite
+++ b/src/at/testsuite
@@ -1000,7 +1000,7 @@ fi
# List of tests.
if $at_list_p; then
cat <<_ATEOF || at_write_fail=1
-dpkg 1.22.10 test suite: dpkg tools functional test suite test groups:
+dpkg 1.22.11 test suite: dpkg tools functional test suite test groups:
NUM: FILE-NAME:LINE TEST-GROUP-NAME
KEYWORDS
@@ -1041,7 +1041,7 @@ _ATEOF
exit $at_write_fail
fi
if $at_version_p; then
- printf "%s\n" "$as_me (dpkg 1.22.10)" &&
+ printf "%s\n" "$as_me (dpkg 1.22.11)" &&
cat <<\_ATEOF || at_write_fail=1
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1241,11 +1241,11 @@ exec 5>>"$at_suite_log"
# Banners and logs.
printf "%s\n" "## ---------------------------------------------------------- ##
-## dpkg 1.22.10 test suite: dpkg tools functional test suite. ##
+## dpkg 1.22.11 test suite: dpkg tools functional test suite. ##
## ---------------------------------------------------------- ##"
{
printf "%s\n" "## ---------------------------------------------------------- ##
-## dpkg 1.22.10 test suite: dpkg tools functional test suite. ##
+## dpkg 1.22.11 test suite: dpkg tools functional test suite. ##
## ---------------------------------------------------------- ##"
echo
@@ -2105,7 +2105,7 @@ _ASBOX
printf "%s\n" "Please send $at_msg and all information you think might help:
To: <debian-dpkg@lists.debian.org>
- Subject: [dpkg 1.22.10] $as_me: $at_msg1$at_msg2
+ Subject: [dpkg 1.22.11] $as_me: $at_msg1$at_msg2
You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point. Its output may