[uClibc] Re: The naming wars continue...

Denis Vlasenko vda at port.imtp.ilyichevsk.odessa.ua
Wed Oct 27 08:33:25 UTC 2004


On Wednesday 27 October 2004 07:21, H. Peter Anvin wrote:
> Tonnerre wrote:
> > Salut,
> > 
> > On Tue, Oct 26, 2004 at 02:43:54PM +0300, Denis Vlasenko wrote:
> > 
> >>Having /usr/XnnRmm was a mistake in the first place.
> > 
> > 
> > BSD has /X11R6, whilst I'd agree that /opt/xorg is probably a lot more
> > appropriate. If you want I can  take this discussion back to the X.Org
> > folks again, but I don't think it's actually going to change anything.
> > 
> 
> /opt/X (or /usr/X) is really what it probably should be.

Why there is any distinction between, say, gcc and X?
KDE and Midnight Commander? etc... Why some of them go
to /opt while others are spread across dozen of dirs?
This seems to be inconsistent to me.

I won't push my solution to anyone, just going to show you
how does it look:

# ls /usr/app -1
Linux-PAM-0.75
MPlayer-0.90rc4
SDL-1.2.6
acrobat-5.06
acroread-5.0.8
alsa-lib-0.9.0beta12
alsa-lib-0.9.7
alsa-utils-0.9.0beta12
alsa-utils-0.9.7
apache-1.3.24
atk-1.2.4
audiofile-0.2.3
audiogalaxy-0520
autofs-4.1.3
bash-2.05b
bglibs-1.005
binutils-2.15.91.0.1
bridge-utils-0.9.6
bsdftpd-6.0-ssl-0.5.2
busybox-1.00-pre6
...

Typical package under /usr/app:

# ls -l /usr/app/gcc-3.4.1
total 12
-r-xr-xr-x    1 root     root         1429 Oct 25 13:39 !vda_install
-r-xr-xr-x    1 root     root          874 Sep 15  2003 !vda_install_root
-r-xr-xr-x    1 root     root          157 Aug 17  2003 !vda_ver
drwxr-xr-x    2 root     root          360 Oct 25 13:39 bin
drwxr-xr-x    3 root     root           72 Jul 15 16:54 include
drwxr-xr-x    2 root     root          224 Jul 15 16:54 info
drwxr-xr-x    3 root     root          336 Jul 15 16:54 lib
drwxr-xr-x    3 root     root           72 Jul 15 16:54 libexec
drwxr-xr-x    4 root     root           96 Jul 15 16:54 man

This is how it is made visible to the rest of system:

# ls -l /usr/lib /usr/bin | grep gcc-3.4.1
lrwxrwxrwx    1 root     root           26 Oct 25 13:39 c++ -> /usr/app/gcc-3.4.1/bin/c++
lrwxrwxrwx    1 root     root           26 Oct 25 13:39 cpp -> /usr/app/gcc-3.4.1/bin/cpp
lrwxrwxrwx    1 root     root           26 Oct 25 13:39 g++ -> /usr/app/gcc-3.4.1/bin/g++
lrwxrwxrwx    1 root     root           26 Oct 25 13:39 gcc -> /usr/app/gcc-3.4.1/bin/gcc
lrwxrwxrwx    1 root     root           29 Oct 25 13:39 gccbug -> /usr/app/gcc-3.4.1/bin/gccbug
lrwxrwxrwx    1 root     root           27 Oct 25 13:39 gcov -> /usr/app/gcc-3.4.1/bin/gcov
lrwxrwxrwx    1 root     root           44 Oct 25 13:39 i386-pc-linux-gnu-c++ -> /usr/app/gcc-3.4.1/bin/i386-pc-linux-gnu-c++
lrwxrwxrwx    1 root     root           44 Oct 25 13:39 i386-pc-linux-gnu-g++ -> /usr/app/gcc-3.4.1/bin/i386-pc-linux-gnu-g++
lrwxrwxrwx    1 root     root           44 Oct 25 13:39 i386-pc-linux-gnu-gcc -> /usr/app/gcc-3.4.1/bin/i386-pc-linux-gnu-gcc
lrwxrwxrwx    1 root     root           50 Oct 25 13:39 i386-pc-linux-gnu-gcc-3.4.1 -> /usr/app/gcc-3.4.1/bin/i386-pc-linux-gnu-gcc-3.4.1
lrwxrwxrwx    1 root     root           34 Oct 25 13:39 libiberty.a -> /usr/app/gcc-3.4.1/lib/libiberty.a
lrwxrwxrwx    1 root     root           34 Oct 25 13:39 libstdc++.a -> /usr/app/gcc-3.4.1/lib/libstdc++.a
lrwxrwxrwx    1 root     root           35 Oct 25 13:39 libstdc++.la -> /usr/app/gcc-3.4.1/lib/libstdc++.la
lrwxrwxrwx    1 root     root           35 Oct 25 13:39 libstdc++.so -> /usr/app/gcc-3.4.1/lib/libstdc++.so
lrwxrwxrwx    1 root     root           37 Oct 25 13:39 libstdc++.so.6 -> /usr/app/gcc-3.4.1/lib/libstdc++.so.6
lrwxrwxrwx    1 root     root           41 Oct 25 13:39 libstdc++.so.6.0.1 -> /usr/app/gcc-3.4.1/lib/libstdc++.so.6.0.1
lrwxrwxrwx    1 root     root           34 Oct 25 13:39 libsupc++.a -> /usr/app/gcc-3.4.1/lib/libsupc++.a
lrwxrwxrwx    1 root     root           35 Oct 25 13:39 libsupc++.la -> /usr/app/gcc-3.4.1/lib/libsupc++.la

It's pretty modular: I can remove and install packages
as needed, I can go back to older versions to check
regressions etc...

BTW today I just added uclibc and some uc-compiled apps to the mix.
They coexist nicely with the rest of the system 
(I needed only some almost trivial tricks)

uc-Midnight Commander is 3 times smaller than glibc one :)
--
vda




More information about the uClibc mailing list