aboutsummaryrefslogtreecommitdiff
path: root/rcynic
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
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')
-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