From: Arkadiusz Miśkiewicz Date: Tue, 17 Nov 2015 16:45:56 +0000 (+0100) Subject: - up to 12757 X-Git-Tag: auto/th/geninitrd-12757-1~1 X-Git-Url: https://git.pld-linux.org/?p=packages%2Fgeninitrd.git;a=commitdiff_plain;h=11d3d3958756da2b1e1ce51b67578a45b20d62a6 - up to 12757 --- diff --git a/geninitrd-git.patch b/geninitrd-git.patch index 2816fb6..e69de29 100644 --- a/geninitrd-git.patch +++ b/geninitrd-git.patch @@ -1,182 +0,0 @@ -diff --git a/functions b/functions -index a3f6b19..f4d9acb 100644 ---- a/functions -+++ b/functions -@@ -291,3 +291,9 @@ find_modules_by_class_mit() { - ' - } - -+# get possible paths for specifed patter containing LIBDIR -+get_libdir() { -+ for dir in lib lib64 libx32; do -+ echo -n "${1/LIBDIR/$dir} " -+ done -+} -diff --git a/geninitrd b/geninitrd -index b8ee2a3..7b962b5 100755 ---- a/geninitrd -+++ b/geninitrd -@@ -505,7 +505,7 @@ inst() { - mkdir -p $parentDir - fi - verbose "+ cp $* DESTDIR$dest" -- cp -HR "$@" "$DESTDIR$dest" -+ cp -HRp "$@" "$DESTDIR$dest" - } - - inst_d() { -@@ -553,17 +553,20 @@ inst_exec() { - - # hack for uclibc linked binaries requiring this fixed path - # XXX: shouldn't rpath be used here instead so th -- if [ -f $DESTDIR/$_lib/libc.so.0 ]; then -- lib=$DESTDIR/$_lib/libc.so.0 -- lib=$(ldd "$lib" | awk '/statically|linux-(gate|vdso)\.so/{next} NF == 2 {print $1} /=/{print $3}' | sort -u) -- libdir=$(cd $(dirname "$lib"); pwd) -- if [ ! -e $DESTDIR$libdir ]; then -- libdir=$(dirname "$libdir") -- inst_d $libdir -- verbose "+ ln -s /$_lib $DESTDIR$libdir" -- ln -s /$_lib $DESTDIR$libdir -+ for _lib in $(get_libdir LIBDIR); do -+ if [ -f $DESTDIR/$_lib/libc.so.0 ]; then -+ lib=$DESTDIR/$_lib/libc.so.0 -+ lib=$(ldd "$lib" | awk '/statically|linux-(gate|vdso)\.so/{next} NF == 2 {print $1} /=/{print $3}' | sort -u) -+ libdir=$(cd $(dirname "$lib"); pwd) -+ if [ ! -e $DESTDIR$libdir ]; then -+ libdir=$(dirname "$libdir") -+ inst_d $libdir -+ verbose "+ ln -s /$_lib $DESTDIR$libdir" -+ ln -s /$_lib $DESTDIR$libdir -+ break -+ fi - fi -- fi -+ done - } - - # output modules.conf / modprobe.conf -@@ -999,6 +1002,12 @@ initrd_gen_initramfs_switchroot() { - mknod -m 660 $device b $maj $min - fi - -+ # XXX hack, fallback to rootdev from geninitrd time -+ if [ ! -e "$device" ]; then -+ device="$rootdev" -+ echo "DEVICE set to $device based on fstab entry from initrd gen time" -+ fi -+ - # XXX hack, if no device, try to parse it from /proc/partitions using /proc/sys/kernel/real-root-dev - if [ ! -e "$device" ]; then - rrd=$(cat /proc/sys/kernel/real-root-dev) -@@ -1052,6 +1061,14 @@ initrd_gen_initramfs_switchroot() { - [ "$DEBUGINITRD" ] || usleep 10000000 - fi - -+ # systemd[1]: /usr appears to be on its own filesytem and is not -+ # already mounted. This is not a supported setup. Some things will -+ # probably break (sometimes even silently) in mysterious ways. Consult -+ # http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken -+ # for more information. -+ echo trying to mount /usr -+ chroot /newroot mount -n /usr -+ - exec switch_root /newroot $init ${1:+"$@"} - - # FIXME: this code is never executed, as "exec" does not return! -@@ -1355,19 +1372,10 @@ for dir in libx32 lib64 lib; do - fi - done - --if [ -d /libx32 -a -d /usr/libx32 ]; then -- _lib=libx32 --elif [ -d /lib64 -a -d /usr/lib64 ]; then -- _lib=lib64 --else -- _lib=lib --fi -- - kernel_version=$(echo "$kernel" | awk -F. '{gsub(/[_-].*/, "", $0); print sprintf("%03d%03d",$1,$2)}') - kernel_version_long=$(echo "$kernel" | awk -F. '{gsub(/[_-].*/, "", $0); print sprintf("%03d%03d%03d",$1,$2,$3)}') - - verbose "# geninitrd $VERSION" --debug "Using _lib: $_lib" - debug "Using initrd_dir: $initrd_dir" - - busybox=$(find_tool $initrd_dir/busybox $initrd_dir/initrd-busybox /bin/initrd-busybox) || die "Couldn't find busybox suitable for initrd" -diff --git a/mod-multipath.sh b/mod-multipath.sh -index f918dd5..559eb55 100644 ---- a/mod-multipath.sh -+++ b/mod-multipath.sh -@@ -112,13 +112,19 @@ initrd_gen_multipath() { - inst_exec /sbin/multipath /sbin - - # for udev callouts -- local scsi_id=$(find_tool /$_lib/udev/scsi_id /lib/udev/scsi_id /sbin/scsi_id) -+ local scsi_id=$(find_tool $(get_libdir /LIBDIR/udev/scsi_id) /lib/udev/scsi_id /sbin/scsi_id) - inst_exec $scsi_id /lib/udev - -- if [ -d /$_lib/multipath ]; then -- inst_d /$_lib/multipath -- inst_exec /$_lib/multipath/* /$_lib/multipath -- else -+ local installed=0 -+ for _lib in $(get_libdir LIBDIR); do -+ if [ -d /$_lib/multipath ]; then -+ inst_d /$_lib/multipath -+ inst_exec /$_lib/multipath/* /$_lib/multipath -+ installed=1 -+ break -+ fi -+ done -+ if [ "$installed" -eq 0 ]; then - inst_exec /sbin/mpath* /sbin - fi - -diff --git a/mod-suspend.sh b/mod-suspend.sh -index 48efd57..c984e77 100644 ---- a/mod-suspend.sh -+++ b/mod-suspend.sh -@@ -13,7 +13,7 @@ setup_mod_suspend() { - warn "Tuxonice and mainline suspend are exclusive!" - fi - -- resume=$(find_tool $initrd_dir/resume /usr/${_lib}/suspend/resume /usr/sbin/resume) -+ resume=$(find_tool $(get_libdir /usr/LIBDIR/suspend/resume) $initrd_dir/resume /usr/sbin/resume) - - if [ ! -x "$resume" ] || [ ! -f /etc/suspend.conf ]; then - USE_SUSPEND=no -@@ -58,11 +58,7 @@ initrd_gen_suspend() { - inst $resume_dev $resume_dev - - inst /etc/suspend.conf /etc/suspend.conf -- if [ -x /usr/${_lib}/suspend/resume ]; then -- inst_exec /usr/${_lib}/suspend/resume /bin/resume -- else -- inst_exec /usr/sbin/resume /bin/resume -- fi -+ inst_exec $resume /bin/resume - - add_linuxrc <<-'EOF' - resume=no -diff --git a/mod-udev.sh b/mod-udev.sh -index 147b070..30114cd 100644 ---- a/mod-udev.sh -+++ b/mod-udev.sh -@@ -58,6 +58,16 @@ initrd_gen_udev() { - fi - done - -+ # basic group file -+ local _lib -+ inst /etc/nsswitch.conf /etc/nsswitch.conf -+ for _lib in $(get_libdir LIBDIR); do -+ if (ls /$_lib/libnss_files*.so* > /dev/null 2>&1); then -+ inst_exec /$_lib/libnss_files*.so* /$_lib/ -+ fi -+ done -+ awk -F: ' { if ($3 < 1000) { print $1":"$2":"$3":" } } ' /etc/group > $DESTDIR/etc/group -+ - # blkid installed by mod-blkid - if ! is_yes "$USE_BLKID"; then - warn "BLKID support missing" diff --git a/geninitrd.spec b/geninitrd.spec index 82a87b4..5479d4e 100644 --- a/geninitrd.spec +++ b/geninitrd.spec @@ -6,12 +6,12 @@ Summary: Creates an initial ramdisk image for preloading modules Summary(pl.UTF-8): Narzędzie do tworzenia inicjalnego ramdysku używanego przy starcie systemu Name: geninitrd -Version: 12749 -Release: 3 +Version: 12757 +Release: 1 License: GPL Group: Applications/System Source0: %{name}-%{version}.tar.gz -# Source0-md5: f26733e51d545d71feff72c16abf1f6b +# Source0-md5: 3fb153489c3c245e5c1ee4bbc333acb4 Patch0: %{name}-git.patch URL: http://git.pld-linux.org/?p=projects/geninitrd.git BuildRequires: xmlto >= 0:0.0.18-1 @@ -85,7 +85,7 @@ bieżących informacji zawartych w /etc/modules.conf. %prep %setup -qc mv %{name}-%{version}*/* . -%patch0 -p1 +#%patch0 -p1 %build %{__make}