Hello community, here is the log from the commit of package kiwi for openSUSE:Factory checked in at 2014-05-09 06:57:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-02 09:51:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes 2014-05-09 06:57:39.000000000 +0200 @@ -1,0 +2,209 @@ +Thu May 8 11:33:15 CEST 2014 - ms@suse.de + +- v5.06.86 released + +------------------------------------------------------------------- +Thu May 8 11:32:32 CEST 2014 - ms@suse.de + +- fixed typo in spec file, unbalanced %if + +------------------------------------------------------------------- +Thu May 8 10:42:14 CEST 2014 - ms@suse.de + +- v5.06.85 released + +------------------------------------------------------------------- +Thu May 8 10:26:22 CEST 2014 - ms@suse.de + +- Cleanup list of authors per package in spec file + +------------------------------------------------------------------- +Thu May 8 10:09:30 CEST 2014 - ms@suse.de + +- Update package helper tools to auto update the kiwi-schema + provides in the spec file if the kiwi RNC schema has changed + +------------------------------------------------------------------- +Thu May 8 10:04:14 CEST 2014 - ms@suse.de + +- Added kiwi-schema metadata provides to spec file + This was requested by the slepos team to be able to require + the right kiwi version and schema to yast2-product-creator + +------------------------------------------------------------------- +Thu May 8 09:28:14 CEST 2014 - ms@suse.de + +- Added compatibility fix for fetchFile function + * Instead of matching for the exact value 'uncompressed' the + function treats all values matching the expression '^uncomp' + as a statement to indicate an uncompressed image + +------------------------------------------------------------------- +Wed May 7 21:41:33 CEST 2014 - ms@suse.de + +- Fixed __hasBootDescription runtime check + * the check should also work with custom user boot descriptions + +------------------------------------------------------------------- +Wed May 7 21:24:21 CEST 2014 - ms@suse.de + +- Follup up fix for spec file requirements: + * need virt-utils for SLE11, use qemu-tools for anything else + * add virt-utils/qemu-tools to base kiwi package only + +------------------------------------------------------------------- +Wed May 7 19:24:16 CEST 2014 - ms@suse.de + +- Added custom filters for kiwi --describe in KIWIAnalyse.filter + +------------------------------------------------------------------- +Wed May 7 15:43:59 CEST 2014 - ms@suse.de + +- DB: rebuild man pages + +------------------------------------------------------------------- +Wed May 7 15:43:13 CEST 2014 - ms@suse.de + +- DB: update man page + +------------------------------------------------------------------- +Wed May 7 13:39:27 CEST 2014 - ms@suse.de + +- v5.06.84 released + +------------------------------------------------------------------- +Wed May 7 13:37:18 CEST 2014 - ms@suse.de + +- Fixed spec file requirements: + Replaced virt-utils with qemu-tools, virt-utils was dropped + +------------------------------------------------------------------- +Wed May 7 08:50:19 CEST 2014 - ms@suse.de + +- v5.06.83 released + +------------------------------------------------------------------- +Wed May 7 08:49:14 CEST 2014 - ms@suse.de + +- DB: update schema documentation + +------------------------------------------------------------------- +Wed May 7 08:44:02 CEST 2014 - ms@suse.de + +- Follow up fix for directory check in cleanMount + use the exact same parameter for test as for umount + +------------------------------------------------------------------- +Tue May 6 23:27:09 CEST 2014 - ms@suse.de + +- Fixed SLE12 JeOS template + * install patterns with the namedCollection attribute + * make sure the desired release package is installed in + the bootstrap phase to avoid the installation of this + strange dummy-release package which I don't understand + what it is good for at all + +------------------------------------------------------------------- +Tue May 6 09:05:01 CEST 2014 - ms@suse.de + +- Fixed directory check in cleanMount + If no repo alias is set the repo uri is also used as name for + the mount point directory. In this case the name could contain + quoted characters. Perl's test operator can't deal with shell + escaped directory names. Thus we check with the shell test + built-in if the mount point directory exists + +------------------------------------------------------------------- +Mon May 5 15:14:26 CEST 2014 - ms@suse.de + +- v5.06.82 released + +------------------------------------------------------------------- +Mon May 5 14:44:17 CEST 2014 - ms@suse.de + +- DB: rebuild documentation + +------------------------------------------------------------------- +Mon May 5 12:57:20 CEST 2014 - tom_schr@suse.de + +- Added some info about Docker and KIWI + +------------------------------------------------------------------- +Mon May 5 09:41:49 CEST 2014 - ms@suse.de + +- Fixed check for .repo file + The repo path is stored quoted for use use with the shell + but the perl test operator can't deal with shell escaped + characters and failed. Thus shell's test built-in is used + instead + +------------------------------------------------------------------- +Fri May 2 16:26:22 CEST 2014 - ms@suse.de + +- v5.06.81 released + +------------------------------------------------------------------- +Fri May 2 16:15:40 CEST 2014 - ms@suse.de + +- Fixed suseService function + * Use of undefined variable $action where it should be $target + +------------------------------------------------------------------- +Fri May 2 15:29:56 CEST 2014 - ms@suse.de + +- Fixed 32bit EFI build + * if secure boot is requested, warn and switch to non + secure EFI boot. shim only exists for 64bit linux + * fixed lookup of bootloader stage files. In case of + 32bit EFI the lookup path must be 'i386-efi' + +------------------------------------------------------------------- +Fri May 2 15:27:35 CEST 2014 - ms@suse.de + +- Added 32bit efi modules package to boot descriptions + for openSUSE 12.3 iso | oem and vmxboot + +------------------------------------------------------------------- +Fri May 2 12:01:40 CEST 2014 - ms@suse.de + +- Fixed unit test Test/kiwiContainerConfigWriter.pm + * message output has changed in the container code + +------------------------------------------------------------------- +Fri May 2 10:32:15 CEST 2014 - fcastelli@suse.de + +- Added openSUSE 13.1 template for docker target. + +------------------------------------------------------------------- +Thu May 1 22:23:08 CEST 2014 - ms@suse.de + +- Fixed __populateRepos in software analyser + * The CD/DVD repos from zypper were not correctly added + as iso repo in the kiwi generated clone configuration + +------------------------------------------------------------------- +Thu May 1 20:57:44 CEST 2014 - ms@suse.de + +- Fixed container image name extension + * if docker is set the extension should be set to docker and not lxc + +------------------------------------------------------------------- +Wed Apr 30 12:45:39 CEST 2014 - ms@suse.de + +- Added support for docker image types + + kiwi supports creation of lxc images which are stored below + var/lib/lxc/<container-name>. The docker subsystem expects + the image to be packed differently. Thus we added a new type: ++++ 12 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/kiwi/kiwi.changes ++++ and /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.QwUhcv/_old 2014-05-09 06:57:41.000000000 +0200 +++ /var/tmp/diff_new_pack.QwUhcv/_new 2014-05-09 06:57:41.000000000 +0200 @@ -26,8 +26,9 @@ Group: System/Management Url: http://github.com/openSUSE/kiwi Name: kiwi -Version: 5.06.80 +Version: 5.06.86 Release: 0 +Provides: kiwi-schema = 6.1 # requirements to build packages BuildRequires: diffutils BuildRequires: e2fsprogs @@ -81,6 +82,8 @@ Requires: rsync Requires: screen Requires: util-linux +%if 0%{?suse_version} +# SUSE specific requires %if 0%{?suse_version} >= 1210 Requires: libsolv-tools Requires: perl-solv @@ -88,6 +91,16 @@ Requires: perl-satsolver >= 0.42 Requires: satsolver-tools %endif +%if %suse_version == 1110 +Requires: virt-utils +%else +Requires: qemu-tools +%endif +%endif +%if 0%{?rhel_version} || 0%{?fedora} || 0%{?centos} +# RHEL specific requires +Requires: qemu-img +%endif # recommended to run kiwi %if 0%{?suse_version} Recommends: db45-utils @@ -160,6 +173,7 @@ Authors: -------- Marcus Schaefer <ms@suse.com> + Robert Schweikert <rjschwei@suse.com> %package -n kiwi-instsource Summary: KIWI - Product media creator @@ -169,7 +183,6 @@ Requires: createrepo Requires: inst-source-utils Requires: kiwi = %{version} -Requires: virt-utils %if 0%{?suse_version} > 1120 BuildArch: noarch %endif @@ -200,8 +213,8 @@ Authors: -------- - Thomas Schraitle - Marcus Schaefer + Thomas Schraitle <toms@suse.com> + Marcus Schaefer <ms@suse.com> %package -n kiwi-tools Summary: KIWI - Collection of Boot Helper Tools @@ -264,10 +277,6 @@ Requires: dosfstools %if 0%{?suse_version} Requires: genisoimage -Requires: virt-utils -%endif -%if 0%{?rhel_version} || 0%{?fedora} || 0%{?centos} -Requires: qemu-img %endif %description -n kiwi-desc-isoboot @@ -303,11 +312,9 @@ Requires: parted %if 0%{?suse_version} Requires: multipath-tools -Requires: virt-utils %endif %if 0%{?rhel_version} || 0%{?fedora} || 0%{?centos} Requires: device-mapper-multipath -Requires: qemu-img %endif %ifarch %ix86 x86_64 Requires: squashfs @@ -346,13 +353,6 @@ License: GPL-2.0+ Group: System/Management Requires: kiwi = %{version} -%ifarch ppc ppc64 ppc64le s390 s390x -Requires: virt-utils -%else -%if 0%{?suse_version} >= 1130 -Requires: virt-utils -%endif -%endif %description -n kiwi-desc-netboot kiwi boot (initrd) image for booting PXE images. @@ -387,11 +387,9 @@ %if 0%{?suse_version} Requires: genisoimage Requires: multipath-tools -Requires: virt-utils %endif %if 0%{?rhel_version} || 0%{?fedora} || 0%{?centos} Requires: device-mapper-multipath -Requires: qemu-img %endif %ifarch %ix86 x86_64 Requires: squashfs @@ -444,7 +442,7 @@ Authors: -------- - Marcus Schaefer + Marcus Schaefer <ms@suse.com> %endif %ifarch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x %arm aarch64 @@ -482,7 +480,7 @@ Authors: -------- - Marcus Schaefer + Marcus Schaefer <ms@suse.com> %endif %package -n kiwi-test @@ -499,6 +497,11 @@ This package contains the unit tests executed during package build and used for development testing. +Authors: +-------- + Robert Schweikert <rjschwei@suse.com> + Marcus Schaefer <ms@suse.com> + %prep %setup -q -n %name -a2 -a3 ++++++ 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/.newrelease new/kiwi/.newrelease --- old/kiwi/.newrelease 2014-02-21 12:44:03.000000000 +0100 +++ new/kiwi/.newrelease 2014-05-08 10:42:56.000000000 +0200 @@ -7,4 +7,7 @@ version=$v_part1.$v_part2 -./.newversion $version +schema=$(cat modules/KIWISchema.rnc | grep "attribute schemaversion") +schema=$(echo $schema | cut -f 2 -d { | cut -f 1 -d } | tr -d \") + +./.newversion $version $schema diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/.newversion new/kiwi/.newversion --- old/kiwi/.newversion 2014-02-21 12:44:03.000000000 +0100 +++ new/kiwi/.newversion 2014-05-08 10:42:56.000000000 +0200 @@ -1,10 +1,19 @@ #!/bin/bash version=$1 +schema=$2 +if [ -z "$version" ] || [ -z "$schema" ];then + echo "Need a version and a schema version" + exit 1 +fi if ! echo $version | grep -q -E "^[0-9]+\.[0-9]+\.[0-9]+$";then echo "NOT A VERSION ! ... abort" exit 1 fi +if ! echo $schema | grep -q -E "^[0-9]+\.[0-9]$";then + echo "NOT A SCHEMA VERSION ! ... abort" + exit 1 +fi # code version update cat modules/KIWIGlobals.pm | sed \ @@ -13,8 +22,10 @@ # spec file version update cat rpm/kiwi.spec | sed \ - -e s"@Version: .*@Version: $version@" \ + -e "0,/Version: .*/{s/Version: .*/Version: $version/}" \ + -e s"/kiwi-schema = .*/kiwi-schema = $schema/" \ -e s"@kiwi (Version .*@kiwi (Version $version)@" \
rpm/kiwi.spec.new && mv rpm/kiwi.spec.new rpm/kiwi.spec
-echo "update to version: $version... done" +echo "update to version: ${version}... done" +echo "update to schema: ${schema}... done" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision --- old/kiwi/.revision 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/.revision 2014-05-08 10:42:52.000000000 +0200 @@ -1 +1 @@ -b8a815445395991bc9b75931807bd6193550d920 +9102d6cf4a38f556c62960cac9cffe4ab04b2bc1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/metadata/KIWIAnalyse.filter new/kiwi/metadata/KIWIAnalyse.filter --- old/kiwi/metadata/KIWIAnalyse.filter 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi/metadata/KIWIAnalyse.filter 2014-05-08 10:42:56.000000000 +0200 @@ -0,0 +1,8 @@ +# /.../ +# The following rules are embedded into a 'grep -E' call of the +# format '^/(\$|rule1|rule2|rule[n]' +# ---- +boot +var\/lib\/rpm +var\/lib\/ntp +var\/cache diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIAnalyseCustomData.sh new/kiwi/modules/KIWIAnalyseCustomData.sh --- old/kiwi/modules/KIWIAnalyseCustomData.sh 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIAnalyseCustomData.sh 2014-05-08 10:42:56.000000000 +0200 @@ -44,9 +44,14 @@ sort -u $1 -o $1 } +function custom_filter { + local filter=/usr/share/kiwi/metadata/KIWIAnalyse.filter + grep -v '^#' $filter | tr '\n' '|' +} + function filter_items { # files and directories matching here are filtered out - echo -n "^/(\$|tmp|dev|proc|sys|run|lost\+found|var\/run)" + echo -n "^/(\$|$(custom_filter)tmp|dev|proc|sys|run|lost\+found|var\/run)" } function filter_filesystem { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIAnalyseSoftware.pm new/kiwi/modules/KIWIAnalyseSoftware.pm --- old/kiwi/modules/KIWIAnalyseSoftware.pm 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIAnalyseSoftware.pm 2014-05-08 10:42:52.000000000 +0200 @@ -365,6 +365,7 @@ $source = "dir://".$mpoint; push @{$mounts},$mpoint; $osc{$product}{$source}{flag} = "local"; + $origsrc = "iso://$iso"; } #========================================== # handle source type http|https|ftp:// 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 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIBoot.pm 2014-05-08 10:42:52.000000000 +0200 @@ -483,8 +483,11 @@ $kiwi -> warning ( "UEFI Secure boot is only supported on x86_64" ); - $kiwi -> skipped (); - $firmware = 'bios'; + $kiwi -> skipped(); + $kiwi -> warning ( + "--> switching to non secure EFI boot\n" + ); + $firmware = 'efi'; } } #========================================== @@ -3618,6 +3621,9 @@ my $grub_efi = 'grub2'; my $grub_share = 'grub2'; my $lib = 'lib'; + if ($arch ne 'x86_64') { + $efipc = 'i386-efi'; + } if ($zipped) { $test = $unzip; } 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-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIConfig.sh 2014-05-08 10:42:52.000000000 +0200 @@ -144,10 +144,10 @@ echo "suseService: no service name specified" return fi - if [ $action = off ];then + if [ $target = off ];then suseRemoveService $service else - suseInsertService $service $action + suseInsertService $service $target fi } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfigWriter.pm new/kiwi/modules/KIWIConfigWriter.pm --- old/kiwi/modules/KIWIConfigWriter.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/modules/KIWIConfigWriter.pm 2014-05-08 10:42:52.000000000 +0200 @@ -100,6 +100,27 @@ } #========================================== +# setConfigFileName +#------------------------------------------ +sub setConfigFileName { + # ... + # Set the configuration file name + # --- + my $this = shift; + my $name = shift; + my $kiwi = $this->{kiwi}; + if (! $name) { + my $msg = 'setConfigFileName: no filename argument ' + . 'provided, retaining current data.'; + $kiwi -> error($msg); + $kiwi -> failed(); + return; + } + $this->{name} = $name; + return $this; +} + +#========================================== # setConfigDir #------------------------------------------ sub setConfigDir { @@ -126,4 +147,5 @@ $this->{confDir} = $confDir; return $this; } + 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfigWriterFactory.pm new/kiwi/modules/KIWIConfigWriterFactory.pm --- old/kiwi/modules/KIWIConfigWriterFactory.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/modules/KIWIConfigWriterFactory.pm 2014-05-08 10:42:52.000000000 +0200 @@ -90,8 +90,11 @@ my $xml = $this->{xml}; my $typeName = $xml -> getImageType() -> getTypeName(); SWITCH: for ($typeName) { - /^lxc/smx && do { + /^lxc|^docker/smx && do { my $writer = KIWIContainerConfigWriter -> new($xml, $confDir); + if (($writer) && ($typeName eq 'docker')) { + $writer -> setConfigFileName('default.conf'); + } return $writer; }; } 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-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIContainerBuilder.pm 2014-05-08 10:42:52.000000000 +0200 @@ -318,18 +318,48 @@ my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; my $xml = $this->{xml}; + my $type = $xml -> getImageType(); + my $imageType = $type -> getTypeName(); + my $extension = '-lxc'; $kiwi -> info('Creating container tarball...'); + if ($imageType eq 'docker') { + $extension = '-docker'; + } my $baseBuildDir = $this -> getBaseBuildDirectory(); my $origin = $baseBuildDir . '/' . $this -> p_getBaseWorkingDir(); my $globals = KIWIGlobals -> instance(); - my $imgFlName = $globals -> generateBuildImageName($xml, '-', '-lxc'); + my $imgFlName = $globals -> generateBuildImageName( + $xml, '-', $extension + ); $imgFlName .= '.tbz'; my $tar = $locator -> getExecPath('tar'); - my $cmd = "cd $origin; " - . "$tar -cjf $baseBuildDir/$imgFlName etc var 2>&1"; - my $data = KIWIQX::qxx ($cmd); + if (! $tar) { + $kiwi -> failed(); + $kiwi -> error("Could not find tar utility"); + $kiwi -> failed(); + return; + } + my @dirlist; + if (opendir my($dh), $origin) { + @dirlist = grep { !/^\.\.?$/x } readdir $dh; + closedir $dh; + } else { + $kiwi -> failed(); + $kiwi -> error("Couldn't open dir $origin: $!"); + $kiwi -> failed(); + return; + } + if (! @dirlist) { + $kiwi -> failed(); + $kiwi -> error("Got empty dirlist"); + $kiwi -> failed(); + return; + } + my $data = KIWIQX::qxx ( + "$tar -C $origin -cjf $baseBuildDir/$imgFlName @dirlist 2>&1" + ); my $code = $? >> 8; if ($code != 0) { $kiwi -> failed(); @@ -350,25 +380,30 @@ # ... # Create the directory for the container configuration file # --- - my $this = shift; + my $this = shift; my $cmdL = $this->{cmdL}; my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; - my $xml = $this->{xml}; - $kiwi -> info('Creating container configuration directory'); + my $xml = $this->{xml}; + my $msg; + $kiwi -> info("Creating container configuration directory\n"); # Build the directory name - my $dirPath = '/etc/lxc/'; - my $name = $xml -> getImageType() -> getContainerName(); - if (! $name) { - $kiwi -> failed(); - my $msg = 'KIWIContainerBuilder:__createContainerConfigDir ' - . 'internal error no container name found. Please file a bug.'; - $kiwi -> error($msg); - $kiwi -> failed(); - return; + my $dirPath = 'etc/lxc'; + my $type = $xml -> getImageType(); + my $containerName = $type -> getContainerName(); + my $imageType = $type -> getTypeName(); + if ($imageType eq "lxc") { + if (! $containerName) { + $msg = 'KIWIContainerBuilder:__createContainerConfigDir ' + . 'internal error no container name found. Please file a bug.'; + $kiwi -> error($msg); + $kiwi -> failed(); + return; + } + $dirPath .= '/'.$containerName; } - $dirPath .= $name; my $path = $this -> __createWorkingDir($dirPath); + $kiwi -> info ("--> $dirPath"); if (! $path) { $kiwi -> failed(); return; @@ -584,19 +619,25 @@ my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; my $xml = $this->{xml}; + my $dirPath; + my $msg; $kiwi -> info('Creating rootfs target directory'); # Build the directory name - my $dirPath = 'var/lib/lxc/'; - my $name = $xml -> getImageType() -> getContainerName(); - if (! $name) { - $kiwi -> failed(); - my $msg = 'KIWIContainerBuilder:__createTargetRootTree ' - . 'internal error no container name found. Please file a bug.'; - $kiwi -> error($msg); - $kiwi -> failed(); - return; + my $type = $xml -> getImageType(); + my $imageType = $type -> getTypeName(); + if ($imageType eq 'lxc') { + $dirPath = 'var/lib/lxc/'; + my $containerName = $type -> getContainerName(); + if (! $containerName) { + $kiwi -> failed(); + $msg = 'KIWIContainerBuilder:__createTargetRootTree ' + . 'internal error no container name found. Please file a bug.'; + $kiwi -> error($msg); + $kiwi -> failed(); + return; + } + $dirPath .= $containerName . '/rootfs'; } - $dirPath .= $name . '/rootfs'; my $path = $this -> __createWorkingDir($dirPath); if (! $path) { $kiwi -> failed(); @@ -620,10 +661,15 @@ my $locator = $this->{locator}; my $basePath = $this -> getBaseBuildDirectory(); my $baseWork = $this -> p_getBaseWorkingDir(); - if (! $path && ! $baseWork) { + my $dirPath; + if (! $baseWork) { return $basePath; } - my $dirPath = $basePath . '/' . $baseWork . '/' . $path; + if ($path) { + $dirPath = $basePath . '/' . $baseWork . '/' . $path; + } else { + $dirPath = $basePath . '/' . $baseWork; + } my $mdir = $locator -> getExecPath('mkdir'); my $data = KIWIQX::qxx ("$mdir -p $dirPath"); my $code = $? >> 8; @@ -647,7 +693,7 @@ my $kiwi = $this->{kiwi}; my $locator = $this->{locator}; $kiwi -> info('Disable unwanted services'); - my $sysctl = $locator -> getExecPath('systemct', $targetDir); + my $sysctl = $locator -> getExecPath('systemctl', $targetDir); my $croot = $locator -> getExecPath('chroot'); if ($sysctl) { my @srvs = qw ( @@ -669,6 +715,10 @@ } } for my $srvPath (@services) { + if (-l $srvPath) { + # only real service files can be disabled + next; + } my @parts = split /\//smx, $srvPath; my $name = $parts[-1]; my $cmd = "$croot $targetDir " @@ -677,7 +727,7 @@ 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; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIContainerConfigWriter.pm new/kiwi/modules/KIWIContainerConfigWriter.pm --- old/kiwi/modules/KIWIContainerConfigWriter.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/modules/KIWIContainerConfigWriter.pm 2014-05-08 10:42:52.000000000 +0200 @@ -61,7 +61,10 @@ my $this = shift; my $kiwi = $this->{kiwi}; my $xml = $this->{xml}; - $kiwi -> info('Write container configuration file'); + my $loc = $this -> getConfigDir(); + my $fileName = $this -> getConfigFileName(); + $kiwi -> info("Write container configuration file\n"); + $kiwi -> info ("--> $loc/$fileName"); my $vmConfig = $xml -> getVMachineConfig(); my $config = '# KIWI generated container configuration file' . "\n"; if ($vmConfig) { @@ -115,10 +118,6 @@ . 'lxc.cgroup.devices.allow = c 5:2 rwm' . "\n" . '# rtc' . "\n" . 'lxc.cgroup.devices.allow = c 254:0 rwm' . "\n"; - - my $loc = $this -> getConfigDir(); - my $fileName = $this -> getConfigFileName(); - my $status = open (my $CONF, '>', "$loc/$fileName"); if (! $status) { $kiwi -> failed(); @@ -132,6 +131,7 @@ print $CONF $config; $status = close $CONF; if (! $status) { + $kiwi -> oops(); my $msg = 'Unable to close configuration file' . "$loc/$fileName"; $kiwi -> warning($msg); 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-04-29 16:29:54.000000000 +0200 +++ new/kiwi/modules/KIWIGlobals.pm 2014-05-08 11:36:15.000000000 +0200 @@ -1398,7 +1398,7 @@ # Globals (generic) #------------------------------------------ my %data; - $data{Version} = "5.06.80"; + $data{Version} = "5.06.86"; $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-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIImage.pm 2014-05-08 10:42:52.000000000 +0200 @@ -1690,7 +1690,10 @@ $kiwi -> warning ( "UEFI Secure boot is only supported on x86_64" ); - $kiwi -> skipped (); + $kiwi -> skipped(); + $kiwi -> warning ( + "--> switching to non secure EFI boot\n" + ); $firmware = 'efi'; } #========================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIImageBuildFactory.pm new/kiwi/modules/KIWIImageBuildFactory.pm --- old/kiwi/modules/KIWIImageBuildFactory.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/modules/KIWIImageBuildFactory.pm 2014-05-08 10:42:52.000000000 +0200 @@ -94,7 +94,7 @@ my $xml = $this->{xml}; my $typeName = $xml -> getImageType() -> getTypeName(); SWITCH: for ($typeName) { - /^lxc/smx && do { + /^lxc|^docker/smx && do { my $builder = KIWIContainerBuilder -> new($xml, $cmdL, $unPImg); return $builder; }; 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-04-29 16:29:54.000000000 +0200 +++ new/kiwi/modules/KIWILinuxRC.sh 2014-05-08 10:42:56.000000000 +0200 @@ -6729,7 +6729,7 @@ #====================================== # set source path + tool if compressed #-------------------------------------- - if [ ! -z "$izip" ] && [ ! "$izip" = "uncompressed" ];then + if [ ! -z "$izip" ] && [[ ! "$izip" =~ ^uncomp ]];then if [ $izip = "compressed" ] || [ "$izip" = "compressed-gzip" ]; then unzip="gzip -d" path=$(echo "$path" | sed -e s@\\.gz@@) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIManagerZypper.pm new/kiwi/modules/KIWIManagerZypper.pm --- old/kiwi/modules/KIWIManagerZypper.pm 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIManagerZypper.pm 2014-05-08 10:42:52.000000000 +0200 @@ -351,9 +351,16 @@ $alias_filename =~ s/\//_/g; my $repo = "$root/$dataDir/repos/$alias_filename.repo"; my $imgRepo = "$root/etc/zypp/repos.d/$alias_filename.repo"; + # /.../ + # test if the repo exists with a shell test built-in + # this is because the repo string could contain shell escaped + # characters which is not supported by perl's test operators + # ---- + KIWIQX::qxx ("test -f $repo"); + my $repo_exists = ($? >> 8) == 0; my $sed; if (! $chroot) { - if (! -f $repo) { + if (! $repo_exists) { $kiwi -> info ("Adding bootstrap zypper service: $alias"); $data = KIWIQX::qxx ("@zypper --root \"$root\" $sadd 2>&1"); $code = $? >> 8; @@ -379,7 +386,7 @@ $kiwi -> done (); } else { my @zypper= @{$this->{zypper_chroot}}; - if (! -f $repo) { + if (! $repo_exists) { $kiwi -> info ("Adding chroot zypper service: $alias"); $data = KIWIQX::qxx ("@kchroot @zypper $sadd 2>&1"); $code = $? >> 8; 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-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIRoot.pm 2014-05-08 10:42:52.000000000 +0200 @@ -1534,16 +1534,27 @@ } my @newList= (); foreach my $item (reverse @mountList) { + # check for matching exclude expression if specified if (defined $expr) { if ($item !~ /$expr/) { push (@newList,$item); next; } } - $kiwi -> loginfo ("Umounting path: $item\n"); - if (! -d $item) { + # /.../ + # test if the item is a directory with a shell test built-in + # this is because the repo string could contain shell escaped + # characters which is not supported by perl's test operators + # ---- + KIWIQX::qxx ("test -d \"$item\""); + my $mountpoint_exists = ($? >> 8) == 0; + if (! $mountpoint_exists) { + $kiwi -> loginfo ( + "Warning: \"$item\" not a directory or not existing\n" + ); next; } + $kiwi -> loginfo ("Umounting path: $item\n"); my $data = KIWIQX::qxx ("umount \"$item\" 2>&1"); my $code = $? >> 8; if (($code != 0) && ($data !~ "not mounted")) { 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-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIRuntimeChecker.pm 2014-05-08 10:42:56.000000000 +0200 @@ -354,7 +354,7 @@ return 1; } my $name = $type -> getTypeName(); - if ($name =~ /^lxc/smx) { + if ($name =~ /^lxc|^docker/smx) { my $pckgs = $xml -> getPackages(); push @{$pckgs}, @{$xml -> getBootstrapPackages()}; for my $pckg (@{$pckgs}) { @@ -1171,6 +1171,7 @@ btrfs clicfs cpio + docker ext2 ext3 ext4 @@ -1273,17 +1274,10 @@ if (! $description) { return 1; } - if ($imgType !~ /iso|pxe|oem|vmx/) { - return 1; - } - if ($imgType eq 'pxe') { - $imgType = 'net'; - } - my $gdata = KIWIGlobals -> instance() -> getKiwiConfig(); - if (! -d "$gdata->{System}/${imgType}boot") { - my $msg = "The required boot image description for the "; - $msg.= "selected build type: '$imgType' does not exist. "; - $msg.= "Please install the package: kiwi-desc-${imgType}boot"; + my $bootdir = $locator -> getBootImageDescription($description); + if (! $bootdir) { + my $msg = "The required boot image description: '$description' "; + $msg.= "for the selected build type: '$imgType' does not exist. "; $kiwi -> error($msg); $kiwi -> failed(); return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWISchema.rnc new/kiwi/modules/KIWISchema.rnc --- old/kiwi/modules/KIWISchema.rnc 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWISchema.rnc 2014-05-08 10:42:52.000000000 +0200 @@ -1703,7 +1703,7 @@ k.type.image.attribute = ## Specifies the image type attribute image { - "btrfs" | "clicfs" | "cpio" | "ext2" | "ext3" | + "btrfs" | "clicfs" | "cpio" | "docker" | "ext2" | "ext3" | "ext4" | "iso" | "lxc" | "oem" | "product" | "pxe" | "reiserfs" | "split" | "squashfs" | "tbz" | "vmx" | "xfs" | "zfs" } @@ -2604,8 +2604,8 @@ # div { k.packages.type.attribute = attribute type { - "bootstrap" | "delete" | "image" | "iso" | "lxc" | "oem" | "pxe" | - "split" | "testsuite" | "vmx" + "bootstrap" | "delete" | "docker" | "image" | "iso" | + "lxc" | "oem" | "pxe" | "split" | "testsuite" | "vmx" } k.packages.profiles.attribute = k.profiles.attribute k.packages.patternType.attribute = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWISchema.rng new/kiwi/modules/KIWISchema.rng --- old/kiwi/modules/KIWISchema.rng 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWISchema.rng 2014-05-08 10:42:52.000000000 +0200 @@ -2297,6 +2297,7 @@ <value>btrfs</value> <value>clicfs</value> <value>cpio</value> + <value>docker</value> <value>ext2</value> <value>ext3</value> <value>ext4</value> @@ -3761,6 +3762,7 @@ <choice> <value>bootstrap</value> <value>delete</value> + <value>docker</value> <value>image</value> <value>iso</value> <value>lxc</value> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIXMLTypeData.pm new/kiwi/modules/KIWIXMLTypeData.pm --- old/kiwi/modules/KIWIXMLTypeData.pm 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIXMLTypeData.pm 2014-05-08 10:42:52.000000000 +0200 @@ -2195,6 +2195,7 @@ btrfs clicfs cpio + docker ext2 ext3 ext4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIXMLValidator.pm new/kiwi/modules/KIWIXMLValidator.pm --- old/kiwi/modules/KIWIXMLValidator.pm 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/modules/KIWIXMLValidator.pm 2014-05-08 10:42:52.000000000 +0200 @@ -213,9 +213,9 @@ } #========================================== -# __checkConainerSpec +# __checkContainerSpec #------------------------------------------ -sub __checkConainerSpec { +sub __checkContainerSpec { # ... # Check that the container attribute is set and has a valid name # --- @@ -1217,7 +1217,7 @@ # relevant inside the initrd # ---- my %typeChildDeps = ( - 'machine' => 'image:cpio,lxc,oem,vmx,split', + 'machine' => 'image:cpio,lxc,docker,oem,vmx,split', 'oemconfig' => 'image:cpio,oem,split', 'pxedeploy' => 'image:cpio,pxe', 'size' => ':', # generic @@ -1745,7 +1745,7 @@ if (! $this -> __checkBootSpecPresent()) { return; } - if (! $this -> __checkConainerSpec()) { + if (! $this -> __checkContainerSpec()) { return; } if (! $this -> __checkDefaultProfSetting()) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/isoboot/suse-12.3/config.xml new/kiwi/system/boot/ix86/isoboot/suse-12.3/config.xml --- old/kiwi/system/boot/ix86/isoboot/suse-12.3/config.xml 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/system/boot/ix86/isoboot/suse-12.3/config.xml 2014-05-08 10:42:52.000000000 +0200 @@ -119,6 +119,8 @@ <package name="grub"/> <package name="grub2"/> <package name="grub2-efi"/> + <package name="grub2-i386-efi" arch="i686"/> + <package name="grub2-i386-efi" arch="i586"/> <package name="shim" arch="x86_64"/> <package name="hdparm"/> <package name="hwinfo"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/oemboot/suse-12.3/config.xml new/kiwi/system/boot/ix86/oemboot/suse-12.3/config.xml --- old/kiwi/system/boot/ix86/oemboot/suse-12.3/config.xml 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/system/boot/ix86/oemboot/suse-12.3/config.xml 2014-05-08 10:42:52.000000000 +0200 @@ -136,6 +136,8 @@ <package name="grub"/> <package name="grub2"/> <package name="grub2-efi"/> + <package name="grub2-i386-efi" arch="i686"/> + <package name="grub2-i386-efi" arch="i586"/> <package name="shim" arch="x86_64"/> <package name="hwinfo"/> <package name="iputils"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/system/boot/ix86/vmxboot/suse-12.3/config.xml new/kiwi/system/boot/ix86/vmxboot/suse-12.3/config.xml --- old/kiwi/system/boot/ix86/vmxboot/suse-12.3/config.xml 2014-04-29 16:29:49.000000000 +0200 +++ new/kiwi/system/boot/ix86/vmxboot/suse-12.3/config.xml 2014-05-08 10:42:52.000000000 +0200 @@ -113,6 +113,8 @@ <package name="grub"/> <package name="grub2"/> <package name="grub2-efi"/> + <package name="grub2-i386-efi" arch="i686"/> + <package name="grub2-i386-efi" arch="i586"/> <package name="shim" arch="x86_64"/> <package name="hwinfo"/> <package name="kernel-firmware"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/template/ix86/suse-SLE12-JeOS/config.xml new/kiwi/template/ix86/suse-SLE12-JeOS/config.xml --- old/kiwi/template/ix86/suse-SLE12-JeOS/config.xml 2014-04-29 16:29:50.000000000 +0200 +++ new/kiwi/template/ix86/suse-SLE12-JeOS/config.xml 2014-05-08 10:42:52.000000000 +0200 @@ -68,16 +68,7 @@ <source path="http://download.suse.de/ibs/SUSE:/SLE-12:/GA/standard/"/> </repository> <packages type="image"> -<!-- The installation of patterns in SLE12 requires the SLE12 zypper --> -<!-- Thus the following definition only works when building on SLE12 --> -<!-- <namedCollection name="Minimal"/>--> -<!-- In order to stay compatible we just install the pattern package --> - <package name="patterns-sles-Minimal"/> -<!-- The installation of products in SLE12 requires the SLE12 zypper --> -<!-- Thus the following definition only works when building on SLE12 --> -<!-- <product name="SLES"/>--> -<!-- In order to stay compatible we just install the product package --> - <package name="sles-release-DVD"/> + <namedCollection name="Minimal"/> <package name="plymouth-branding-SLE" bootinclude="true"/> <package name="grub2-branding-SLE" bootinclude="true"/> <package name="ifplugd"/> @@ -128,6 +119,19 @@ <package name="glibc-locale"/> <package name="cracklib-dict-full"/> <package name="ca-certificates"/> +<!-- + The installation of products in SLE12 requires the SLE12 zypper + Thus the following definition only works when building on SLE12 + + <product name="SLES"/> + + In order to stay compatible we just install the product rpm + package. It's required to install the release package in the + bootstrap phase in order to avoid the installation of an auto + selected dummy-release package which later conflicts with all + other release packages +--> + <package name="sles-release"/> </packages> <packages type="delete"> <package name="kernel-debug"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/lib/Test/kiwiContainerBuilder.pm new/kiwi/tests/unit/lib/Test/kiwiContainerBuilder.pm --- old/kiwi/tests/unit/lib/Test/kiwiContainerBuilder.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/tests/unit/lib/Test/kiwiContainerBuilder.pm 2014-05-08 10:42:52.000000000 +0200 @@ -438,7 +438,7 @@ my $builder = KIWIContainerBuilder -> new($xml, $cmdL, $image); my $res = $builder -> __createContainerConfigDir(); my $msg = $kiwi -> getMessage(); - my $expected = 'Creating container configuration directory'; + my $expected = "Creating container configuration directory\n--> etc/lxc/mycontainer"; $this -> assert_str_equals($expected, $msg); my $msgT = $kiwi -> getMessageType(); $this -> assert_str_equals('info', $msgT); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/tests/unit/lib/Test/kiwiContainerConfigWriter.pm new/kiwi/tests/unit/lib/Test/kiwiContainerConfigWriter.pm --- old/kiwi/tests/unit/lib/Test/kiwiContainerConfigWriter.pm 2014-03-04 11:48:57.000000000 +0100 +++ new/kiwi/tests/unit/lib/Test/kiwiContainerConfigWriter.pm 2014-05-08 10:42:52.000000000 +0200 @@ -307,8 +307,8 @@ my $writer = KIWIContainerConfigWriter -> new($xml, $cDir); my $res = $writer -> p_writeConfigFile(); my $msg = $kiwi -> getInfoMessage(); - my $expected = 'Write container configuration file' - . 'Write fstab for container'; + my $expected = "Write container configuration file\n" + . "--> /tmp/kiwiDevTests/configWrite fstab for container"; $this -> assert_str_equals($expected, $msg); my $msgT = $kiwi -> getMessageType(); $this -> assert_str_equals('info', $msgT); -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org