postinst: Remove specific support for running a ramdisk creator

Warn users that specify one in /etc/kernel-img.conf.
Require initramfs-tools >= 0.99, which does not depend on being directly
invoked.

svn path=/dists/trunk/linux-2.6/; revision=17424
This commit is contained in:
Ben Hutchings 2011-05-16 03:57:43 +00:00
parent 31b74de3c8
commit 5f375916e4
6 changed files with 34 additions and 53 deletions

View File

@ -136,9 +136,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)

3
debian/changelog vendored
View File

@ -17,6 +17,9 @@ linux-2.6 (2.6.39~rc7-1~experimental.2) UNRELEASED; urgency=low
upstream default, this was set as an experiment rather than a
recommendation! SLUB generally has poorer performance than SLAB on
larger systems.
* postinst: Remove specific support for running a ramdisk creator;
warn users that specify one in /etc/kernel-img.conf
* Require initramfs-tools >= 0.99, which installs a postinst hook
-- maximilian attems <maks@debian.org> Tue, 10 May 2011 23:24:26 +0200

View File

@ -33,16 +33,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.99)
# bootloaders
elilo: elilo (>= 3.12-3.1~)

1
debian/rules.real vendored
View File

@ -415,7 +415,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

View File

@ -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/<unknown>/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/<unknown>/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__

View File

@ -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,12 @@ _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 must install a script in
/etc/kernel/postinst.d, and you should remove the line beginning
'ramdisk =' from /etc/kernel-img.conf.