Hi Oden (hi list?)! I don't have an account for Mandrake's bug reporting system https://qa.mandrakesoft.com/, and I don't intend to subscribe to the mailing lists just to create a report, so I'm writing to you as a packager (Cc: to the list, it's worth a try).
I recently wanted to try out the program "autotrace" on my RedHat box, and noticed it requires libming.so. I found libming.so (using rpmfind.net) in your Mandrake packages. Quite obviously, the autotrace package I got must've been built with Mandrake. Due to my small installation problem, I ran into a somewhat severe bug in your packaging: The shared library "libming.so.0{,.2}" in the package libming0 is not created with an soname. This is the chain of results: - A program is linked with "-lming". - The linker finds the shared library "libming.so" (symbolic link) in your libming0-devel package and links against it. - During linking, a dependancy is created in the application towards either a) the soname or b) the filename of the lib, in that order. - Lacking an soname, the dependency (see objdump -p appname, "NEEDED:") is "libming.so". - This program (or rather ld.so/ld-linux.so) then needs to find a "libming.so" in order to be able to run. - Yet libming.so is not packaged in the libming0 package, it's in libming0-devel. Yet the latter shouldn't be needed during runtime! Such a mis-linked program cannot be installed as an RPM package without the presence of libming0-devel. The proper way around it is for the lib to have an soname identical to one of the file names (or link names) in the base lib package, in this case "libming.so.0". This is achieved in libming's case by changing the call in src/Makefile which links the dynamic lib, adding "-Wl,-soname -Wl,libming.so.0" (which is the syntax for gcc to hand "-soname libming.so.0" to the linker). Thanks for listening, Moritz.