Here is a patch that does three things: Copy files instead of symlinking so it is possible to add symlinks into cpio image, and remove --deref from cpio args.
Add lib64 -> lib symlink if our environment also contains such symlink. (This closes #337176.) Don't try to execute evms_activate if it doesn't exist. (This closes #337607.)
=== modified file 'hook-functions' --- hook-functions +++ hook-functions @@ -14,6 +14,11 @@ { manual_add_modules [EMAIL PROTECTED] echo "[EMAIL PROTECTED]" >>"${DESTDIR}/conf/modules" +} + +add_file() +{ + cp -a ${1} ${2} } # Takes a file containing a list of modules to be added as an @@ -47,14 +52,14 @@ fi mkdir -p "${DESTDIR}/$(dirname "${mam_x}")" - ln -s "${mam_x}" "${DESTDIR}/$(dirname "${mam_x}")" + add_file "${mam_x}" "${DESTDIR}/$(dirname "${mam_x}")" done } # $1 is source # $2 is relative destination copy_exec() { - ln -s ${1} ${DESTDIR}/${2} + add_file ${1} ${DESTDIR}/${2} # Copy the dependant libraries for x in $(ldd ${1} 2>/dev/null | sed -e ' @@ -76,7 +81,7 @@ mkdir -p ${DESTDIR}/${dirname} if [ ! -e ${DESTDIR}/${dirname}/${libname} ]; then - ln -s ${x} ${DESTDIR}/${dirname} + add_file ${x} ${DESTDIR}/${dirname} fi done } === modified file 'mkinitramfs' --- mkinitramfs +++ mkinitramfs @@ -140,6 +140,11 @@ mkdir -p "${DESTDIR}/${d}" done +# We might need lib64 -> lib symlink in root for linker. +if [ -e /lib64 ]; then + ln -s lib "${DESTDIR}/lib64" +fi + # MODULES=list case. Always honour. for x in "${CONFDIR}/modules" /usr/share/initramfs-tools/modules.d/*; do if [ -f "${x}" ]; then @@ -155,18 +160,15 @@ auto_add_modules fi -# Have to do each file, because cpio --dereference doesn't recurse down -# symlinks. - -ln -s /usr/lib/klibc/bin/* ${DESTDIR}/bin -ln -s /usr/lib/klibc/lib/klibc-*.so ${DESTDIR}/lib +cp -a /usr/lib/klibc/bin/* ${DESTDIR}/bin +cp -a /usr/lib/klibc/lib/klibc-*.so ${DESTDIR}/lib copy_exec /usr/share/initramfs-tools/init /init cp -a /usr/share/initramfs-tools/scripts/* "${DESTDIR}/scripts" for f in $(cd /etc/mkinitramfs/scripts && \ find . \( -name '*.dpkg*' -prune -o -name '*~' -prune \) \ -o -type f -print); do mkdir --parents "${DESTDIR}/scripts/$(dirname "${f}")" -cp -p "/etc/mkinitramfs/scripts/${f}" "${DESTDIR}/scripts/$(dirname "${f}")" + cp -p "/etc/mkinitramfs/scripts/${f}" "${DESTDIR}/scripts/$(dirname "${f}")" done copy_exec "${CONFDIR}/initramfs.conf" /conf cp -a /etc/udev "${DESTDIR}/etc" @@ -195,7 +197,7 @@ copy_exec "${CONFDIR}/DSDT.aml" / fi -(cd "${DESTDIR}" && find . | cpio --quiet --dereference -o -H newc | gzip -9 >"${outfile}") +(cd "${DESTDIR}" && find . | cpio --quiet -o -H newc | gzip -9 >"${outfile}") if [ -s "${__TMPCPIOGZ}" ]; then cat "${__TMPCPIOGZ}" >>"${outfile}" === modified file 'scripts/local-top/evms' --- scripts/local-top/evms +++ scripts/local-top/evms @@ -15,6 +15,10 @@ ;; esac +if [ ! -x /sbin/evms_activate ]; then + exit 0 +fi + evms=${ROOT#/dev/evms/} case ${evms} in
-- Tommi Vainikainen