r4494 - in dists/trunk/utils/kernel-package: debian kernel

Sven Luther luther at costa.debian.org
Sun Oct 16 22:28:48 UTC 2005


Author: luther
Date: 2005-10-16 22:28:47 +0000 (Sun, 16 Oct 2005)
New Revision: 4494

Modified:
   dists/trunk/utils/kernel-package/debian/changelog
   dists/trunk/utils/kernel-package/kernel/image.postinst
   dists/trunk/utils/kernel-package/kernel/image.postrm
   dists/trunk/utils/kernel-package/kernel/image.preinst
   dists/trunk/utils/kernel-package/kernel/image.prerm
Log:
Added first (not working correctly) attempt to implement the new ramdisk policy.


Modified: dists/trunk/utils/kernel-package/debian/changelog
===================================================================
--- dists/trunk/utils/kernel-package/debian/changelog	2005-10-16 22:26:43 UTC (rev 4493)
+++ dists/trunk/utils/kernel-package/debian/changelog	2005-10-16 22:28:47 UTC (rev 4494)
@@ -1,3 +1,11 @@
+kernel-package (9.008.1) UNRELEASED; urgency=low
+
+  * NMU with maitnainers permission.
+  * Implement the new ramdisk generation tool finding plan. Thanks go to
+    Mattia Dongili for helping me out with the needed perl code.
+
+ -- Sven Luther <luther at debian.org>  Sun, 16 Oct 2005 08:59:47 +0200
+
 kernel-package (9.008) unstable; urgency=low
 
   * Bug fix: "xen.postinst contains illegal sed command", thanks to

Modified: dists/trunk/utils/kernel-package/kernel/image.postinst
===================================================================
--- dists/trunk/utils/kernel-package/kernel/image.postinst	2005-10-16 22:26:43 UTC (rev 4493)
+++ dists/trunk/utils/kernel-package/kernel/image.postinst	2005-10-16 22:28:47 UTC (rev 4494)
@@ -54,7 +54,10 @@
 my $arch              = "=A"; #  should be same as dpkg --print-installation-architecture
 my $kernel_arch       = "=B";
 my $ramdisk           = '/usr/sbin/mkinitrd';  # Tool to create initial ram fs.
+chomp (my $unamedashr = `uname -r`);
+$ramdisk              = '/usr/sbin/mkinitrd.yaird' if (system ("dpkg --compare-versions $unamedashr ge 2.6.13 1>/dev/null 2>&1") == 0);
 
+
 my $package_name    = "=ST-image-$version";
 
 my $Loader          = "NoLOADER"; #
@@ -972,6 +975,16 @@
 # The initrd symlink should probably be in the same dir that the
 # symlinks are in
 if ($initrd) {
+  my @ramdisklist =
+    grep {
+      -x and
+      system ("$_ --supported-host-version=$unamedashr 1>/dev/null 2>&1") == 0
+    }
+    (split (/ /, $ramdisk));
+
+  defined ($ramdisk = shift @ramdisklist)
+    or die ("Failed to find suitable ramdisk generation tool for kernel version $version in $ramdisk\n");
+
   my $initrd_path = $realimageloc . "initrd.img-$version";
   my $ret = system("$ramdisk " .
                    ($mkimage ? "-m '$mkimage' " : "") .

Modified: dists/trunk/utils/kernel-package/kernel/image.postrm
===================================================================
--- dists/trunk/utils/kernel-package/kernel/image.postrm	2005-10-16 22:26:43 UTC (rev 4493)
+++ dists/trunk/utils/kernel-package/kernel/image.postrm	2005-10-16 22:28:47 UTC (rev 4494)
@@ -52,6 +52,8 @@
 my $arch              = "=A";  #  should be same as dpkg --print-installation-architecture
 my $kernel_arch       = "=B";
 my $ramdisk           = '/usr/sbin/mkinitrd';  # Tool to create initial ram fs.
+chomp (my $unamedashr = `uname -r`);
+$ramdisk	      = '/usr/sbin/mkinitrd.yaird' if (system ("dpkg --compare-versions $unamedashr ge 2.6.13 1>/dev/null 2>&1") == 0);
 
 my $Loader          = "NoLOADER"; # 
 $Loader             = "LILO"     if $loader =~ /^lilo/io;

Modified: dists/trunk/utils/kernel-package/kernel/image.preinst
===================================================================
--- dists/trunk/utils/kernel-package/kernel/image.preinst	2005-10-16 22:26:43 UTC (rev 4493)
+++ dists/trunk/utils/kernel-package/kernel/image.preinst	2005-10-16 22:28:47 UTC (rev 4494)
@@ -52,8 +52,11 @@
 my $arch              = "=A";  #  should be same as dpkg --print-installation-architecture
 my $kernel_arch       = "=B";
 my $ramdisk           = '/usr/sbin/mkinitrd';  # Tool to create initial ram fs.
+chomp (my $unamedashr = `uname -r`);
+$ramdisk	      = '/usr/sbin/mkinitrd.yaird' if (system ("dpkg --compare-versions $unamedashr ge 2.6.13 1>/dev/null 2>&1") == 0);
 
 
+
 my $Loader          = "NoLOADER"; #
 $Loader             = "LILO"     if $loader =~ /^lilo/io;
 $Loader             = "SILO"     if $loader =~ /^silo/io;
@@ -182,13 +185,25 @@
 $initrd=~ s/^$pattern$//;
 
 if ($initrd) {
+  my @ramdisklist =
+    grep {
+      -x and
+      system ("$_ --supported-host-version=$unamedashr 1>/dev/null 2>&1") == 0
+    }
+    (split (/ /, $ramdisk));
+
+  my $msgramdisk = $ramdisk;
+  $ramdisk = shift @ramdisklist;
+
   if (! -e $ramdisk) {
     print STDERR <<EOERROR;
 
 You are attempting to install an initrd kernel image (version
-$version) but you do not seem to have a $ramdisk 
-command. This will break the installation, unless initrd-tools are
-also being installed right now.
+$version) while running a kernel of version $unamedashr, but
+you have no suitable ramdisk generation tool installed among 
+$msgramdisk.  This will break the installation, unless a
+suitable ramdisk generation tool is also being installed right
+now.
 
 EOERROR
   ;

Modified: dists/trunk/utils/kernel-package/kernel/image.prerm
===================================================================
--- dists/trunk/utils/kernel-package/kernel/image.prerm	2005-10-16 22:26:43 UTC (rev 4493)
+++ dists/trunk/utils/kernel-package/kernel/image.prerm	2005-10-16 22:28:47 UTC (rev 4494)
@@ -48,6 +48,8 @@
 my $arch              = "=A";  #  should be same as dpkg --print-installation-architecture
 my $kernel_arch       = "=B";
 my $ramdisk           = '/usr/sbin/mkinitrd';  # Tool to create initial ram fs.
+chomp (my $unamedashr = `uname -r`);
+$ramdisk	      = '/usr/sbin/mkinitrd.yaird' if (system ("dpkg --compare-versions $unamedashr ge 2.6.13 1>/dev/null 2>&1") == 0);
 
 my $Loader          = "NoLOADER"; # 
 $Loader             = "LILO"     if $loader =~ /^lilo/io;




More information about the Kernel-svn-changes mailing list