Accepting request 214552 from Virtualization

- Update to version 1.24.4
  * launch: Allow backend = "appliance" for backwards compatibility (RHBZ#1055452).
  * daemon: Use wipefs_has_force_option to decide whether to add wipefs --force option.
  * init: Display clocksource (only when debugging is enabled).
  * launch: direct: Make sure we pass lpj= parameter when using TCG.
  * Use recommended timer settings for KVM (RHBZ#1053847).
  * fuse: clear stat structs (RHBZ#660687).
  * fuse: remove extra trailing \n in debug messages

- Include crypto modules in appliance to enable luks related commands

- Resolve also library dependencies of libnss in mkinitrd (bnc#847785)
- BuildRequire nfs-utils to get mount.nfs, for virt-rescue

OBS-URL: https://build.opensuse.org/request/show/214552
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libguestfs?expand=0&rev=12
This commit is contained in:
Stephan Kulow 2014-01-22 12:53:05 +00:00 committed by Git OBS Bridge
commit 796bcb9cf6
9 changed files with 455 additions and 13 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cca9170a206969c802b0b58f9ef6dab89002bba9b34ccebdfb1aa5fc241046ea
size 4577204

3
libguestfs-1.24.5.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ad2eee118097255176ae815c99d8190e7dae1ea69890d963346b75539ca047e5
size 4764236

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Mon Jan 20 23:09:24 CET 2014 - ohering@suse.de
- Update to version 1.24.4
* launch: Allow backend = "appliance" for backwards compatibility (RHBZ#1055452).
* daemon: Use wipefs_has_force_option to decide whether to add wipefs --force option.
* init: Display clocksource (only when debugging is enabled).
* launch: direct: Make sure we pass lpj= parameter when using TCG.
* Use recommended timer settings for KVM (RHBZ#1053847).
* fuse: clear stat structs (RHBZ#660687).
* fuse: remove extra trailing \n in debug messages
-------------------------------------------------------------------
Mon Jan 20 19:41:24 CET 2014 - ohering@suse.de
- Include crypto modules in appliance to enable luks related commands
-------------------------------------------------------------------
Mon Jan 20 11:34:25 CET 2014 - ohering@suse.de
- Resolve also library dependencies of libnss in mkinitrd (bnc#847785)
- BuildRequire nfs-utils to get mount.nfs, for virt-rescue
-------------------------------------------------------------------
Thu Jan 16 21:29:47 CET 2014 - ohering@suse.de

View File

@ -1,7 +1,8 @@
---
mkinitrd/scripts/setup-prepare.sh | 94 +++++++++++++++++++++++++++++++-------
mkinitrd/scripts/setup-progs.sh | 4 -
2 files changed, 79 insertions(+), 19 deletions(-)
mkinitrd/scripts/setup-prepare.sh | 94 ++++++++++++++++++++++++++++-------
mkinitrd/scripts/setup-progs.sh | 4 -
mkinitrd/scripts/setup-sharedlibs.sh | 60 +++++++++++++---------
3 files changed, 114 insertions(+), 44 deletions(-)
Index: 1110/mkinitrd/scripts/setup-prepare.sh
===================================================================
@ -192,3 +193,101 @@ Index: 1110/mkinitrd/scripts/setup-progs.sh
[ -e "bin/sh" ] || ln -s /bin/bash bin/sh
Index: 1110/mkinitrd/scripts/setup-sharedlibs.sh
===================================================================
--- 1110.orig/mkinitrd/scripts/setup-sharedlibs.sh
+++ 1110/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[@]}"

View File

@ -1,7 +1,8 @@
---
mkinitrd/scripts/setup-prepare.sh | 94 +++++++++++++++++++++++++++++++-------
mkinitrd/scripts/setup-progs.sh | 17 +-----
2 files changed, 80 insertions(+), 31 deletions(-)
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(-)
Index: 1210/mkinitrd/scripts/setup-prepare.sh
===================================================================
@ -212,3 +213,101 @@ Index: 1210/mkinitrd/scripts/setup-progs.sh
[ -e "bin/sh" ] || ln -s /bin/bash bin/sh
Index: 1210/mkinitrd/scripts/setup-sharedlibs.sh
===================================================================
--- 1210.orig/mkinitrd/scripts/setup-sharedlibs.sh
+++ 1210/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[@]}"

View File

@ -1,7 +1,8 @@
---
mkinitrd/scripts/setup-prepare.sh | 126 ++++++++++++++++++++++----------------
mkinitrd/scripts/setup-progs.sh | 17 -----
2 files changed, 79 insertions(+), 64 deletions(-)
mkinitrd/scripts/setup-prepare.sh | 126 +++++++++++++++++++++--------------
mkinitrd/scripts/setup-progs.sh | 17 ----
mkinitrd/scripts/setup-sharedlibs.sh | 60 +++++++++-------
3 files changed, 114 insertions(+), 89 deletions(-)
Index: 1220/mkinitrd/scripts/setup-prepare.sh
===================================================================
@ -217,3 +218,101 @@ Index: 1220/mkinitrd/scripts/setup-progs.sh
[ -e "bin/sh" ] || ln -s /bin/bash bin/sh
Index: 1220/mkinitrd/scripts/setup-sharedlibs.sh
===================================================================
--- 1220.orig/mkinitrd/scripts/setup-sharedlibs.sh
+++ 1220/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[@]}"

View File

@ -83,6 +83,114 @@
#%udevmodules: nfsv4
#%udevmodules: ipv6
#
#%udevmodules: dm-crypt
#
#%udevmodules: ablk_helper
#%udevmodules: aes-i586
#%udevmodules: aes-x86_64
#%udevmodules: aes_s390
#%udevmodules: aesni-intel
#%udevmodules: af_alg
#%udevmodules: algif_hash
#%udevmodules: algif_skcipher
#%udevmodules: ansi_cprng
#%udevmodules: anubis
#%udevmodules: arc4
#%udevmodules: asymmetric_keys
#%udevmodules: async_memcpy
#%udevmodules: async_pq
#%udevmodules: async_raid6_recov
#%udevmodules: async_tx
#%udevmodules: async_xor
#%udevmodules: authenc
#%udevmodules: authencesn
#%udevmodules: blowfish-x86_64
#%udevmodules: blowfish_common
#%udevmodules: blowfish_generic
#%udevmodules: camellia-aesni-avx-x86_64
#%udevmodules: camellia-x86_64
#%udevmodules: camellia_generic
#%udevmodules: cast5-avx-x86_64
#%udevmodules: cast5_generic
#%udevmodules: cast6-avx-x86_64
#%udevmodules: cast6_generic
#%udevmodules: cast_common
#%udevmodules: cbc
#%udevmodules: ccm
#%udevmodules: cmac
#%udevmodules: crc32
#%udevmodules: crc32-pclmul
#%udevmodules: crc32c-intel
#%udevmodules: cryptd
#%udevmodules: crypto_null
#%udevmodules: crypto_user
#%udevmodules: ctr
#%udevmodules: cts
#%udevmodules: deflate
#%udevmodules: des_generic
#%udevmodules: des_s390
#%udevmodules: ecb
#%udevmodules: fcrypt
#%udevmodules: gcm
#%udevmodules: geode-aes
#%udevmodules: gf128mul
#%udevmodules: ghash-clmulni-intel
#%udevmodules: ghash-generic
#%udevmodules: glue_helper
#%udevmodules: hifn_795x
#%udevmodules: khazad
#%udevmodules: lrw
#%udevmodules: lz4
#%udevmodules: lz4hc
#%udevmodules: md4
#%udevmodules: md5
#%udevmodules: michael_mic
#%udevmodules: padlock-aes
#%udevmodules: padlock-sha
#%udevmodules: pcbc
#%udevmodules: pcrypt
#%udevmodules: prng
#%udevmodules: public_key
#%udevmodules: raid6test
#%udevmodules: rmd128
#%udevmodules: rmd160
#%udevmodules: rmd256
#%udevmodules: rmd320
#%udevmodules: rsa
#%udevmodules: salsa20-i586
#%udevmodules: salsa20-x86_64
#%udevmodules: salsa20_generic
#%udevmodules: seed
#%udevmodules: seqiv
#%udevmodules: serpent-avx-x86_64
#%udevmodules: serpent-sse2-i586
#%udevmodules: serpent-sse2-x86_64
#%udevmodules: serpent_generic
#%udevmodules: sha1-ssse3
#%udevmodules: sha1_generic
#%udevmodules: sha1_s390
#%udevmodules: sha256-ssse3
#%udevmodules: sha256_generic
#%udevmodules: sha256_s390
#%udevmodules: sha512-ssse3
#%udevmodules: sha512_generic
#%udevmodules: sha512_s390
#%udevmodules: sha_common
#%udevmodules: tea
#%udevmodules: tgr192
#%udevmodules: twofish-avx-x86_64
#%udevmodules: twofish-i586
#%udevmodules: twofish-x86_64
#%udevmodules: twofish-x86_64-3way
#%udevmodules: twofish_common
#%udevmodules: vmac
#%udevmodules: wp512
#%udevmodules: x509_key_parser
#%udevmodules: xcbc
#%udevmodules: xor
#%udevmodules: xts
#%udevmodules: zlib
#
#%programs: mdadm
#%programs: modprobe
#%programs: lvm
@ -113,6 +221,12 @@ missing_commands="@GUESTFS_MISSING_CMDS@"
# run_all.sh will load them after this script is sourced
load_modules
# load various modules for cryptsetup
for i in 512 384 256 224 1
do
modprobe -v sha$i
done
ln -sfbn ../proc/self/mounts /etc/mtab
# from libguestfs-1.19.34/appliance/init:
@ -162,6 +276,8 @@ if grep -sq guestfs_verbose=1 /proc/cmdline; then
ip a
ip r
date
echo -n "clocksource: "
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
echo "These commands might be called by guestfsd, but they were not available at buildtime:"
echo "missing commands: $missing_commands"
echo

View File

@ -5,6 +5,11 @@
# copy daemon manually because it is located in RPM_BUILD_ROOT
mkdir -vp $tmp_mnt/usr/sbin
cp_bin $(type -p guestfsd) $tmp_mnt/usr/sbin
# required for mount.nfs inside the appliance
for i in /etc/netconfig /etc/protocols /etc/rpc /etc/services
do
cp $i $tmp_mnt$i
done
# many guestfish commands need a mount point
# in guestfsd the mount point defaults to /sysroot

View File

@ -17,7 +17,7 @@
#
Version: 1.24.4
Version: 1.24.5
Release: 0
%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
@ -363,6 +363,7 @@ BuildRequires: mdadm
BuildRequires: mkinitrd
%endif
BuildRequires: module-init-tools
BuildRequires: nfs-client
BuildRequires: ntfs-3g
BuildRequires: ntfsprogs
BuildRequires: parted