Hello community, here is the log from the commit of package kiwi for openSUSE:Factory checked in at 2014-05-13 20:46:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kiwi (Old) and /work/SRC/openSUSE:Factory/.kiwi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "kiwi" Changes: -------- --- /work/SRC/openSUSE:Factory/kiwi/kiwi.changes 2014-05-09 06:57:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes 2014-05-13 20:46:17.000000000 +0200 @@ -1,0 +2,76 @@ +Mon May 12 16:24:23 CEST 2014 - ms@suse.de + +- v5.06.87 released + +------------------------------------------------------------------- +Mon May 12 16:21:31 CEST 2014 - ms@suse.de + +- Fixed __checkContainerHasLXC runtime check + * if docker is used it's not required to have lxc installed + as part of the container + +------------------------------------------------------------------- +Mon May 12 16:17:03 CEST 2014 - ms@suse.de + +- Fixed suseSetupProduct + * if no /etc/products.d directory exists, prevent creating + a broken baseproduct link + +------------------------------------------------------------------- +Mon May 12 16:11:27 CEST 2014 - ms@suse.de + +- Fixed kiwi root init() function + * make sure manually created toplevel directories belong to root:root + +------------------------------------------------------------------- +Mon May 12 15:58:56 CEST 2014 - ms@suse.de + +- Added __isInstallBootImage sanity check for all + install media postprocessing modes: + + kiwi --installcd + kiwi --installstick + kiwi --installpxe + + If the given boot image does not provide install + capabilities the user will find out on first boot + which is a bad experience + +------------------------------------------------------------------- +Mon May 12 11:53:09 CEST 2014 - ms@suse.de + +- Fixed service disablement in docker types for non + systemd based distributions e.g SLE11 + +------------------------------------------------------------------- +Fri May 9 16:11:23 CEST 2014 - ms@suse.de + +- Fixed creation of live iso images with flags="compressed" + In this mode the live setup is based on a split image type and + did not allow to have a persistent data block available in the + iso. This patch changed this so that you can also use the + hybridpersistent="true" feature when using the hybrid iso on + e.g a usb stick to store new data persistently + +------------------------------------------------------------------- +Fri May 9 15:38:55 CEST 2014 - ms@suse.de + +- Added live iso type to SLE11 JeOS template + +------------------------------------------------------------------- +Thu May 8 17:27:01 CEST 2014 - ms@suse.de + +- Looks like memtest86+ does not exist for SLE11 anymore + Thus removed it from the SLE11 boot image descriptions + +------------------------------------------------------------------- +Thu May 8 15:45:28 CEST 2014 - ms@suse.de + +- DB: rebuild documentation + +------------------------------------------------------------------- +Thu May 8 15:44:16 CEST 2014 - ms@suse.de + +- DB: Update documentation, remove obsolete information + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.PzPDEl/_old 2014-05-13 20:46:19.000000000 +0200 +++ /var/tmp/diff_new_pack.PzPDEl/_new 2014-05-13 20:46:19.000000000 +0200 @@ -26,7 +26,7 @@ Group: System/Management Url: http://github.com/openSUSE/kiwi Name: kiwi -Version: 5.06.86 +Version: 5.06.87 Release: 0 Provides: kiwi-schema = 6.1 # requirements to build packages ++++++ 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-repo.tar.bz2 ++++++ ++++++ kiwi.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision --- old/kiwi/.revision 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/.revision 2014-05-08 10:42:52.000000000 +0200 @@ -1 +1 @@ -9102d6cf4a38f556c62960cac9cffe4ab04b2bc1 +6b0d28485185cb36e136f7376c573fe081a4e6b1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfig.sh new/kiwi/modules/KIWIConfig.sh --- old/kiwi/modules/KIWIConfig.sh 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/modules/KIWIConfig.sh 2014-05-12 16:25:15.000000000 +0200 @@ -1663,18 +1663,20 @@ if [ -f /etc/SuSE-brand ];then prod=$(head /etc/SuSE-brand -n 1) fi - pushd /etc/products.d - if [ -f $prod.prod ];then - ln -sf $prod.prod baseproduct - elif [ -f SUSE_$prod.prod ];then - ln -sf SUSE_$prod.prod baseproduct - else - prod=$(ls -1t *.prod 2>/dev/null | tail -n 1) - if [ -f $prod ];then - ln -sf $prod baseproduct + if [ -d /etc/products.d ];then + pushd /etc/products.d + if [ -f $prod.prod ];then + ln -sf $prod.prod baseproduct + elif [ -f SUSE_$prod.prod ];then + ln -sf SUSE_$prod.prod baseproduct + else + prod=$(ls -1t *.prod 2>/dev/null | tail -n 1) + if [ -f $prod ];then + ln -sf $prod baseproduct + fi fi + popd fi - popd } #====================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIContainerBuilder.pm new/kiwi/modules/KIWIContainerBuilder.pm --- old/kiwi/modules/KIWIContainerBuilder.pm 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/modules/KIWIContainerBuilder.pm 2014-05-12 16:25:15.000000000 +0200 @@ -692,7 +692,7 @@ my $targetDir = shift; my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; - $kiwi -> info('Disable unwanted services'); + $kiwi -> info("Disable unwanted services\n"); my $sysctl = $locator -> getExecPath('systemctl', $targetDir); my $croot = $locator -> getExecPath('chroot'); if ($sysctl) { @@ -726,33 +726,38 @@ my $data = KIWIQX::qxx ($cmd); my $code = $? >> 8; if ($code != 0) { - $kiwi -> failed(); - $kiwi -> error("Could not disable service: $name"); + $kiwi -> error ("--> Could not disable service: $name"); $kiwi -> failed(); return; + } else { + $kiwi -> info ("--> Disabled: $name"); + $kiwi -> done(); } } } else { - my $ins = $locator -> getExecPath('insserv', $targetDir); - my $cmd = "$croot $targetDir " - . "$ins -r -f " - . 'boot.clock ' - . 'boot.device-mapper ' - . 'boot.klog ' - . 'boot.swap ' - . 'boot.udev ' - . 'kbd ' - . '>/dev/null 2>&1'; - my $data = KIWIQX::qxx ($cmd); - my $code = $? >> 8; - if ($code != 0) { - $kiwi -> failed(); - $kiwi -> error('Could not disable services'); - $kiwi -> failed(); - return; + my $ins = $locator -> getExecPath('chkconfig', $targetDir); + my @services = ( + 'boot.clock', + 'boot.device-mapper', + 'boot.klog', + 'boot.swap', + 'boot.udev' + ); + foreach my $service (@services) { + my $data = KIWIQX::qxx( + "$croot $targetDir $ins -f $service off" + ); + my $code = $? >> 8; + if ($code != 0) { + $kiwi -> error("--> Could not disable service: $service"); + $kiwi -> failed(); + return; + } else { + $kiwi -> info ("--> Disabled: $service"); + $kiwi -> done(); + } } } - $kiwi -> done(); return 1; } 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 2014-05-08 11:36:15.000000000 +0200 +++ new/kiwi/modules/KIWIGlobals.pm 2014-05-12 16:25:15.000000000 +0200 @@ -1398,7 +1398,7 @@ # Globals (generic) #------------------------------------------ my %data; - $data{Version} = "5.06.86"; + $data{Version} = "5.06.87"; $data{Publisher} = "SUSE LINUX GmbH"; $data{Preparer} = "KIWI - http://opensuse.github.com/kiwi"; $data{ConfigName} = "config.xml"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIImage.pm new/kiwi/modules/KIWIImage.pm --- old/kiwi/modules/KIWIImage.pm 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/modules/KIWIImage.pm 2014-05-12 16:25:15.000000000 +0200 @@ -1229,6 +1229,7 @@ if (! defined $namerw) { return; } + my $isofile = $namerw; #========================================== # Call images.sh script #------------------------------------------ @@ -1352,10 +1353,13 @@ SWITCH: for ($gzip) { /^compressed$/ && do { $kiwi -> info ("Creating split ext3 + squashfs...\n"); - if (! $this -> createImageSplit ("ext3,squashfs", 1)) { + if (! $this -> createImageSplit ("ext3,squashfs")) { return; } $namero = $namerw; + $namerw = KIWIGlobals -> instance() -> generateBuildImageName( + $xml,'-', '-read-write' + ); last SWITCH; }; /^(clic|clic_udf)$/ && do { @@ -1577,9 +1581,12 @@ KIWIQX::qxx ("rm $this->{imageDest}/$namerw.*"); } if (defined $gzip) { - #KIWIQX::qxx ("mv $this->{imageDest}/$namero $CD"); - #KIWIQX::qxx ("rm $this->{imageDest}/$namero.*"); KIWIQX::qxx ("ln -s $this->{imageDest}/$namero $CD/$namero"); + if (-e "$this->{imageDest}/$namerw") { + KIWIQX::qxx ( + "ln -s $this->{imageDest}/$namerw $CD/$namero-read-write" + ); + } } else { KIWIQX::qxx ("mkdir -p $CD/read-only-system"); KIWIQX::qxx ("mv $imageTreeReadOnly/* $CD/read-only-system"); @@ -2249,7 +2256,7 @@ #------------------------------------------ $kiwi -> info ("Creating ISO image...\n"); my $isoerror = 1; - my $name = $this->{imageDest}."/".$namerw.".iso"; + my $name = $this->{imageDest}."/".$isofile.".iso"; my $attr = "-R -J -f -pad -joliet-long"; my $flags= $xmltype -> getFlags(); my $volid= $xmltype -> getVolID(); @@ -2383,7 +2390,6 @@ # --- my $this = shift; my $type = shift; - my $nopersistent = shift; my $kiwi = $this->{kiwi}; my $cmdL = $this->{cmdL}; my $imageTree = $this->{imageTree}; @@ -2580,10 +2586,6 @@ push @persistFiles,$name; } } - if ($nopersistent) { - push (@tempFiles, @persistFiles); - undef @persistFiles; - } #========================================== # search temporary files, respect excepts #------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIImageCreator.pm new/kiwi/modules/KIWIImageCreator.pm --- old/kiwi/modules/KIWIImageCreator.pm 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/modules/KIWIImageCreator.pm 2014-05-12 16:25:15.000000000 +0200 @@ -1200,6 +1200,11 @@ my $cmdL = $this->{cmdL}; my $prof = $this->{buildProfiles}; $kiwi -> info ("Creating install ISO from: $ird...\n"); + if (! $this -> __isInstallBootImage($ird)) { + $kiwi -> error ("Given boot image has no install code"); + $kiwi -> failed (); + return; + } if (! defined $sys) { $kiwi -> error ("No Install system image specified"); $kiwi -> failed (); @@ -1234,6 +1239,11 @@ my $cmdL = $this->{cmdL}; my $prof = $this->{buildProfiles}; $kiwi -> info ("Creating install Stick from: $ird...\n"); + if (! $this -> __isInstallBootImage($ird)) { + $kiwi -> error ("Given boot image has no install code"); + $kiwi -> failed (); + return; + } if (! defined $sys) { $kiwi -> error ("No Install system image specified"); $kiwi -> failed (); @@ -1268,6 +1278,11 @@ my $cmdL = $this->{cmdL}; my $prof = $this->{buildProfiles}; $kiwi -> info ("Creating install PXE data set from: $ird...\n"); + if (! $this -> __isInstallBootImage($ird)) { + $kiwi -> error ("Given boot image has no install code"); + $kiwi -> failed (); + return; + } if (! defined $sys) { $kiwi -> error ("No Install system image specified"); $kiwi -> failed (); @@ -1356,6 +1371,22 @@ #========================================== # Private helper methods #------------------------------------------ +sub __isInstallBootImage { + # ... + # Test a given boot image (cpio) if it contains the dump + # file which is kiwi's code to install images. If yes the + # boot image has install capabilities + # --- + my $this = shift; + my $boot = shift; + my $data = KIWIQX::qxx ("gzip -cd $boot | cpio -it | grep -q ^dump$ 2>&1"); + my $code = $? >> 8; + if ($code != 0) { + return; + } + return 1; +} + #========================================== # __applyAdditionalXMLOverrides #------------------------------------------ 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 2014-05-08 10:42:56.000000000 +0200 +++ new/kiwi/modules/KIWILinuxRC.sh 2014-05-12 16:25:15.000000000 +0200 @@ -22,7 +22,7 @@ export ELOG_FILE=/var/log/boot.kiwi export TRANSFER_ERRORS_FILE=/tmp/transfer.errors export UFONT=/usr/share/fbiterm/fonts/b16.pcf.gz -export HYBRID_PERSISTENT_FS=ext4 +export HYBRID_PERSISTENT_FS=ext3 export HYBRID_PERSISTENT_ID=83 export HYBRID_PERSISTENT_DIR=/read-write export UTIMER_INFO=/dev/utimer @@ -6102,12 +6102,14 @@ local haveKByte local haveMByte local needMByte - if [ "$haveLuks" = "yes" ]; then + if [ -e "$HYBRID_RW" ];then + rwDevice=$HYBRID_RW + elif [ "$haveLuks" = "yes" ]; then rwDevice="/dev/mapper/luksReadWrite" elif [ "$haveLVM" = "yes" ]; then rwDevice="/dev/$kiwi_lvmgroup/LVRoot" else - rwDevice=`getNextPartition $mountDevice` + rwDevice=$(getNextPartition $mountDevice) fi mkdir /read-only >/dev/null # /.../ @@ -6165,6 +6167,43 @@ fi cd /mnt && tar xf $rootfs >/dev/null && cd / # /.../ + # check for a read-write data file and put it on the read-write + # device or to the root tmpfs + # --- + if [ -e ${loopf}-read-write ];then + local target=/mnt + if [ -e "$HYBRID_RW" ];then + mkdir -p /mnt/read-write + kiwiMount "$rwDevice" "/mnt/read-write" + target=/mnt/read-write + fi + mkdir -p /mnt-tmp + if ! mount ${loopf}-read-write /mnt-tmp;then + systemException \ + "Failed to mount read-write data file" \ + "reboot" + fi + pushd /mnt-tmp &>/dev/null + for item in *;do + if [ -L /$target/$item ];then + rm -f /$target/$item + fi + if [ ! -e /$target/$item ];then + if ! cp -a /mnt-tmp/$item $target;then + systemException \ + "Failed to copy $item to $target" \ + "reboot" + fi + fi + done + popd &>/dev/null + if [ -e "$HYBRID_RW" ];then + umount /mnt/read-write + fi + umount /mnt-tmp + rmdir /mnt-tmp + fi + # /.../ # create a /mnt/read-only mount point and move the /read-only # mount into the /mnt root tree. After that remove the /read-only # directory and create a link to /mnt/read-only instead @@ -6180,7 +6219,7 @@ # mount the read-write partition to /mnt/read-write and create # a link to it: /read-write -> /mnt/read-write # ---- - mkdir /mnt/read-write >/dev/null + mkdir -p /mnt/read-write >/dev/null kiwiMount "$rwDevice" "/mnt/read-write" rm -rf /read-write >/dev/null ln -s /mnt/read-write /read-write >/dev/null @@ -8316,7 +8355,9 @@ #====================================== # create filesystem on write partition #-------------------------------------- - if ! mkfs.$HYBRID_PERSISTENT_FS -L hybrid -O ^has_journal,uninit_bg -E lazy_itable_init $(ddn $device $pID);then + local hybrid_opts="-E lazy_itable_init" + local hybrid_device=$(ddn $device $pID) + if ! mkfs.$HYBRID_PERSISTENT_FS -L hybrid $hybrid_opts $hybrid_device;then Echo "Failed to create hybrid persistent filesystem" Echo "Persistent writing deactivated" unset kiwi_hybridpersistent 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 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/modules/KIWIRoot.pm 2014-05-12 16:25:15.000000000 +0200 @@ -407,6 +407,7 @@ my $imageVersion = $xml -> getPreferences() -> getVersion(); my $imageName = $xml -> getImageName(); KIWIQX::qxx ("mkdir -p $root/etc"); + KIWIQX::qxx ("chown root:root $root/etc"); if ( ! open ($FD, '>', "$imageVersionFile")) { $kiwi -> error ("Failed to create version file: $!"); $kiwi -> failed (); @@ -480,6 +481,9 @@ $kiwi -> info ("Creating default template files for new root system"); if (! defined $this->{cacheRoot}) { KIWIQX::qxx ("mkdir -p $root/dev"); + KIWIQX::qxx ("chown root:root $root/dev"); + KIWIQX::qxx ("mkdir -m 755 -p $root/proc"); + KIWIQX::qxx ("chown root:root $root/proc"); KIWIQX::qxx ("mkdir -m 755 -p $root/dev/pts"); KIWIQX::qxx ("mknod -m 666 $root/dev/null c 1 3"); KIWIQX::qxx ("mknod -m 666 $root/dev/zero c 1 5"); @@ -497,6 +501,8 @@ KIWIQX::qxx ("mknod -m 640 $root/dev/loop2 b 7 2"); KIWIQX::qxx ("mknod -m 640 $root/dev/loop3 b 7 3"); KIWIQX::qxx ("mkdir -p $root/etc/sysconfig"); + KIWIQX::qxx ("mkdir -m 755 -p $root/var"); + KIWIQX::qxx ("chown root:root $root/var"); # for zypper we need a yast log dir if ($packager eq "zypper") { KIWIQX::qxx ("mkdir -p $root/var/log/YaST2"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIRuntimeChecker.pm new/kiwi/modules/KIWIRuntimeChecker.pm --- old/kiwi/modules/KIWIRuntimeChecker.pm 2014-05-08 10:42:56.000000000 +0200 +++ new/kiwi/modules/KIWIRuntimeChecker.pm 2014-05-12 16:25:15.000000000 +0200 @@ -354,7 +354,7 @@ return 1; } my $name = $type -> getTypeName(); - if ($name =~ /^lxc|^docker/smx) { + if ($name eq 'lxc') { my $pckgs = $xml -> getPackages(); push @{$pckgs}, @{$xml -> getBootstrapPackages()}; for my $pckg (@{$pckgs}) { @@ -373,7 +373,6 @@ return 1; } - #========================================== # __checkLVMoemSizeSettings #------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/isoboot/suse-SLED11/config.xml new/kiwi/system/boot/ix86/isoboot/suse-SLED11/config.xml --- old/kiwi/system/boot/ix86/isoboot/suse-SLED11/config.xml 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/system/boot/ix86/isoboot/suse-SLED11/config.xml 2014-05-12 16:25:15.000000000 +0200 @@ -111,7 +111,6 @@ <package name="kiwi-tools"/> <package name="lvm2"/> <package name="make"/> - <package name="memtest86+"/> <package name="netcfg"/> <package name="openssl-certs"/> <package name="parted"/> @@ -180,7 +179,6 @@ <package name="lvm2"/> <package name="make"/> <package name="mdadm"/> - <package name="memtest86+"/> <package name="mingetty"/> <package name="mktemp"/> <package name="mtools"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/isoboot/suse-SLES11/config.xml new/kiwi/system/boot/ix86/isoboot/suse-SLES11/config.xml --- old/kiwi/system/boot/ix86/isoboot/suse-SLES11/config.xml 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/system/boot/ix86/isoboot/suse-SLES11/config.xml 2014-05-12 16:25:15.000000000 +0200 @@ -112,7 +112,6 @@ <package name="kiwi-tools"/> <package name="lvm2"/> <package name="make"/> - <package name="memtest86+"/> <package name="netcfg"/> <package name="openssl-certs"/> <package name="parted"/> @@ -181,7 +180,6 @@ <package name="lvm2"/> <package name="make"/> <package name="mdadm"/> - <package name="memtest86+"/> <package name="mingetty"/> <package name="mktemp"/> <package name="mtools"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/template/ix86/suse-SLE11-JeOS/config.xml new/kiwi/template/ix86/suse-SLE11-JeOS/config.xml --- old/kiwi/template/ix86/suse-SLE11-JeOS/config.xml 2014-05-08 10:42:52.000000000 +0200 +++ new/kiwi/template/ix86/suse-SLE11-JeOS/config.xml 2014-05-12 16:25:15.000000000 +0200 @@ -24,6 +24,7 @@ <keytable>us.map.gz</keytable> <timezone>Europe/Berlin</timezone> <hwclock>utc</hwclock> + <type image="iso" boot="isoboot/suse-SLES11" flags="compressed" hybrid="true"/> </preferences> <preferences profiles="ec2Flavour"> <type image="vmx" filesystem="ext3" boot="vmxboot/suse-SLES11" bootprofile="ec2" bootkernel="ec2k" bootloader="grub" kernelcmdline="xencons=xvc0 console=xvc0 multipath=off splash=silent showopts"/> -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org