It seems that the run-time dynamic loader gets confused by relative
paths in LD_LIBRARY_PATHS.

Nested chroot with a directory change may result in inexistent 
directory paths in LD_LIBRARY_PATH as well (see example1 attached)

The following patch makes all paths in LD_LIBRARY_PATH absolute.

(The same example gives the results in example2 attached)


Regards,
JH Chatenet

Example 1 : without patch

me@here:~$ fakechroot fakeroot chroot my_first_wheezy_chroot
# cd /home
# chroot not_me/my_second_wheezy_chroot
# echo $LD_LIBRARY_PATH

/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/lib64/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/usr/local/lib:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/lib64/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/home/me/my_first_wheezy_chroot/usr/lib:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/home/me/my_first_wheezy_chroot/lib:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/usr/local/lib:
my_first_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:my_first_wheezy_chroot/usr/lib64/libfakeroot:
my_first_wheezy_chroot/usr/lib32/libfakeroot:my_first_wheezy_chroot/lib/i386-linux-gnu:
my_first_wheezy_chroot/usr/lib/i386-linux-gnu:my_first_wheezy_chroot/lib/i486-linux-gnu:
my_first_wheezy_chroot/usr/lib/i486-linux-gnu:my_first_wheezy_chroot/usr/local/lib:
/usr/lib/i386-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib:/home/me/my_first_wheezy_chroot/lib:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/lib

(just breaking a long line at ':')

There appear in LD_LIBRARY_PATH paths 
"/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/my_first_wheezy_chroot/*"
"/home/me/my_first_wheezy_chrootnot_me/my_second_wheezy_chroot/*"
which don't exist in the filesystem.


Example 2 : with the patch applied

me@here:~$ fakechroot fakeroot chroot my_first_wheezy_chroot
# echo $LD_LIBRARY_PATH
/home/me/my_first_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib64/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/local/lib:
/usr/lib/i386-linux-gnu/libfakeroot:
/usr/lib64/libfakeroot:
/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib:
/home/me/my_first_wheezy_chroot/lib
# cd /home
# chroot not_me/my_second_wheezy_chroot
# echo $LD_LIBRARY_PATH
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib64/libfakeroot:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/local/lib:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/usr/lib:
/home/me/my_first_wheezy_chroot/home/not_me/my_second_wheezy_chroot/lib:
/home/me/my_first_wheezy_chroot/usr/lib/i386-linux-gnu/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib64/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/lib/i386-linux-gnu:
/home/me/my_first_wheezy_chroot/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/lib/i486-linux-gnu:
/home/me/my_first_wheezy_chroot/usr/local/lib:
/usr/lib/i386-linux-gnu/libfakeroot:
/usr/lib64/libfakeroot:
/usr/lib32/libfakeroot:
/home/me/my_first_wheezy_chroot/usr/lib:
/home/me/my_first_wheezy_chroot/lib:

Attachment: absolute_path.patch.gz
Description: Binary data

Reply via email to