Revert "postinst: Remove specific support for running a ramdisk creator" etc.

initramfs-tools still assumes that official kernel packages will call
it specifically and does nothing in the postinst hook if it recognises
that it has been called by an official package.  Therefore we cannot
make this change yet.


svn path=/dists/trunk/linux-2.6/; revision=16981
This commit is contained in:
Ben Hutchings 2011-03-04 04:14:38 +00:00
parent 9ab9e3699e
commit 871633716d
6 changed files with 56 additions and 43 deletions

View File

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

5
debian/changelog vendored
View File

@ -1,10 +1,5 @@
linux-2.6 (2.6.38~rc7-1~experimental.1) experimental; 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
[ maximilian attems ]
* New upstream release candidate
* x86: Set DRM_I915_KMS on request by xorg team.

View File

@ -41,13 +41,16 @@ 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.94)
initramfs-tools: initramfs-tools (>= 0.55)
# bootloaders
elilo: elilo (>= 3.12-3.1~)

1
debian/rules.real vendored
View File

@ -414,6 +414,7 @@ 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 = '';
my $ramdisk = "=MK"; # List of tools to create initial ram fs.
my $package_name = "linux-image-$version";
my $explicit_do_loader = '';
@ -704,32 +704,60 @@ if (-d "$modules_base/$version") {
}
# 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;
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);
}
}
}
# 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
@ -793,10 +821,6 @@ 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 mostly been reviewed by the debian-l10n-english
# These templates have been reviewed by the debian-l10n-english
# team
#
# If modifications/additions/rewording are needed, please ask
@ -61,19 +61,6 @@ _Description: Boot loader configuration must be updated
.
If the boot loader needs to be updated whenever a new kernel is
installed, the boot loader package should install a script in
/etc/kernel/postinst.d.
.
If the boot loader package does not yet do this, see
<http://kernel-handbook.alioth.debian.org/ch-update-hooks.html>.
# 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, and you should remove the line beginning
'ramdisk =' from /etc/kernel-img.conf.
.
If the ramdisk creator package does not yet do this, see
<http://kernel-handbook.alioth.debian.org/ch-update-hooks.html>.
/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.