From: sopwith@bogus.cuc.ml.org (Elliot Lee) Newsgroups: comp.os.linux.advocacy Subject: Re: Just when I thought RPMS were cool Date: 3 Apr 1998 04:19:16 GMT Organization: Columbia Union College On Fri, 3 Apr 1998 02:08:10 GMT, Sam Trenholme wrote: >Personally, I do not know what Glibc offers that is worth the painful >transition. Perhaps developers were getting bored with libc5. :) Here is some technical background, accompanied by reasons why libc5 deserves to die a nice quiet death: libc5 has been hacked together from a very very very old glibc. It has reached the end of its usable lifecycle. It's ugly, non-portable code. It's not anywhere close to thread-safe sane. Now what does glibc offer? - glibc offers much greater standards conformance (for example, the POSIX.1 test suite wouldn't even compile under libc5, but completes the tests A-OK under glibc.). - glibc offers more features - switchable name service modules, so you can hook your system's passwd database into an LDAP server instantly - IPv6 - 64-bit I/O API's - glibc is easily portable to different arch/OS combos, and allows a port to provide optimized versions of the generic functions - Corollary: glibc is faster (due to the platform-optimized functions such as the ). - glibc insulates programs from the kernel, making them more portable. - The glibc source code is sanely structured and cleaner and more secure, etc. etc. (The security problems in glibc have been in the RPC & resolver code, both taken from outside sources and rather crappy code if you ask me - volunteers to write from scratch are probably needed ;-) - glibc supports multithreading properly (it has all the thread-safe versions of non-reentrant functions, and it is thread-safe in other places). - The symbol versioning built into glibc means new releases of glibc will be binary compatible with older releases. None of these apply to libc5. (I've amazed even myself here with this long list :-) Nobody is arguing that glibc has had teething pains, but it is needed to ensure a sane future for Linux ;-) Hope these reasons are logical and help you understand exactly why the change was needed. > rpm -i foo.src.rpm > cd /usr/src/redhat/SPECS > rpm -bb foo.spec > cd ../RPMS/i386 > rpm -i foo.i386.rpm Or easier yet rpm --rebuild foo.src.rpm rpm -Uvh /usr/src/redhat/RPMS/i386/foo.i386.rpm and you don't wind up with the source and build directory hanging around /usr/src/redhat/{BUILD,SOURCES,SPECS} :-) -- Elliot Chicken Little was right.