Hello community,

here is the log from the commit of package libguestfs for openSUSE:Factory 
checked in at 2015-05-20 23:57:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libguestfs (Old)
 and      /work/SRC/openSUSE:Factory/.libguestfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libguestfs"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libguestfs/libguestfs.changes    2014-10-31 
12:26:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libguestfs.new/libguestfs.changes       
2015-05-20 23:57:44.000000000 +0200
@@ -1,0 +2,45 @@
+Mon Mar  9 14:14:52 UTC 2015 - [email protected]
+
+- Force feature usb into initrd to avoid build-compare noise
+
+-------------------------------------------------------------------
+Mon Mar  9 13:58:47 UTC 2015 - [email protected]
+
+- Workaround bug in patch(1) which does not follow symlinks anymore
+
+-------------------------------------------------------------------
+Tue Feb 24 09:43:58 UTC 2015 - [email protected]
+
+- Update to version 1.26.10
+  * gcc5: test-tool: Initialize local variable.
+  * lua: Define luaL_checkint which was deprecated in lua 5.3.
+  * tools: fix free -m invocation
+
+-------------------------------------------------------------------
+Fri Feb  6 13:45:22 UTC 2015 - [email protected]
+
+- Make zypper called with -n parameter when installing packages.
+  (bsc#916567)
+
+-------------------------------------------------------------------
+Tue Dec  9 15:44:39 UTC 2014 - [email protected]
+
+- Package guestfs_lvm_conf.aug (bnc#908632)
+
+-------------------------------------------------------------------
+Wed Nov 26 11:02:59 UTC 2014 - [email protected]
+
+- Handle more dist versions when patching mkinitrd
+
+-------------------------------------------------------------------
+Mon Nov 24 17:02:33 UTC 2014 - [email protected]
+
+- Add isofs and other fs drivers (bnc#906692)
+
+-------------------------------------------------------------------
+Mon Nov 24 16:52:12 UTC 2014 - [email protected]
+
+- Use fixed /etc/hosts, scsi_dh_modules and ibft_hostname to
+  reduce build-compare noise
+
+-------------------------------------------------------------------

Old:
----
  libguestfs-1.26.9.tar.xz

New:
----
  libguestfs-1.26.10.tar.xz
  libguestfs.mkinitrd.1115.patch
  libguestfs.mkinitrd.1140.patch
  libguestfs.mkinitrd.1230.patch
  libguestfs.mkinitrd.1310.patch

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

Other differences:
------------------
++++++ libguestfs.spec ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:45.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:45.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libguestfs
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2011 Michal Hrusecky <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -17,7 +17,7 @@
 #
 
 
-Version:        1.26.9
+Version:        1.26.10
 Release:        0
 
 %define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
@@ -194,8 +194,12 @@
 Source20:       libguestfs.mkinitrd.boot-btrfs.sh
 Source21:       libguestfs.mkinitrd.setup-btrfs.sh
 #
+Source1310:     libguestfs.mkinitrd.1310.patch
+Source1230:     libguestfs.mkinitrd.1230.patch
 Source1220:     libguestfs.mkinitrd.1220.patch
 Source1210:     libguestfs.mkinitrd.1210.patch
+Source1140:     libguestfs.mkinitrd.1140.patch
+Source1115:     libguestfs.mkinitrd.1115.patch
 Source1110:     libguestfs.mkinitrd.1110.patch
 #
 Source10001:    libguestfs.test.simple.run-libugestfs-test-tool.sh
@@ -727,27 +731,31 @@
 ' mkinitrd/scripts/boot-guestfs.sh
 diff -u mkinitrd/scripts/boot-guestfs.sh~ mkinitrd/scripts/boot-guestfs.sh || :
 #
-%if %suse_version < 1230
+pushd mkinitrd
 patched=
 for p in \
+       %{S:1310} \
+       %{S:1230} \
        %{S:1220} \
        %{S:1210} \
+       %{S:1140} \
+       %{S:1115} \
        %{S:1110} \
        ;
 do
-       if patch --dry-run -p1 < $p
+       if patch --dry-run -p2 < $p
        then
-               patch -p1 < $p
+               patch -p2 < $p
                patched=$p
                break
-       elif patch --dry-run -R -p1 < $p
+       elif patch --dry-run -R -p2 < $p
        then
                patched=$p
                break
        fi
 done
+popd
 test -n "$patched"
-%endif
 
 ./mkinitrd_setup.sh  \
        -s $PWD/mkinitrd/scripts \
@@ -774,6 +782,7 @@
 additional_modules="
 "
 env PATH=${RPM_BUILD_ROOT}/usr/bin:${RPM_BUILD_ROOT}/usr/sbin:${PATH} \
+LIBGUESTFS_SRC_APPLIANCE_DIR=`cd $PWD/appliance ; pwd -P` \
 bash -x \
 ./mkinitrd.sh \
        -l $PWD/mkinitrd \
@@ -781,7 +790,7 @@
        -i initramfs.${arch}.img \
        -b $PWD/mkinitrd/boot_tmp \
        -m "$additional_modules" \
-       -f "lvm2 dm md network nfs btrfs" \
+       -f "lvm2 dm md network nfs btrfs usb" \
        -B
 #
 mkdir -vp $RPM_BUILD_ROOT%{_libdir}/guestfs

++++++ 0000-hotfix.patch ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:46.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:46.000000000 +0200
@@ -28,3 +28,17 @@
      ADD_ARG (argv, i, fs_buf);
      ADD_ARG (argv, i, NULL);
  
+Index: libguestfs-1.26.9/customize/customize_run.ml
+===================================================================
+--- libguestfs-1.26.9.orig/customize/customize_run.ml
++++ libguestfs-1.26.9/customize/customize_run.ml
+@@ -105,8 +105,7 @@ exec >>%s 2>&1
+     | "yum" ->
+       sprintf "yum -y install %s" quoted_args
+     | "zypper" ->
+-      (* XXX Should we use -n option? *)
+-      sprintf "zypper in %s" quoted_args
++      sprintf "zypper -n in %s" quoted_args
+     | "unknown" ->
+       eprintf (f_"%s: --install is not supported for this guest operating 
system\n")
+         prog;

++++++ libguestfs-1.26.9.tar.xz -> libguestfs-1.26.10.tar.xz ++++++
++++ 95508 lines of diff (skipped)

++++++ libguestfs.mkinitrd.1110.patch ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:48.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:48.000000000 +0200
@@ -1,9 +1,82 @@
 ---
+ mkinitrd/scripts/setup-ibft.sh       |    2 
+ mkinitrd/scripts/setup-network.sh    |   11 +++-
  mkinitrd/scripts/setup-prepare.sh    |   94 
++++++++++++++++++++++++++++-------
  mkinitrd/scripts/setup-progs.sh      |    4 -
+ mkinitrd/scripts/setup-scsi_dh.sh    |    2 
  mkinitrd/scripts/setup-sharedlibs.sh |   60 +++++++++++++---------
- 3 files changed, 114 insertions(+), 44 deletions(-)
+ 6 files changed, 126 insertions(+), 47 deletions(-)
 
+Index: 1110/mkinitrd/scripts/setup-ibft.sh
+===================================================================
+--- 1110.orig/mkinitrd/scripts/setup-ibft.sh
++++ 1110/mkinitrd/scripts/setup-ibft.sh
+@@ -21,22 +21,22 @@ ibft_set_iface() {
+       interface=$iface
+       drvlink=$(get_network_module $interface)
+       if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
+           nettype=dhcp
+           read ibft_dhcp < $ibft_nic/dhcp
+           [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
+       else
+           nettype=static
+       fi
+     fi
+ }
+ 
+ ibft_nic=/sys/firmware/ibft/ethernet0
+-ibft_hostname=$(hostname)
++ibft_hostname=localhost
+ 
+ if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
+     ibft_available=1
+     ibft_set_iface
+ fi
+ save_var ibft_available
+ save_var ibft_hostname
+ save_var ibft_nic
+Index: 1110/mkinitrd/scripts/setup-network.sh
+===================================================================
+--- 1110.orig/mkinitrd/scripts/setup-network.sh
++++ 1110/mkinitrd/scripts/setup-network.sh
+@@ -291,27 +291,36 @@ if [ "$nettype" = "ifup" ] ; then
+           verbose "[NETWORK]\tifup: $interface"
+       fi
+     done
+     interface=
+ fi
+ 
+ # Copy the /etc/resolv.conf when the IP is static
+ if test -n "$static_interfaces"; then
+     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
+     cp /etc/resolv.conf $tmp_mnt/etc
+ fi
+ 
+ # Copy netcfg files (bnc#468090, bnc#714945)
+-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
++cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
++cat > $tmp_mnt/etc/hosts <<_EOH_
++127.0.0.1 localhost
++::1       localhost ipv6-localhost ipv6-loopback
++fe00::0   ipv6-localnet
++ff00::0   ipv6-mcastprefix
++ff02::1   ipv6-allnodes
++ff02::2   ipv6-allrouters
++ff02::3   ipv6-allhosts
++_EOH_
+ 
+ # Get static IP configuration if requested
+ for iface in $static_interfaces; do
+     static_ips="$static_ips $(get_ip_config $iface)"
+ done
+ 
+ mkdir -p $tmp_mnt/var/lib/dhcpcd
+ mkdir -p $tmp_mnt/var/run
+ 
+ cp_bin /lib/mkinitrd/bin/ipconfig.sh $tmp_mnt/bin/ipconfig
+ if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
+     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
+ fi
 Index: 1110/mkinitrd/scripts/setup-prepare.sh
 ===================================================================
 --- 1110.orig/mkinitrd/scripts/setup-prepare.sh
@@ -193,6 +266,25 @@
  
  [ -e "bin/sh" ] || ln -s /bin/bash bin/sh
  
+Index: 1110/mkinitrd/scripts/setup-scsi_dh.sh
+===================================================================
+--- 1110.orig/mkinitrd/scripts/setup-scsi_dh.sh
++++ 1110/mkinitrd/scripts/setup-scsi_dh.sh
+@@ -1,13 +1,13 @@
+ #!/bin/bash
+ #
+ #%stage: device
+ #
+ # Include all scsi_dh_* modules and load them on boot (bnc#727428 et al)
+ 
+ scsi_dh_modules=
+-for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"); do
++for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko" | sort); do
+       i=${i%.ko}
+       scsi_dh_modules="$scsi_dh_modules ${i##*/}"
+ done
+ 
+ save_var scsi_dh_modules
 Index: 1110/mkinitrd/scripts/setup-sharedlibs.sh
 ===================================================================
 --- 1110.orig/mkinitrd/scripts/setup-sharedlibs.sh

++++++ libguestfs.mkinitrd.1115.patch ++++++
---
 mkinitrd/scripts/setup-ibft.sh       |    2 
 mkinitrd/scripts/setup-network.sh    |   11 +++-
 mkinitrd/scripts/setup-prepare.sh    |   90 +++++++++++++++++++++++++++++------
 mkinitrd/scripts/setup-progs.sh      |    4 -
 mkinitrd/scripts/setup-scsi_dh.sh    |    2 
 mkinitrd/scripts/setup-sharedlibs.sh |   60 +++++++++++++----------
 6 files changed, 124 insertions(+), 45 deletions(-)

Index: 1115/mkinitrd/scripts/setup-ibft.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-ibft.sh
+++ 1115/mkinitrd/scripts/setup-ibft.sh
@@ -22,23 +22,23 @@ ibft_set_iface() {
        drvlink="$drvlink $(get_network_module $interface)"
        if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
            nettype=dhcp
            read ibft_dhcp < $ibft_nic/dhcp
            [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
        else
            nettype=static
        fi
     fi
 }
 
 ibft_nic=/sys/firmware/ibft/ethernet0
 ibft_nic2=/sys/firmware/ibft/ethernet1
-ibft_hostname=$(hostname)
+ibft_hostname=localhost
 
 if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
     ibft_available=1
     ibft_set_iface
 fi
 save_var ibft_available
 save_var ibft_hostname
 save_var ibft_nic
 save_var ibft_nic2
Index: 1115/mkinitrd/scripts/setup-network.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-network.sh
+++ 1115/mkinitrd/scripts/setup-network.sh
@@ -287,27 +287,36 @@ if [ "$nettype" = "ifup" ] ; then
            verbose "[NETWORK]\tifup: $interface"
        fi
     done
     interface=
 fi
 
 # Copy the /etc/resolv.conf when the IP is static
 if test -n "$static_interfaces"; then
     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
     cp /etc/resolv.conf $tmp_mnt/etc
 fi
 
 # Copy netcfg files (bnc#468090, bnc#714945)
-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
+cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
+cat > $tmp_mnt/etc/hosts <<_EOH_
+127.0.0.1 localhost
+::1       localhost ipv6-localhost ipv6-loopback
+fe00::0   ipv6-localnet
+ff00::0   ipv6-mcastprefix
+ff02::1   ipv6-allnodes
+ff02::2   ipv6-allrouters
+ff02::3   ipv6-allhosts
+_EOH_
 
 mkdir -p $tmp_mnt/var/lib/dhcpcd
 mkdir -p $tmp_mnt/var/run
 
 cp_bin /lib/mkinitrd/bin/ipconfig.sh $tmp_mnt/bin/ipconfig
 if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
 fi
 # XXX: This belongs to the if [ "$nettype" = "ifup" ] branch above, but we
 # are being bug-compatible with previous versions of mkinitrd, which
 # included these files unconditionally (bnc#891573).
 if [ -f /etc/udev/rules.d/77-network.rules ] ; then
     cp /etc/udev/rules.d/77-network.rules $tmp_mnt/etc/udev/rules.d
Index: 1115/mkinitrd/scripts/setup-prepare.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-prepare.sh
+++ 1115/mkinitrd/scripts/setup-prepare.sh
@@ -13,43 +13,103 @@
 #%param_v: "Verbose mode."
 #%param_L: "Disable logging."
 #%param_h: "This help screen."
 #
 ###### Additional options
 ##
 ## Script inclusion may be overriden by
 ##      1) creating a monster-initrd
 ##      2) including the wanted module in the configuration option 
ADDITIONAL_FEATURES in /etc/sysconfig/initrd
 ##      3) definition using the -f command line switch
 ##
 
 # Install a binary file
+# cp_bin file target_filename
+# cp_bin file target_directory
+# cp_bin file file target_directory
+# file is either a regular file or a symlink. symlinks and all paths they 
point to will be copied
+# the "root" of target is $tmp_mnt, which is required to copy symlinks properly
 cp_bin() {
-    cp -a "$@" \
-    || exit_code=1
+       local -a files
+       local target
+       local target_dirname
+       local file
 
-    # Remember the binaries installed. We need the list for checking
-    # for dynamic libraries.
-    while [ $# -gt 1 ]; do
-        initrd_bins[${#initrd_bins[@]}]=$1
-        shift
-   done
-   # file may print '^setuid ELF ...'
-   # suid mount will fail if mkinitrd was called as user
-   if [ -L "$1" ]; then
-        : do nothing with symlinks
-   elif [ -d "$1" -o -f "$1" ]; then
-     find "$1" -type f -print0 | xargs -0 chmod 0755 
-   fi
+       # need at least two parameters, source and destination
+       if test $# -lt 2
+       then
+               return 0
+       fi
+       # store source filenames
+       until test $# -eq 1
+       do
+               files=( ${files[@]} $1 )
+               shift
+       done
+       # store target, either file or directory
+       target=$1
+       # if more than two parameters, last entry must be a directory
+       if test ${#files[@]} -gt 1
+       then
+               if ! test -d ${target}
+               then
+                       return 0
+               fi
+               target_dirname=${target}
+       else
+               # simplify symlink resolving for sinlge filename
+               target_dirname=${target%/*}
+       fi
+
+       for file in ${files[@]}
+       do
+               local src dst
+               src=${file}
+               dst=${target}
+               # copy requested soure file as is to requested destination
+               cp -a -v --remove-destination ${src} ${dst}
+               # copy symlinks recursivly
+               while [ 1 ]
+               do
+                       local tmp_src
+                       if test -L ${src}
+                       then
+                               tmp_src=$(readlink ${src})
+                               if test "${tmp_src:0:1}" = "/"
+                               then
+                                       src=${tmp_src}
+                               else
+                                       # relative symlink
+                                       src=${src%/*}/${tmp_src}
+                               fi
+                               cp -a -v --remove-destination --parents ${src} 
$tmp_mnt
+                               # if link target exists, proceed to next 
symlink target
+                               if test -e "${src}"
+                               then
+                                       continue
+                               fi
+                       fi
+                       # exit loop in case of dead symlink or if target of 
symlink was reached
+                       break
+               done
+               # if source file exists, add it to list of binaries
+               if test -e "${src}"
+               then
+                       # file may print '^setuid ELF ...'
+                       # suid mount will fail if mkinitrd was called as user
+                       chmod -v 0755 $tmp_mnt/${src}
+                       initrd_bins[${#initrd_bins[@]}]=${src}
+               fi
+       done
 }
 
 # check if we should use script or feature $1
 use_script() {
     local condition feature script file
 
     # always use when creating monster initrd
     [ "$create_monster_initrd" ] && return 0
 
     # Normalize to feature name
     feature="${1##*/}"
     feature="${feature#*-}"
     feature="${feature%.sh}"
Index: 1115/mkinitrd/scripts/setup-progs.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-progs.sh
+++ 1115/mkinitrd/scripts/setup-progs.sh
@@ -28,29 +28,29 @@ for script in $INITRD_PATH/boot/*.sh; do
           echo "[ \"\$debug\" ] && echo running $file
 source boot/$file
 [ \"\$modules\" ] && load_modules" >> run_all.sh
         [ "$condition" ] && echo "fi" >> run_all.sh
         # and all programs it needs
         for files in $(cat $script | grep '%programs: ' | sed 's/^#%programs: 
\(.*\)$/\1/'); do
             for file in $(eval echo $files); do
                 if [ "${file:0:17}" = "/lib/mkinitrd/bin" ]; then
                         SOURCE=$file
                         DEST="./bin/"
                 elif [ "${file:0:1}" = "/" ]; then # absolute path files have 
to stay alive
                         SOURCE=$file
                         [ ! -e $file -a -e /usr$file ] && SOURCE="/usr$file"
-                        DEST=".$file"
+                        DEST=".$SOURCE"
                 else
                         SOURCE=$(which "$file")
-                        DEST="./bin/"
+                        DEST=".$SOURCE"
                 fi
                 cp_bin "$SOURCE" "$DEST"
             done
         done
     fi
 done
 
 echo -ne "Features:       "
 echo $features
 
 [ -e "bin/sh" ] || ln -s /bin/bash bin/sh
 
Index: 1115/mkinitrd/scripts/setup-scsi_dh.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-scsi_dh.sh
+++ 1115/mkinitrd/scripts/setup-scsi_dh.sh
@@ -1,13 +1,13 @@
 #!/bin/bash
 #
 #%stage: device
 #
 # Include all scsi_dh_* modules and load them on boot (bnc#727428 et al)
 
 scsi_dh_modules=
-for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"); do
+for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko" | sort); do
        i=${i%.ko}
        scsi_dh_modules="$scsi_dh_modules ${i##*/}"
 done
 
 save_var scsi_dh_modules
Index: 1115/mkinitrd/scripts/setup-sharedlibs.sh
===================================================================
--- 1115.orig/mkinitrd/scripts/setup-sharedlibs.sh
+++ 1115/mkinitrd/scripts/setup-sharedlibs.sh
@@ -54,58 +54,68 @@ shared_object_files() {
         while [ -L "/$lib" ]; do
             echo $lib
             link="$(readlink "/$lib")"
             if [ x"${link:0:1}" == x"/" ]; then
                 lib=${link#/}
             else
                 lib="${lib%/*}/$link"
             fi
         done
         echo $lib
     done
 }
 
-verbose -ne "Shared libs:\t"
-# Copy all required shared libraries and the symlinks that
-# refer to them.
-lib_files=$(shared_object_files "${initrd_bins[@]}")
-[ $? -eq 0 ] || return 1
-if [ -n "$lib_files" ]; then
-    for lib in $lib_files; do
-        [ -L $root_dir/$lib ] || verbose -n "$lib "
-        ( cd ${root_dir:-/} ; cp -dp --parents $lib $tmp_mnt )
-    done
-    lib_files=
+copy_shared_libs() {
+    local bins=( "$@" )
+    local extra_lib_files lib_files lib i
+
+    # First see what nss and other libs are required. This can be 64bit or 
32bit,
+    # depending on the host and the already copied binaries.
     case "$(uname -m)" in
         alpha|ia64)
+            # this is a known location
             mkdir -p $tmp_mnt/lib
-            lib_files="$lib_files `echo $root_dir/lib/libnss_{dns,files}* 
$root_dir/lib/lib{gcc_s,unwind}.so*`"
+            extra_lib_files="`echo $root_dir/lib/libnss_{dns,files}* 
$root_dir/lib/lib{gcc_s,unwind}.so*`"
             ;;
         *)
-            # no symlinks, most point into the running system
-            for i in `LANG=C LC_ALL=C file -b 
$tmp_mnt/{,usr/}{lib*/udev/,{,s}bin}/* | sed -n 's/^ELF \([0-9][0-9]-bit\) 
.*/\1/p' | sort -u`
+            # Skip symlinks, they may point into the running system instead of 
$tmp_mnt
+            for i in `LANG=C LC_ALL=C file -b 
$tmp_mnt/{,usr/}{lib*/udev,{,s}bin}/* | sed -n 's/^ELF \([0-9][0-9]-bit\) 
.*/\1/p' | sort -u`
             do
                 case "$i" in
                     32-bit)
                         mkdir -p $tmp_mnt/lib
-                        lib_files="$lib_files `echo 
$root_dir/lib/libnss_{dns,files}* $root_dir/lib/libgcc_s.so*`"
+                        extra_lib_files="$extra_lib_files `echo 
$root_dir/lib/libnss_{dns,files}* $root_dir/lib/libgcc_s.so*`"
                         ;;
                     64-bit)
                         mkdir -p $tmp_mnt/lib64
-                        lib_files="$lib_files `echo 
$root_dir/lib64/libnss_{dns,files}* $root_dir/lib64/libgcc_s.so*`"
+                        extra_lib_files="$extra_lib_files `echo 
$root_dir/lib64/libnss_{dns,files}* $root_dir/lib64/libgcc_s.so*`"
                         ;;
                 esac
             done
             ;;
     esac
 
-    for lib in $lib_files ; do
-        if [ -f $lib ] ; then
-            verbose -n "${lib##$root_dir/} "
-            cp -dp --parents $lib $tmp_mnt
+    verbose -ne "Shared libs:\t"
+
+    # Now collect a list of libraries on which the binaries and extra libs 
depend on
+    lib_files=$( shared_object_files ${bins[@]} $extra_lib_files )
+    if [ $? -eq 0 ]
+    then
+        if [ -n "$lib_files" ]
+        then
+            # Finally copy dependencies and extra libs
+            for lib in $lib_files $extra_lib_files
+            do
+                [ -L $root_dir/$lib ] || verbose -n "$lib "
+                ( cd ${root_dir:-/} ; cp -dp --parents $lib $tmp_mnt )
+            done
+            verbose
+        else
+            verbose "none"
         fi
-    done
-    verbose
-else
-    verbose "none"
-fi
+    else
+        return 1
+    fi
+}
 
+# Copy all required shared libraries and the symlinks that refer to them.
+copy_shared_libs "${initrd_bins[@]}"
++++++ libguestfs.mkinitrd.1140.patch ++++++
---
 mkinitrd/scripts/setup-ibft.sh       |    2 
 mkinitrd/scripts/setup-network.sh    |   14 ++++-
 mkinitrd/scripts/setup-prepare.sh    |   94 ++++++++++++++++++++++++++++-------
 mkinitrd/scripts/setup-progs.sh      |   17 +-----
 mkinitrd/scripts/setup-sharedlibs.sh |   60 +++++++++++++---------
 5 files changed, 127 insertions(+), 60 deletions(-)

Index: 1140/mkinitrd/scripts/setup-ibft.sh
===================================================================
--- 1140.orig/mkinitrd/scripts/setup-ibft.sh
+++ 1140/mkinitrd/scripts/setup-ibft.sh
@@ -9,22 +9,22 @@ ibft_set_iface() {
        interface=$if
        drvlink=$(get_network_module $interface)
        if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
            nettype=dhcp
            read ibft_dhcp < $ibft_nic/dhcp
            [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
        else
            nettype=static
        fi
     }
 }
 
 ibft_nic=/sys/firmware/ibft/ethernet0
-ibft_hostname=$(hostname)
+ibft_hostname=localhost
 
 if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
     ibft_available=1
     ibft_set_iface
 fi
 save_var ibft_available
 save_var ibft_hostname
 save_var ibft_nic
Index: 1140/mkinitrd/scripts/setup-network.sh
===================================================================
--- 1140.orig/mkinitrd/scripts/setup-network.sh
+++ 1140/mkinitrd/scripts/setup-network.sh
@@ -231,29 +231,37 @@ if [ "$nettype" = "ifup" ] ; then
            drvlink="$drvlink $mod"
            verbose "[NETWORK]\t$interface ($nettype)"
        fi
     done
     interface=
 fi
 
 # Copy the /etc/resolv.conf when the IP is static
 if [ "$interface" -a "$nettype" = "static" -a -f /etc/resolv.conf ] ; then
     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
     cp /etc/resolv.conf $tmp_mnt/etc
 fi
 
-# Copy /etc/hosts in any case to be able to resolve static host names in the
-# initrd (bnc #468090)
-cp /etc/hosts $tmp_mnt/etc
+# Copy netcfg files (bnc#468090, bnc#714945)
+cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
+cat > $tmp_mnt/etc/hosts <<_EOH_
+127.0.0.1 localhost
+::1       localhost ipv6-localhost ipv6-loopback
+fe00::0   ipv6-localnet
+ff00::0   ipv6-mcastprefix
+ff02::1   ipv6-allnodes
+ff02::2   ipv6-allrouters
+ff02::3   ipv6-allhosts
+_EOH_
 
 # Get static IP configuration if requested
 if [ "$interface" -a "$nettype" = "static" ] ; then
     ip=$(get_ip_config $interface)
 fi
 
 mkdir -p $tmp_mnt/var/lib/dhcpcd
 mkdir -p $tmp_mnt/var/run
 
 cp_bin /lib/mkinitrd/bin/ipconfig.sh $tmp_mnt/bin/ipconfig
 if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
 fi
Index: 1140/mkinitrd/scripts/setup-prepare.sh
===================================================================
--- 1140.orig/mkinitrd/scripts/setup-prepare.sh
+++ 1140/mkinitrd/scripts/setup-prepare.sh
@@ -13,43 +13,103 @@
 #%param_R: "Print release (version)."
 #%param_L: "Disable logging."
 #%param_h: "This help screen."
 #
 ###### Additional options
 ##
 ## Script inclusion may be overriden by
 ##      1) creating a monster-initrd
 ##      2) including the wanted module in the configuration option 
ADDITIONAL_FEATURES in /etc/sysconfig/initrd
 ##      3) definition using the -f command line switch
 ##
 
 # Install a binary file
+# cp_bin file target_filename
+# cp_bin file target_directory
+# cp_bin file file target_directory
+# file is either a regular file or a symlink. symlinks and all paths they 
point to will be copied
+# the "root" of target is $tmp_mnt, which is required to copy symlinks properly
 cp_bin() {
-    cp -a "$@" \
-    || exit_code=1
-
-    # Remember the binaries installed. We need the list for checking
-    # for dynamic libraries.
-    while [ $# -gt 1 ]; do
-        initrd_bins[${#initrd_bins[@]}]=$1
-        shift
-   done
-   # file may print '^setuid ELF ...'
-   # suid mount will fail if mkinitrd was called as user
-   if [ -L "$1" ]; then
-        : do nothing with symlinks
-   elif [ -d "$1" -o -f "$1" ]; then
-     find "$1" -type f -print0 | xargs -0 chmod 0755
-   fi
+       local -a files
+       local target
+       local target_dirname
+       local file
+
+       # need at least two parameters, source and destination
+       if test $# -lt 2
+       then
+               return 0
+       fi
+       # store source filenames
+       until test $# -eq 1
+       do
+               files=( ${files[@]} $1 )
+               shift
+       done
+       # store target, either file or directory
+       target=$1
+       # if more than two parameters, last entry must be a directory
+       if test ${#files[@]} -gt 1
+       then
+               if ! test -d ${target}
+               then
+                       return 0
+               fi
+               target_dirname=${target}
+       else
+               # simplify symlink resolving for sinlge filename
+               target_dirname=${target%/*}
+       fi
+
+       for file in ${files[@]}
+       do
+               local src dst
+               src=${file}
+               dst=${target}
+               # copy requested soure file as is to requested destination
+               cp -a -v --remove-destination ${src} ${dst}
+               # copy symlinks recursivly
+               while [ 1 ]
+               do
+                       local tmp_src
+                       if test -L ${src}
+                       then
+                               tmp_src=$(readlink ${src})
+                               if test "${tmp_src:0:1}" = "/"
+                               then
+                                       src=${tmp_src}
+                               else
+                                       # relative symlink
+                                       src=${src%/*}/${tmp_src}
+                               fi
+                               cp -a -v --remove-destination --parents ${src} 
$tmp_mnt
+                               # if link target exists, proceed to next 
symlink target
+                               if test -e "${src}"
+                               then
+                                       continue
+                               fi
+                       fi
+                       # exit loop in case of dead symlink or if target of 
symlink was reached
+                       break
+               done
+               # if source file exists, add it to list of binaries
+               if test -e "${src}"
+               then
+                       # file may print '^setuid ELF ...'
+                       # suid mount will fail if mkinitrd was called as user
+                       chmod -v 0755 $tmp_mnt/${src}
+                       initrd_bins[${#initrd_bins[@]}]=${src}
+               fi
+       done
 }
 
 # check if we should use script or feature $1
 use_script() {
     local condition feature script file
 
     # always use when creating monster initrd
     [ "$create_monster_initrd" ] && return 0
 
     # Normalize to feature name
     feature="${1##*/}"
     feature="${feature#*-}"
     feature="${feature%.sh}"
@@ -143,27 +203,27 @@ fi
 for feature in $ADDITIONAL_FEATURES ; do
     feature_exists "$feature" || echo "[WARNING] Feature \"$feature\" not 
found. A typo?"
 done
 
 # create an empty initrd
 if ! mkdir $tmp_mnt ; then
     error 1 "could not create temporary directory"
 fi
 
 # fill the initrd
 cp $INITRD_PATH/bin/linuxrc $linuxrc
 mkdir "$tmp_mnt/boot"
 
-mkdir -p $tmp_mnt/{sbin,bin,etc,dev,proc,sys,root,config}
+mkdir -p $tmp_mnt/{sbin,bin,etc,dev,proc,sys,root,config,usr/bin,usr/sbin}
 
 mkdir -p -m 4777 $tmp_mnt/tmp
 
 # Create a dummy /etc/mtab for mount/umount
 echo -n > $tmp_mnt/etc/mtab
 
 # Add modprobe, modprobe.conf*, and a version of /bin/true: modprobe.conf
 # might use it.
 for mod in $root_dir/etc/modprobe.conf $root_dir/etc/modprobe.conf.local \
     $root_dir/etc/modprobe.d ; do
     test -e $mod && cp -r $mod $tmp_mnt/etc
 done
 cat > $tmp_mnt/bin/true <<-EOF
Index: 1140/mkinitrd/scripts/setup-progs.sh
===================================================================
--- 1140.orig/mkinitrd/scripts/setup-progs.sh
+++ 1140/mkinitrd/scripts/setup-progs.sh
@@ -24,48 +24,37 @@ for script in $INITRD_PATH/boot/*.sh; do
         condition="$(sed -rn 's/^#[[:blank:]]*%if:[[:blank:]]*(.*)$/if [ \1 ]; 
then/p' < "$script")"
           echo "$condition" >> run_all.sh
           # -- remember dependent modules
           sed -rn 's/^#[[:blank:]]*%modules:[[:blank:]]*(.*)$/modules="\1"/p' 
< $script >> run_all.sh
           echo "[ \"\$debug\" ] && echo running $file
 source boot/$file
 [ \"\$modules\" ] && load_modules" >> run_all.sh
         [ "$condition" ] && echo "fi" >> run_all.sh
         # and all programs it needs
         for files in $(sed -rn 
's/^#[[:blank:]]*%programs:[[:blank:]]*(.*)$/\1/p' < "$script"); do
             for file in $(eval echo $files); do
                 if [ "${file:0:17}" = "/lib/mkinitrd/bin" ]; then
                         SOURCE=$file
-                        DEST="./bin/"
+                        DEST="${tmp_mnt}/bin/"
                 elif [ "${file:0:1}" = "/" ]; then # absolute path files have 
to stay alive
                         SOURCE=$file
                         [ ! -e $file -a -e /usr$file ] && SOURCE="/usr$file"
-                        DEST=".$file"
+                        DEST="${tmp_mnt}$SOURCE"
                 else
                         case "$(type -t "$file")" in
                         builtin) continue
                         esac
                         SOURCE=$(type -p "$file")
-                        DEST="./bin/"
+                        DEST="${tmp_mnt}$SOURCE"
                 fi
 
                 cp_bin "$SOURCE" "$DEST"
-
-                # if we're given a symlink, always copy the linked file too
-                if [ -L "$SOURCE" ]; then
-                    LINK=$(readlink -e "$SOURCE")
-                    if [ -e "$LINK" ]; then
-                        mkdir -p .$(dirname "$LINK")
-                        cp_bin "$LINK" ."$LINK"
-                    else
-                        echo 2>&1 "WARNING: $LINK is a dangling symlink"
-                    fi
-                fi
             done
         done
     fi
 done
 
 echo -ne "Features:       "
 echo $features
 
 [ -e "bin/sh" ] || ln -s /bin/bash bin/sh
 
Index: 1140/mkinitrd/scripts/setup-sharedlibs.sh
===================================================================
--- 1140.orig/mkinitrd/scripts/setup-sharedlibs.sh
+++ 1140/mkinitrd/scripts/setup-sharedlibs.sh
@@ -54,58 +54,68 @@ shared_object_files() {
         while [ -L "/$lib" ]; do
             echo $lib
             link="$(readlink "/$lib")"
             if [ x"${link:0:1}" == x"/" ]; then
                 lib=${link#/}
             else
                 lib="${lib%/*}/$link"
             fi
         done
         echo $lib
     done
 }
 
-verbose -ne "Shared libs:\t"
-# Copy all required shared libraries and the symlinks that
-# refer to them.
-lib_files=$(shared_object_files "${initrd_bins[@]}")
-[ $? -eq 0 ] || return 1
-if [ -n "$lib_files" ]; then
-    for lib in $lib_files; do
-        [ -L $root_dir/$lib ] || verbose -n "$lib "
-        ( cd ${root_dir:-/} ; cp -dp --parents $lib $tmp_mnt )
-    done
-    lib_files=
+copy_shared_libs() {
+    local bins=( "$@" )
+    local extra_lib_files lib_files lib i
+
+    # First see what nss and other libs are required. This can be 64bit or 
32bit,
+    # depending on the host and the already copied binaries.
     case "$(uname -m)" in
         ia64)
+            # this is a known location
             mkdir -p $tmp_mnt/lib
-            lib_files="$lib_files `echo $root_dir/lib/libnss_{dns,files}* 
$root_dir/lib/lib{gcc_s,unwind}.so*`"
+            extra_lib_files="`echo $root_dir/lib/libnss_{dns,files}* 
$root_dir/lib/lib{gcc_s,unwind}.so*`"
             ;;
         *)
-            # no symlinks, most point into the running system
-            for i in `LANG=C LC_ALL=C file -b 
$tmp_mnt/{,usr/}{lib*/udev/,{,s}bin}/* | sed -n 's/^ELF \([0-9][0-9]-bit\) 
.*/\1/p' | sort -u`
+            # Skip symlinks, they may point into the running system instead of 
$tmp_mnt
+            for i in `LANG=C LC_ALL=C file -b 
$tmp_mnt/{,usr/}{lib*/udev,{,s}bin}/* | sed -n 's/^ELF \([0-9][0-9]-bit\) 
.*/\1/p' | sort -u`
             do
                 case "$i" in
                     32-bit)
                         mkdir -p $tmp_mnt/lib
-                        lib_files="$lib_files `echo 
$root_dir/lib/libnss_{dns,files}* $root_dir/lib/libgcc_s.so*`"
+                        extra_lib_files="$extra_lib_files `echo 
$root_dir/lib/libnss_{dns,files}* $root_dir/lib/libgcc_s.so*`"
                         ;;
                     64-bit)
                         mkdir -p $tmp_mnt/lib64
-                        lib_files="$lib_files `echo 
$root_dir/lib64/libnss_{dns,files}* $root_dir/lib64/libgcc_s.so*`"
+                        extra_lib_files="$extra_lib_files `echo 
$root_dir/lib64/libnss_{dns,files}* $root_dir/lib64/libgcc_s.so*`"
                         ;;
                 esac
             done
             ;;
     esac
 
-    for lib in $lib_files ; do
-        if [ -f $lib ] ; then
-            verbose -n "${lib##$root_dir/} "
-            cp -dp --parents $lib $tmp_mnt
+    verbose -ne "Shared libs:\t"
+
+    # Now collect a list of libraries on which the binaries and extra libs 
depend on
+    lib_files=$( shared_object_files ${bins[@]} $extra_lib_files )
+    if [ $? -eq 0 ]
+    then
+        if [ -n "$lib_files" ]
+        then
+            # Finally copy dependencies and extra libs
+            for lib in $lib_files $extra_lib_files
+            do
+                [ -L $root_dir/$lib ] || verbose -n "$lib "
+                ( cd ${root_dir:-/} ; cp -dp --parents $lib $tmp_mnt )
+            done
+            verbose
+        else
+            verbose "none"
         fi
-    done
-    verbose
-else
-    verbose "none"
-fi
+    else
+        return 1
+    fi
+}
 
+# Copy all required shared libraries and the symlinks that refer to them.
+copy_shared_libs "${initrd_bins[@]}"
++++++ libguestfs.mkinitrd.1210.patch ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:48.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:48.000000000 +0200
@@ -1,9 +1,81 @@
 ---
+ mkinitrd/scripts/setup-ibft.sh       |    2 
+ mkinitrd/scripts/setup-network.sh    |   11 +++-
  mkinitrd/scripts/setup-prepare.sh    |   94 
++++++++++++++++++++++++++++-------
  mkinitrd/scripts/setup-progs.sh      |   17 +-----
  mkinitrd/scripts/setup-sharedlibs.sh |   60 +++++++++++++---------
- 3 files changed, 115 insertions(+), 56 deletions(-)
+ 5 files changed, 126 insertions(+), 58 deletions(-)
 
+Index: 1210/mkinitrd/scripts/setup-ibft.sh
+===================================================================
+--- 1210.orig/mkinitrd/scripts/setup-ibft.sh
++++ 1210/mkinitrd/scripts/setup-ibft.sh
+@@ -9,22 +9,22 @@ ibft_set_iface() {
+       interface=$if
+       drvlink=$(get_network_module $interface)
+       if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
+           nettype=dhcp
+           read ibft_dhcp < $ibft_nic/dhcp
+           [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
+       else
+           nettype=static
+       fi
+     }
+ }
+ 
+ ibft_nic=/sys/firmware/ibft/ethernet0
+-ibft_hostname=$(hostname)
++ibft_hostname=localhost
+ 
+ if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
+     ibft_available=1
+     ibft_set_iface
+ fi
+ save_var ibft_available
+ save_var ibft_hostname
+ save_var ibft_nic
+Index: 1210/mkinitrd/scripts/setup-network.sh
+===================================================================
+--- 1210.orig/mkinitrd/scripts/setup-network.sh
++++ 1210/mkinitrd/scripts/setup-network.sh
+@@ -277,27 +277,36 @@ if [ "$nettype" = "ifup" ] ; then
+           verbose "[NETWORK]\tifup: $interface"
+       fi
+     done
+     interface=
+ fi
+ 
+ # Copy the /etc/resolv.conf when the IP is static
+ if test -n "$static_interfaces"; then
+     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
+     cp /etc/resolv.conf $tmp_mnt/etc
+ fi
+ 
+ # Copy netcfg files (bnc#468090, bnc#714945)
+-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
++cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
++cat > $tmp_mnt/etc/hosts <<_EOH_
++127.0.0.1 localhost
++::1       localhost ipv6-localhost ipv6-loopback
++fe00::0   ipv6-localnet
++ff00::0   ipv6-mcastprefix
++ff02::1   ipv6-allnodes
++ff02::2   ipv6-allrouters
++ff02::3   ipv6-allhosts
++_EOH_
+ 
+ # Get static IP configuration if requested
+ for iface in $static_interfaces; do
+     static_ips="$static_ips $(get_ip_config $iface)"
+ done
+ 
+ mkdir -p $tmp_mnt/var/lib/dhcpcd
+ mkdir -p $tmp_mnt/var/run
+ 
+ cp_bin /lib/mkinitrd/bin/ipconfig.sh $tmp_mnt/bin/ipconfig
+ if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
+     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
+ fi
 Index: 1210/mkinitrd/scripts/setup-prepare.sh
 ===================================================================
 --- 1210.orig/mkinitrd/scripts/setup-prepare.sh

++++++ libguestfs.mkinitrd.1220.patch ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:48.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:48.000000000 +0200
@@ -1,9 +1,82 @@
 ---
+ mkinitrd/scripts/setup-ibft.sh       |    2 
+ mkinitrd/scripts/setup-network.sh    |   11 ++-
  mkinitrd/scripts/setup-prepare.sh    |  126 
+++++++++++++++++++++--------------
  mkinitrd/scripts/setup-progs.sh      |   17 ----
+ mkinitrd/scripts/setup-scsi_dh.sh    |    2 
  mkinitrd/scripts/setup-sharedlibs.sh |   60 +++++++++-------
- 3 files changed, 114 insertions(+), 89 deletions(-)
+ 6 files changed, 126 insertions(+), 92 deletions(-)
 
+Index: 1220/mkinitrd/scripts/setup-ibft.sh
+===================================================================
+--- 1220.orig/mkinitrd/scripts/setup-ibft.sh
++++ 1220/mkinitrd/scripts/setup-ibft.sh
+@@ -21,22 +21,22 @@ ibft_set_iface() {
+       interface=$iface
+       drvlink=$(get_network_module $interface)
+       if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
+           nettype=dhcp
+           read ibft_dhcp < $ibft_nic/dhcp
+           [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
+       else
+           nettype=static
+       fi
+     fi
+ }
+ 
+ ibft_nic=/sys/firmware/ibft/ethernet0
+-ibft_hostname=$(hostname)
++ibft_hostname=localhost
+ 
+ if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
+     ibft_available=1
+     ibft_set_iface
+ fi
+ save_var ibft_available
+ save_var ibft_hostname
+ save_var ibft_nic
+Index: 1220/mkinitrd/scripts/setup-network.sh
+===================================================================
+--- 1220.orig/mkinitrd/scripts/setup-network.sh
++++ 1220/mkinitrd/scripts/setup-network.sh
+@@ -278,27 +278,36 @@ if [ "$nettype" = "ifup" ] ; then
+           verbose "[NETWORK]\tifup: $interface"
+       fi
+     done
+     interface=
+ fi
+ 
+ # Copy the /etc/resolv.conf when the IP is static
+ if test -n "$static_interfaces"; then
+     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
+     cp /etc/resolv.conf $tmp_mnt/etc
+ fi
+ 
+ # Copy netcfg files (bnc#468090, bnc#714945)
+-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
++cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
++cat > $tmp_mnt/etc/hosts <<_EOH_
++127.0.0.1 localhost
++::1       localhost ipv6-localhost ipv6-loopback
++fe00::0   ipv6-localnet
++ff00::0   ipv6-mcastprefix
++ff02::1   ipv6-allnodes
++ff02::2   ipv6-allrouters
++ff02::3   ipv6-allhosts
++_EOH_
+ 
+ # Get static IP configuration if requested
+ for iface in $static_interfaces; do
+     static_ips="$static_ips $(get_ip_config $iface)"
+ done
+ 
+ mkdir -p $tmp_mnt/var/lib/dhcpcd
+ mkdir -p $tmp_mnt/var/run
+ 
+ cp_bin /lib/mkinitrd/bin/ipconfig.sh $tmp_mnt/bin/ipconfig
+ if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
+     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
+ fi
 Index: 1220/mkinitrd/scripts/setup-prepare.sh
 ===================================================================
 --- 1220.orig/mkinitrd/scripts/setup-prepare.sh
@@ -218,6 +291,25 @@
  
  [ -e "bin/sh" ] || ln -s /bin/bash bin/sh
  
+Index: 1220/mkinitrd/scripts/setup-scsi_dh.sh
+===================================================================
+--- 1220.orig/mkinitrd/scripts/setup-scsi_dh.sh
++++ 1220/mkinitrd/scripts/setup-scsi_dh.sh
+@@ -1,13 +1,13 @@
+ #!/bin/bash
+ #
+ #%stage: device
+ #
+ # Include all scsi_dh_* modules and load them on boot (bnc#727428 et al)
+ 
+ scsi_dh_modules=
+-for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"); do
++for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"| sort); do
+       i=${i%.ko}
+       scsi_dh_modules="$scsi_dh_modules ${i##*/}"
+ done
+ 
+ save_var scsi_dh_modules
 Index: 1220/mkinitrd/scripts/setup-sharedlibs.sh
 ===================================================================
 --- 1220.orig/mkinitrd/scripts/setup-sharedlibs.sh

++++++ libguestfs.mkinitrd.1230.patch ++++++
---
 mkinitrd/scripts/setup-ibft.sh    |    2 +-
 mkinitrd/scripts/setup-network.sh |   11 ++++++++++-
 mkinitrd/scripts/setup-scsi_dh.sh |    2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

Index: 1230/mkinitrd/scripts/setup-ibft.sh
===================================================================
--- 1230.orig/mkinitrd/scripts/setup-ibft.sh
+++ 1230/mkinitrd/scripts/setup-ibft.sh
@@ -21,22 +21,22 @@ ibft_set_iface() {
        interface=$iface
        drvlink=$(get_network_module $interface)
        if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
            nettype=dhcp
            read ibft_dhcp < $ibft_nic/dhcp
            [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
        else
            nettype=static
        fi
     fi
 }
 
 ibft_nic=/sys/firmware/ibft/ethernet0
-ibft_hostname=$(hostname)
+ibft_hostname=localhost
 
 if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
     ibft_available=1
     ibft_set_iface
 fi
 save_var ibft_available
 save_var ibft_hostname
 save_var ibft_nic
Index: 1230/mkinitrd/scripts/setup-network.sh
===================================================================
--- 1230.orig/mkinitrd/scripts/setup-network.sh
+++ 1230/mkinitrd/scripts/setup-network.sh
@@ -278,27 +278,36 @@ if [ "$nettype" = "ifup" ] ; then
            verbose "[NETWORK]\tifup: $interface"
        fi
     done
     interface=
 fi
 
 # Copy the /etc/resolv.conf when the IP is static
 if test -n "$static_interfaces"; then
     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
     cp /etc/resolv.conf $tmp_mnt/etc
 fi
 
 # Copy netcfg files (bnc#468090, bnc#714945)
-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
+cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
+cat > $tmp_mnt/etc/hosts <<_EOH_
+127.0.0.1 localhost
+::1       localhost ipv6-localhost ipv6-loopback
+fe00::0   ipv6-localnet
+ff00::0   ipv6-mcastprefix
+ff02::1   ipv6-allnodes
+ff02::2   ipv6-allrouters
+ff02::3   ipv6-allhosts
+_EOH_
 
 # Get static IP configuration if requested
 for iface in $static_interfaces; do
     static_ips="$static_ips $(get_ip_config $iface)"
 done
 
 mkdir -p $tmp_mnt/var/lib/dhcpcd
 mkdir -p $tmp_mnt/var/run
 
 cp_bin /lib/mkinitrd/bin/ipconfig $tmp_mnt/bin/ipconfig
 if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
 fi
Index: 1230/mkinitrd/scripts/setup-scsi_dh.sh
===================================================================
--- 1230.orig/mkinitrd/scripts/setup-scsi_dh.sh
+++ 1230/mkinitrd/scripts/setup-scsi_dh.sh
@@ -1,13 +1,13 @@
 #!/bin/bash
 #
 #%stage: device
 #
 # Include all scsi_dh_* modules and load them on boot (bnc#727428 et al)
 
 scsi_dh_modules=
-for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"); do
+for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko"| sort); do
        i=${i%.ko}
        scsi_dh_modules="$scsi_dh_modules ${i##*/}"
 done
 
 save_var scsi_dh_modules
++++++ libguestfs.mkinitrd.1310.patch ++++++
---
 mkinitrd/scripts/setup-ibft.sh    |    2 +-
 mkinitrd/scripts/setup-network.sh |   11 ++++++++++-
 mkinitrd/scripts/setup-scsi_dh.sh |    2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

Index: 1310/mkinitrd/scripts/setup-ibft.sh
===================================================================
--- 1310.orig/mkinitrd/scripts/setup-ibft.sh
+++ 1310/mkinitrd/scripts/setup-ibft.sh
@@ -21,22 +21,22 @@ ibft_set_iface() {
        interface=$iface
        drvlink=$(get_network_module $interface)
        if [ ! "$nettype" -a -e $ibft_nic/dhcp ]; then
            nettype=dhcp
            read ibft_dhcp < $ibft_nic/dhcp
            [ "$ibft_dhcp" = "0.0.0.0" ] && nettype=static
        else
            nettype=static
        fi
     fi
 }
 
 ibft_nic=/sys/firmware/ibft/ethernet0
-ibft_hostname=$(hostname)
+ibft_hostname=localhost
 
 if [ "$root_iscsi" = 1 -a -d $ibft_nic ]; then
     ibft_available=1
     ibft_set_iface
 fi
 save_var ibft_available
 save_var ibft_hostname
 save_var ibft_nic
Index: 1310/mkinitrd/scripts/setup-network.sh
===================================================================
--- 1310.orig/mkinitrd/scripts/setup-network.sh
+++ 1310/mkinitrd/scripts/setup-network.sh
@@ -278,27 +278,36 @@ if [ "$nettype" = "ifup" ] ; then
            verbose "[NETWORK]\tifup: $interface"
        fi
     done
     interface=
 fi
 
 # Copy the /etc/resolv.conf when the IP is static
 if test -n "$static_interfaces"; then
     verbose "[NETWORK]\tUsing /etc/resolv.conf from the system in the initrd"
     cp /etc/resolv.conf $tmp_mnt/etc
 fi
 
 # Copy netcfg files (bnc#468090, bnc#714945)
-cp /etc/{hosts,protocols,services,netconfig} $tmp_mnt/etc
+cp /etc/{protocols,services,netconfig} $tmp_mnt/etc
+cat > $tmp_mnt/etc/hosts <<_EOH_
+127.0.0.1 localhost
+::1       localhost ipv6-localhost ipv6-loopback
+fe00::0   ipv6-localnet
+ff00::0   ipv6-mcastprefix
+ff02::1   ipv6-allnodes
+ff02::2   ipv6-allrouters
+ff02::3   ipv6-allhosts
+_EOH_
 
 # Get static IP configuration if requested
 for iface in $static_interfaces; do
     static_ips="$static_ips $(get_ip_config $iface)"
 done
 
 mkdir -p $tmp_mnt/var/lib/dhcpcd
 mkdir -p $tmp_mnt/var/run
 
 cp_bin /lib/mkinitrd/bin/ipconfig $tmp_mnt/bin/ipconfig
 if [ -f /etc/udev/rules.d/70-persistent-net.rules ] ; then
     cp /etc/udev/rules.d/70-persistent-net.rules $tmp_mnt/etc/udev/rules.d
 fi
Index: 1310/mkinitrd/scripts/setup-scsi_dh.sh
===================================================================
--- 1310.orig/mkinitrd/scripts/setup-scsi_dh.sh
+++ 1310/mkinitrd/scripts/setup-scsi_dh.sh
@@ -1,17 +1,17 @@
 #!/bin/bash
 #
 #%stage: device
 #
 # Include all scsi_dh_* modules and load them on boot (bnc#727428 et al)
 
 scsi_dh_modules=
 if test -d 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler
 then
-       for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko")
+       for i in $(find 
$root_dir/lib/modules/$kernel_version/kernel/drivers/scsi/device_handler -name 
"scsi[-_]dh[_-]*.ko" | sort)
        do
                i=${i%.ko}
                scsi_dh_modules="$scsi_dh_modules ${i##*/}"
        done
 fi
 
 save_var scsi_dh_modules
++++++ libguestfs.mkinitrd.boot.sh ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:48.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:48.000000000 +0200
@@ -17,6 +17,7 @@
 #%udevmodules: 9p
 #%udevmodules: btrfs
 #%udevmodules: cramfs
+#%udevmodules: cuse
 #%udevmodules: ext2
 #%udevmodules: ext3
 #%udevmodules: ext4
@@ -24,6 +25,7 @@
 #%udevmodules: fuse
 #%udevmodules: hfs
 #%udevmodules: hfsplus
+#%udevmodules: isofs
 #%udevmodules: jfs
 #%udevmodules: minix
 #%udevmodules: nfs
@@ -35,6 +37,17 @@
 #%udevmodules: ufs
 #%udevmodules: xfs
 #%udevmodules: 
+#%udevmodules: mac-celtic
+#%udevmodules: mac-centeuro
+#%udevmodules: mac-croatian
+#%udevmodules: mac-cyrillic
+#%udevmodules: mac-gaelic
+#%udevmodules: mac-greek
+#%udevmodules: mac-iceland
+#%udevmodules: mac-inuit
+#%udevmodules: mac-roman
+#%udevmodules: mac-romanian
+#%udevmodules: mac-turkish
 #%udevmodules: nls_ascii
 #%udevmodules: nls_cp1250
 #%udevmodules: nls_cp1251
@@ -74,6 +87,7 @@
 #%udevmodules: nls_koi8-r
 #%udevmodules: nls_koi8-ru
 #%udevmodules: nls_koi8ru
+#%udevmodules: nls_koi8-u
 #%udevmodules: nls_utf8
 #%udevmodules: 
 #%udevmodules: af_packet

++++++ libguestfs.mkinitrd.setup.sh ++++++
--- /var/tmp/diff_new_pack.GAO6Rh/_old  2015-05-20 23:57:49.000000000 +0200
+++ /var/tmp/diff_new_pack.GAO6Rh/_new  2015-05-20 23:57:49.000000000 +0200
@@ -57,6 +57,17 @@
        fi
 done
 
+mkdir -p $tmp_mnt/usr/share/guestfs
+if test -n "$LIBGUESTFS_SRC_APPLIANCE_DIR"
+then
+       for f in $LIBGUESTFS_SRC_APPLIANCE_DIR/*.aug
+       do
+               if test -e $f
+               then
+                       cp -Lavt $tmp_mnt/usr/share/guestfs $f
+               fi
+       done
+fi
 for d in /usr/lib*/gconv
 do
        if test -e $d


Reply via email to