Skip to content

Commit

Permalink
Merge branch '162-remove-all-remaining-linux-images-and-modules-not-i…
Browse files Browse the repository at this point in the history
…n-our-metapackage' into 'master'

Resolve "remove all remaining linux-images and modules not in our metapackage"

Closes #162

See merge request tuxedocomputers/development/tuxedo-tomte!133
  • Loading branch information
Emohr-Tuxedo committed Feb 25, 2022
2 parents 936eb6d + 1c98766 commit 8e084d6
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 23 deletions.
17 changes: 17 additions & 0 deletions changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
tuxedo-tomte (2.5.30-6) UNRELEASED; urgency=medium

* after packaging
* added uninstallRemnantKernels
* after packaging
* added always to kernels
* after packaging
* added debug
* after packaging
* minor correction in package result
* after packaging
* loots of little debuggings
* after packaging
* added ending for longinstall

-- E. Mohr <tux@tuxedocomputers.com> Thu, 24 Feb 2022 10:23:36 +0100

tuxedo-tomte (2.5.30) focal; urgency=medium

* added remove obsolete package realtek-r8125-dkms
Expand Down
17 changes: 17 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
tuxedo-tomte (2.5.30-6) UNRELEASED; urgency=medium

* after packaging
* added uninstallRemnantKernels
* after packaging
* added always to kernels
* after packaging
* added debug
* after packaging
* minor correction in package result
* after packaging
* loots of little debuggings
* after packaging
* added ending for longinstall

-- E. Mohr <tux@tuxedocomputers.com> Thu, 24 Feb 2022 10:23:36 +0100

tuxedo-tomte (2.5.30) focal; urgency=medium

* added remove obsolete package realtek-r8125-dkms
Expand Down
4 changes: 2 additions & 2 deletions debian/files
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
tuxedo-tomte_2.5.30_all.deb perl optional
tuxedo-tomte_2.5.30_amd64.buildinfo perl optional
tuxedo-tomte_2.5.30-6_all.deb perl optional
tuxedo-tomte_2.5.30-6_amd64.buildinfo perl optional
103 changes: 82 additions & 21 deletions src/tuxedo-tomte
Original file line number Diff line number Diff line change
Expand Up @@ -1149,7 +1149,7 @@ my %origConfModules = (
postconf => '',
upgrade => '',
upgraded => '',
reconfigure => '',
reconfigure => 'always',
restart => 'yes',
},
kerneltuxedo2004next => {
Expand All @@ -1165,7 +1165,7 @@ my %origConfModules = (
postconf => '',
upgrade => '',
upgraded => '',
reconfigure => '',
reconfigure => 'always',
restart => 'yes',
},
kerneltuxedo2004 => {
Expand All @@ -1181,7 +1181,7 @@ my %origConfModules = (
postconf => '',
upgrade => '',
upgraded => '',
reconfigure => '',
reconfigure => 'always',
restart => 'yes',
},
kernelgenerichwe2004 => {
Expand All @@ -1197,7 +1197,7 @@ my %origConfModules = (
postconf => '',
upgrade => '',
upgraded => '',
reconfigure => '',
reconfigure => 'always',
restart => 'yes',
},
kernelgenerichwe2004edge => {
Expand All @@ -1213,7 +1213,7 @@ my %origConfModules = (
postconf => '',
upgrade => '',
upgraded => '',
reconfigure => '',
reconfigure => 'always',
restart => 'yes',
},
nvidiadriver => {
Expand Down Expand Up @@ -3173,9 +3173,6 @@ sub kernelhwe2004() {
}
}
}
if ($action eq 'upgrade') {
#no upgrades yet
}
if ($action eq 'remove') {
# not implemented yet
}
Expand Down Expand Up @@ -3215,9 +3212,6 @@ sub kerneltuxedo2004edge() {
}
}
}
if ($action eq 'upgrade') {
# no upgrades yet
}
if ($action eq 'remove') {
# not implemented yet
}
Expand Down Expand Up @@ -3255,9 +3249,6 @@ sub kerneltuxedo2004next() {
}
}
}
# if ($action eq 'upgrade') {
# no upgrades yet
# }
if ($action eq 'remove') {
# not implemented yet
}
Expand Down Expand Up @@ -3296,9 +3287,6 @@ sub kerneltuxedo2004() {
}
}
}
# if ($action eq 'upgrade') {
# no upgrades yet
# }
if ($action eq 'remove') {
# not implemented yet
}
Expand Down Expand Up @@ -4727,6 +4715,7 @@ sub uninstallAllOtherKernelFlavours {
if ($exceptKernel ne 'linux-tuxedo-20.04-next') {
uninstKernelFlavour('linux-tuxedo-20.04-next',$exceptKernel, $tempInstFailed, $tempInstDone);
}
uninstallRemnantKernels($exceptKernel, $tempInstFailed, $tempInstDone);
$failed = $tempInstFailed;
$somethingWasDone = $tempInstDone;
}
Expand Down Expand Up @@ -4909,9 +4898,9 @@ sub uninstKernelFlavour {
printLog('no error from deinstall', 'L1');
}

# check wether packages have been deinstalled
# check whether packages have been deinstalled
foreach $package (keys %pkgsHash) {
printLog("package: $package", 'TL2');
printLog("package: $package", 'L2');
if (isPackageInstalled($package)) {
printLog("unwanted package $package is still installed", 'L0');
$failed += 1;
Expand All @@ -4921,7 +4910,10 @@ sub uninstKernelFlavour {
}
if ($failed == 0) {
$kernelModuleName = getSubName($kernelToDelete);
printLog("all packages uninstalled for $kernelToDelete", 'L0');
if ($somethingWasDone > 0) {
printLog("packages for $kernelToDelete were uninstalled", 'L2');
}
printLog("no packages for $kernelToDelete present", 'L0');
if ($kernelModuleName ne '') {
printLog("remove $kernelModuleName from origConfModules", 'L2');
$origConfModules{$kernelModuleName}{installed} = 'no';
Expand All @@ -4947,6 +4939,75 @@ sub uninstKernelFlavour {



###############################################################################
# uninstalls remnant kernels not connected with the desired metapackage
# returns 1 if all were uninstalled or no packages found
# returns 0 if something failed
#
sub uninstallRemnantKernels {
my ($kernelToKeep, $failed, $somethingWasDone) = @_;
my $searchCmd = $consoleLanguage."dpkg-query -W -f=\'\${Package} \${db:Status-Abbrev}\n\' linux-image-* linux-modules-* 2>&1";
my $retString;
my @lines;
my @removePackages;
my $package;
my $line;
my $deinstString = $consoleLanguage.'apt-get remove -yq --purge ';
$retString = `$searchCmd`;
printLog("result query remnant linux kernels:\n$retString", 'L2');
@lines = split /\n/, $retString;
foreach $line (@lines) {
if ((!($line =~ /dpkg-query:/)) && ($line =~ /.*\s[uirp][cHUFWti]/)) {
$line =~ /(\S+)\s*(\S+)/;
$package = $1;
if (($package =~ /^linux-.*(?:image|modules)-.*/) && !(grep(/^$package$/, @{ $flavours{$distributionVersion}{$kernelToKeep}{'packages'}}))) {
printLog("accepted: $package", 'L2');
push(@removePackages, $package);
} else {
printLog("rejected: $package", 'L2');
}
}
}
$package = '';
if (scalar(@removePackages) > 0) {
$deinstString .= join(' ', @removePackages).' 2>&1';
printLog("deinstallation command: $deinstString", 'L2');
$retString = `$deinstString`;
printLog("deinstallation result: $retString", 'L2');
if ($? != 0) {
printLog("error: $?", 'L0');
} else {
printLog('no error from deinstall', 'L1');
}
# check whether packages have been deinstalled
foreach $package (@removePackages) {
printLog("test package: $package", 'L2');
if (isPackageInstalled($package)) {
printLog("unwanted package $package is still installed", 'L0');
$failed += 1;
} else {
$somethingWasDone += 1;
}
}
if (($failed == 0) && ($somethingWasDone > 0)) {
printLog("all remnant kernel packages uninstalled", 'L0');
return (1);
} elsif ($failed == 0) {
printLog("no remnant kernel packages to uninstall found", 'L1');
return (1);
} else {
printLog("error in uninstalling remnant kernel packages", 'L1');
return (0);
}

} else {
printLog("no remnant kernel packages to uninstall found", 'L1');
return (1);
}
}




###############################################################################
# creates file with content
Expand Down Expand Up @@ -6387,7 +6448,7 @@ sub configuredModulesExceptDefault {
}
}
}
if (scalar(@modulesList) > 0) {
if ((scalar(@modulesList) > 0) || ($longInstall == 1)) {
return (1);
}
return (0);
Expand Down

0 comments on commit 8e084d6

Please sign in to comment.