ref: 94aeb47ddf730050067f3135115a8aabac24480a
parent: 5b394a62d30b42d2a4d9d69a6187c34c4c540f64
author: Natanael Copa <ncopa@alpinelinux.org>
date: Tue Mar 25 04:01:39 CDT 2014
mkinitfs: automatically resolv elf dependencies This is so we don't need to manually manage the dependencies which gets ugly when supporting multiple libc.
--- a/mkinitfs.in
+++ b/mkinitfs.in
@@ -31,7 +31,7 @@
fi
done
done
- done | sort -u
+ done
}
initfs_base() {
@@ -44,12 +44,14 @@
local oldpwd="$PWD"
cd "${basedir}"
- for file in $(feature_files "$basedir" files); do
- echo "${file#$basedir}"
- done | cpio -pdm "$tmpdir" || return 1
+ lddtree -R "$basedir" -l --no-auto-root \
+ $(feature_files "$basedir" files) \
+ \
+ | sed -e "s|^$basedir||" | sort -u \
+ | cpio -pdm "$tmpdir" || return 1
# copy init
- cd $startdir
+ cd "$startdir"
install -m755 "$init" "$tmpdir"/init || return 1
for i in "$fstab" "$passwd" "$group"; do
install -Dm644 "$i" "$tmpdir"/etc/${i##*/} || return 1
@@ -112,7 +114,7 @@
cd "${basedir}"
for file in $(find_kmods); do
echo "${file#/}"
- done | cpio -pdm "$tmpdir" || return 1
+ done | sort -u | cpio -pdm "$tmpdir" || return 1
depmod $kernel -b "$tmpdir"
cd "$oldpwd"
}