Hello community, here is the log from the commit of package kiwi for openSUSE:Factory checked in at 2012-05-26 09:26:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kiwi (Old) and /work/SRC/openSUSE:Factory/.kiwi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi", Maintainer is "m...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/kiwi/kiwi.changes 2012-05-25 16:16:35.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes 2012-05-26 09:26:14.000000000 +0200 @@ -1,0 +2,54 @@ +Fri May 25 16:16:14 CEST 2012 - m...@suse.de + +- v5.03.8 released + +------------------------------------------------------------------- +Fri May 25 16:14:21 CEST 2012 - m...@suse.de + +- make sure resizeLVMVolumes unsets FSTYPE before fsresize + +------------------------------------------------------------------- +Fri May 25 15:49:01 CEST 2012 - m...@suse.de + +- apply oem dump and repart patches from x86 arch + to ppc/s390 and arm. Reference commits are: + * e3cb127676f636b71d2a07acd7fdd4bc0bb6f332 + * 8d15e715dcb156bf0b101c87e28ceb810d0f4eed + +------------------------------------------------------------------- +Fri May 25 15:44:18 CEST 2012 - m...@suse.de + +- fixed OEM partition selection for LVM images. If there + are exactly two partitions suitable for the install process + it's possible to assign boot and root partition according + to the partition ID's from the OEM image partition table. + Thus we can prevent a selection dialog in this case. + Additionally this commit added more information about + the reason why partitions are rejected + +------------------------------------------------------------------- +Fri May 25 15:15:09 CEST 2012 - m...@suse.de + +- make sure 'rev' tool stays inside the initrd + +------------------------------------------------------------------- +Fri May 25 13:47:57 CEST 2012 - m...@suse.de + +- fixed OEM partition install mode for LVM images + +------------------------------------------------------------------- +Fri May 25 09:13:35 CEST 2012 - m...@suse.de + +- don't install unnecessary doc meta data + +------------------------------------------------------------------- +Thu May 24 11:21:28 CEST 2012 - m...@suse.de + +- added sync of schema docs to doc.opensuse.org + +------------------------------------------------------------------- +Wed May 23 16:40:27 CEST 2012 - m...@suse.de + +- added sync of docs to doc.opensuse.org + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.H74X2J/_old 2012-05-26 09:26:16.000000000 +0200 +++ /var/tmp/diff_new_pack.H74X2J/_new 2012-05-26 09:26:16.000000000 +0200 @@ -22,7 +22,7 @@ Summary: OpenSuSE - KIWI Image System License: GPL-2.0 Group: System/Management -Version: 5.03.7 +Version: 5.03.8 Release: 0 # requirements to build packages BuildRequires: gcc-c++ ++++++ kiwi-docu.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/kiwi/kiwi-docu.tar.bz2 /work/SRC/openSUSE:Factory/.kiwi.new/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 2012-05-21 12:55:30.000000000 +0200 +++ new/kiwi/.revision 2012-05-21 12:55:30.000000000 +0200 @@ -1 +1 @@ -33533e3e965c85c790da0bbd3a985469977d64f3 +fd4886be04a748b4dfd855c61e88b25e0162a263 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/Makefile new/kiwi/Makefile --- old/kiwi/Makefile 2012-05-21 12:55:23.000000000 +0200 +++ new/kiwi/Makefile 2012-05-25 16:17:52.000000000 +0200 @@ -86,6 +86,8 @@ cp -a doc/*.css ${PACKDOCVZ} cp -a doc/COPYING ${PACKDOCVZ} test -e doc/ChangeLog && cp -a doc/ChangeLog ${PACKDOCVZ} || true + rm -f ${PACKDOCVZ}/schema/Makefile + rm -f ${PACKDOCVZ}/schema/susesync #============================================ # kiwi manual pages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfig.txt new/kiwi/modules/KIWIConfig.txt --- old/kiwi/modules/KIWIConfig.txt 2012-05-22 14:30:26.000000000 +0200 +++ new/kiwi/modules/KIWIConfig.txt 2012-05-25 16:17:52.000000000 +0200 @@ -189,6 +189,7 @@ <file name="swapoff"/> <file name="swapon"/> <file name="tac"/> + <file name="rev"/> <file name="tail"/> <file name="tar"/> <file name="test"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIGlobals.pm new/kiwi/modules/KIWIGlobals.pm --- old/kiwi/modules/KIWIGlobals.pm 2012-05-22 14:30:26.000000000 +0200 +++ new/kiwi/modules/KIWIGlobals.pm 2012-05-25 16:17:52.000000000 +0200 @@ -42,7 +42,7 @@ # Globals (generic) #------------------------------------------ my %data; - $data{Version} = "5.03.7"; + $data{Version} = "5.03.8"; $data{Publisher} = "SUSE LINUX Products GmbH"; $data{Preparer} = "KIWI - http://kiwi.berlios.de"; $data{ConfigName} = "config.xml"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/armv7l/oemboot/suse-dump new/kiwi/system/boot/armv7l/oemboot/suse-dump --- old/kiwi/system/boot/armv7l/oemboot/suse-dump 2012-05-21 12:55:31.000000000 +0200 +++ new/kiwi/system/boot/armv7l/oemboot/suse-dump 2012-05-25 16:17:52.000000000 +0200 @@ -88,8 +88,10 @@ # disk device and return a list containing the information # device:size-KB,device:size-KB,... # ---- + unset OEMPartitions local disk=$1 - local result + local rids=$2 + local IFS disk=$(echo $disk | sed -e s@^/dev/@@) for i in $(cat /proc/partitions |\ grep -E $disk.+ | sed "s/^ *//;s/ *$//;s/ \{1,\}/:/g" |\ @@ -99,20 +101,34 @@ local kbsize=$(echo $i | cut -f1 -d:) local mbsize=$((kbsize / 1024)) local partid=$(partitionID /dev/$disk $(nd $device)) - if [ ! "$partid" = "83" ];then + local deviceOK=0 + IFS="," + for i in $rids;do + req_psize=$(echo $i | cut -f2 -d:) + req_partid=$(echo $i | cut -f1 -d:) + if [ $partid = $req_partid ] && [ $req_psize -lt $mbsize ];then + deviceOK=1 ; break + fi + done + IFS=$IFS_ORIG + if [ $deviceOK -eq 0 ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition ID mismatch and/or size too small" + Echo "Searching in range: $rids" continue fi probeFileSystem $device if [ ! -z "$FSTYPE" ] && [ ! "$FSTYPE" = "unknown" ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition contains a filesystem" continue fi - if [ -z "$result" ];then - result=$device:$mbsize + if [ -z "$OEMPartitions" ];then + OEMPartitions=$device:$mbsize:$partid else - result=$result,$device:$mbsize + OEMPartitions=$OEMPartitions,$device:$mbsize:$partid fi done - echo $result } #====================================== # OEMInstall @@ -317,7 +333,7 @@ reqpart=2 fi #====================================== - # Lookup/Check available partitions + # Check if we can proceed #-------------------------------------- if [ $reqpart -gt 2 ];then Echo "Sorry only disk images with a root and optional boot" @@ -327,8 +343,26 @@ "Installation aborted..." \ "reboot" fi + #====================================== + # Create partition ID search list + #-------------------------------------- + for i in /dev/mapper/${loop}*;do + psize=`partitionSize $i` + psize=$((psize / 1024)) + partnr=$(echo $i | rev | cut -c1) + partid=$(partitionID /dev/$loop $partnr) + if [ -z "$req_partids" ];then + req_partids=$partid:$psize + else + req_partids=$req_partids,$partid:$psize + fi + done + #====================================== + # Check ptable and provide service mode + #-------------------------------------- while true;do - partitions=$(OEMFindPartitions $(getDiskDevice $instDisk)) + OEMFindPartitions $(getDiskDevice $instDisk) $req_partids + partitions=$OEMPartitions if [ ! -z "$partitions" ];then count=0 IFS="," @@ -355,10 +389,10 @@ echo "types below without any filesystem inside !" >> $info echo >> $info count=0 - for i in /dev/mapper/${loop}*;do - psize=`partitionSize $i` - psize=$((psize / 1024)) - partid=$(partitionID /dev/$loop $(nd $i)) + IFS="," + for i in $req_partids;do + psize=$(echo $i | cut -f2 -d:) + partid=$(echo $i | cut -f1 -d:) partname=Root if [ $reqpart -eq 2 ] && [ $count = 0 ];then partname=Boot @@ -368,6 +402,9 @@ echo " Partition Type: 0x$partid" >> $info count=$((count + 1)) done + IFS=$IFS_ORIG + cat $info + Echo "Overlay mounting system on install media..." #====================================== # Mount OEM root image read-write #-------------------------------------- @@ -434,12 +471,9 @@ #====================================== # Do we have a LVM image... #-------------------------------------- - for i in /dev/mapper/${loop}*;do - partid=$(partitionID /dev/$loop $(nd $i)) - if [ "$partid" = "8e" ];then - export haveLVM=yes - fi - done + if [ "$kiwi_lvm" = "true" ];then + export haveLVM=yes + fi #====================================== # Select all required partitions #-------------------------------------- @@ -450,8 +484,47 @@ pname=`echo $partitions | cut -f1 -d:` imageDevice=$pname rID=$(nd $pname) - instItems[0]=$imageName + instItems[0]=/dev/mapper/${loop}p1 instPaths[0]=$imageDevice + elif [ $count -eq $reqpart ] && [ $reqpart -eq 2 ];then + #====================================== + # There are two free and required + #-------------------------------------- + # provided data from real disk + p1=$(echo $partitions | cut -f1 -d,) + p2=$(echo $partitions | cut -f2 -d,) + p1_device=$(echo $p1 | cut -f1 -d:) + p1_partid=$(echo $p1 | cut -f3 -d:) + p2_device=$(echo $p2 | cut -f1 -d:) + p2_partid=$(echo $p2 | cut -f3 -d:) + # requested data from image + req_p1=$(echo $req_partids | cut -f1 -d,) + req_p2=$(echo $req_partids | cut -f2 -d,) + req_p1_partid=$(echo $req_p1 | cut -f1 -d:) + req_p2_partid=$(echo $req_p2 | cut -f1 -d:) + # /.../ + # if the first partition id matches the requested first + # partition id, make the first partition the boot partition + # and the second partition the root partition. if not + # set it up vice versa + # ---- + if [ $req_p1_partid = $p1_partid ];then + imageDevice=$p2_device + rID=$(nd $p2_device) + instItems[0]=/dev/mapper/${loop}p2 + instPaths[0]=$imageDevice + bID=$(nd $p1_device) + instItems[1]=/dev/mapper/${loop}p1 + instPaths[1]=$p1_device + else + imageDevice=$p1_device + rID=$(nd $p1_device) + instItems[0]=/dev/mapper/${loop}p1 + instPaths[0]=$imageDevice + bID=$(nd $p2_device) + instItems[1]=/dev/mapper/${loop}p2 + instPaths[1]=$p2_device + fi else #====================================== # There is a choice, let the user do it @@ -608,8 +681,13 @@ items=$(echo $items | sed -e s@^,@@) Echo "Entering installation mode for disk: $items" if [ -z "$kiwi_oemunattended" ];then + inst_info=$items + if [ -z "$OEM_PARTITION_INSTALL" ];then + inst_info=$(basename $items) + fi TEXT_INST=$( - getText "Destroying ALL data on %1, continue ?" $(basename $items)) + getText "Destroying ALL data on %1, continue ?" $inst_info) + Dialog --yesno "\"$TEXT_INST\"" 5 80 if [ ! $? = 0 ];then systemException \ @@ -677,6 +755,7 @@ Echo "Loading $Source [$Target] " if [ -x /usr/bin/dcounter ];then test -e /progress || mkfifo /progress + Echo "Calling: eval $dump 2>/progress|dd bs=32k of=$Target" errorLogStop ( if ! eval $dump 2>/progress|dd bs=32k of=$Target &>/dev/null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/armv7l/oemboot/suse-repart new/kiwi/system/boot/armv7l/oemboot/suse-repart --- old/kiwi/system/boot/armv7l/oemboot/suse-repart 2012-05-22 11:58:09.000000000 +0200 +++ new/kiwi/system/boot/armv7l/oemboot/suse-repart 2012-05-25 16:17:52.000000000 +0200 @@ -434,13 +434,31 @@ #-------------------------------------- if searchVolumeGroup;then #====================================== + # setup all free volume name + #-------------------------------------- + export allFreeVolume=LVRoot + if [ ! -z "$kiwi_allFreeVolume" ];then + allFreeVolume=$kiwi_allFreeVolume + fi + #====================================== # resize PV's #-------------------------------------- pvresize $(ddn $imageDiskDevice $rID) #====================================== - # resize LV's + # Resize volumes to requested size + #-------------------------------------- + resizeLVMVolumes + #====================================== + # Extend root + optional allFreeVolume #-------------------------------------- - lvresize -l +100%FREE $imageRootDevice + if [ -z "$OEM_SYSTEMSIZE" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + else + lvextend --size $OEM_SYSTEMSIZE"M" /dev/$VGROUP/LVRoot + if [ "$allFreeVolume" != "LVRoot" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + fi + fi fi #====================================== # resize boot filesystem if needed @@ -746,6 +764,7 @@ lvextend -L +${size}M /dev/$VGROUP/$volume fi if [ $? = 0 ];then + unset FSTYPE resizeFilesystem /dev/$VGROUP/$volume else Echo "Warning: requested size cannot be reached !" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/oemboot/suse-dump new/kiwi/system/boot/ix86/oemboot/suse-dump --- old/kiwi/system/boot/ix86/oemboot/suse-dump 2012-05-21 12:55:31.000000000 +0200 +++ new/kiwi/system/boot/ix86/oemboot/suse-dump 2012-05-25 16:17:52.000000000 +0200 @@ -88,8 +88,10 @@ # disk device and return a list containing the information # device:size-KB,device:size-KB,... # ---- + unset OEMPartitions local disk=$1 - local result + local rids=$2 + local IFS disk=$(echo $disk | sed -e s@^/dev/@@) for i in $(cat /proc/partitions |\ grep -E $disk.+ | sed "s/^ *//;s/ *$//;s/ \{1,\}/:/g" |\ @@ -99,20 +101,34 @@ local kbsize=$(echo $i | cut -f1 -d:) local mbsize=$((kbsize / 1024)) local partid=$(partitionID /dev/$disk $(nd $device)) - if [ ! "$partid" = "83" ];then + local deviceOK=0 + IFS="," + for i in $rids;do + req_psize=$(echo $i | cut -f2 -d:) + req_partid=$(echo $i | cut -f1 -d:) + if [ $partid = $req_partid ] && [ $req_psize -lt $mbsize ];then + deviceOK=1 ; break + fi + done + IFS=$IFS_ORIG + if [ $deviceOK -eq 0 ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition ID mismatch and/or size too small" + Echo "Searching in range: $rids" continue fi probeFileSystem $device if [ ! -z "$FSTYPE" ] && [ ! "$FSTYPE" = "unknown" ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition contains a filesystem" continue fi - if [ -z "$result" ];then - result=$device:$mbsize + if [ -z "$OEMPartitions" ];then + OEMPartitions=$device:$mbsize:$partid else - result=$result,$device:$mbsize + OEMPartitions=$OEMPartitions,$device:$mbsize:$partid fi done - echo $result } #====================================== # OEMInstall @@ -317,7 +333,7 @@ reqpart=2 fi #====================================== - # Lookup/Check available partitions + # Check if we can proceed #-------------------------------------- if [ $reqpart -gt 2 ];then Echo "Sorry only disk images with a root and optional boot" @@ -327,8 +343,26 @@ "Installation aborted..." \ "reboot" fi + #====================================== + # Create partition ID search list + #-------------------------------------- + for i in /dev/mapper/${loop}*;do + psize=`partitionSize $i` + psize=$((psize / 1024)) + partnr=$(echo $i | rev | cut -c1) + partid=$(partitionID /dev/$loop $partnr) + if [ -z "$req_partids" ];then + req_partids=$partid:$psize + else + req_partids=$req_partids,$partid:$psize + fi + done + #====================================== + # Check ptable and provide service mode + #-------------------------------------- while true;do - partitions=$(OEMFindPartitions $(getDiskDevice $instDisk)) + OEMFindPartitions $(getDiskDevice $instDisk) $req_partids + partitions=$OEMPartitions if [ ! -z "$partitions" ];then count=0 IFS="," @@ -355,10 +389,10 @@ echo "types below without any filesystem inside !" >> $info echo >> $info count=0 - for i in /dev/mapper/${loop}*;do - psize=`partitionSize $i` - psize=$((psize / 1024)) - partid=$(partitionID /dev/$loop $(nd $i)) + IFS="," + for i in $req_partids;do + psize=$(echo $i | cut -f2 -d:) + partid=$(echo $i | cut -f1 -d:) partname=Root if [ $reqpart -eq 2 ] && [ $count = 0 ];then partname=Boot @@ -368,6 +402,9 @@ echo " Partition Type: 0x$partid" >> $info count=$((count + 1)) done + IFS=$IFS_ORIG + cat $info + Echo "Overlay mounting system on install media..." #====================================== # Mount OEM root image read-write #-------------------------------------- @@ -434,12 +471,9 @@ #====================================== # Do we have a LVM image... #-------------------------------------- - for i in /dev/mapper/${loop}*;do - partid=$(partitionID /dev/$loop $(nd $i)) - if [ "$partid" = "8e" ];then - export haveLVM=yes - fi - done + if [ "$kiwi_lvm" = "true" ];then + export haveLVM=yes + fi #====================================== # Select all required partitions #-------------------------------------- @@ -450,8 +484,47 @@ pname=`echo $partitions | cut -f1 -d:` imageDevice=$pname rID=$(nd $pname) - instItems[0]=$imageName + instItems[0]=/dev/mapper/${loop}p1 instPaths[0]=$imageDevice + elif [ $count -eq $reqpart ] && [ $reqpart -eq 2 ];then + #====================================== + # There are two free and required + #-------------------------------------- + # provided data from real disk + p1=$(echo $partitions | cut -f1 -d,) + p2=$(echo $partitions | cut -f2 -d,) + p1_device=$(echo $p1 | cut -f1 -d:) + p1_partid=$(echo $p1 | cut -f3 -d:) + p2_device=$(echo $p2 | cut -f1 -d:) + p2_partid=$(echo $p2 | cut -f3 -d:) + # requested data from image + req_p1=$(echo $req_partids | cut -f1 -d,) + req_p2=$(echo $req_partids | cut -f2 -d,) + req_p1_partid=$(echo $req_p1 | cut -f1 -d:) + req_p2_partid=$(echo $req_p2 | cut -f1 -d:) + # /.../ + # if the first partition id matches the requested first + # partition id, make the first partition the boot partition + # and the second partition the root partition. if not + # set it up vice versa + # ---- + if [ $req_p1_partid = $p1_partid ];then + imageDevice=$p2_device + rID=$(nd $p2_device) + instItems[0]=/dev/mapper/${loop}p2 + instPaths[0]=$imageDevice + bID=$(nd $p1_device) + instItems[1]=/dev/mapper/${loop}p1 + instPaths[1]=$p1_device + else + imageDevice=$p1_device + rID=$(nd $p1_device) + instItems[0]=/dev/mapper/${loop}p1 + instPaths[0]=$imageDevice + bID=$(nd $p2_device) + instItems[1]=/dev/mapper/${loop}p2 + instPaths[1]=$p2_device + fi else #====================================== # There is a choice, let the user do it @@ -608,8 +681,13 @@ items=$(echo $items | sed -e s@^,@@) Echo "Entering installation mode for disk: $items" if [ -z "$kiwi_oemunattended" ];then + inst_info=$items + if [ -z "$OEM_PARTITION_INSTALL" ];then + inst_info=$(basename $items) + fi TEXT_INST=$( - getText "Destroying ALL data on %1, continue ?" $(basename $items)) + getText "Destroying ALL data on %1, continue ?" $inst_info) + Dialog --yesno "\"$TEXT_INST\"" 5 80 if [ ! $? = 0 ];then systemException \ @@ -677,6 +755,7 @@ Echo "Loading $Source [$Target] " if [ -x /usr/bin/dcounter ];then test -e /progress || mkfifo /progress + Echo "Calling: eval $dump 2>/progress|dd bs=32k of=$Target" errorLogStop ( if ! eval $dump 2>/progress|dd bs=32k of=$Target &>/dev/null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/oemboot/suse-repart new/kiwi/system/boot/ix86/oemboot/suse-repart --- old/kiwi/system/boot/ix86/oemboot/suse-repart 2012-05-22 11:58:09.000000000 +0200 +++ new/kiwi/system/boot/ix86/oemboot/suse-repart 2012-05-25 16:17:52.000000000 +0200 @@ -434,13 +434,31 @@ #-------------------------------------- if searchVolumeGroup;then #====================================== + # setup all free volume name + #-------------------------------------- + export allFreeVolume=LVRoot + if [ ! -z "$kiwi_allFreeVolume" ];then + allFreeVolume=$kiwi_allFreeVolume + fi + #====================================== # resize PV's #-------------------------------------- pvresize $(ddn $imageDiskDevice $rID) #====================================== - # resize LV's + # Resize volumes to requested size + #-------------------------------------- + resizeLVMVolumes + #====================================== + # Extend root + optional allFreeVolume #-------------------------------------- - lvresize -l +100%FREE $imageRootDevice + if [ -z "$OEM_SYSTEMSIZE" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + else + lvextend --size $OEM_SYSTEMSIZE"M" /dev/$VGROUP/LVRoot + if [ "$allFreeVolume" != "LVRoot" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + fi + fi fi #====================================== # resize boot filesystem if needed @@ -746,6 +764,7 @@ lvextend -L +${size}M /dev/$VGROUP/$volume fi if [ $? = 0 ];then + unset FSTYPE resizeFilesystem /dev/$VGROUP/$volume else Echo "Warning: requested size cannot be reached !" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ppc/oemboot/suse-dump new/kiwi/system/boot/ppc/oemboot/suse-dump --- old/kiwi/system/boot/ppc/oemboot/suse-dump 2012-05-21 12:55:31.000000000 +0200 +++ new/kiwi/system/boot/ppc/oemboot/suse-dump 2012-05-25 16:17:52.000000000 +0200 @@ -88,8 +88,10 @@ # disk device and return a list containing the information # device:size-KB,device:size-KB,... # ---- + unset OEMPartitions local disk=$1 - local result + local rids=$2 + local IFS disk=$(echo $disk | sed -e s@^/dev/@@) for i in $(cat /proc/partitions |\ grep -E $disk.+ | sed "s/^ *//;s/ *$//;s/ \{1,\}/:/g" |\ @@ -99,20 +101,34 @@ local kbsize=$(echo $i | cut -f1 -d:) local mbsize=$((kbsize / 1024)) local partid=$(partitionID /dev/$disk $(nd $device)) - if [ ! "$partid" = "83" ];then + local deviceOK=0 + IFS="," + for i in $rids;do + req_psize=$(echo $i | cut -f2 -d:) + req_partid=$(echo $i | cut -f1 -d:) + if [ $partid = $req_partid ] && [ $req_psize -lt $mbsize ];then + deviceOK=1 ; break + fi + done + IFS=$IFS_ORIG + if [ $deviceOK -eq 0 ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition ID mismatch and/or size too small" + Echo "Searching in range: $rids" continue fi probeFileSystem $device if [ ! -z "$FSTYPE" ] && [ ! "$FSTYPE" = "unknown" ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition contains a filesystem" continue fi - if [ -z "$result" ];then - result=$device:$mbsize + if [ -z "$OEMPartitions" ];then + OEMPartitions=$device:$mbsize:$partid else - result=$result,$device:$mbsize + OEMPartitions=$OEMPartitions,$device:$mbsize:$partid fi done - echo $result } #====================================== # OEMInstall @@ -317,7 +333,7 @@ reqpart=2 fi #====================================== - # Lookup/Check available partitions + # Check if we can proceed #-------------------------------------- if [ $reqpart -gt 2 ];then Echo "Sorry only disk images with a root and optional boot" @@ -327,8 +343,26 @@ "Installation aborted..." \ "reboot" fi + #====================================== + # Create partition ID search list + #-------------------------------------- + for i in /dev/mapper/${loop}*;do + psize=`partitionSize $i` + psize=$((psize / 1024)) + partnr=$(echo $i | rev | cut -c1) + partid=$(partitionID /dev/$loop $partnr) + if [ -z "$req_partids" ];then + req_partids=$partid:$psize + else + req_partids=$req_partids,$partid:$psize + fi + done + #====================================== + # Check ptable and provide service mode + #-------------------------------------- while true;do - partitions=$(OEMFindPartitions $(getDiskDevice $instDisk)) + OEMFindPartitions $(getDiskDevice $instDisk) $req_partids + partitions=$OEMPartitions if [ ! -z "$partitions" ];then count=0 IFS="," @@ -355,10 +389,10 @@ echo "types below without any filesystem inside !" >> $info echo >> $info count=0 - for i in /dev/mapper/${loop}*;do - psize=`partitionSize $i` - psize=$((psize / 1024)) - partid=$(partitionID /dev/$loop $(nd $i)) + IFS="," + for i in $req_partids;do + psize=$(echo $i | cut -f2 -d:) + partid=$(echo $i | cut -f1 -d:) partname=Root if [ $reqpart -eq 2 ] && [ $count = 0 ];then partname=Boot @@ -368,6 +402,9 @@ echo " Partition Type: 0x$partid" >> $info count=$((count + 1)) done + IFS=$IFS_ORIG + cat $info + Echo "Overlay mounting system on install media..." #====================================== # Mount OEM root image read-write #-------------------------------------- @@ -434,12 +471,9 @@ #====================================== # Do we have a LVM image... #-------------------------------------- - for i in /dev/mapper/${loop}*;do - partid=$(partitionID /dev/$loop $(nd $i)) - if [ "$partid" = "8e" ];then - export haveLVM=yes - fi - done + if [ "$kiwi_lvm" = "true" ];then + export haveLVM=yes + fi #====================================== # Select all required partitions #-------------------------------------- @@ -450,8 +484,47 @@ pname=`echo $partitions | cut -f1 -d:` imageDevice=$pname rID=$(nd $pname) - instItems[0]=$imageName + instItems[0]=/dev/mapper/${loop}p1 instPaths[0]=$imageDevice + elif [ $count -eq $reqpart ] && [ $reqpart -eq 2 ];then + #====================================== + # There are two free and required + #-------------------------------------- + # provided data from real disk + p1=$(echo $partitions | cut -f1 -d,) + p2=$(echo $partitions | cut -f2 -d,) + p1_device=$(echo $p1 | cut -f1 -d:) + p1_partid=$(echo $p1 | cut -f3 -d:) + p2_device=$(echo $p2 | cut -f1 -d:) + p2_partid=$(echo $p2 | cut -f3 -d:) + # requested data from image + req_p1=$(echo $req_partids | cut -f1 -d,) + req_p2=$(echo $req_partids | cut -f2 -d,) + req_p1_partid=$(echo $req_p1 | cut -f1 -d:) + req_p2_partid=$(echo $req_p2 | cut -f1 -d:) + # /.../ + # if the first partition id matches the requested first + # partition id, make the first partition the boot partition + # and the second partition the root partition. if not + # set it up vice versa + # ---- + if [ $req_p1_partid = $p1_partid ];then + imageDevice=$p2_device + rID=$(nd $p2_device) + instItems[0]=/dev/mapper/${loop}p2 + instPaths[0]=$imageDevice + bID=$(nd $p1_device) + instItems[1]=/dev/mapper/${loop}p1 + instPaths[1]=$p1_device + else + imageDevice=$p1_device + rID=$(nd $p1_device) + instItems[0]=/dev/mapper/${loop}p1 + instPaths[0]=$imageDevice + bID=$(nd $p2_device) + instItems[1]=/dev/mapper/${loop}p2 + instPaths[1]=$p2_device + fi else #====================================== # There is a choice, let the user do it @@ -608,8 +681,13 @@ items=$(echo $items | sed -e s@^,@@) Echo "Entering installation mode for disk: $items" if [ -z "$kiwi_oemunattended" ];then + inst_info=$items + if [ -z "$OEM_PARTITION_INSTALL" ];then + inst_info=$(basename $items) + fi TEXT_INST=$( - getText "Destroying ALL data on %1, continue ?" $(basename $items)) + getText "Destroying ALL data on %1, continue ?" $inst_info) + Dialog --yesno "\"$TEXT_INST\"" 5 80 if [ ! $? = 0 ];then systemException \ @@ -677,6 +755,7 @@ Echo "Loading $Source [$Target] " if [ -x /usr/bin/dcounter ];then test -e /progress || mkfifo /progress + Echo "Calling: eval $dump 2>/progress|dd bs=32k of=$Target" errorLogStop ( if ! eval $dump 2>/progress|dd bs=32k of=$Target &>/dev/null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ppc/oemboot/suse-repart new/kiwi/system/boot/ppc/oemboot/suse-repart --- old/kiwi/system/boot/ppc/oemboot/suse-repart 2012-05-22 11:58:09.000000000 +0200 +++ new/kiwi/system/boot/ppc/oemboot/suse-repart 2012-05-25 16:17:52.000000000 +0200 @@ -434,13 +434,31 @@ #-------------------------------------- if searchVolumeGroup;then #====================================== + # setup all free volume name + #-------------------------------------- + export allFreeVolume=LVRoot + if [ ! -z "$kiwi_allFreeVolume" ];then + allFreeVolume=$kiwi_allFreeVolume + fi + #====================================== # resize PV's #-------------------------------------- pvresize $(ddn $imageDiskDevice $rID) #====================================== - # resize LV's + # Resize volumes to requested size + #-------------------------------------- + resizeLVMVolumes + #====================================== + # Extend root + optional allFreeVolume #-------------------------------------- - lvresize -l +100%FREE $imageRootDevice + if [ -z "$OEM_SYSTEMSIZE" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + else + lvextend --size $OEM_SYSTEMSIZE"M" /dev/$VGROUP/LVRoot + if [ "$allFreeVolume" != "LVRoot" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + fi + fi fi #====================================== # resize boot filesystem if needed @@ -746,6 +764,7 @@ lvextend -L +${size}M /dev/$VGROUP/$volume fi if [ $? = 0 ];then + unset FSTYPE resizeFilesystem /dev/$VGROUP/$volume else Echo "Warning: requested size cannot be reached !" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/s390/oemboot/suse-dump new/kiwi/system/boot/s390/oemboot/suse-dump --- old/kiwi/system/boot/s390/oemboot/suse-dump 2012-05-21 12:55:31.000000000 +0200 +++ new/kiwi/system/boot/s390/oemboot/suse-dump 2012-05-25 16:17:52.000000000 +0200 @@ -88,8 +88,10 @@ # disk device and return a list containing the information # device:size-KB,device:size-KB,... # ---- + unset OEMPartitions local disk=$1 - local result + local rids=$2 + local IFS disk=$(echo $disk | sed -e s@^/dev/@@) for i in $(cat /proc/partitions |\ grep -E $disk.+ | sed "s/^ *//;s/ *$//;s/ \{1,\}/:/g" |\ @@ -99,20 +101,34 @@ local kbsize=$(echo $i | cut -f1 -d:) local mbsize=$((kbsize / 1024)) local partid=$(partitionID /dev/$disk $(nd $device)) - if [ ! "$partid" = "83" ];then + local deviceOK=0 + IFS="," + for i in $rids;do + req_psize=$(echo $i | cut -f2 -d:) + req_partid=$(echo $i | cut -f1 -d:) + if [ $partid = $req_partid ] && [ $req_psize -lt $mbsize ];then + deviceOK=1 ; break + fi + done + IFS=$IFS_ORIG + if [ $deviceOK -eq 0 ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition ID mismatch and/or size too small" + Echo "Searching in range: $rids" continue fi probeFileSystem $device if [ ! -z "$FSTYPE" ] && [ ! "$FSTYPE" = "unknown" ];then + Echo "Partition $device with ID $partid and size $mbsize skipped" + Echo "Partition contains a filesystem" continue fi - if [ -z "$result" ];then - result=$device:$mbsize + if [ -z "$OEMPartitions" ];then + OEMPartitions=$device:$mbsize:$partid else - result=$result,$device:$mbsize + OEMPartitions=$OEMPartitions,$device:$mbsize:$partid fi done - echo $result } #====================================== # OEMInstall @@ -317,7 +333,7 @@ reqpart=2 fi #====================================== - # Lookup/Check available partitions + # Check if we can proceed #-------------------------------------- if [ $reqpart -gt 2 ];then Echo "Sorry only disk images with a root and optional boot" @@ -327,8 +343,26 @@ "Installation aborted..." \ "reboot" fi + #====================================== + # Create partition ID search list + #-------------------------------------- + for i in /dev/mapper/${loop}*;do + psize=`partitionSize $i` + psize=$((psize / 1024)) + partnr=$(echo $i | rev | cut -c1) + partid=$(partitionID /dev/$loop $partnr) + if [ -z "$req_partids" ];then + req_partids=$partid:$psize + else + req_partids=$req_partids,$partid:$psize + fi + done + #====================================== + # Check ptable and provide service mode + #-------------------------------------- while true;do - partitions=$(OEMFindPartitions $(getDiskDevice $instDisk)) + OEMFindPartitions $(getDiskDevice $instDisk) $req_partids + partitions=$OEMPartitions if [ ! -z "$partitions" ];then count=0 IFS="," @@ -355,10 +389,10 @@ echo "types below without any filesystem inside !" >> $info echo >> $info count=0 - for i in /dev/mapper/${loop}*;do - psize=`partitionSize $i` - psize=$((psize / 1024)) - partid=$(partitionID /dev/$loop $(nd $i)) + IFS="," + for i in $req_partids;do + psize=$(echo $i | cut -f2 -d:) + partid=$(echo $i | cut -f1 -d:) partname=Root if [ $reqpart -eq 2 ] && [ $count = 0 ];then partname=Boot @@ -368,6 +402,9 @@ echo " Partition Type: 0x$partid" >> $info count=$((count + 1)) done + IFS=$IFS_ORIG + cat $info + Echo "Overlay mounting system on install media..." #====================================== # Mount OEM root image read-write #-------------------------------------- @@ -434,12 +471,9 @@ #====================================== # Do we have a LVM image... #-------------------------------------- - for i in /dev/mapper/${loop}*;do - partid=$(partitionID /dev/$loop $(nd $i)) - if [ "$partid" = "8e" ];then - export haveLVM=yes - fi - done + if [ "$kiwi_lvm" = "true" ];then + export haveLVM=yes + fi #====================================== # Select all required partitions #-------------------------------------- @@ -450,8 +484,47 @@ pname=`echo $partitions | cut -f1 -d:` imageDevice=$pname rID=$(nd $pname) - instItems[0]=$imageName + instItems[0]=/dev/mapper/${loop}p1 instPaths[0]=$imageDevice + elif [ $count -eq $reqpart ] && [ $reqpart -eq 2 ];then + #====================================== + # There are two free and required + #-------------------------------------- + # provided data from real disk + p1=$(echo $partitions | cut -f1 -d,) + p2=$(echo $partitions | cut -f2 -d,) + p1_device=$(echo $p1 | cut -f1 -d:) + p1_partid=$(echo $p1 | cut -f3 -d:) + p2_device=$(echo $p2 | cut -f1 -d:) + p2_partid=$(echo $p2 | cut -f3 -d:) + # requested data from image + req_p1=$(echo $req_partids | cut -f1 -d,) + req_p2=$(echo $req_partids | cut -f2 -d,) + req_p1_partid=$(echo $req_p1 | cut -f1 -d:) + req_p2_partid=$(echo $req_p2 | cut -f1 -d:) + # /.../ + # if the first partition id matches the requested first + # partition id, make the first partition the boot partition + # and the second partition the root partition. if not + # set it up vice versa + # ---- + if [ $req_p1_partid = $p1_partid ];then + imageDevice=$p2_device + rID=$(nd $p2_device) + instItems[0]=/dev/mapper/${loop}p2 + instPaths[0]=$imageDevice + bID=$(nd $p1_device) + instItems[1]=/dev/mapper/${loop}p1 + instPaths[1]=$p1_device + else + imageDevice=$p1_device + rID=$(nd $p1_device) + instItems[0]=/dev/mapper/${loop}p1 + instPaths[0]=$imageDevice + bID=$(nd $p2_device) + instItems[1]=/dev/mapper/${loop}p2 + instPaths[1]=$p2_device + fi else #====================================== # There is a choice, let the user do it @@ -608,8 +681,13 @@ items=$(echo $items | sed -e s@^,@@) Echo "Entering installation mode for disk: $items" if [ -z "$kiwi_oemunattended" ];then + inst_info=$items + if [ -z "$OEM_PARTITION_INSTALL" ];then + inst_info=$(basename $items) + fi TEXT_INST=$( - getText "Destroying ALL data on %1, continue ?" $(basename $items)) + getText "Destroying ALL data on %1, continue ?" $inst_info) + Dialog --yesno "\"$TEXT_INST\"" 5 80 if [ ! $? = 0 ];then systemException \ @@ -677,6 +755,7 @@ Echo "Loading $Source [$Target] " if [ -x /usr/bin/dcounter ];then test -e /progress || mkfifo /progress + Echo "Calling: eval $dump 2>/progress|dd bs=32k of=$Target" errorLogStop ( if ! eval $dump 2>/progress|dd bs=32k of=$Target &>/dev/null diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/s390/oemboot/suse-repart new/kiwi/system/boot/s390/oemboot/suse-repart --- old/kiwi/system/boot/s390/oemboot/suse-repart 2012-05-22 11:58:09.000000000 +0200 +++ new/kiwi/system/boot/s390/oemboot/suse-repart 2012-05-25 16:17:52.000000000 +0200 @@ -435,13 +435,31 @@ #-------------------------------------- if searchVolumeGroup;then #====================================== + # setup all free volume name + #-------------------------------------- + export allFreeVolume=LVRoot + if [ ! -z "$kiwi_allFreeVolume" ];then + allFreeVolume=$kiwi_allFreeVolume + fi + #====================================== # resize PV's #-------------------------------------- pvresize $(ddn $imageDiskDevice $rID) #====================================== - # resize LV's + # Resize volumes to requested size + #-------------------------------------- + resizeLVMVolumes + #====================================== + # Extend root + optional allFreeVolume #-------------------------------------- - lvresize -l +100%FREE $imageRootDevice + if [ -z "$OEM_SYSTEMSIZE" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + else + lvextend --size $OEM_SYSTEMSIZE"M" /dev/$VGROUP/LVRoot + if [ "$allFreeVolume" != "LVRoot" ];then + lvextend -l +100%FREE /dev/$VGROUP/$allFreeVolume + fi + fi fi #====================================== # resize boot filesystem if needed @@ -773,6 +791,7 @@ lvextend -L +${size}M /dev/$VGROUP/$volume fi if [ $? = 0 ];then + unset FSTYPE resizeFilesystem /dev/$VGROUP/$volume else Echo "Warning: requested size cannot be reached !" -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org