Hello community,

here is the log from the commit of package kiwi for openSUSE:Factory
checked in at Mon May 9 09:59:01 CEST 2011.



--------
--- kiwi/kiwi.changes   2011-04-21 14:01:56.000000000 +0200
+++ /mounts/work_src_done/STABLE/kiwi/kiwi.changes      2011-05-06 
15:26:32.000000000 +0200
@@ -1,0 +2,104 @@
+Fri May  6 15:11:27 CEST 2011 - [email protected]
+  
+- v4.88 released
+  
+-------------------------------------------------------------------
+Fri May  6 15:09:30 CEST 2011 - [email protected]
+  
+- fixed build for ia64 architecture
+  
+-------------------------------------------------------------------
+Fri May  6 09:01:54 CEST 2011 - [email protected]
+  
+- added hook preNetworkRelease (bnc #691249)
+  
+-------------------------------------------------------------------
+Wed May  4 15:30:38 CEST 2011 - [email protected]
+  
+- fixed the problem where the <size> element is being dropped
+  during XML file upgrade if the <size> element is specified as
+  a child of <preferences>. The <size> element is moved to
+  every <type>
+  
+-------------------------------------------------------------------
+Wed May  4 15:09:13 CEST 2011 - [email protected]
+  
+- fixed xsl style sheets, apply changes only if the
+  schema version of the input data is smaller than the
+  style sheet version
+  
+-------------------------------------------------------------------
+Wed May  4 09:31:21 CEST 2011 - [email protected]
+  
+- fixed typo in kiwi_bootloader evaluation (bnc #691424)
+- fixed hvc/xvc console setup, add entry only if missing (bnc #691424)
+  
+-------------------------------------------------------------------
+Tue May  3 17:28:34 CEST 2011 - [email protected]
+  
+- fixed disk offset calculation for zipl.conf creation, also
+  fixed the lookup of the boot partition and the cleanup of the
+  loop devices if the zipl bootloader is used (bnc #687927)
+  
+-------------------------------------------------------------------
+Tue May  3 14:55:24 CEST 2011 - [email protected]
+  
+- switch back to by-id device name schema (bnc #691199)
+  This reverts commit: f1e31c85689d6925b9c3069a845f5e252c838936
+  
+-------------------------------------------------------------------
+Tue May  3 14:08:11 CEST 2011 - [email protected]
+  
+- fixed first type selection for a subset of types selected
+  by profiles. This is a follow up fix for (bnc #690554)
+  
+-------------------------------------------------------------------
+Tue May  3 09:36:14 CEST 2011 - [email protected]
+  
+- DB: update documentation, FORCE_KEXEC feature (bnc #691247)
+  
+-------------------------------------------------------------------
+Tue May  3 09:35:06 CEST 2011 - [email protected]
+  
+- added support for FORCE_KEXEC in kernelCheck function which
+  allows to force the kexec call even if the kernel versions
+  are the same (bnc #691247)
+  
+-------------------------------------------------------------------
+Mon May  2 17:20:39 CEST 2011 - [email protected]
+  
+- removed pxeNotifyNewImage function. This is done inside the
+  slepos specific code hooked in (bnc #691249)
+  
+-------------------------------------------------------------------
+Mon May  2 17:17:49 CEST 2011 - [email protected]
+  
+- make sure bootincluded_archives.filelist contains only files
+  
+-------------------------------------------------------------------
+Mon May  2 15:38:37 CEST 2011 - [email protected]
+  
+- move the createTmpDirectory code from the XML object to the Locator.
+  Creating a directory really has nothing to do with XML processing,
+  the Locator now handles local file system interaction, thus this
+  is a better place.
+  
+-------------------------------------------------------------------
+Mon May  2 14:56:23 CEST 2011 - [email protected]
+  
+- fixed reboot call in kernelCheck function (bnc #689294)
+  
+-------------------------------------------------------------------
+Mon May  2 10:28:01 CEST 2011 - [email protected]
+  
+- fixed type selection if not type was specified and no primary
+  attribute is set to any type. In that case the first type written
+  in the XML description should be used (bnc #690554)
+  
+-------------------------------------------------------------------
+Thu Apr 28 18:19:54 CEST 2011 - [email protected]
+  
+- also allow NFSROOT and AOEROOT to be set on the
+  commandline (bnc #536309)
+  
+-------------------------------------------------------------------

calling whatdependson for head-i586


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kiwi.spec ++++++
--- /var/tmp/diff_new_pack.NvlfLP/_old  2011-05-09 09:58:03.000000000 +0200
+++ /var/tmp/diff_new_pack.NvlfLP/_new  2011-05-09 09:58:03.000000000 +0200
@@ -65,7 +65,7 @@
 %endif
 %endif
 Summary:        OpenSuSE - KIWI Image System
-Version:        4.87
+Version:        4.88
 Release:        1
 Group:          System/Management
 License:        GPLv2
@@ -483,6 +483,8 @@
 %{_datadir}/kiwi/image/oemboot/suse*
 %endif
 
+%ifarch %ix86 x86_64 ppc ppc64 s390 s390x
+
 %files -n kiwi-templates
 %defattr(-, root, root)
 %ifarch %ix86 x86_64
@@ -501,5 +503,7 @@
 %{_datadir}/kiwi/image/suse-SLE11-JeOS
 %endif
 
+%endif
+
 
 %changelog

++++++ kiwi-docu.tar.bz2 ++++++
kiwi/kiwi-docu.tar.bz2 /mounts/work_src_done/STABLE/kiwi/kiwi-docu.tar.bz2 
differ: char 11, line 1

++++++ kiwi.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision
--- old/kiwi/.revision  2011-04-21 13:57:55.000000000 +0200
+++ new/kiwi/.revision  2011-05-06 15:22:52.000000000 +0200
@@ -1 +1 @@
-dec521fd69f73299badd58ccf92098e59cfb1f71
+20f6c66b4f42e859abac467956b0262fc47768e7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/kiwi.pl new/kiwi/kiwi.pl
--- old/kiwi/kiwi.pl    2011-04-21 13:57:55.000000000 +0200
+++ new/kiwi/kiwi.pl    2011-05-06 15:22:52.000000000 +0200
@@ -50,7 +50,7 @@
 #============================================
 # Globals (Version)
 #--------------------------------------------
-our $Version       = "4.87";
+our $Version       = "4.88";
 our $Publisher     = "SUSE LINUX Products GmbH";
 our $Preparer      = "KIWI - http://kiwi.berlios.de";;
 our $ConfigFile    = "$ENV{'HOME'}/.kiwirc";
@@ -2734,7 +2734,7 @@
        #==========================================
        # Initialize installation source tree
        #------------------------------------------
-       my $root = $xml -> createTmpDirectory ( undef, $RootTree );
+       my $root = $locator -> createTmpDirectory ( undef, $RootTree );
        if (! defined $root) {
                $kiwi -> error ("Couldn't create instsource root");
                $kiwi -> failed ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIBoot.pm new/kiwi/modules/KIWIBoot.pm
--- old/kiwi/modules/KIWIBoot.pm        2011-04-21 12:02:24.000000000 +0200
+++ new/kiwi/modules/KIWIBoot.pm        2011-05-06 15:22:52.000000000 +0200
@@ -3506,11 +3506,11 @@
                } elsif (($type=~ /^KIWI USB/)||($imgtype=~ /vmx|oem|split/)) {
                        print FD "\t"."image   = boot/linux.vmx"."\n";
                        print FD "\t"."target  = boot/zipl"."\n";
-                       print FD "\t"."ramdisk = 
boot/initrd.vmx,0x2000000"."\n";
+                       print FD "\t"."ramdisk = 
boot/initrd.vmx,0x4000000"."\n";
                } else {
                        print FD "\t"."image   = boot/linux"."\n";
                        print FD "\t"."target  = boot/zipl"."\n";
-                       print FD "\t"."ramdisk = boot/initrd,0x2000000"."\n";
+                       print FD "\t"."ramdisk = boot/initrd,0x4000000"."\n";
                }
                print FD "\t"."parameters = \"loader=$bloader";
                print FD " $cmdline\""."\n";
@@ -3526,11 +3526,11 @@
                } elsif (($type=~ /^KIWI USB/)||($imgtype=~ /vmx|oem|split/)) {
                        print FD "\t"."image   = boot/linux.vmx"."\n";
                        print FD "\t"."target  = boot/zipl"."\n";
-                       print FD "\t"."ramdisk = 
boot/initrd.vmx,0x2000000"."\n";
+                       print FD "\t"."ramdisk = 
boot/initrd.vmx,0x4000000"."\n";
                } else {
                        print FD "\t"."image   = boot/linux"."\n";
                        print FD "\t"."target  = boot/zipl"."\n";
-                       print FD "\t"."ramdisk = boot/initrd,0x2000000"."\n";
+                       print FD "\t"."ramdisk = boot/initrd,0x4000000"."\n";
                }
                print FD "\t"."parameters = \"x11failsafe loader=$bloader";
                print FD " $cmdline\""."\n";
@@ -3848,16 +3848,20 @@
        if ($loader eq "zipl") {
                $kiwi -> info ("Installing zipl on device: $diskname");
                my $bootdev;
-               my @geometry;
+               my $offset;
                my $haveRealDevice = 0;
                if ($diskname !~ /\/dev\//) {
                        #==========================================
-                       # detect disk geometry of disk image file
+                       # clean loop maps
                        #------------------------------------------
-                       @geometry = $this -> diskGeometry ($diskname);
-                       if (! @geometry) {
+                       $this -> cleanLoop ();
+                       #==========================================
+                       # detect disk offset of disk image file
+                       #------------------------------------------
+                       $offset = $this -> diskOffset ($diskname);
+                       if (! $offset) {
                                $kiwi -> failed ();
-                               $kiwi -> error  ("Failed to detect disk 
geometry");
+                               $kiwi -> error  ("Failed to detect disk 
offset");
                                $kiwi -> failed ();
                                return undef;
                        }
@@ -3872,7 +3876,18 @@
                                $this -> cleanLoop ();
                                return undef;
                        }
-                       $bootdev = $this->{bindloop}.$geometry[2];
+                       #==========================================
+                       # find boot partition
+                       #------------------------------------------
+                       $bootdev = $this->{bindloop}."2";
+                       if (! -e $bootdev) {
+                               $bootdev = $this->{bindloop}."1";
+                       } else {
+                               my $type = qxx ("blkid $bootdev -s TYPE -o 
value");
+                               if ($type =~ /LVM/) {
+                                       $bootdev = $this->{bindloop}."1";
+                               }
+                       }
                        if (! -e $bootdev) {
                                $kiwi -> failed ();
                                $kiwi -> error  ("Can't find loop map: 
$bootdev");
@@ -3881,6 +3896,9 @@
                                return undef;
                        }
                } else {
+                       #==========================================
+                       # find boot partition
+                       #------------------------------------------
                        $bootdev = $diskname."2";
                        if (! -e $bootdev) {
                                $bootdev = $diskname."1";
@@ -3927,13 +3945,18 @@
                                $this -> cleanLoop ();
                                return undef;
                        }
+                       $kiwi -> loginfo ("zipl.conf target values:\n");
                        foreach my $line (@data) {
                                print FD $line;
                                if ($line =~ /^:menu/) {
+                                       $kiwi -> loginfo ("targetbase = 
$this->{loop}\n");
+                                       $kiwi -> loginfo ("targetbase = 
SCSI\n");
+                                       $kiwi -> loginfo ("targetblocksize = 
512\n");
+                                       $kiwi -> loginfo ("targetoffset = 
$offset\n");
                                        print FD "\t"."targetbase = 
$this->{loop}"."\n";
                                        print FD "\t"."targettype = SCSI"."\n";
                                        print FD "\t"."targetblocksize = 
512"."\n";
-                                       print FD "\t"."targetoffset = 
$geometry[1]"."\n";
+                                       print FD "\t"."targetoffset = 
$offset"."\n";
                                }
                        }
                        close FD;
@@ -4952,39 +4975,29 @@
 }
 
 #==========================================
-# diskGeometry
+# diskOffset
 #------------------------------------------
-sub diskGeometry {
+sub diskOffset {
        # ...
-       # find disk geometry: CYLINDERS,HEADS,SECTORS and
-       # also the start sector of the boot partition which
-       # is in kiwi always the last partition in the table
+       # find the offset to the start of the first partition
        # ---
        my $this = shift;
        my $disk = shift;
-       my $bootid = 0;
-       my $geometry;
-       my $bootsector;
-       my $bios  = qx (parted $disk unit cyl print | grep BIOS 2>&1);
+       my $offset;
        my @table = qx (parted -m $disk unit s print 2>&1);
-       if ($bios =~ /geometry: (.*?)\./) {
-               $geometry = $1;
-       } else {
-               return undef;
-       }
        chomp @table;
        foreach my $entry (@table) {
                if ($entry =~ /^[1-4]:/) {
                        my @items = split (/:/,$entry);
-                       $bootsector = $items[1];
-                       chop $bootsector;
-                       $bootid++;
+                       $offset = $items[1];
+                       chop $offset;
+                       last;
                }
        }
-       if (! $bootsector) {
+       if (! $offset) {
                return undef;
        }
-       return ($geometry,$bootsector,$bootid);
+       return $offset;
 }
 
 #==========================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWILinuxRC.sh 
new/kiwi/modules/KIWILinuxRC.sh
--- old/kiwi/modules/KIWILinuxRC.sh     2011-04-21 12:02:25.000000000 +0200
+++ new/kiwi/modules/KIWILinuxRC.sh     2011-05-06 15:22:52.000000000 +0200
@@ -958,7 +958,7 @@
                para="$para \"$1\""
                shift
        done
-       if [ ! -z "kiwi_bootloader" ];then
+       if [ ! -z "$kiwi_bootloader" ];then
                loader=$kiwi_bootloader
        fi
        if [ -z "$loader" ];then
@@ -2538,18 +2538,26 @@
                        break
                fi
        done
-       if [ $kreboot = 0 ];then
-               return
+       #======================================
+       # check for forced reboot
+       #--------------------------------------
+       if [ ! -z "$FORCE_KEXEC" ];then
+               kreboot=2
        fi
-       Echo "Kernel versions do not match..."
+       #======================================
+       # evaluate kreboot condition
+       #--------------------------------------
+       case $kreboot in
+               1) Echo "Kernel versions do not match..." ;;
+               2) Echo "kexec based reboot forced..." ;;
+               0) return ;;
+       esac
        #======================================
        # trigger reboot if kexec doesn't exist
        #--------------------------------------
        if [ ! -f /sbin/kexec ];then
                Echo "Reboot triggered in 5 sec..."
-               export REBOOT_IMAGE="yes"
-               sleep 5
-               return
+               sleep 5 ; /sbin/reboot -f -i
        fi
        #======================================
        # trigger reboot using kexec
@@ -2569,9 +2577,7 @@
                if [ ! -f $prefix/boot/$kernel ] || [ ! -f $prefix/boot/$initrd 
];then
                        Echo "Can't find $kernel / $initrd in system image"
                        Echo "Reboot triggered in 5 sec..."
-                       export REBOOT_IMAGE="yes"
-                       sleep 5
-                       return
+                       sleep 5 ; /sbin/reboot -f -i
                fi
                #======================================
                # extract bootloader cmdline params
@@ -2585,9 +2591,7 @@
                if [ ! $? = 0 ];then
                        Echo "Failed to load kernel"
                        Echo "Reboot triggered in 5 sec..."
-                       export REBOOT_IMAGE="yes"
-                       sleep 5
-                       return
+                       sleep 5 ; /sbin/reboot -f -i
                fi
                #======================================
                # go for gold
@@ -5049,7 +5053,7 @@
                echo $device
                return
        fi
-       for i in /dev/disk/by-path/*;do
+       for i in /dev/disk/by-id/*;do
                if [ -z "$i" ];then
                        continue
                fi
@@ -6491,33 +6495,6 @@
        done
 }
 #======================================
-# pxeNotifyNewImage
-#--------------------------------------
-function pxeNotifyNewImage {
-       # /.../
-       # upload image name and version information to
-       # the pxe boot server
-       # ----
-       local count=0
-       local field=0
-       IFS="," ; for i in $IMAGE;do
-               count=$(($count + 1))
-               field=0
-               IFS=";" ; for n in $i;do
-                       case $field in
-                               0) field=1 ;;
-                               1) imageName=$n   ; field=2 ;;
-                               2) imageVersion=$n; field=3
-                       esac
-               done
-               Echo "Notify of new image: image/$imageName"
-               echo "image/$imageName" > bootversion.$DHCPCHADDR
-               echo "$imageVersion"   >> bootversion.$DHCPCHADDR
-               putFile bootversion.$DHCPCHADDR upload/bootversion.$DHCPCHADDR
-               rm -f bootversion.$DHCPCHADDR
-       done
-}
-#======================================
 # pxeCheckServer
 #--------------------------------------
 function pxeCheckServer {
@@ -7060,12 +7037,16 @@
        local itab=/etc/inittab
        local stty=/etc/securetty
        if [ -e /sys/class/tty/xvc0 ];then
-               echo "X0:12345:respawn:/sbin/mingetty --noclear xvc0 linux" >> 
$itab
-               echo xvc0 >> $stty
+               if ! grep -q xvc0 $itab;then
+                       echo "X0:12345:respawn:/sbin/mingetty --noclear xvc0 
linux" >> $itab
+                       echo xvc0 >> $stty
+               fi
        fi
        if [ -e /sys/class/tty/hvc0 ];then
-               echo "H0:12345:respawn:/sbin/mingetty --noclear hvc0 linux" >> 
$itab
-               echo hvc0 >> $stty
+               if ! grep -q hvc0 $itab;then
+                       echo "H0:12345:respawn:/sbin/mingetty --noclear hvc0 
linux" >> $itab
+                       echo hvc0 >> $stty
+               fi
        fi
 }
 #======================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWILocator.pm 
new/kiwi/modules/KIWILocator.pm
--- old/kiwi/modules/KIWILocator.pm     2011-03-15 12:07:25.000000000 +0100
+++ new/kiwi/modules/KIWILocator.pm     2011-05-06 15:22:52.000000000 +0200
@@ -8,8 +8,8 @@
 #               :
 # BELONGS TO    : Operating System images
 #               :
-# DESCRIPTION   : This module is used to perform operation to locate
-#               : objects needed by Kiwi in the filesystem
+# DESCRIPTION   : This module is used to perform operations
+#               : on the local filesystem
 #               :
 # STATUS        : Development
 #----------------
@@ -27,7 +27,7 @@
 # Exports
 #------------------------------------------
 our @ISA    = qw (Exporter);
-our @EXPORT = qw (getExecPath getControlFile );
+our @EXPORT = qw (createTmpDirectory getExecPath getControlFile );
 
 #==========================================
 # Constructor
@@ -61,6 +61,61 @@
 }
 
 #==========================================
+# createTmpDirectory
+#------------------------------------------
+sub createTmpDirectory {
+       my $this          = shift;
+       my $useRoot       = shift;
+       my $selfRoot      = shift;
+       my $rootError     = 1;
+       my $root;
+       my $code;
+       my $kiwi = $this->{kiwi};
+       if (! defined $useRoot) {
+               if (! defined $selfRoot) {
+                       $root = qxx (" mktemp -q -d /tmp/kiwi.XXXXXX ");
+                       $code = $? >> 8;
+                       if ($code == 0) {
+                               $rootError = 0;
+                       }
+                       chomp $root;
+               } else {
+                       $root = $selfRoot;
+                       rmdir $root;
+                       if ( -e $root && -d $root && $main::ForceNewRoot ) {
+                               $kiwi -> info ("Removing old root directory 
'$root'");
+                               if (-e $root."/base-system") {
+                                       $kiwi -> failed();
+                                       $kiwi -> info  ("Mount point 
/base-system exists");
+                                       $kiwi -> failed();
+                                       return undef;
+                               }
+                               qxx ("rm -R $root");
+                               $kiwi -> done();
+                       }
+                       if (mkdir $root) {
+                               $rootError = 0;
+                       }
+               }
+       } else {
+               if (-d $useRoot) {
+                       $root = $useRoot;
+                       $rootError = 0;
+               }
+       }
+       if ( $rootError ) {
+               if ($kiwi -> trace()) {
+                       $main::BT.=eval { Carp::longmess 
($main::TT.$main::TL++) };
+               }
+               return undef;
+       }
+       if ( $rootError ) {
+               return undef;
+       }
+       return $root;
+}
+
+#==========================================
 # getControlFile
 #------------------------------------------
 sub getControlFile {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIManager.pm 
new/kiwi/modules/KIWIManager.pm
--- old/kiwi/modules/KIWIManager.pm     2011-04-08 14:27:57.000000000 +0200
+++ new/kiwi/modules/KIWIManager.pm     2011-05-06 15:22:52.000000000 +0200
@@ -1750,7 +1750,8 @@
        print $fd "echo 1 > $screenCall.exit; exit 1; }\n";
        print $fd "trap clean INT TERM\n";
        print $fd "for i in @tars;do\n";
-       print $fd "   tar -tf $idesc/\$i >> 
$root/bootincluded_archives.filelist\n";
+       print $fd "   tar -tvf $idesc/\$i | grep -v ^d | cut -c49- | cut -f1 
-d-";
+       print $fd ">> $root/bootincluded_archives.filelist\n";
        print $fd "   if ! tar -C $root -xvf $idesc/\$i;then\n";
        print $fd "       ECODE=\$?\n";
        print $fd "       echo \$ECODE > $screenCall.exit\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIRoot.pm new/kiwi/modules/KIWIRoot.pm
--- old/kiwi/modules/KIWIRoot.pm        2011-04-08 14:27:57.000000000 +0200
+++ new/kiwi/modules/KIWIRoot.pm        2011-05-06 15:22:52.000000000 +0200
@@ -23,11 +23,12 @@
 use File::Glob ':glob';
 use File::Find;
 use FileHandle;
-use KIWIURL;
+use KIWIConfigure;
+use KIWILocator;
 use KIWILog;
 use KIWIManager;
-use KIWIConfigure;
 use KIWIQX;
+use KIWIURL;
 
 #==========================================
 # Constructor
@@ -190,7 +191,8 @@
        #==========================================
        # Create root directory
        #------------------------------------------
-       my $root = $xml -> createTmpDirectory (
+       my $locator = new KIWILocator ($this -> {kiwi});
+       my $root = $locator -> createTmpDirectory (
                $useRoot,$selfRoot
        );
        if ( ! defined $root ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIXML.pm new/kiwi/modules/KIWIXML.pm
--- old/kiwi/modules/KIWIXML.pm 2011-04-08 14:27:57.000000000 +0200
+++ new/kiwi/modules/KIWIXML.pm 2011-05-06 15:22:52.000000000 +0200
@@ -3420,61 +3420,6 @@
 }
 
 #==========================================
-# createTmpDirectory
-#------------------------------------------
-sub createTmpDirectory {
-       my $this          = shift;
-       my $useRoot       = shift;
-       my $selfRoot      = shift;
-       my $rootError     = 1;
-       my $root;
-       my $code;
-       my $kiwi = $this->{kiwi};
-       if (! defined $useRoot) {
-               if (! defined $selfRoot) {
-                       $root = qxx (" mktemp -q -d /tmp/kiwi.XXXXXX ");
-                       $code = $? >> 8;
-                       if ($code == 0) {
-                               $rootError = 0;
-                       }
-                       chomp $root;
-               } else {
-                       $root = $selfRoot;
-                       rmdir $root;
-                       if ( -e $root && -d $root && $main::ForceNewRoot ) {
-                               $kiwi -> info ("Removing old root directory 
'$root'");
-                               if (-e $root."/base-system") {
-                                       $kiwi -> failed();
-                                       $kiwi -> info  ("Mount point 
/base-system exists");
-                                       $kiwi -> failed();
-                                       return undef;
-                               }
-                               qxx ("rm -R $root");
-                               $kiwi -> done();
-                       }
-                       if (mkdir $root) {
-                               $rootError = 0;
-                       }
-               }
-       } else {
-               if (-d $useRoot) { 
-                       $root = $useRoot;
-                       $rootError = 0;
-               }
-       }
-       if ( $rootError ) {
-               if ($kiwi -> trace()) {
-                       $main::BT.=eval { Carp::longmess 
($main::TT.$main::TL++) };
-               }
-               return undef;
-       }
-       if ( $rootError ) {
-               return undef;
-       }
-       return $root;
-}
-
-#==========================================
 # getInstSourceFile
 #------------------------------------------
 sub getInstSourceFile {
@@ -4765,6 +4710,7 @@
        my $urlhd  = new KIWIURL ($kiwi);
        my @node   = $this->{optionsNodeList} -> get_nodelist();
        my @result = ();
+       my $first  = 1;
        #==========================================
        # select types
        #------------------------------------------
@@ -4787,8 +4733,10 @@
                        #==========================================
                        # meta data
                        #------------------------------------------
+                       $record{first}    = $first;
                        $record{node}     = $node;
                        $record{assigned} = \@assigned;
+                       $first = 0;
                        #==========================================
                        # type attributes
                        #------------------------------------------
@@ -4897,13 +4845,16 @@
        #------------------------------------------
        foreach my $record (@{$typeList}) {
                my $found = 0;
+               my $first = 1;
                foreach my $p (@{$record->{assigned}}) {
                        if ($select{$p}) {
                                $found = 1; last;
                        }
                }
                next if ! $found;
+               $record->{first} = $first;
                $result{$record->{type}} = $record;
+               $first = 0;
        }
        #==========================================
        # store types in typeInfo hash
@@ -4936,7 +4887,7 @@
        #------------------------------------------
        if (! $typeinfo) {
                # /.../
-               # if not typeinfo hash was populated we use the first type
+               # if no typeinfo hash was populated we use the first type
                # node listed in the description as the used type.
                # ----
                $this->{typeNode} = $this->{optionsNodeList}
@@ -4953,13 +4904,17 @@
                # in the list
                # ----
                my @types = keys %{$typeinfo};
+               my $first;
                foreach my $type (@types) {
                        if ($typeinfo->{$type}{primary} eq "true") {
                                $select = $type; last;
                        }
+                       if ($typeinfo->{$type}{first} == 1) {
+                               $first = $type;
+                       }
                }
                if (! $select) {
-                       $select = $types[0];
+                       $select = $first;
                }
        } else {
                # /.../
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/system/boot/ix86/netboot/suse-linuxrc 
new/kiwi/system/boot/ix86/netboot/suse-linuxrc
--- old/kiwi/system/boot/ix86/netboot/suse-linuxrc      2011-04-21 
12:02:25.000000000 +0200
+++ new/kiwi/system/boot/ix86/netboot/suse-linuxrc      2011-05-06 
15:22:52.000000000 +0200
@@ -143,7 +143,13 @@
        #--------------------------------------
        unset ALLOW_CMDLINE_OVERWRITE
        if [ ! -z "$NBDROOT" ];then
-               KLIST[0]="NBDROOT=$NBDROOT";
+               KLIST[0]="NBDROOT=$NBDROOT"
+       fi
+       if [ ! -z "$NFSROOT" ];then
+               KLIST[1]="NFSROOT=$NFSROOT"
+       fi
+       if [ ! -z "$AOEROOT" ];then
+               KLIST[2]="AOEROOT=$AOEROOT"
        fi
        Echo "Checking for config file..."
        #======================================
@@ -903,41 +909,33 @@
 fi
 
 #======================================
-# 21) If image is new, notify
-#--------------------------------------
-runHook prenotify
-if [ $LOCAL_BOOT = "no" ] && [ $systemIntegrity = "clean" ];then
-       pxeNotifyNewImage
-fi
-runHook postnotify
-
-#======================================
-# 22) send DHCP_RELEASE, reset cache
+# 21) send DHCP_RELEASE, reset cache
 #--------------------------------------
+runHook preNetworkRelease
 if [ $LOCAL_BOOT = "no" ];then
        releaseNetwork
 fi
 
 #======================================
-# 23) copy system dependant files
+# 22) copy system dependant files
 #--------------------------------------
 if [ $LOCAL_BOOT = "no" ];then
        setupConfigFiles
 fi
 
 #======================================
-# 24) update system dependant files
+# 23) update system dependant files
 #--------------------------------------
 setupInittab /mnt
 
 echo 256 > /proc/sys/kernel/real-root-dev
 #======================================
-# 25) umount system filesystems
+# 24) umount system filesystems
 #--------------------------------------
 umountSystemFilesystems
 
 #======================================
-# 26) copy initrd files to image
+# 25) copy initrd files to image
 #--------------------------------------
 if [ $LOCAL_BOOT = "no" ] && [ $systemIntegrity = "clean" ];then
        if canWrite /mnt;then
@@ -948,18 +946,18 @@
 fi
 
 #======================================
-# 27) kill boot shell
+# 26) kill boot shell
 #--------------------------------------
 killShell
 killBlogD
 
 #======================================
-# 28) Activate new root
+# 27) Activate new root
 #--------------------------------------
 runHook preactivate
 activateImage
 
 #======================================
-# 29) Unmount initrd / system init
+# 28) Unmount initrd / system init
 #--------------------------------------
 bootImage $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert14to20.xsl 
new/kiwi/xsl/convert14to20.xsl
--- old/kiwi/xsl/convert14to20.xsl      2010-02-05 16:11:32.000000000 +0100
+++ new/kiwi/xsl/convert14to20.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -19,10 +19,19 @@
        from <literal>1.4</literal> to <literal>2.0</literal>. 
 </para>
 <xsl:template match="image" mode="conv14to20">
-       <image schemeversion="2.0">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv14to20"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 2.0 -->
+               <xsl:when test="@schemeversion > 1.4 or @schemaversion > 1.4">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemeversion="2.0">
+                               <xsl:copy-of select="@*[local-name() != 
'schemeversion']"/>
+                               <xsl:apply-templates mode="conv14to20"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- split section update -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert20to24.xsl 
new/kiwi/xsl/convert20to24.xsl
--- old/kiwi/xsl/convert20to24.xsl      2010-02-05 16:11:32.000000000 +0100
+++ new/kiwi/xsl/convert20to24.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,16 +13,25 @@
        </xsl:copy>
 </xsl:template>
 
-<!-- update schama version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemeversion</tag>
        from <literal>2.0</literal> to <literal>2.4</literal>. 
 </para>
 <xsl:template match="image" mode="conv20to24">
-       <image schemeversion="2.4">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv20to24"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 2.4 -->
+               <xsl:when test="@schemeversion > 2.0 or @schemaversion > 2.0">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemeversion="2.4">
+                               <xsl:copy-of select="@*[local-name() != 
'schemeversion']"/>
+                               <xsl:apply-templates mode="conv20to24"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove attributes and add info -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert24to35.xsl 
new/kiwi/xsl/convert24to35.xsl
--- old/kiwi/xsl/convert24to35.xsl      2010-02-05 16:11:32.000000000 +0100
+++ new/kiwi/xsl/convert24to35.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemeversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>2.4</literal> to <literal>3.5</literal>.
 </para>
 <xsl:template match="image" mode="conv24to35">
-       <image schemaversion="3.5">
-               <xsl:copy-of select="@*[local-name() != 'schemeversion']"/>
-               <xsl:apply-templates mode="conv24to35"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 3.5 -->
+               <xsl:when test="@schemaversion > 2.4 or @schemeversion > 2.4">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="3.5">
+                               <xsl:copy-of select="@*[local-name() != 
'schemeversion']"/>
+                               <xsl:apply-templates mode="conv24to35"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove compressed element -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert35to37.xsl 
new/kiwi/xsl/convert35to37.xsl
--- old/kiwi/xsl/convert35to37.xsl      2010-02-05 16:11:32.000000000 +0100
+++ new/kiwi/xsl/convert35to37.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -17,17 +17,26 @@
        </xsl:copy>
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>3.5</literal> to <literal>3.7</literal>.
 </para>
 <xsl:template match="image" mode="conv35to37">
-       <image schemaversion="3.7">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv35to37"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 3.7 -->
+               <xsl:when test="@schemaversion > 3.5">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="3.7">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv35to37"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- update bool types -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert37to38.xsl 
new/kiwi/xsl/convert37to38.xsl
--- old/kiwi/xsl/convert37to38.xsl      2010-02-05 16:11:32.000000000 +0100
+++ new/kiwi/xsl/convert37to38.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>3.7</literal> to <literal>3.8</literal>.
 </para>
 <xsl:template match="image" mode="conv37to38">
-    <image schemaversion="3.8">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-        <xsl:apply-templates mode="conv37to38"/>
-    </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 3.8 -->
+               <xsl:when test="@schemaversion > 3.7">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="3.8">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv37to38"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- update deploy / pxedeploy -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert38to39.xsl 
new/kiwi/xsl/convert38to39.xsl
--- old/kiwi/xsl/convert38to39.xsl      2010-07-09 14:29:02.000000000 +0200
+++ new/kiwi/xsl/convert38to39.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
     </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>3.8</literal> to <literal>3.9</literal>.
 </para>
 <xsl:template match="image" mode="conv38to39">
-       <image schemaversion="3.9">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv38to39"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 3.9 -->
+               <xsl:when test="@schemaversion > 3.8">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="3.9">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv38to39"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- create new element oemconfig -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert39to41.xsl 
new/kiwi/xsl/convert39to41.xsl
--- old/kiwi/xsl/convert39to41.xsl      2010-08-27 15:35:45.000000000 +0200
+++ new/kiwi/xsl/convert39to41.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -11,7 +11,7 @@
     </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version and modify type element -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
     Changed attribute <tag class="attribute">schemaversion</tag>
     to <tag class="attribute">schemaversion</tag> from
@@ -22,10 +22,19 @@
     children of the <tag class="element">type</tag> element.
 </para>
 <xsl:template match="image" mode="conv39to41">
-    <image schemaversion="4.1">
-    <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-    <xsl:apply-templates  mode="conv39to41"/>  
-    </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.1 -->
+               <xsl:when test="@schemaversion > 3.9">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.1">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates  mode="conv39to41"/>  
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <xsl:template match="preferences" mode="conv39to41">
@@ -95,19 +104,10 @@
             </type>
         </xsl:when>
         <xsl:otherwise>
-          <xsl:choose>
-            <xsl:when test="@image">
-              <xsl:copy-of select="current()"/>
-            </xsl:when>
-            <xsl:otherwise>
-                <xsl:element name="type">
-                    <xsl:attribute name="image">
-                        <xsl:value-of select="current()"/>
-                    </xsl:attribute>
-                    <xsl:copy-of select="@*"/>
-                </xsl:element>
-            </xsl:otherwise>
-          </xsl:choose>
+            <type>
+                <xsl:call-template name="insertcomprops" mode="conv39to41"/>
+                <xsl:apply-templates select="*"/>
+            </type>
         </xsl:otherwise>
     </xsl:choose>
 </xsl:template>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert41to42.xsl 
new/kiwi/xsl/convert41to42.xsl
--- old/kiwi/xsl/convert41to42.xsl      2010-02-09 16:59:43.000000000 +0100
+++ new/kiwi/xsl/convert41to42.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -17,7 +17,7 @@
 <xsl:variable name="ec2cert" select="/image/preferences/type/@ec2certfile"/>
 <xsl:variable name="ec2acct" select="/image/preferences/type/@ec2accountnr"/>
 
-<!-- update schema version and create new element ec2config -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
     Changed attribute <tag class="attribute">schemaversion</tag>
     to <tag class="attribute">schemaversion</tag> from
@@ -27,13 +27,20 @@
     <tag class="element">ec2config</tag> element is a child of the
     <tag class="element">type</tag> element.
 </para>
-
 <xsl:template match="image" mode="conv41to42">
-    <image schemaversion="4.2">
-        <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-        <xsl:apply-templates mode="conv41to42"/>
-        
-    </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.2 -->
+               <xsl:when test="@schemaversion > 4.1">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.2">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv41to42"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <xsl:template match="preferences" mode="conv41to42">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert42to43.xsl 
new/kiwi/xsl/convert42to43.xsl
--- old/kiwi/xsl/convert42to43.xsl      2010-02-18 13:15:24.000000000 +0100
+++ new/kiwi/xsl/convert42to43.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -12,7 +12,7 @@
     </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version and move lvmgroup attrubute -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
     Changed attribute <tag class="attribute">schemaversion</tag>
     to <tag class="attribute">schemaversion</tag> from
@@ -21,12 +21,20 @@
     <tag class="element">type</tag> to the 
     <tag class="element">lvmvolumes</tag> element.
 </para>
-
 <xsl:template match="image" mode="conv42to43">
-    <image schemaversion="4.3">
-        <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-        <xsl:apply-templates mode="conv42to43"/>
-    </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.3 -->
+               <xsl:when test="@schemaversion > 4.2">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.3">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv42to43"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <xsl:template match="preferences" mode="conv42to43">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert43to44.xsl 
new/kiwi/xsl/convert43to44.xsl
--- old/kiwi/xsl/convert43to44.xsl      2010-02-19 15:21:51.000000000 +0100
+++ new/kiwi/xsl/convert43to44.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.3</literal> to <literal>4.4</literal>.
 </para>
 <xsl:template match="image" mode="conv43to44">
-       <image schemaversion="4.4">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv43to44"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.4 -->
+               <xsl:when test="@schemaversion > 4.3">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.4">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv43to44"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove commandline element -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert44to45.xsl 
new/kiwi/xsl/convert44to45.xsl
--- old/kiwi/xsl/convert44to45.xsl      2010-04-26 15:28:55.000000000 +0200
+++ new/kiwi/xsl/convert44to45.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.4</literal> to <literal>4.5</literal>.
 </para>
 <xsl:template match="image" mode="conv44to45">
-       <image schemaversion="4.5">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv44to45"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.5 -->
+               <xsl:when test="@schemaversion > 4.4">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.5">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv44to45"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove compressed element -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert45to46.xsl 
new/kiwi/xsl/convert45to46.xsl
--- old/kiwi/xsl/convert45to46.xsl      2010-07-02 15:03:37.000000000 +0200
+++ new/kiwi/xsl/convert45to46.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.5</literal> to <literal>4.6</literal>.
 </para>
 <xsl:template match="image" mode="conv45to46">
-       <image schemaversion="4.6">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv45to46"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.6 -->
+               <xsl:when test="@schemaversion > 4.5">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.6">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv45to46"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- update vmware / vmx -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert46to47.xsl 
new/kiwi/xsl/convert46to47.xsl
--- old/kiwi/xsl/convert46to47.xsl      2010-07-13 13:29:41.000000000 +0200
+++ new/kiwi/xsl/convert46to47.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -13,17 +13,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.6</literal> to <literal>4.7</literal>.
 </para>
 <xsl:template match="image" mode="conv46to47">
-       <image schemaversion="4.7">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv46to47"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.7 -->
+               <xsl:when test="@schemaversion > 4.6">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.7">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv46to47"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- turn vmwareconfig into machine, ignore usb attribute -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert47to48.xsl 
new/kiwi/xsl/convert47to48.xsl
--- old/kiwi/xsl/convert47to48.xsl      2011-03-11 15:36:07.000000000 +0100
+++ new/kiwi/xsl/convert47to48.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -37,17 +37,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.7</literal> to <literal>4.8</literal>.
 </para>
 <xsl:template match="image" mode="conv47to48">
-       <image schemaversion="4.8">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv47to48"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.8 -->
+               <xsl:when test="@schemaversion > 4.7">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.8">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv47to48"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove lvm attribute, call add-systemdisk if no lvmvolumes exists and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert48to49.xsl 
new/kiwi/xsl/convert48to49.xsl
--- old/kiwi/xsl/convert48to49.xsl      2010-11-19 15:29:39.000000000 +0100
+++ new/kiwi/xsl/convert48to49.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -17,17 +17,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.8</literal> to <literal>4.9</literal>.
 </para>
 <xsl:template match="image" mode="conv48to49">
-       <image schemaversion="4.9">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates mode="conv48to49"/>
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 4.9 -->
+               <xsl:when test="@schemaversion > 4.8">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="4.9">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates mode="conv48to49"/>
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- transform oem-dumphalt to oem-bootwait -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert49to50.xsl 
new/kiwi/xsl/convert49to50.xsl
--- old/kiwi/xsl/convert49to50.xsl      2010-11-19 15:29:39.000000000 +0100
+++ new/kiwi/xsl/convert49to50.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -11,17 +11,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>4.9</literal> to <literal>5.0</literal>.
 </para>
 <xsl:template match="image" mode="conv49to50">
-       <image schemaversion="5.0">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates  mode="conv49to50"/>  
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 5.0 -->
+               <xsl:when test="@schemaversion > 4.9">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="5.0">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates  mode="conv49to50"/>  
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- convert xen image type to vmx -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert50to51.xsl 
new/kiwi/xsl/convert50to51.xsl
--- old/kiwi/xsl/convert50to51.xsl      2010-12-03 16:08:52.000000000 +0100
+++ new/kiwi/xsl/convert50to51.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -11,17 +11,26 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
        to <tag class="attribute">schemaversion</tag> from
        <literal>5.0</literal> to <literal>5.1</literal>.
 </para>
 <xsl:template match="image" mode="conv50to51">
-       <image schemaversion="5.1">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion']"/>
-               <xsl:apply-templates  mode="conv50to51"/>  
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 5.1 -->
+               <xsl:when test="@schemaversion > 5.0">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="5.1">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion']"/>
+                               <xsl:apply-templates  mode="conv50to51"/>  
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove baseroot attribute from type -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/xsl/convert51to52.xsl 
new/kiwi/xsl/convert51to52.xsl
--- old/kiwi/xsl/convert51to52.xsl      2011-04-21 12:02:25.000000000 +0200
+++ new/kiwi/xsl/convert51to52.xsl      2011-05-06 15:22:52.000000000 +0200
@@ -11,7 +11,7 @@
        </xsl:copy>  
 </xsl:template>
 
-<!-- update schema version -->
+<!-- version update -->
 <!-- remove inherit attribute from image -->
 <para xmlns="http://docbook.org/ns/docbook";>
        Changed attribute <tag class="attribute">schemaversion</tag>
@@ -19,10 +19,19 @@
        <literal>5.1</literal> to <literal>5.2</literal>.
 </para>
 <xsl:template match="image" mode="conv51to52">
-       <image schemaversion="5.2">
-               <xsl:copy-of select="@*[local-name() != 'schemaversion' and 
local-name() != 'inherit']"/>
-               <xsl:apply-templates  mode="conv51to52"/>  
-       </image>
+       <xsl:choose>
+               <!-- nothing to do if already at 5.2 -->
+               <xsl:when test="@schemaversion > 5.1">
+                       <xsl:copy-of select="/"/>
+               </xsl:when>
+               <!-- otherwise apply templates -->
+               <xsl:otherwise>
+                       <image schemaversion="5.2">
+                               <xsl:copy-of select="@*[local-name() != 
'schemaversion' and local-name() != 'inherit']"/>
+                               <xsl:apply-templates  mode="conv51to52"/>  
+                       </image>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!-- remove obsolete usb image type -->


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to