summaryrefslogtreecommitdiff
path: root/cmdline
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2020-08-04 10:07:10 +0000
committerJulian Andres Klode <jak@debian.org>2020-08-04 10:07:10 +0000
commit1afe7c8b874abb61cde591e0241b967ef1b99991 (patch)
tree38590a014f489acb92e2b3294766d0ec26a97c56 /cmdline
parent4d5a389dfc2cda5c82876fefdb9dd283e013f827 (diff)
parentf9f0ae2bbb2d0bfeccddecbf8b9ec07ccd54cd9a (diff)
Merge branch 'pu/apt-key-deprecated' into 'master'
Fully deprecate apt-key, schedule removal for Q2/2022 See merge request apt-team/apt!119
Diffstat (limited to 'cmdline')
-rw-r--r--cmdline/apt-key.in20
1 files changed, 16 insertions, 4 deletions
diff --git a/cmdline/apt-key.in b/cmdline/apt-key.in
index e9187b423..baf3df5c3 100644
--- a/cmdline/apt-key.in
+++ b/cmdline/apt-key.in
@@ -671,10 +671,10 @@ prepare_gpg_home() {
# well as the script hopefully uses apt-key optionally then like e.g.
# debian-archive-keyring for (upgrade) cleanup did
if [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] && [ -z "$APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE" ]; then
- if ! dpkg-query --show --showformat '${Pre-Depends}${Depends}${Recommends}\n' "$DPKG_MAINTSCRIPT_PACKAGE" 2>/dev/null | grep -q gnupg; then
+ if ! dpkg-query --show --showformat '${Pre-Depends}${Depends}${Recommends}\n' "$DPKG_MAINTSCRIPT_PACKAGE" 2>/dev/null | grep -E -q 'gpg|gnupg'; then
cat >&2 <<EOF
Warning: The $DPKG_MAINTSCRIPT_NAME maintainerscript of the package $DPKG_MAINTSCRIPT_PACKAGE
-Warning: seems to use apt-key (provided by apt) without depending on gnupg or gnupg2.
+Warning: seems to use apt-key (provided by apt) without depending on gpg, gnupg, or gnupg2.
Warning: This will BREAK in the future and should be fixed by the package maintainer(s).
Note: Check first if apt-key functionality is needed at all - it probably isn't!
EOF
@@ -740,8 +740,18 @@ warn_on_script_usage() {
# (Maintainer) scripts should not be using apt-key
if [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ]; then
echo >&2 "Warning: apt-key should not be used in scripts (called from $DPKG_MAINTSCRIPT_NAME maintainerscript of the package ${DPKG_MAINTSCRIPT_PACKAGE})"
- elif [ ! -t 1 ]; then
- echo >&2 "Warning: apt-key output should not be parsed (stdout is not a terminal)"
+ fi
+
+ echo >&2 "Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))."
+}
+
+warn_outside_maintscript() {
+ # In del, we want to warn in interactive use, but not inside maintainer
+ # scripts, so as to give people a chance to migrate keyrings.
+ #
+ # FIXME: We should always warn starting in 2022.
+ if [ -z "$DPKG_MAINTSCRIPT_PACKAGE" ]; then
+ echo >&2 "Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))."
fi
}
@@ -760,6 +770,7 @@ case "$command" in
;;
del|rm|remove)
# no script warning here as removing 'add' usage needs 'del' for cleanup
+ warn_outside_maintscript
requires_root
foreach_keyring_do 'remove_key_from_keyring' "$@"
aptkey_echo "OK"
@@ -772,6 +783,7 @@ case "$command" in
merge_back_changes
;;
net-update)
+ warn_on_script_usage
requires_root
setup_merged_keyring
net_update