]> git.saurik.com Git - apt.git/commitdiff
include debug information in the autoremove-kernels file
authorDavid Kalnischkies <david@kalnischkies.de>
Thu, 10 Sep 2015 08:03:40 +0000 (10:03 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Mon, 14 Sep 2015 13:22:18 +0000 (15:22 +0200)
Figuring out after the fact what went wrong in the kernel hook is kinda
hart, also as the bugreports are usually very lacking on the details
front. Collecting the internal variables in the debug output we attach
to the generated file might help shine some light on the matter.
It's at least not going to hurt…

debian/apt.auto-removal.sh

index f615fa67707e6cf5f3e9c3f1501a764b7b53750a..6af5da9879f6795430254440b8a28261024f1eb4 100644 (file)
@@ -47,13 +47,33 @@ generateconfig() {
 APT::NeverAutoRemove
 {
 EOF
-       apt-config dump --no-empty --format '%v%n' 'APT::VersionedKernelPackages' | while read package; do
+       for package in $(apt-config dump --no-empty --format '%v%n' 'APT::VersionedKernelPackages'); do
                for kernel in $kernels; do
                        echo "   \"^${package}-${kernel}$\";"
                done
        done
        echo '};'
+       if [ "${APT_AUTO_REMOVAL_KERNELS_DEBUG:-true}" = 'true' ]; then
+               cat <<EOF
+/* Debug information:
+# dpkg list:
+$(dpkg -l | grep '\(linux\|kfreebsd\|gnumach\)-image-')
+# list of installed kernel packages:
+$list
+# list of different kernel versions:
+$debverlist
+# Installing kernel: $installed_version ($1)
+# Running kernel: $running_version ($unamer)
+# Last kernel: $latest_version
+# Previous kernel: $previous_version
+# Kernel versions list to keep:
+$debkernels
+# Kernel packages (version part) to protect:
+$kernels
+*/
+EOF
+       fi
 }
-generateconfig > "${config_file}.dpkg-new"
-mv "${config_file}.dpkg-new" "$config_file"
+generateconfig "$@" > "${config_file}.dpkg-new"
+mv -f "${config_file}.dpkg-new" "$config_file"
 chmod 444 "$config_file"