## start time: Tue Apr 4 19:22:47 EDT 2023 ## linux-purge version: 1.0.161-3976ce0 ## options: -d '' -- ## OS: Ubuntu Lunar Lobster (development branch) ## awk executable: /usr/bin/gawk ## awk version: GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.0, GNU MP 6.2.1) Copyright (C) 1989, 1991-2022 Free Software Foundation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. ## linux packages: ii linux-base ii linux-compiler-gcc-11-x86 ii linux-firmware un linux-firmware-raspi2 un linux-firmware-snapdragon un linux-headers ii linux-headers-6.1.3 ii linux-headers-6.2.1 ii linux-headers-6.2.3 ii linux-headers-6.2.5 ii linux-headers-6.2.7 ii linux-headers-6.2.9 un linux-headers-686-pae un linux-headers-amd64 un linux-headers-generic ii linux-image-6.1.3 ii linux-image-6.2.1 ii linux-image-6.2.3 ii linux-image-6.2.5 ii linux-image-6.2.7 ii linux-image-6.2.9 un linux-initramfs-tool un linux-kernel-headers un linux-kernel-headers-mips-cross un linux-kernel-log-daemon ii linux-libc-dev ii linux-libc-dev-mips-cross un linux-libc-dev-mips-dcv1 un linux-restricted-common ii linux-sound-base ii linux-tools-common ## trace and output: + debug() 147: operate ++ debug() 147: tee -ia -- /dev/shm/linux-purge.debug_xk0 + operate() 961: [[ -n '' ]] + operate() 962: [[ -n '' ]] + operate() 965: purge_normally ++ debug() 147: tee -ia -- /dev/shm/linux-purge.debug_xk0 + purge_normally() 795: local Pkgs Releases ReleasesToKeep LatestReleases HoldReleases ManualReleases release Items ReleasesToPurge KeepRegex version PkgsToPurge locked version minus_flavour + purge_normally() 798: (( no_booted )) ++ purge_normally() 801: dpkg-query -W '-f=${Package} ${db:Status-Abbrev}\n' +++ purge_normally() 801: literalize 6.2.9 +++ literalize() 264: printf %s 6.2.9 +++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 801: grep -qE '^linux-image-(unsigned-)?[6][.][2][.][9] [ih]i $' ++ purge_normally() 811: dpkg-query -W '-f=${Package} ${Status}\n' 'linux-*' ++ purge_normally() 812: awk '$3!="ok" || ($4!="installed" && $4!="not-installed" && $4!="config-files") ' + purge_normally() 811: Pkgs= + purge_normally() 812: [[ -n '' ]] ++ purge_normally() 826: dpkg-query -W '-f=${db:Status-Abbrev} ${Package}\n' ++ purge_normally() 826: sed -nr 's/^[ih]i linux-image-(unsigned-)?([0-9]+\..+)/\2/p' ++ purge_normally() 826: linux-version sort + purge_normally() 826: Releases='6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + purge_normally() 828: [[ -z '' ]] + purge_normally() 829: [[ -n '' ]] + purge_normally() 838: ReleasesToKeep='6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + purge_normally() 860: [[ -n '' ]] + purge_normally() 903: KeepRegex= + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n '' ]] ++ purge_normally() 907: printf %s 6.1.3 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.1.3 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.1.3 ++ literalize() 264: printf %s 6.1.3 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][1][.][3]()?$' + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n -[6][.][1][.][3]()?$ ]] + purge_normally() 905: KeepRegex+=' ' ++ purge_normally() 907: printf %s 6.2.1 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.2.1 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.2.1 ++ literalize() 264: printf %s 6.2.1 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][2][.][1]()?$' + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n -[6][.][1][.][3]()?$ -[6][.][2][.][1]()?$ ]] + purge_normally() 905: KeepRegex+=' ' ++ purge_normally() 907: printf %s 6.2.3 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.2.3 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.2.3 ++ literalize() 264: printf %s 6.2.3 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][2][.][3]()?$' + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n -[6][.][1][.][3]()?$ -[6][.][2][.][1]()?$ -[6][.][2][.][3]()?$ ]] + purge_normally() 905: KeepRegex+=' ' ++ purge_normally() 907: printf %s 6.2.5 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.2.5 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.2.5 ++ literalize() 264: printf %s 6.2.5 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][2][.][5]()?$' + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n -[6][.][1][.][3]()?$ -[6][.][2][.][1]()?$ -[6][.][2][.][3]()?$ -[6][.][2][.][5]()?$ ]] + purge_normally() 905: KeepRegex+=' ' ++ purge_normally() 907: printf %s 6.2.7 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.2.7 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.2.7 ++ literalize() 264: printf %s 6.2.7 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][2][.][7]()?$' + purge_normally() 904: for release in $ReleasesToKeep + purge_normally() 905: [[ -n -[6][.][1][.][3]()?$ -[6][.][2][.][1]()?$ -[6][.][2][.][3]()?$ -[6][.][2][.][5]()?$ -[6][.][2][.][7]()?$ ]] + purge_normally() 905: KeepRegex+=' ' ++ purge_normally() 907: printf %s 6.2.9 ++ purge_normally() 907: cut -d- -f1,2 + purge_normally() 907: version=6.2.9 + purge_normally() 908: minus_flavour= ++ purge_normally() 909: literalize 6.2.9 ++ literalize() 264: printf %s 6.2.9 ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ purge_normally() 909: literalize '' ++ literalize() 264: printf %s '' ++ literalize() 264: sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' + purge_normally() 909: KeepRegex+='-[6][.][2][.][9]()?$' ++ purge_normally() 914: dpkg-query -W '-f=${db:Status-Abbrev} ${Package}\n' ++ purge_normally() 914: awk '/^.[^n] linux-.+-[0-9]+\.[0-9]+\./{print $2}' ++ purge_normally() 914: grep -Evf /dev/fd/61 +++ purge_normally() 914: printf %s '-[6][.][1][.][3]()?$ -[6][.][2][.][1]()?$ -[6][.][2][.][3]()?$ -[6][.][2][.][5]()?$ -[6][.][2][.][7]()?$ -[6][.][2][.][9]()?$' ++ purge_normally() 914: [[ 1 -eq 1 ]] + purge_normally() 914: PkgsToPurge= + purge_normally() 916: [[ purge == remove ]] + purge_normally() 921: [[ -n '' ]] + purge_normally() 926: [[ -n '' ]] + purge_normally() 957: [[ -n '' ]] + purge_normally() 957: remove_extra_initrds + remove_extra_initrds() 461: rm -rfv '/dev/shm/mkinitramfs-*' + remove_extra_initrds() 463: local release= response= + remove_extra_initrds() 464: cd /boot + remove_extra_initrds() 466: local initrd_releases ++ remove_extra_initrds() 467: ls initrd.img-6.1.3 initrd.img-6.2.1 initrd.img-6.2.3 initrd.img-6.2.5 initrd.img-6.2.7 initrd.img-6.2.9 ++ remove_extra_initrds() 467: sed -r -e '/.*\.old-dkms$/d' -e '/.*\.bak$/d' -e 's/initrd\.img-(.*)/\1/' + remove_extra_initrds() 467: initrd_releases='6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + remove_extra_initrds() 468: local vmlinuz_releases ++ remove_extra_initrds() 470: ls vmlinuz-6.1.3 vmlinuz-6.2.1 vmlinuz-6.2.3 vmlinuz-6.2.5 vmlinuz-6.2.7 vmlinuz-6.2.9 ++ remove_extra_initrds() 470: sed -nr -e 's#\.efi\.signed$##' -e 's#^vmlinuz-(.*)#\1#p' + remove_extra_initrds() 470: vmlinuz_releases='6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + remove_extra_initrds() 471: local extra_initrds +++ remove_extra_initrds() 474: get_set_complement '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' +++ get_set_complement() 356: linux-version sort +++ get_set_complement() 355: comm -23 /dev/fd/61 /dev/fd/60 ++++ get_set_complement() 355: sort -u /dev/fd/61 ++++ get_set_complement() 355: sort -u /dev/fd/60 +++++ get_set_complement() 355: printf %s '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' +++++ get_set_complement() 355: printf %s '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + remove_extra_initrds() 474: extra_initrds= + remove_extra_initrds() 475: [[ -n '' ]] + remove_extra_initrds() 482: local initrd_backup_releases ++ remove_extra_initrds() 484: ls 'initrd.img-*.old-dkms' 'initrd.img-*.bak' ++ remove_extra_initrds() 484: sed -r 's/initrd\.img-(.*)\.(old-dkms|bak)$/\1/' + remove_extra_initrds() 484: initrd_backup_releases= + remove_extra_initrds() 485: local extra_backups +++ remove_extra_initrds() 489: get_set_complement '' '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' +++ get_set_complement() 356: linux-version sort +++ get_set_complement() 355: comm -23 /dev/fd/61 /dev/fd/60 ++++ get_set_complement() 355: sort -u /dev/fd/61 ++++ get_set_complement() 355: sort -u /dev/fd/60 +++++ get_set_complement() 355: printf %s '' +++++ get_set_complement() 355: printf %s '6.1.3 6.2.1 6.2.3 6.2.5 6.2.7 6.2.9' + remove_extra_initrds() 489: extra_backups= + remove_extra_initrds() 491: [[ -n '' ]] + remove_extra_initrds() 498: : + debug() 148: set +x