Hello community,

here is the log from the commit of package kiwi for openSUSE:Factory checked in 
at 2016-11-17 12:20:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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        2016-10-31 
09:53:11.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes   2016-11-17 
12:20:32.000000000 +0100
@@ -1,0 +2,194 @@
+Tue Nov  8 12:47:53 CET 2016 - m...@suse.de
+
+- v7.04.17 released
+  
+-------------------------------------------------------------------
+Tue Nov  8 12:47:13 CET 2016 - m...@suse.de
+  
+- Delete obsolete pluginsdir from pre-commit
+  
+-------------------------------------------------------------------
+Tue Nov  8 11:29:56 CET 2016 - dcass...@suse.com
+  
+- Testing isoinfo binary correctly
+  
+  In method 'isols()' isoinfo command line tool is used, however the
+  binary was opened before testing if it existed. Apparently the open
+  perl function was not returning an error if the file did not exist.
+  So in the case that isoinfo was not located in /usr/bin/isoinfo the
+  open command was not failing, hence never trying to open the
+  fallback location /usr/lib/genisoimage/isoinfo.
+  
+  This commit fixes #614.
+  
+-------------------------------------------------------------------
+Mon Nov  7 16:50:02 CET 2016 - dcass...@suse.com
+  
+- ActivateImage links correction and read-only test
+  
+  This commit is related to bnc#1006834. Loading the iso image into
+  a read-only ramdisk caused some issues due to the activatImage
+  method cp commands. With this commit the symlinks are consistent
+  during the preinit phase and also before running the cp command
+  it is tested we are not in a read-only filesystem.
+  
+-------------------------------------------------------------------
+Mon Nov  7 16:43:34 CET 2016 - m...@suse.de
+  
+- v7.04.16 released
+  
+-------------------------------------------------------------------
+Mon Nov  7 16:42:51 CET 2016 - m...@suse.de
+  
+- Fixup XML info reported size unit
+  
+  The value is a byte value not a Kbytes value
+  
+-------------------------------------------------------------------
+Mon Nov  7 15:53:08 CET 2016 - m...@suse.de
+  
+- v7.04.15 released
+  
+-------------------------------------------------------------------
+Mon Nov  7 15:52:44 CET 2016 - m...@suse.de
+  
+- Fixup ip setup in setupNic
+  
+  The invocation of ip in setupNic was invalid. The way this
+  was done causes the netmask to be set as broadcast address
+  Related to bnc#1003091
+  
+-------------------------------------------------------------------
+Thu Nov  3 19:21:05 CET 2016 - m...@suse.de
+  
+- v7.04.14 released
+  
+-------------------------------------------------------------------
+Thu Nov  3 10:16:14 CET 2016 - m...@suse.de
+  
+- v7.04.13 released
+  
+-------------------------------------------------------------------
+Thu Nov  3 10:14:21 CET 2016 - m...@suse.de
+  
+- Fixed mountSystemClicFS for older distributions
+  
+  On e.g sle11 the ext4 filesystem support is available in read
+  only mode by default. In order to allow read/write access the
+  filesystem parameters needs to be adapted which can be done
+  by writing to /sys/module/ext4/parameters/rw if present
+  
+-------------------------------------------------------------------
+Thu Nov  3 10:13:39 CET 2016 - m...@suse.de
+  
+- Fixed typo in comments
+  
+  clicfs container is an ext4 not ext3
+  
+-------------------------------------------------------------------
+Wed Nov  2 22:37:28 CET 2016 - dcass...@suse.com
+  
+- UpdateOtherDeviceFstab method was not keeping the first argument
+  
+  updateOtherDeviceFstab is method responsible to include the fstab
+  lines needed to mount additional partitions (apart from swap and
+  root) defined in the description file. This methid had an error
+  overwriting the variable $1 witht the value of $2, which is always
+  empty, as the method it is never used with more than a single
+  parameter.
+  
+-------------------------------------------------------------------
+Wed Nov  2 17:34:14 CET 2016 - m...@suse.de
+  
+- v7.04.12 released
+  
+-------------------------------------------------------------------
+Wed Nov  2 17:33:44 CET 2016 - m...@suse.de
+  
+- Fixed waitForStorageDevice
+  
+  Value for storage_size was not really used
+  
+-------------------------------------------------------------------
+Wed Nov  2 12:00:13 CET 2016 - m...@suse.de
+  
+- v7.04.11 released
+  
+-------------------------------------------------------------------
+Wed Nov  2 09:33:04 CET 2016 - syafaatku...@gmail.com
+  
+- Translated using Weblate (Indonesian)
+  
+  Currently translated at 14.2% (4 of 28 strings)
+  
+-------------------------------------------------------------------
+Tue Nov  1 06:59:30 CET 2016 - hayya...@yahoo.com
+  
+- Translated using Weblate (Persian)
+  
+  Currently translated at 100.0% (28 of 28 strings)
+  
+-------------------------------------------------------------------
+Mon Oct 31 16:40:00 CET 2016 - m...@suse.de
+  
+- Make sure kiwiserver/kiwiservertype is used
+  
+  If kiwiserver and/or kiwiservertype is specified on the
+  kernel commandline they should take over precedence for
+  up- and download of image files compared to the host
+  setup in the IMAGE variable.
+  
+-------------------------------------------------------------------
+Mon Oct 31 15:25:55 CET 2016 - m...@suse.de
+  
+- v7.04.10 released
+  
+-------------------------------------------------------------------
+Mon Oct 31 15:25:08 CET 2016 - m...@suse.de
+  
+- Fixed lease request in wicked call bnc#1003091
+  
+-------------------------------------------------------------------
+Mon Oct 31 11:17:28 CET 2016 - m...@suse.de
+  
+- v7.04.9 released
+  
+-------------------------------------------------------------------
+Thu Oct 27 16:34:06 CEST 2016 - m...@suse.de
+  
+- Put setupNetworkWicked in line with former dhcpcd
+  
+  The way setupNetworkWicked implements the dhcp discovery was
+  incomplete. This Fixes bnc#1003091
+  
+-------------------------------------------------------------------
+Thu Oct 27 15:06:45 CEST 2016 - m...@suse.de
+  
+- Fixup assembling of mdraid array
+  
+  when udev discovers an mdraid array it partially starts the array.
+  That is interfering with the mdadm --assemble call by kiwi which
+  leads to a busy state and an array in inactive state. Therefore
+  the method should wait until the raid array really exists no
+  matter if the assembling is started by udev or kiwi's mdadm call.
+  
+  In addition if the array got assembled but is incomplete because
+  devices are missing or the timout is fired, an additional call to
+  start any array that has been partially assembled is required.
+  
+  pxeRaidAssemble will throw an exception if after this call no
+  md device with a size > 0 will show up after a timeout. This
+  Fixes bnc#1000742
+  
+-------------------------------------------------------------------
+Thu Oct 27 14:49:30 CEST 2016 - m...@suse.de
+  
+- Fixup waitForStorageDevice
+  
+  The function will return success if the size of the storage
+  device can be obtained and is greater than zero. The pure
+  success on reading from the block layer is not enough. In
+  order to actually work with the device it must provide a
+  size > 0. Related to bnc#1000742
+  
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ kiwi.spec ++++++
--- /var/tmp/diff_new_pack.3k5zJQ/_old  2016-11-17 12:20:35.000000000 +0100
+++ /var/tmp/diff_new_pack.3k5zJQ/_new  2016-11-17 12:20:35.000000000 +0100
@@ -27,7 +27,7 @@
 Name:           kiwi
 License:        GPL-2.0
 Group:          System/Management
-Version:        7.04.8
+Version:        7.04.17
 Provides:       kiwi-schema = 6.2
 Provides:       kiwi-image:aci
 Provides:       kiwi-image:lxc

++++++ kiwi-docu.tar.bz2 ++++++

++++++ kiwi-repo.tar.bz2 ++++++

++++++ kiwi.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/.git-hooks/pre-commit 
new/kiwi/.git-hooks/pre-commit
--- old/kiwi/.git-hooks/pre-commit      2016-04-18 16:58:06.000000000 +0200
+++ new/kiwi/.git-hooks/pre-commit      2016-11-08 12:47:43.000000000 +0100
@@ -597,12 +597,8 @@
 # Should the code layout in our repository change,
 # these definitions have to be updated
 my $modulesDir = getcwd() . '/modules';
-my $pluginsDir;
-foreach my $plugdir (glob(getcwd() . '/distribution/*')) {
-    $pluginsDir .= $plugdir. ':';
-}
 my $testInclDir = getcwd() . '/tests/unit/lib';
-my $pathEnv = "$modulesDir:$testInclDir:$pluginsDir";
+my $pathEnv = "$modulesDir:$testInclDir";
 
 my @failedToBuild;
 for my $path (@changedFiles) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision
--- old/kiwi/.revision  2016-04-18 16:58:06.000000000 +0200
+++ new/kiwi/.revision  2016-04-18 16:58:06.000000000 +0200
@@ -1 +1 @@
-f8751719e761017db7048bd9a8ef846343c87f97
+eae4feb90542ac9c2f9c480a67d0fbb6341a4c73
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/locale/fa/LC_MESSAGES/kiwi.po 
new/kiwi/locale/fa/LC_MESSAGES/kiwi.po
--- old/kiwi/locale/fa/LC_MESSAGES/kiwi.po      2016-04-18 16:58:06.000000000 
+0200
+++ new/kiwi/locale/fa/LC_MESSAGES/kiwi.po      2016-11-02 11:59:44.000000000 
+0100
@@ -4,15 +4,15 @@
 msgstr ""
 "Project-Id-Version: kiwi\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: DATE\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: ru\n"
+"PO-Revision-Date: 2016-11-01 06:59+0000\n"
+"Last-Translator: hayyan rostami <hayya...@yahoo.com>\n"
+"Language-Team: Persian <https://l10n.opensuse.org/projects/kiwi/master/fa/>\n"
+"Language: fa\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.6\n"
 
 #. /.../
 #. Copyright (c) 2005 SuSE GmbH Nuernberg, Germany.  All rights reserved.
@@ -20,87 +20,90 @@
 #. boot code for KIWI 
 #.
 msgid "Boot continues in 10 sec"
-msgstr ""
+msgstr "بوت در 10 ثانیه ی آینده ادامه خواهد یافت"
 
 msgid "Enter LUKS passphrase"
-msgstr ""
+msgstr "عبارت عبور LUKS را وارد کنید"
 
 msgid "Do you accept the license agreement ?"
-msgstr ""
+msgstr "آیا مجوز توافق را میپذیرید ؟"
 
 msgid "Do you want to start the System-Recovery ?"
-msgstr ""
+msgstr "آیا میخواهید بازیابی سیستم را شروع کنید ؟"
 
 msgid "Do you want to start the System-Restore ?"
-msgstr ""
+msgstr "آیا میخواهید که بازگردانی سیستم را شروع کنید ؟"
 
 msgid "Restoring base operating system..."
-msgstr ""
+msgstr "در حال بازگردانی سیستم عامل پایه..."
 
 msgid "Destroying ALL data on %1, continue ?"
-msgstr ""
+msgstr "تخریب تمامی داده ها در %1، ادامه میدهید ؟"
 
 msgid "Clean sweep..."
-msgstr ""
+msgstr "تمیز جارو کردن..."
 
 msgid "%1 files from %2 restored..."
-msgstr ""
+msgstr "%1 پرونده از  %2 بازیابی شدند..."
 
 msgid "backing up: %1..."
-msgstr ""
+msgstr "در حال پشتیبانگیری: %1..."
 
 msgid "archiving: %1..."
-msgstr ""
+msgstr "در حال آرشیو کردن: %1..."
 
 msgid "restoring: %1..."
-msgstr ""
+msgstr "در حال بازگردانی: %1..."
 
 msgid "Yes"
-msgstr ""
+msgstr "بله"
 
 msgid "No"
-msgstr ""
+msgstr "خیر"
 
 msgid "OK"
-msgstr ""
+msgstr "خوب"
 
 msgid "Cancel"
-msgstr ""
+msgstr "انصراف"
 
 msgid "Exit"
-msgstr ""
+msgstr "خروج"
 
 msgid "Bootloader installation has failed"
-msgstr ""
+msgstr "نصب بوت لودر ناموفق بود"
 
 msgid ""
 "The system will not be able to reboot. Please make sure to fixup and install "
 "the bootloader before next reboot. Check /var/log/boot.kiwi for details"
 msgstr ""
+"سیستم قادر به راه اندازی مجدد نیست. لطفا مطمئن شوید که بوت لودر را قبل از "
+"راه اندازی مجدد بعدی تعمیر و نصب میکنید. برای جزئیات /var/log/boot.kiwi را "
+"بررسی کنید"
 
 msgid "Please remove the CD/DVD before reboot"
-msgstr ""
+msgstr "لطفا قبل از راه اندازی مجدد CD/DVD را خارج کنید"
 
 msgid "Please unplug the USB stick before reboot"
-msgstr ""
+msgstr "لطفا قبل از راه اندازی مجدد حافظه ی USB را خارج کنید"
 
 msgid "Installation..."
-msgstr ""
+msgstr "نصب..."
 
 msgid "Loading %1"
-msgstr ""
+msgstr "بارگزاری %1"
 
 msgid "Verifying %1"
-msgstr ""
+msgstr "تایید %1"
 
 msgid "Select disk for installation:"
-msgstr ""
+msgstr "دیسک را برای نصب انتخاب کنید:"
 
 msgid "Select %1 partition for installation:"
-msgstr ""
+msgstr "%1 پارتیشن را برای نصب انتخاب کنید:"
 
 msgid "System will be shutdown. Remove USB stick before power on"
-msgstr ""
+msgstr "سیستم خاموش خواهد شد. حافظه ی USB را قبل از روشن کردن جدا کنید"
 
 msgid "Please remove the CD/DVD before shutdown"
-msgstr ""
+msgstr "لطفا قبل از خاموش کردن، CD/DVD را خارج کنید"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/locale/id/LC_MESSAGES/kiwi.po 
new/kiwi/locale/id/LC_MESSAGES/kiwi.po
--- old/kiwi/locale/id/LC_MESSAGES/kiwi.po      2016-04-18 16:58:06.000000000 
+0200
+++ new/kiwi/locale/id/LC_MESSAGES/kiwi.po      2016-11-02 11:59:44.000000000 
+0100
@@ -3,8 +3,8 @@
 "Project-Id-Version: @PACKAGE@\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2006-05-15 15:07+0200\n"
-"PO-Revision-Date: 2002-10-08 13:38+0200\n"
-"Last-Translator: I Made Wiryana <m...@nakula.rvs.uni-bielefeld.de>\n"
+"PO-Revision-Date: 2016-11-02 16:32+0700\n"
+"Last-Translator: Kukuh Syafaat <syafaatku...@gmail.com>\n"
 "Language-Team: Indonesian <i...@suse.de>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
@@ -17,41 +17,43 @@
 #. This file contains the gettext keys used within a gettext call in the
 #. boot code for KIWI 
 #.
+#. boot code for KIWI
+#.
 msgid "Boot continues in 10 sec"
-msgstr ""
+msgstr "Boot berlanjut dalam 10 detik"
 
 msgid "Enter LUKS passphrase"
-msgstr ""
+msgstr "Masukkan LUKS frasa sandi"
 
 msgid "Do you accept the license agreement ?"
-msgstr ""
+msgstr "Apakah Anda menerima perjanjian lisensi?"
 
 msgid "Do you want to start the System-Recovery ?"
-msgstr ""
+msgstr "Apakah Anda ingin memulai System-Recovery?"
 
 msgid "Do you want to start the System-Restore ?"
-msgstr ""
+msgstr "Apakah Anda ingin memulai System-Restore?"
 
 msgid "Restoring base operating system..."
-msgstr ""
+msgstr "Memulihkan sistem operasi dasar..."
 
 msgid "Destroying ALL data on %1, continue ?"
-msgstr ""
+msgstr "Memusnahkan SEMUA data pada %1, lanjutkan?"
 
 msgid "Clean sweep..."
-msgstr ""
+msgstr "Menyapu bersih..."
 
 msgid "%1 files from %2 restored..."
-msgstr ""
+msgstr "%1 berkas dari %2 dipulihkan..."
 
 msgid "backing up: %1..."
-msgstr ""
+msgstr "mem-back up: %1..."
 
 msgid "archiving: %1..."
-msgstr ""
+msgstr "mengarsipkan: %1..."
 
 msgid "restoring: %1..."
-msgstr ""
+msgstr "memulihkan: %1..."
 
 msgid "Yes"
 msgstr "Ya"
@@ -68,43 +70,42 @@
 msgstr "Batal"
 
 msgid "Exit"
-msgstr ""
+msgstr "Keluar"
 
 msgid "Bootloader installation has failed"
-msgstr ""
+msgstr "Instalasi bootloader galat"
 
 msgid ""
 "The system will not be able to reboot. Please make sure to fixup and install "
 "the bootloader before next reboot. Check /var/log/boot.kiwi for details"
 msgstr ""
+"Sistem tidak akan dapat memula lulang. Pastikan untuk memperbaiki dan "
+"memasang  bootloader sebelum memula ulang. Periksa /var/log/boot.kiwi untuk "
+"rincian"
 
 msgid "Please remove the CD/DVD before reboot"
-msgstr ""
+msgstr "Silakan keluarkan CD/DVD sebelum memula ulang"
 
 msgid "Please unplug the USB stick before reboot"
-msgstr ""
+msgstr "Silakan cabut stik USB sebelum memula ulang"
 
-#, fuzzy
 msgid "Installation..."
-msgstr "Instalasi"
+msgstr "Instalasi..."
 
-#, fuzzy
 msgid "Loading %1"
-msgstr "Kesalahan memuatkan %1"
+msgstr "Sedang memuat %1"
 
 msgid "Verifying %1"
-msgstr ""
+msgstr "Sedang memverifikasi %1"
 
-#, fuzzy
 msgid "Select disk for installation:"
-msgstr "Instalasi Hard Disk"
+msgstr "Pilih diska untuk instalasi:"
 
-#, fuzzy
 msgid "Select %1 partition for installation:"
-msgstr "Instalasi Hard Disk"
+msgstr "Pilih partisi %1 untuk instalasi:"
 
 msgid "System will be shutdown. Remove USB stick before power on"
-msgstr ""
+msgstr "Sistem akan dimatikan. Lepas stik USB sebelum menyalakan"
 
 msgid "Please remove the CD/DVD before shutdown"
-msgstr ""
+msgstr "Silakan keluarkan CD/DVD sebelum mematikan"
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     2016-10-25 14:38:00.000000000 +0200
+++ new/kiwi/modules/KIWIGlobals.pm     2016-11-08 12:47:47.000000000 +0100
@@ -2018,7 +2018,7 @@
     # Globals (generic)
     #------------------------------------------
     my %data;
-    $data{Version}         = "7.04.8";
+    $data{Version}         = "7.04.17";
     $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       2016-10-10 16:33:54.000000000 +0200
+++ new/kiwi/modules/KIWIImage.pm       2016-11-03 10:12:59.000000000 +0100
@@ -295,7 +295,7 @@
         $name = $rename;
     }
     #==========================================
-    # Create ext3 filesystem on extend
+    # Create ext4 filesystem on extend
     #------------------------------------------
     if (! $this -> setupEXT2 ( $name,$journal )) {
         return;
@@ -376,7 +376,7 @@
         }
     }
     #==========================================
-    # Create clicfs filesystem from ext3
+    # Create clicfs filesystem from ext4
     #------------------------------------------
     $kiwi -> info (
         "Creating clicfs container: $this->{imageDest}/$name.clicfs"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIIsoLinux.pm 
new/kiwi/modules/KIWIIsoLinux.pm
--- old/kiwi/modules/KIWIIsoLinux.pm    2016-10-10 17:39:43.000000000 +0200
+++ new/kiwi/modules/KIWIIsoLinux.pm    2016-11-08 12:15:09.000000000 +0100
@@ -999,11 +999,16 @@
     my $isoinfo_opts = " -R -l -i $iso 2>/dev/null |";
     my $files;
     local $_;
-    if (! $fd -> open ("/usr/bin/isoinfo" . $isoinfo_opts)) {
-        if (! $fd -> open ("/usr/lib/genisoimage/isoinfo" . $isoinfo_opts)) {
+    my $isoinfo_cmd = "/usr/bin/isoinfo";
+    if (! -x $isoinfo_cmd){
+        $isoinfo_cmd = "/usr/lib/genisoimage/isoinfo";
+        if (! -x $isoinfo_cmd){
             return;
         }
     }
+    if (! $fd -> open ($isoinfo_cmd . $isoinfo_opts)) {
+        return;
+    }
     while(<$fd>) {
         if(/^Directory listing of\s*(\/.*\/)/) {
             $dir = $1;
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     2016-10-25 11:18:18.000000000 +0200
+++ new/kiwi/modules/KIWILinuxRC.sh     2016-11-08 12:45:23.000000000 +0100
@@ -3732,7 +3732,6 @@
     # ----
     local IFS=$IFS_ORIG
     local prefix=$1
-    local prefix=$2
     local nfstab=$prefix/etc/fstab
     local index=0
     local field=0
@@ -5041,7 +5040,7 @@
     local address=$2
     local netmask=$3
     ip addr flush dev $iface
-    ip addr add $address broadcast $netmask dev $iface
+    ip addr add $address/$netmask dev $iface
     ip link set dev $iface up
 }
 #======================================
@@ -5222,24 +5221,14 @@
     local nic_config
     local dhcp_info
     local wicked_dhcp4=/usr/lib/wicked/bin/wickedd-dhcp4
-    for try_iface in ${prefer_iface[*]}; do
-        # try DHCP_DISCOVER on all prefered interfaces
-        if ip link set dev $try_iface up;then
-            if [ $try_iface = "lo" ];then
-                continue
-            fi
-            waitForLinkUp $try_iface
+    for try_iface in ${dev_list[*]}; do
+        # try DHCP_DISCOVER on all interfaces
+        if setIPLinkUp $try_iface; then
             dhcp_info=/var/run/wicked/wicked-${try_iface}.info
             $wicked_dhcp4 --debug all \
                 --test --test-output $dhcp_info $try_iface
-            if [ $? == 0 ] && [ -s $dhcp_info ];then
-                importFile < $dhcp_info
-                # IP address information consists out of two parts but we
-                # are only interested in the plain IPv4 address information
-                IPADDR=$(echo $IPADDR | cut -f1 -d/)
-                if setupNic $try_iface $IPADDR $NETMASK;then
-                    DHCPCD_STARTED="$DHCPCD_STARTED $try_iface"
-                fi
+            if [ $? = 0 ] && [ -s $dhcp_info ];then
+                DHCPCD_STARTED="$DHCPCD_STARTED $try_iface"
             fi
         fi
     done
@@ -5256,19 +5245,39 @@
         fi
     fi
     #======================================
-    # setup routing for first discovered
+    # wait for any preferred interface(s)
     #--------------------------------------
-    for try_iface in $DHCPCD_STARTED; do
+    for repeat_dhcp_on_discovered in 1 2 ;do
+        for try_iface in ${prefer_iface[*]} ; do
+            dhcp_info=/var/run/wicked/wicked-${try_iface}.info
+            if waitForDHCPInterfaceNegotiation $dhcp_info; then
+                break 2
+            fi
+        done
+        sleep 2
+        # /.../
+        # we are behind the wicked dhcp timeout 20s so the only thing
+        # we can do now is to try again on discovered interfaces
+        # ----
+        for try_iface in $DHCPCD_STARTED; do
+            dhcp_info=/var/run/wicked/wicked-${try_iface}.info
+            $wicked_dhcp4 --debug all \
+                --test --test-output $dhcp_info $try_iface
+        done
+        sleep 2
+    done
+    #============================================
+    # select interface from discovered devices
+    #--------------------------------------------
+    for try_iface in ${prefer_iface[*]} $DHCPCD_STARTED; do
         dhcp_info=/var/run/wicked/wicked-${try_iface}.info
-        if [ -s $dhcp_info ]; then
-            export PXE_IFACE=$try_iface
-            ip route add default dev $PXE_IFACE
-            if [ ! -z "$GATEWAYS" ];then
-                # Use first entry as primary gateway
-                local gw=$(echo $GATEWAYS | cut -f1 -d " ")
-                ip route change default via $gw dev $PXE_IFACE
+        if [ -s $dhcp_info ] && grep -q "^IPADDR=" $dhcp_info; then
+            echo '<request type="lease"/>' |\
+                wicked test dhcp4 --request - -- $try_iface > $dhcp_info
+            if [ $? = 0 ];then
+                export PXE_IFACE=$try_iface
+                break
             fi
-            break
         fi
     done
     #======================================
@@ -5291,8 +5300,30 @@
     #--------------------------------------
     dhcp_info=/var/run/wicked/wicked-${PXE_IFACE}.info
     if [ -s $dhcp_info ]; then
-        importFile < /var/run/wicked/wicked-${PXE_IFACE}.info
+        waitForDHCPInterfaceNegotiation $dhcp_info
+        importFile < $dhcp_info
         IPADDR=$(echo $IPADDR | cut -f1 -d/)
+        if setupNic $PXE_IFACE $IPADDR $NETMASK; then
+            if ip route add default dev $PXE_IFACE; then
+                if [ ! -z "$GATEWAYS" ];then
+                    # Use first entry as primary gateway
+                    local gw=$(echo $GATEWAYS | cut -f1 -d " ")
+                    if ! ip route change default via $gw dev $PXE_IFACE; then
+                        systemException \
+                            "Failed to change default GW on $PXE_IFACE !" \
+                        "reboot"
+                    fi
+                fi
+            else
+                systemException \
+                    "Failed to setup default route on $PXE_IFACE !" \
+                "reboot"
+            fi
+        else
+            systemException \
+                "Failed to setup IP address on $PXE_IFACE !" \
+            "reboot"
+        fi
     fi
 }
 #======================================
@@ -6125,7 +6156,7 @@
     local psizeBytes
     local psizeKBytes
     if [ -z "$diskDevice" ] || [ ! -e "$diskDevice" ];then
-        echo 1 ; return 1
+        echo 0 ; return 1
     fi
     psizeBytes=$(blockdev --getsize64 $diskDevice)
     psizeKBytes=$((psizeBytes / 1024))
@@ -6734,6 +6765,24 @@
     #--------------------------------------
     modprobe fuse &>/dev/null
     #======================================
+    # load ext4 module
+    #--------------------------------------
+    # ext4 is used as the container filesystem inside of the
+    # clicfs if present as kernel module it must be loaded prior
+    # to the mount of the fuse layer
+    modprobe ext4 &>/dev/null
+    #======================================
+    # make sure ext4 is in write mode
+    #--------------------------------------
+    # on older distributions the ext4 default setup is in read-only
+    # mode, which is not sufficient for a clicfs based root filesystem.
+    # the ext4 storage is not changed because the clicfs layer moves all
+    # write actions into its own blocklist but ext4 is the root of all
+    # data and thus has to allow to pass through any kind of I/O
+    if [ -e /sys/module/ext4/parameters/rw ];then
+        echo 1 > /sys/module/ext4/parameters/rw
+    fi
+    #======================================
     # create read only mount point
     #--------------------------------------
     mkdir -p $roDir
@@ -7400,26 +7449,26 @@
 #--------------------------------------
 function waitForStorageDevice {
     # /.../
-    # function to check access on a storage device
-    # which could be a whole disk or a partition.
-    # the function will wait until the size of the
-    # storage device could be obtained or the timeout
-    # is reached. Default timeout is 60 seconds, however
-    # it can be set to different value by setting the
-    # DEVICE_TIMEOUT variable in the kernel command
-    # line.
+    # function to check access on a storage device which could be
+    # a whole disk or a partition. The function will wait until
+    # the size of the storage device could be obtained and is
+    # greater than zero or the timeout is reached. Default timeout
+    # is set to 60 seconds, however it can be set to different
+    # value by setting the DEVICE_TIMEOUT variable on the kernel
+    # command line.
     # ----
     local IFS=$IFS_ORIG
     local device=$1
     local check=0
     local limit=30
+    local storage_size=0
     if [[ $DEVICE_TIMEOUT =~ ^[0-9]+$ ]]; then
-       limit=$(((DEVICE_TIMEOUT + 1)/ 2))
+        limit=$(((DEVICE_TIMEOUT + 1)/ 2))
     fi
     udevPending
     while true;do
-        partitionSize $device &>/dev/null
-        if [ $? = 0 ]; then
+        storage_size=$(partitionSize $device)
+        if [ $storage_size -gt 0 ]; then
             sleep 1; return 0
         fi
         if [ $check -eq $limit ]; then
@@ -7461,6 +7510,40 @@
     done
 }
 #======================================
+# setIPLinkUp
+#--------------------------------------
+function setIPLinkUp {
+    local IFS=$IFS_ORIG
+    local try_iface=$1
+    if ip link set dev $try_iface up;then
+        if [ ! $try_iface = "lo" ];then
+            waitForLinkUp $try_iface
+        fi
+        # success
+        return 0
+    fi
+    # error on ip call, failed state
+    return 1
+}
+#======================================
+# waitForDHCPInterfaceNegotiation
+#--------------------------------------
+function waitForDHCPInterfaceNegotiation {
+    local IFS=$IFS_ORIG
+    local dhcp_info=$1
+    for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20;do
+        if [ -s $dhcp_info ] &&
+            grep -q "^IPADDR=" $dhcp_info
+        then
+            # success
+            return 0
+        fi
+        sleep 2
+    done
+    # timeout reached, failed state
+    return 1
+}
+#======================================
 # waitForBlockDevice
 #--------------------------------------
 function waitForBlockDevice {
@@ -7592,11 +7675,11 @@
     #======================================
     # source host is required
     #--------------------------------------
+    if [ ! -z $kiwiserver ];then
+        host=$kiwiserver
+    fi
     if [ -z "$host" ]; then
-        if test -z "$SERVER"; then
-            systemException "No source server specified" "reboot"
-        fi
-        host=$SERVER
+        systemException "No source server specified" "reboot"
     fi
     #======================================
     # set default chunk size
@@ -7607,12 +7690,11 @@
     #======================================
     # set default service type
     #--------------------------------------
+    if [ ! -z $kiwiservertype ]; then
+        type=$kiwiservertype
+    fi
     if [ -z "$type" ]; then
-        if [ -z "$SERVERTYPE" ]; then
-            type="tftp"
-        else
-            type="$SERVERTYPE"
-        fi
+        type="tftp"
     fi
     #======================================
     # set source path + tool if compressed
@@ -7858,18 +7940,17 @@
     if test -z "$path"; then
         systemException "No path specified" "reboot"
     fi
+    if [ ! -z $kiwiserver ];then
+        host=$kiwiserver
+    fi
     if test -z "$host"; then
-        if test -z "$SERVER"; then
-            systemException "No server specified" "reboot"
-        fi
-        host=$SERVER
+        systemException "No server specified" "reboot"
+    fi
+    if [ ! -z $kiwiservertype ]; then
+        type=$kiwiservertype
     fi
     if test -z "$type"; then
-        if test -z "$SERVERTYPE"; then
-            type="tftp"
-        else
-            type="$SERVERTYPE"
-        fi
+        type="tftp"
     fi
     encoded_dest=$(encodeURL "$dest")
     case "$type" in
@@ -8139,6 +8220,7 @@
     local cdDir=/livecd
     if [ -d $cdDir ];then
         mkdir -p $prefix/$cdDir && mount --move /$cdDir $prefix/$cdDir
+        rm -r $cdDir && ln -s $prefix/$cdDir $cdDir
         if [ -d /cow ];then
             mkdir -p $prefix/cow && mount --move /cow $prefix/cow
         fi
@@ -8188,15 +8270,19 @@
     if [ ! -e $prefix/$killall5 ]; then
         touch $prefix/killall5.from-initrd
     fi
-    if ! cp -f -a $killall5 $prefix/$killall5;then
-        systemException "Failed to copy: killall5" "reboot"
+    if touch $(dirname $prefix/$killall5); then
+        if ! cp -f -a $killall5 $prefix/$killall5; then
+            systemException "Failed to copy: killall5" "reboot"
+        fi
     fi
     local pidof=$(lookup pidof)
     if [ ! -e $prefix/$pidof ];then
         touch $prefix/pidof.from-initrd
     fi
-    if ! cp -f -a $pidof $prefix/$pidof;then
-        systemException "Failed to copy: pidof" "reboot"
+    if touch $(dirname $prefix/$pidof); then
+        if ! cp -f -a $pidof $prefix/$pidof;then
+            systemException "Failed to copy: pidof" "reboot"
+        fi
     fi
 }
 #======================================
@@ -10525,6 +10611,15 @@
         fi
         IFS=$IFS_ORIG
         mdadm --assemble --run /dev/md$mdcount $devices
+        if ! waitForStorageDevice /dev/md$mdcount; then
+            # start any array that has been partially assembled
+            mdadm -IRs
+            if ! waitForStorageDevice /dev/md$mdcount; then
+                systemException \
+                    "Failed to assemble raid array, too many devices missing" \
+                "reboot"
+            fi
+        fi
         mdadm -Db /dev/md$mdcount >> $conf
         mdcount=$((mdcount + 1))
     done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kiwi/modules/KIWIXMLInfo.pm 
new/kiwi/modules/KIWIXMLInfo.pm
--- old/kiwi/modules/KIWIXMLInfo.pm     2016-04-18 16:58:06.000000000 +0200
+++ new/kiwi/modules/KIWIXMLInfo.pm     2016-11-07 16:42:41.000000000 +0100
@@ -499,7 +499,7 @@
     # with the custom script and other hook-in mechanism
     # it's not possible to forecast the end size exactly.
     # returns a list with two elements:
-    # rootsizeKB,deletionsizeKB
+    # rootsizeBytes,deletionsizeBytes
     # ---
     my $this   = shift;
     my @result = ();
@@ -846,10 +846,10 @@
                     return;
                 } else {
                     my $sizenode = XML::LibXML::Element -> new("size");
-                    $sizenode -> setAttribute ("rootsizeKB",$sizeinfo[0]);
+                    $sizenode -> setAttribute ("rootsizeBytes",$sizeinfo[0]);
                     if ($sizeinfo[1]) {
                         $sizenode -> setAttribute (
-                            "deletionsizeKB","$sizeinfo[1]"
+                            "deletionsizeBytes","$sizeinfo[1]"
                         );
                     }
                     $scan -> appendChild ($sizenode);


Reply via email to