On Sat, Oct 22, 2005 at 08:10:09PM +0200, Mattia Dongili wrote: > On Sat, Oct 22, 2005 at 04:55:39PM +0200, Erik van Konijnenburg wrote: > > On Sat, Oct 22, 2005 at 04:16:00PM +0200, Sven Luther wrote: > [...] > > > Also the postinsts are in perl, and my perl is not all that good, so i > > > dislike > > > complex modifications of this kind. > > > > Strong argument: you're the one doing the actual coding here, > > so it's important you feel happy with the approach. > > I'd like to offer my help here if anything is needed, I'll dig into the > code in the next days to get a better idea of the big picture (last time > I only literaly implemented what Sven asked) ;)).
Mattia, could you look over this code : chomp (my $hostversion = `uname -r`); my @ramdisklist = grep { my $ret = system ("$_ --supported-host-version=$hostversion --supported-target-version=$version 1>/dev/null 2>&1"); -x and ( $ret == 0 or ( $ret == 1 and ( (($ramdisk eq "/usr/sbin/mkinitrd") and (system ("dpkg", "--compare-versions", "$version", "lt", "2.6.13") == 0)) or (($ramdisk eq "/usr/sbin/mkinitramfs") and (system ("dpkg", "--compare-versions", "$version", "lt", "2.6.12") == 1)) or (($ramdisk eq "/usr/sbin/mkinitrd.yaird") and (system ("dpkg", "--compare-versions", "$version", "lt", "2.6.8") == 1) and (system ("dpkg", "--compare-versions", "$hostversion", "lt", "2.6.8") == 1)) ) ) ) } (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"); print STDERR "Using $ramdisk to build the ramdisk.";; if (@ramdisklist) { print STDERR "Other suitable ramdisk generating tools : @ramdisklist.\n"; } print STDERR "Full list of probed ramdisk generating tools : $ramdiskorig.\n"; and tell me if there is any glaring error in it. The code does the following : 1) tests if the tool exists. 2) tests if the tool returns 0 for the given host and target version. 3) if the tool returns 1, this means --supported-* is not supported, do an explicit check. Checks are : 3.1) mkinitrd is ok if target < 2.6.13. 3.2) mkinitramfs is ok if target >= 2.6.12. 3.3) mkinitrd.yaird is ok if target >= 2.6.8 and host >= 2.6.8. Friendly, Sven Luther -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]