On 31.08.2011 00:18, John Reiser wrote:
Building an initramfs does not preserve symlinks for .hmac files. For instance on Fedora 16 the symlink /lib64/.libcrypto.so.10.hmac -> .libcrypto.so.1.0.0d.hmac becomes a separate regular file: ----- $ lsinitrd test.img | grep hmac -rw-r--r-- 1 root root 65 Jul 26 04:10 usr/lib64/.libssl.so.1.0.0d.hmac -rw-r--r-- 1 root root 65 Jul 26 04:10 usr/lib64/.libssl.so.10.hmac -rw-r--r-- 1 root root 65 Jul 26 04:10 lib64/.libcrypto.so.10.hmac -rw-r--r-- 1 root root 65 Aug 14 22:09 lib64/.libgcrypt.so.11.hmac -rw-r--r-- 1 root root 65 Jul 26 04:10 lib64/.libcrypto.so.1.0.0d.hmac $ ls -l /lib64/.*.hmac -rw-r--r--. 1 root root 65 Jul 26 04:10 /lib64/.libcrypto.so.1.0.0d.hmac lrwxrwxrwx. 1 root root 25 Aug 25 10:31 /lib64/.libcrypto.so.10.hmac -> .libcrypto.so.1.0.0d.hmac -rw-r--r--. 1 root root 65 Aug 14 22:09 /lib64/.libgcrypt.so.11.hmac $ -----
fixed with the attached patch. Thanks!
diff --git a/dracut-functions b/dracut-functions index c28766e..3edd4c7 100755 --- a/dracut-functions +++ b/dracut-functions @@ -320,7 +320,7 @@ inst_simple() { fi # install checksum files also if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then - inst_simple "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac" + inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac" fi ddebug "Installing $_src" cp -pfL "$_src" "${initdir}$target" @@ -360,7 +360,7 @@ inst_library() { if [[ -L $_src ]]; then # install checksum files also if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then - inst_simple "${_src%/*}/.${_src##*/}.hmac" "${_dest%/*}/.${_dest##*/}.hmac" + inst "${_src%/*}/.${_src##*/}.hmac" "${_dest%/*}/.${_dest##*/}.hmac" fi _reallib=$(readlink -f "$_src") inst_simple "$_reallib" "$_reallib"