[PATCH 1/1] [Maverick] [V2] UBUNTU: debian -- more agressivly clean up after depmod on purge

Tim Gardner tim.gardner at canonical.com
Mon Aug 16 17:41:06 UTC 2010


On 08/16/2010 10:45 AM, Andy Whitcroft wrote:
> BugLink: http://bugs.launchpad.net/bugs/618591
>
> During install we execute depmod to ensure we have the appropriate module
> supper indexes for the installed system, we are however required to clean
> up after it on uninstall.  As depmod is provided by an external package
> changes in that package can lead to the kernel leaking files on uninstall,
> preventing a successful purge.
>
> Though we cannot know what files depmod does generate they (so far) all
> are prefixed with "modules." in /lib/modules/<version>/.  The kernel
> binary packages do intentionally include two files with this prefix
> (modules.builtin and modules.order).  As we know exactly which files we
> are carrying move to removing all other modules.* files when uninstalling
> to ensure we cleanup comprehensivly behind depmod.  Also adds linkage
> between the two places where these files are now listed to ensure we keep
> them in lock-step.  This should ensure that should new files be added to
> depmod's output set we should purge them automatically.
>
> Signed-off-by: Andy Whitcroft<apw at canonical.com>
> ---
>   debian/control-scripts/prerm    |   23 ++++++++++-------------
>   debian/rules.d/2-binary-arch.mk |    2 ++
>   2 files changed, 12 insertions(+), 13 deletions(-)
>
> diff --git a/debian/control-scripts/prerm b/debian/control-scripts/prerm
> index ae248dd..c214842 100644
> --- a/debian/control-scripts/prerm
> +++ b/debian/control-scripts/prerm
> @@ -278,19 +278,16 @@ if (-d "/etc/kernel/prerm.d/$version") {
>   }
>
>   sub success () {
> -  my @files_to_remove = qw{
> -    modules.dep modules.isapnpmap modules.pcimap
> -    modules.usbmap modules.parportmap
> -    modules.generic_string modules.ieee1394map
> -    modules.ieee1394map modules.pnpbiosmap
> -    modules.alias modules.ccwmap modules.inputmap
> -    modules.symbols modules.ofmap modules.seriomap
> -    modules.alias.bin modules.builtin.bin modules.dep.bin modules.symbols.bin
> -  };
> -
> -  foreach my $extra_file (@files_to_remove) {
> -    if (-f "/lib/modules/$version/$extra_file") {
> -      unlink "/lib/modules/$version/$extra_file";
> +  # NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk
> +  my %files_to_keep = (
> +	'modules.builtin'	=>  1,
> +	'modules.order'		=>  1,
> +  );
> +  my $short;
> +  for my $file (</lib/modules/$version/modules.*>) {
> +    $short = $file; $short =~ s,.*/,,;
> +    if (!defined $files_to_keep{$short}) {
> +      unlink "$file";
>       }
>     }
>     exit 0;
> diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
> index 6777b5e..16656c0 100644
> --- a/debian/rules.d/2-binary-arch.mk
> +++ b/debian/rules.d/2-binary-arch.mk
> @@ -201,6 +201,8 @@ endif
>   	#
>   	# Remove files which are generated at installation by postinst,
>   	# except for modules.order and modules.builtin
> +	#
> +	# NOTE: need to keep this list in sync with postrm
>   	#
>   	mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
>   	mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \

I like this approach better, assuming I've read the perl code correctly.

Acked-by: Tim Gardner <tim.gardner at canonical.com>
-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list