[Following a similar discussion in another mailing list] As you know, only a few directories can be assumed to be available after boot[1]. Notably, /usr and /var are not among them. Binaries in /bin and /sbin should be enough to do basic maintanence/repair and to mount other volumes. Since we are using the binaries in /bin and /sbin to potentially mount /usr, they should not depend on them. Or can they?
On my laptop: # for f in /bin/* /sbin/*; do if [ "$(file $f | grep ELF)" != "" ] ; then if [ "$(ldd $f | grep /usr)" != "" ] ; then echo $(equery belongs $f) $f; ldd $f; fi; fi; done net-firewall/iptables-1.4.6 /sbin/iptables-multi linux-vdso.so.1 => (0x00007fffc77e8000) libip4tc.so.0 => /usr/lib/libip4tc.so.0 (0x00007f27e4781000) libxtables.so.4 => /usr/lib/libxtables.so.4 (0x00007f27e4579000) libm.so.6 => /lib/libm.so.6 (0x00007f27e42f8000) libc.so.6 => /lib/libc.so.6 (0x00007f27e3f9f000) libdl.so.2 => /lib/libdl.so.2 (0x00007f27e3d9b000) /lib64/ld-linux-x86-64.so.2 (0x00007f27e4988000) sys-apps/hal-0.5.14-r2 /sbin/umount.hal linux-vdso.so.1 => (0x00007fff6b5f3000) libhal.so.1 => /usr/lib/libhal.so.1 (0x00007fd52e637000) libhal-storage.so.1 => /usr/lib/libhal-storage.so.1 (0x00007fd52e42c000) libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007fd52e1ec000) libc.so.6 => /lib/libc.so.6 (0x00007fd52de93000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007fd52dc77000) librt.so.1 => /lib/librt.so.1 (0x00007fd52da6e000) /lib64/ld-linux-x86-64.so.2 (0x00007fd52e848000) Questions: 1. Is this OK or should we file bugs against binaries in {/bin,/sbin} linking against libraries in /usr/lib? Fix is relatively easy in general (give --libdir=/lib against the config script) 2. Is the below acceptable? (symlinking from /bin to /usr/bin) # ls -l $(find {/bin,/sbin}/ -type l)|grep /usr lrwxrwxrwx 1 root root 20 Oct 28 2008 /bin/igawk -> /usr/bin/igawk-3.1.6 lrwxrwxrwx 1 root root 14 Aug 10 13:29 /bin/mail -> /usr/bin/mailx lrwxrwxrwx 1 root root 20 Oct 28 2008 /bin/pgawk -> /usr/bin/pgawk-3.1.6 Corollary to both: If yes, tinderbox/buildbot against other packages are probably in order as well. Thanks -- Eray [1] /dev /etc /lib /bin /sbin /proc (Linux) /sys (Linux-2.6) /libexec (*BSD)