On Thu, 15 Feb 2007 12:14:22 -0500 (EST), Tom Diehl wrote: > > The developers ought to move their plugins to a private directory and not > > pollute /usr/lib. The chosen file names are very generic, too, since the > > libraries can conflict with any other package, which would also include a > > libmysql_drv.so.* Further, the developers ought to dlopen the versioned > > libs rather than the non-versioned *.so and that is especially useful when > > loading external libs (e.g. system libs). > > AAH!! This helps a lot. I think I am finally starting to understand this magic. > > So, if I understand you correctly, the right thing to do in this case, would > be to get upstream to use /usr/lib/libmysql_drv.so.7 and put the *.so files in > the -devel package. > > Is this correct? More like: * if these libraries are supposed to be plugins, the developers should move them to /usr/lib/dspam/ and dlopen them from there via *.so.* or *.so (they have all the freedom, the private plugin directory can contain all files - if the plugins are built together with the main application, dlopening *.so from a private directory would be fine) * if they want to keep them in /usr/lib as plugin libs to coexist with system libraries, the developers are strongly encouraged to give them names in an own namespace, which is less likely to conflict with other packages or libs, e.g. /usr/lib/libdspam_mysql_drv.so* or /usr/lib/libdspam_mysql.so* * if these libs can be linked with (or dlopenend from) other programs through a public API (with corresponding include files) just like system libraries, the developers ought to separate what is needed at run-time for dynamic linking (versioned *.so.* libs) and what is needed at build-time only (the *.so symlinks) - that would make it possible to split off the development files (headers and *.so symlink e.g.) into the separate -devel package and possible even the libs into a separate -libs package - external programs, which would link against these libs, would have automatic RPM dependencies on the exact library names, e.g. an implicit "Requires: libdspam_mysql_drv.so.7" - the developers, if they continue loading the libs as plugins, should prefer the versioned *.so.* names, too, because changing the library name and version would break dependencies and because the *.so symlink of system libraries is only to be used during development -- fedora-extras-list mailing list fedora-extras-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-extras-list