r4601 - dists/trunk/utils/kernel-package/kernel

Sven Luther luther at costa.debian.org
Sun Oct 23 09:19:19 UTC 2005


Author: luther
Date: 2005-10-23 09:19:18 +0000 (Sun, 23 Oct 2005)
New Revision: 4601

Modified:
   dists/trunk/utils/kernel-package/kernel/image.postinst
Log:
Checked in tentative new postinst version doing the right thing when ramdisk=
is only one entry, so jonas can comment.


Modified: dists/trunk/utils/kernel-package/kernel/image.postinst
===================================================================
--- dists/trunk/utils/kernel-package/kernel/image.postinst	2005-10-23 07:14:25 UTC (rev 4600)
+++ dists/trunk/utils/kernel-package/kernel/image.postinst	2005-10-23 09:19:18 UTC (rev 4601)
@@ -973,23 +973,58 @@
 # symlinks are in
 if ($initrd) {
   chomp (my $hostversion = `uname -r`);
-  my @ramdisklist =
-    grep {
-      -x and
-      system ("$_ --supported-host-version=$hostversion --supported-target-version=$version 1>/dev/null 2>&1") == 0
+  my @ramdisklist = split (/ /, $ramdisk);
+  if (@ramdisklist == 1) {
+    if (!( -x $ramdisk)) {
+      die ("Failed to create initrd, $ramdisk does not exist or is not executable\n");
     }
-    (split (/ /, $ramdisk));
+    if (system ("$ramdisk" .
+      "--supported-host-version=$hostversion" .
+      "--supported-target-version=$version 1>/dev/null 2>&1") != 0) {
+    }
+        my $answer='n';
+        my $ramdiskpackage = `dpkg -S $ramdisk`;
+        $ramdiskpackage =~ s/:(.*)//;
+        print STDERR <<"EOFIMG";
+WARNING! $ramdisk does not advertize support for installing kernel version
+$version on a running kernel version $hostversion. This may mean that either
+$ramdisk will fail to produce a working ramdisk, and possibly leave the system
+unbootable, or simply that $ramdisk does not support querying supported
+versions. In any case, we strongly recomend you abort here, check that
+$ramdisk does indeed support your kernel version configuration, and either
+edit /etc/kernel-img.conf to set the right ramdisk field or if you believe
+$ramdisk should work, file a bug against the $ramdiskpackage package.
+Do you really want to use $ramdisk and possibly make your system unbootable, y or n ?
+EOFIMG
+        ;
+        $answer=<STDIN>;
+        if ($answer =~ /^\s*y/i) {
+          print STDERR <<"EOFIMG";
+As you wish, but under your own responsability :)
+EOFIMG
+          ;
+        } else {
+          die ("Failed, $ramdisk not suitable to create a ramdisk for kernel version $version running on kernel version $hostversion\n");
+        }
+  } else {
+    my @ramdisklist =
+      grep {
+        -x and
+        system ("$_ --supported-host-version=$hostversion --supported-target-version=$version 1>/dev/null 2>&1") == 0
+      }
+      (split (/ /, $ramdisk));
 
-  my $ramdiskorig = $ramdisk;
-  defined ($ramdisk = shift @ramdisklist)
-    or die ("Failed to find suitable ramdisk generation tool for kernel version $version on running kernel $hostversion in $ramdiskorig\n");
+    my $ramdiskorig = $ramdisk;
+    defined ($ramdisk = shift @ramdisklist)
+      or die ("Failed to find suitable ramdisk generation tool for kernel version $version on running kernel $hostversion in $ramdiskorig\n");
 
-  print STDERR <<"EOINFOMSG";
+    print STDERR <<"EOFIMG";
 Using $ramdisk to build the ramdisk.
 Other suitable ramdisk generating tools : @ramdisklist.
 Full list of probed ramdisk generating tools : $ramdiskorig. 
-EOINFOMSG
-  ;
+EOFIMG
+    ;
+  }
   my $initrd_path = $realimageloc . "initrd.img-$version";
   my $ret = system("$ramdisk " .
                    ($mkimage ? "-m '$mkimage' " : "") .




More information about the Kernel-svn-changes mailing list