aboutsummaryrefslogtreecommitdiff
path: root/rcynic/installation-scripts/linux/install.sh.in
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2012-12-13 01:39:44 +0000
committerRob Austein <sra@hactrn.net>2012-12-13 01:39:44 +0000
commit18f4eaee9d99c62d82d44af6183ac1e30a57750f (patch)
treed1ada3f5f360d5bb0715042ff795d6f0982644f5 /rcynic/installation-scripts/linux/install.sh.in
parent0fbcf4be32dc239a95b8aa7125c30a444c66d7d0 (diff)
Make shared library copying code work again on Ubuntu 12.04LTS. Need
to test other Linux platforms to see what this breaks. Whole thing probably needs to be controlled a lot more tightly by autoconf. See #363. svn path=/trunk/; revision=4931
Diffstat (limited to 'rcynic/installation-scripts/linux/install.sh.in')
-rw-r--r--rcynic/installation-scripts/linux/install.sh.in19
1 files changed, 15 insertions, 4 deletions
diff --git a/rcynic/installation-scripts/linux/install.sh.in b/rcynic/installation-scripts/linux/install.sh.in
index 14cdbc4a..37b4af0a 100644
--- a/rcynic/installation-scripts/linux/install.sh.in
+++ b/rcynic/installation-scripts/linux/install.sh.in
@@ -145,12 +145,23 @@ fi
echo "Copying required shared libraries"
-shared_libraries="${jaildir}/bin/rcynic ${jaildir}/bin/rsync"
+shared_libraries="${jaildir}/bin/rcynic ${jaildir}/bin/rsync $(/usr/bin/find ${libdir} -name 'libnss*.so*' -print)"
while true
do
closure="$(/usr/bin/ldd ${shared_libraries} |
- ${AWK} -v "rcynic=${jaildir}/bin/rcynic" -v "rsync=${jaildir}/bin/rsync" \
- '{sub(/:$/, "")} $0 == rcynic || $0 == rsync {next} {for (i = 1; i <= NF; i++) if ($i ~ /^\//) print $i}' |
+ ${AWK} -v "rcynic=${jaildir}/bin/rcynic" -v "rsync=${jaildir}/bin/rsync" '
+ {
+ sub(/:$/, "");
+ }
+ $0 == rcynic || $0 == rsync || $1 ~ /\/ld-linux\.so/ {
+ next;
+ }
+ {
+ for (i = 1; i <= NF; i++)
+ if ($i ~ /^\//)
+ print $i;
+ }
+ ' |
${SORT} -u)"
if test "x$shared_libraries" = "x$closure"
then
@@ -166,7 +177,7 @@ if test -f ${libdir}/libresolv.so.2; then
shared_libraries="${shared_libraries} ${libdir}/libresolv.so.2"
fi
-for shared in ${libdir}/*ld*.so* $shared_libraries ${libdir}/libnss*.so.*
+for shared in ${libdir}/*ld*.so* $shared_libraries
do
if test -r "${jaildir}/${shared}"
then