Congratulations! you found a bug! :-)

In lib/Systemimager/Common.pm the version of parted is not detected
properly. Since the output of parted changed from version 1.6.23 we need
to check if the version installed in the client is older or not. In the
check we perform a string comparison that is wrong, because it's
compared in ASCII and not using the numeric values. For example in your
case '1.6.3' > '1.6.23', that it's not what we mean...

I've already fixed it in the trunk, it'll be available in the next
release. For the moment you can use the following patch... let me know
if it resolves (you should see the <disk></disk> section filled with your
partitioning informations in the autoinstallscript.conf).

Thanks for reporting it,
-Andrea

Index: lib/SystemImager/Common.pm
===================================================================
--- lib/SystemImager/Common.pm  (revision 3845)
+++ lib/SystemImager/Common.pm  (working copy)
@@ -107,7 +107,32 @@
     $a <=> $b;
 }

+# Description:
+# Numerically compare standard version strings.
+#
+# Usage:
+# version_cmp($v1, $v2)
+#
+sub version_cmp {
+       my ($v1, $v2) = @_;

+       my @n1 = split(/\./, $v1);
+       my @n2 = split(/\./, $v2);
+       my $n = ($#n1 <= $#n2) ? $#n1 : $#n2;
+
+       my $i = 0;
+       while (($i < $n) and ($n1[$i] == $n2[$i])) {
+               $i++;
+       }
+       if ($#n1 > $#n2) {
+               return -1;
+       } elsif ($#n1 < $#n2) {
+               return 1;
+       } else {
+               return $n1[$i] - $n2[$i];
+       }
+}
+
 # Usage:
 # my $efi_dir = where_is_my_efi_dir()
 #   Finds the directory that holds efi boot files on the machine
@@ -376,7 +401,7 @@
             my $flag_regex = 
'(boot|root|swap|hidden|raid|lvm|lba|hp-service|palo|type=[0-9a-zA-Z]+)';

             my $cmd;
-            if( $parted_version ge '1.6.23') {
+            if (version_cmp($parted_version, '1.6.23') >= 0) {
                 #
                 # Specify that output should be in MB. -BEF-
                 $cmd = "parted -s -- /dev/$disk unit MB print";
@@ -500,7 +525,7 @@
                         # 5      51001.031  52993.467  linux-swap  swap        
          swap
                         # 6      52993.468 152627.835  ext3        untitled
                         #
-                        if( $parted_version ge '1.6.23') {
+                        if (version_cmp($parted_version, '1.6.23') >= 0) {
                             ($minor, $startMB, $endMB, $junk, $leftovers) = 
split(/\s+/, $_, 5);
                         } else {
                             ($minor, $startMB, $endMB, $leftovers) = 
split(/\s+/, $_, 4);

Rene Pineda wrote:
> Hi Andrea -
> 
> Rene Pineda wrote:
>>   <disk dev="/dev/sda" label_type="msdos" unit_of_measurement="MB">
>>     <!--
>>       This disk's output was brought to you by the partition tool "parted",
>>       and by the numbers 4 and 5 and the letter Q.
>>     -->
>>   </disk>
> 
>> Here is the problem! The patitioning section is empty. Are you using
> 3.7.5 also at the client side?
> 
> Actually, I upgraded to v3.7.6 both server and client Monday 08, 2007.
> 
>>> What's the output of the following commands (always in your golden client):
>>> uname -a
>>> parted --version
>>> parted -s -- /dev/sda print
>>> partes -s -- /dev/sda unit MB print
> 
> I'm assuming the last command you mean "parted" *??*.  In either case,
> seems those options are not supported in the version I have (GNU
> Parted 1.6.3)
> 
> uname -a
> Linux RDEVSE07.immport.org 2.4.21-40.EL #1 SMP Thu Feb 2 22:14:00 EST
> 2006 x86_64 x86_64 x86_64 GNU/Linux
> 
> parted --version
> GNU Parted 1.6.3
> 
> parted -s -- /dev/sda print
> Disk geometry for /dev/sda: 0.000-139900.000 megabytes
> Disk label type: msdos
> Minor    Start       End     Type      Filesystem  Flags
> 1          0.031    101.975  primary   ext3        boot
> 2        101.975 137901.708  primary   ext3
> 3     137901.709 139894.145  primary   linux-swap
> 
> parted -s -- /dev/sda unit MB print
> Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
> Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, runs in
> interactive mode.
> 
> OPTIONs:
>   -h, --help                    displays this help message
>   -i, --interactive             where necessary, prompts for user intervention
>   -s, --script                  never prompts for user intervention
>   -v, --version                 displays the version
> 
> COMMANDs:
>   check MINOR                   do a simple check on the filesystem
>   cp [FROM-DEVICE] FROM-MINOR TO-MINOR      copy filesystem to another 
> partition
>   help [COMMAND]                prints general help, or help on COMMAND
>   mklabel LABEL-TYPE            create a new disklabel (partition table)
>   mkfs MINOR FS-TYPE            make a filesystem FS-TYPE on partititon MINOR
>   mkpart PART-TYPE [FS-TYPE] START END      make a partition
>   mkpartfs PART-TYPE FS-TYPE START END      make a partition with a filesystem
>   move MINOR START END          move partition MINOR
>   name MINOR NAME               name partition MINOR NAME
>   print [MINOR]                 display the partition table, or a partition
>   quit                          exit program
>   rescue START END              rescue a lost partition near START and END
>   resize MINOR START END        resize filesystem on partition MINOR
>   rm MINOR                      delete partition MINOR
>   select DEVICE                 choose the device to edit
>   set MINOR FLAG STATE          change a flag on partition MINOR
> 
> Once again. Thanks for your help. Rene
> 
> On 1/8/07, Rene Pineda <[EMAIL PROTECTED]> wrote:
>> Hi all -
>> I created an Image of a PowerEdge 2850 using systemimager-server-3.7.5-1,
>> but I can't reinstall it to the same hardware on another box. I browed the
>> list and some ppl report similar or exact issues and workarounds, but I
>> haven't had any success yet.
>>
>> The main issue seems to be the standard boot cd can't detect the scsi
>> controller.  A build your own kernel does not work either.
>>
>> Here's my configuration:
>> Hardware: Dell PowerEdge 2850
>> OS: RedHat EL (Linux RDEVSE07.immport.org 2.4.21-40.EL #1 SMP Thu Feb 2
>> 22:14:00 EST 2006 x86_64 x86_64
>>
>> SystemImager Server:
>> x86systemconfigurator-2.2.2-1.noarch.rpm
>> systemimager-common-3.7.5-1.noarch.rpm
>> systemimager-i386boot-standard-3.7.5-1.noarch.rpm
>> systemimager-server-3.7.5-1.noarch.rpm
>> systemimager-x86_64boot-standard-3.7.5-1.noarch.rpm
>> _64 GNU/Linux)
>> SysteImagerServer (compoenets I installled);
>>
>> SystemImager Client:
>> systemimager-common-3.7.5-1
>> systemimager-i386initrd_template-3.7.5-1
>> systemimager-x86_64initrd_template-3.7.5-1
>> systemimager-client-3.7.5-1
>> systemconfigurator-2.2.2-1
>>
>> Any help please, including detail steps on how to fix this since I'm new to
>> SystemImager.  Thanks.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sisuite-users mailing list
Sisuite-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sisuite-users

Reply via email to