From a68b1614736db10e2807ecc57e8031c318a6c8f3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 1 Mar 2011 05:44:42 +0000 Subject: [PATCH] postinst: Remove specific support for running a ramdisk creator Warn users that specify one in /etc/kernel-img.conf. Require initramfs-tools >= 0.94, which installs a postinst hook. svn path=/dists/trunk/linux-2.6/; revision=16958 --- debian/bin/gencontrol.py | 3 - debian/changelog | 9 +++ debian/config/defines | 5 +- debian/rules.real | 1 - debian/templates/temp.image.plain/postinst | 64 +++++++-------------- debian/templates/temp.image.plain/templates | 12 +++- 6 files changed, 41 insertions(+), 53 deletions(-) diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py index a0cdfec1e..16c6c4208 100755 --- a/debian/bin/gencontrol.py +++ b/debian/bin/gencontrol.py @@ -129,9 +129,6 @@ class Gencontrol(Base): if config_entry_image.get('initramfs', True): generators = config_entry_image['initramfs-generators'] - config_entry_commands_initramfs = self.config.merge('commands-image-initramfs-generators', arch, featureset, flavour) - commands = [config_entry_commands_initramfs[i] for i in generators if config_entry_commands_initramfs.has_key(i)] - makeflags['INITRD_CMD'] = ' '.join(commands) l = PackageRelationGroup() for i in generators: i = config_entry_relations.get(i, i) diff --git a/debian/changelog b/debian/changelog index ed0eaf88b..765b83831 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +linux-2.6 (2.6.38~rc6-1~experimental.2) UNRELEASED; urgency=low + + [ Ben Hutchings ] + * postinst: Remove specific support for running a ramdisk creator; + warn users that specify one in /etc/kernel-img.conf + * Require initramfs-tools >= 0.94, which installs a postinst hook + + -- Ben Hutchings Tue, 01 Mar 2011 05:38:48 +0000 + linux-2.6 (2.6.38~rc6-1~experimental.1) experimental; urgency=low [ Ben Hutchings ] diff --git a/debian/config/defines b/debian/config/defines index b739b9df7..7d9c8089d 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -41,16 +41,13 @@ part-long-xen: This kernel also runs on a Xen hypervisor. initramfs-generators: initramfs-tools initramfs-fallback type: plain -[commands-image-initramfs-generators] -initramfs-tools: update-initramfs - [relations] # compilers gcc-4.4: gcc-4.4 # initramfs-generators initramfs-fallback: linux-initramfs-tool -initramfs-tools: initramfs-tools (>= 0.55) +initramfs-tools: initramfs-tools (>= 0.94) # bootloaders elilo: elilo (>= 3.12-3.1~) diff --git a/debian/rules.real b/debian/rules.real index cb33113ce..3a418e9cd 100644 --- a/debian/rules.real +++ b/debian/rules.real @@ -414,7 +414,6 @@ install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain_templates: -e 's@=B@$(KERNEL_ARCH)@g' \ -e 's/=I/$(ARG_INITRD)/g' \ -e 's/=K/$(ARG_KIMAGE)/g' \ - -e 's@=MK@$(INITRD_CMD)@g' \ -e 's/=V/$(REAL_VERSION)/g' \ $$i > debian/$(PACKAGE_NAME).$$(basename $$i) || exit; \ done diff --git a/debian/templates/temp.image.plain/postinst b/debian/templates/temp.image.plain/postinst index d93e0d636..07ab01904 100755 --- a/debian/templates/temp.image.plain/postinst +++ b/debian/templates/temp.image.plain/postinst @@ -26,7 +26,7 @@ my $relink_src_link = 'YES'; # There is no harm in checking the link my $relink_build_link = 'YES'; # There is no harm in checking the link my $force_build_link = ''; # There is no harm in checking the link my $kernel_arch = "=B"; -my $ramdisk = "=MK"; # List of tools to create initial ram fs. +my $ramdisk = ''; my $package_name = "linux-image-$version"; my $explicit_do_loader = ''; @@ -704,60 +704,32 @@ if (-d "$modules_base/$version") { } -sub find_initramfs_tool { - my $ramdisk = shift; - my (@tools, $initramfs_cmd); - - foreach $initramfs_cmd (split(/[:,\s]+/, $ramdisk)) { - if (system("test -x \"\$(command -v $initramfs_cmd)\"") == 0) { - push(@tools, $initramfs_cmd); - } - } - return @tools; -} - - -if ($initrd) { -my @ramdisklist; -@ramdisklist = find_initramfs_tool($ramdisk) if $ramdisk; -die "Failed to find suitable initramfs generation tool in $ramdisk\n" - if $#ramdisklist < 0; -my $success = 0; -for my $ramdisk_cmd (@ramdisklist) { - print STDERR "Running $ramdisk_cmd.\n"; - print STDERR "Other valid candidates: @ramdisklist\n" if $#ramdisklist > 0; - - my $initrd_path = $realimageloc . "initrd.img-$version"; - my $ret = system("$ramdisk_cmd " . - ($mkimage ? "-m '$mkimage' " : "") . - "-c -t -k $version >&2"); - if ($ret) { - warn "$ramdisk_cmd failed to create initrd image.\n"; - } else { - $success = 1; - last; - } -} -die "Failed to create initrd image.\n" unless $success; -if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//o) { - image_magic("initrd.img", $image_dest); -} else { - if (! -e "initrd.img") { - handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", - $realimageloc); - } -} +# Warn if we are ignoring the old ramdisk setting +if ($ramdisk =~ /\S/) { + my ($question, $ret, $seen); + $question = "${package_name}/postinst/ignoring-ramdisk"; + ($ret,$seen) = input('high', "$question"); + die "Error setting debconf question $question: $seen" if $ret && $ret != 30; + ($ret,$seen) = go(); + die "Error asking debconf question $question: $seen" if $ret && $ret != 30; } # Only change the symlinks if we are not being upgraded if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//o) { image_magic($kimage, $image_dest); + if ($initrd) { + image_magic("initrd.img", $image_dest); + } } else { if (! -e "$kimage") { handle_missing_link($kimage, $image_dest, "$kimage-$version", $realimageloc); } + if ($initrd && ! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } } # set the env var stem @@ -821,6 +793,10 @@ if ($explicit_do_loader) { die "Error asking debconf question $question: $seen" if $ret && $ret != 30; } +if ($initrd && ! -e "initrd.img-$version") { + die "Failed to create initrd image.\n"; +} + exit 0; __END__ diff --git a/debian/templates/temp.image.plain/templates b/debian/templates/temp.image.plain/templates index 7ae19dfe6..4cca9203c 100644 --- a/debian/templates/temp.image.plain/templates +++ b/debian/templates/temp.image.plain/templates @@ -1,4 +1,4 @@ -# These templates have been reviewed by the debian-l10n-english +# These templates have mostly been reviewed by the debian-l10n-english # team # # If modifications/additions/rewording are needed, please ask @@ -64,3 +64,13 @@ _Description: Boot loader configuration must be updated /etc/kernel/postinst.d. Alternately, you can specify the command to update the boot loader by setting the 'postinst_hook' variable in /etc/kernel-img.conf. + +# This has not yet been reviewed +Template: linux-image-=V/postinst/ignoring-ramdisk +Type: error +_Description: Ramdisk configuration must be updated + Kernel packages will no longer run a specific ramdisk creator. The + ramdisk creator package should install a script in + /etc/kernel/postinst.d. Alternately, you can specify the command to + create a ramdisk by setting the 'postinst_hook' variable in + /etc/kernel-img.conf.