[xmlsec] versioning and library naming policies

Aleksey Sanin aleksey@aleksey.com
Wed, 02 Apr 2003 00:35:10 -0800


> First I'll summarize my response:  Aleksey (perhaps with input from 
> the community) should decide one basic thing:
>
>     Should xmlsec have library versioning so that multiple versions 
> can exist within one OS installation or not?


I guess I already got the input (yours :) ). An ability to have
multiple versions is a defenite plus and I'll be happy to do this.
The only thing is that I don't see "good" solution. But let me
try one more time and I hope to get your feedback again :)

Let's assume that the libraries inside N.x.x series (N>=1) is backward
binary compatible. Can we do following:

    include/xmlsec/*         -->        include/xmlsecN/xmlsec/*
    lib/libxmlsec.so         -->        lib/libxmlsecN.so
    (points to lib/libxmlsecso.0)       (points to lib/libxmlsecN.so.N)
    lib/libxmlsec.so.0       -->        lib/libxmlsecN.so.N
    (points to lib/libxmlsec.so.0.x.x)  (points to lib/libxmlsecN.so.N.x.x)
    lib/libxmlsec.so.N.x.x   -->        lib/libxmlsecN.so.N.x.x
    lib/libxmlsec.a          -->        lib/libxmlsecN.a
    lib/libxmlsec.la         -->        lib/libxmlsecN.la
    bin/xmlsec               -->        bin/xmlsecN
    bin/xmlsec-config        -->        bin/xmlsecN-config
    man/man1/xmlsec.1        -->        man/man1/xmlsec1.1
    man/man1/xmlsec-config.1 -->        man/man1/xmlsec1-config.1    
    share/doc/xmlsec/*       -->        share/doc/xmlsec1/*

The existing xmlsec 0.0.x setup is not changed. All the applications 
that want to link with new version
have to use "xmlsec1" instead of "xmlsec" everywhere.

The difference with your approach is that we use only major version 
number instead of "major.minor".
The reason is that if major number is the same then the version is 
backward binary compatible.
Using the full "major.minor" makes things really bad (try to type 
"xmlsec-1.0" in the command line :) ).

What do you and others think?

Aleksey.