On Mon, 25 Mar 2013 01:44:49 +0100, Kevin Kofler wrote: > Michael Schwendt wrote: > > "Standard" versioning is not beneficial here at all. As explained before, > > here the full version is part of the SONAME. Not just the major version. > > libcfitsio.so.3.330 would be incompatible with libcfitsio.so.3.340 as > > mentioned in a later post by Sergio (on 2013-03-22) already. There is > > no common libcfitsio.so.3 that would be downward compatible. > > But there's no rule that says that the soname has to be libcfitsio.so.3 > (well, there is if the package builds using libtool, but e.g. CMake allows > any arbitrary soname, and it also correctly handles the case where the > soname is the same as the fully-versioned name). In cfitsio's case, the > makefile commands writing the library are handwritten (i.e. don't use > libtool) and thus also allow an arbitrary soname; in fact, the soname WAS > libcfitsio.so.3.330 before you incorrectly told him to change it Why is that incorrect? > (based on > the wrong assumption that he would be setting the soname to just > libcfitsio.so.3, which would of course be wrong). Huh? Who has made that assumption? The previous soname was libcfitsio.so.0, which has been a bad choice for an API/ABI that changes so frequently. > Just set the soname and the fully-versioned name both to > "libcfitsio.so.%{version}". That is misleading. IMHO. > >> The version goes after .so, not before it, unless you want to have it > >> also in the symlink, which you explicitly DON'T want here. > > > > Why not? It would even have been okay to name the run-time lib > > libcfitsio-3.330.so with the implicit opportunity to use the same file > > as the build-time lib. That would even make it possible to ship multiple > > releases of cfitsio, since with a non-versioning build-time lib, multiple > > -devel packages would conflict in their .so symlink (if that one is used). > > But then ALL packages using cfitsio have to be patched to use the versioned > name. It just doesn't make sense. That isn't done, however, so currently no patching is necessary. > >> I know that going back and forth sucks (as everything will have to be > >> rebuilt AGAIN), but I think you should really should change this back > >> (and you should never have changed it from .so.3.330 to -3.330.so.0 in > >> the first place). > > > > Either naming version would require rebuilds of dependencies for version > > changes. So, why bother? > > Because libcfitsio.so → libcfitsio.so.3.330 is just the cleaner scheme > compared to libcfitsio.so → libcfitsio-3.330.so.0. Your scheme has 2 > versions, one of which is always 0, and the devel symlink does not follow > the pattern of pointing from foo.so to foo.so.* with the same name foo. "Cleaner"? That's all? Then this is a superfluous discussion. It doesn't make sense to go in circles. What you consider cleaner is just a version that pretends that a clean versioning scheme is implemented. The added .0 does no harm. It would make it possible to change the ABI without bumping the library version. -- Fedora release 19 (Schrödinger’s Cat) - Linux 3.9.0-0.rc3.git1.4.fc19.x86_64 loadavg: 0.08 0.08 0.07 -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel