On 07/06/2016 02:38 PM, Andrew Patterson wrote: > > > On 07/06/2016 02:04 PM, Julian Andres Klode wrote: >> On Wed, Jul 06, 2016 at 01:48:17PM -0600, Andrew Patterson wrote: >>> Package: apt >>> Version: 1.2.11 >>> >>> When I run apt-get autoremove, apt will also remove kernels with a "+" >>> in the package name, e.g, >> [...] >>> I have attached a patch that has a fix for this problem. >> >> Thanks for your patch! >> >> Can you also extend the test in >> test/integration/test-kernel-helper-autoremove? That >> would be helpful to ensure it did not work before and works now. We could >> also do it >> ourselves, but maybe you want to do it (looks more coherent that way!). >> > > I'll give it a try. > >> Would be great if you could submit an updated patch with that in it (and a >> "Closes: #830159" as >> a last line of the commit message, so we don't forget to close the bug) and >> in the right >> format (see below). >> > > Will do. > >>> >>> -- >>> Andrew Patterson >>> Hewlett-Packard Enterprise >> >>> commit 4c851c0d9b8d04e6c6aa44d1d380e139f0c2f7af >>> Author: Andrew Patterson <andrew.patter...@hpe.com> >>> Date: Wed Jul 6 13:40:16 2016 -0600 >> >> Please format patches with git-format patch, this cannot be applied >> directly with git am. >> > > Sorry. I'll be better next time. > >
Here is the new version, formatted with git format-patch and with the requested test integration changes. BTW, that test framework it pretty slick. Andrew -- Andrew Patterson Hewlett-Packard Enterprise
>From 75d3da5fa3c9a19ed7bd90ecd64c95d715f120f8 Mon Sep 17 00:00:00 2001 From: Andrew Patterson <andrew.patter...@hpe.com> Date: Wed, 6 Jul 2016 13:40:16 -0600 Subject: [PATCH] Add kernels with "+" in the package name to APT::NeverAutoRemove Escape "+" in kernel package names when generating APT::NeverAutoRemove list so it is not treated as a regular expression meta-character. Closes: #830159 --- debian/apt.auto-removal.sh | 2 +- test/integration/test-kernel-helper-autoremove | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh index e7e2ca0..608d950 100644 --- a/debian/apt.auto-removal.sh +++ b/debian/apt.auto-removal.sh @@ -38,7 +38,7 @@ $running_version $previous_version" | sort -u | sed -e '/^$/ d')" kernels="$( (echo "$1 $unamer"; for deb in $debkernels; do echo "$list" | awk "\$2 == \"$deb\" { print \$1; }"; done; ) \ - | sed -e 's#\.#\\.#g' -e '/^$/ d' | sort -u)" + | sed -e 's#\([\.\+]\)#\\\1#g' -e '/^$/ d' | sort -u)" generateconfig() { cat <<EOF diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove index 2e8da1c..c49abef 100755 --- a/test/integration/test-kernel-helper-autoremove +++ b/test/integration/test-kernel-helper-autoremove @@ -21,6 +21,8 @@ insertinstalledpackage 'linux-image-amd64' 'amd64' '200-1' insertinstalledpackage 'linux-image-686-pae' 'i386' '300-1' # ensure that the '.' is really a dot and not a wildcard insertinstalledpackage 'linux-headers-1000000-1-generic' 'amd64' '100.0.0-1' +# ensure that the '+' is really a plus and not a regexp quantifier +insertinstalledpackage "${CURRENTKERNEL}+variant" 'amd64' '5-1' testsuccess aptmark auto "$CURRENTKERNEL" "${CURRENTKERNEL}-dbg" "${CURRENTKERNEL}-686-pae:i386" "${CURRENTKERNEL}-rt" \ 'linux-image-1.0.0-2-generic' 'linux-image-100.0.0-1-generic' 'linux-headers-1000000-1-generic' -- 2.8.0.rc3