[racket-dev] Racket should install libracket3m-X.Y.Z.so as libracket3m.so.X.Y.Z

From: Juan Francisco Cantero Hurtado (iam at juanfra.info)
Date: Wed Sep 11 04:42:19 EDT 2013

The standard on modern unix systems is to name the shared libraries with 
this pattern: "lib" + name + ".so." + major version + "." + minor 
version. Racket uses libracket-5.3.6.so. It isn't correct.

-rwxr-xr-x  1 root  wheel   9.0M Aug 17 04:28 
/usr/local/lib/libracket3m-5.3.6.so
-rw-r--r--  1 root  wheel  14.3M Aug 17 04:28 /usr/local/lib/libracket3m.a
-rw-r--r--  1 root  wheel   852B Aug 17 04:28 /usr/local/lib/libracket3m.la
lrwxr-xr-x  1 root  wheel    20B Aug 17 05:51 
/usr/local/lib/libracket3m.so -> libracket3m-5.3.6.so

Look some examples. libpng on OpenBSD:

lrwxr-xr-x  1 root  wheel    10B Sep 10 19:30 /usr/local/lib/libpng.a -> 
libpng16.a
-rw-r--r--  1 root  bin     720B Aug 17 02:22 /usr/local/lib/libpng.la
lrwxr-xr-x  1 root  wheel    16B Sep 10 19:30 
/usr/local/lib/libpng.so.17.0 -> libpng16.so.17.0
-rw-r--r--  1 root  bin     1.2M Aug 17 02:22 /usr/local/lib/libpng16.a
-rw-r--r--  1 root  bin     730B Aug 17 02:22 /usr/local/lib/libpng16.la
-rw-r--r--  1 root  bin     703K Aug 17 02:22 
/usr/local/lib/libpng16.so.17.0

libarchive on Gentoo:

lrwxrwxrwx 1 root root     20 May 10 09:12 /usr/lib/libarchive.so -> 
libarchive.so.13.1.2
lrwxrwxrwx 1 root root     20 May 10 09:12 /usr/lib/libarchive.so.13 -> 
libarchive.so.13.1.2
-rwxr-xr-x 1 root root 723968 May 10 09:12 /usr/lib/libarchive.so.13.1.2


Also you should add some easy setting to change the suffix X.Y.Z of the 
lib. Some projects use variables in configure or the main makefile. The 
version of the libs is unrelated to the version of the software. On 
OpenBSD we change the numbers, so we can control when the dependencies 
require an update.



Posted on the dev mailing list.