diff --git a/ChangeLog b/ChangeLog index 8490dc3..340de2c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,12 +5,18 @@ # Distributed under the GPL v2 # $Id$ - 14 Apr 2012; Robin H. Johnson gen_initramfs.sh: + 16 Apr 2012; Robin H. Johnson gen_initramfs.sh: Release copy_binaries function as public domain. - 14 Apr 2012; Robin H. Johnson gen_initramfs.sh: + 16 Apr 2012; Robin H. Johnson gen_initramfs.sh: Handle other binary paths for LVM. + 16 Apr 2012; Sebastian Pipping genkernel: + Bump version to 3.4.30 + + 16 Apr 2012; Sebastian Pipping gen_initramfs.sh: + Support a non-static cryptsetup binary (bug #409277) + 09 Apr 2012; Sebastian Pipping defaults/initrd.scripts, defaults/keymaps/keymapList, defaults/keymaps/sf.map: Add keymap "sf" from Pentoo diff --git a/gen_initramfs.sh b/gen_initramfs.sh index 3dd757b..ca4f090 100755 --- a/gen_initramfs.sh +++ b/gen_initramfs.sh @@ -9,6 +9,7 @@ CPIO_ARGS="--quiet -o -H newc" # - Past and future changes to copy_binaries() still need to be licensable under # to maintain license compatibility with genkernel itself # Written by: +# - Sebastian Pipping (partly rewrite) # - Robin H. Johnson (complete rewrite) # - Richard Yao (original concept) # Usage: @@ -16,13 +17,23 @@ CPIO_ARGS="--quiet -o -H newc" copy_binaries() { local destdir=$1 shift - lddtree "$@" \ - | tr ')(' '\n' \ - | awk '/=>/{ if($3 ~ /^\//){print $3}}' \ - | sort \ - | uniq \ - | cpio -p --make-directories --dereference --quiet $destdir + for binary in "$@"; do + [[ -e "${binary}" ]] \ + || gen_die "Binary ${binary} could not be found" + + if LC_ALL=C lddtree "${binary}" 2>&1 | fgrep -q 'not found'; then + gen_die "Binary ${binary} is linked to missing libraries and may need to be re-built" + fi + + lddtree "${binary}" \ + | tr ')(' '\n' \ + | awk '/=>/{ if($3 ~ /^\//){print $3}}' \ + | sort \ + | uniq \ + | cpio -p --make-directories --dereference --quiet "${destdir}" \ + || gen_die "Binary ${f} or some of its library dependencies could not be copied" + done } append_base_layout() { @@ -419,12 +430,8 @@ append_luks() { [ -x "${_luks_source}" ] \ || gen_die "$(printf "${_luks_error_format}" "no file ${_luks_source}")" - is_static "${_luks_source}" \ - || gen_die "$(printf "${_luks_error_format}" "${_luks_source} not a static binary")" - print_info 1 "Including LUKS support" - cp "${_luks_source}" ${TEMP}/initramfs-luks-temp${_luks_dest} - chmod +x "${TEMP}/initramfs-luks-temp${_luks_dest}" + copy_binaries "${TEMP}/initramfs-luks-temp/" /sbin/cryptsetup fi find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \ diff --git a/genkernel b/genkernel index ea7e596..b4a899f 100755 --- a/genkernel +++ b/genkernel @@ -2,7 +2,7 @@ # $Id$ PATH="${PATH}:/sbin:/usr/sbin" -GK_V='3.4.29' +GK_V='3.4.30' # Set the default for TMPDIR. May be modified by genkernel.conf or the # --tempdir command line option.