| 
      
      
      From: Viktor T. <vik...@gm...> - 2015-05-18 11:38:23
      
     | 
| On 05/18/2015 12:52 PM, David Woodhouse wrote: > On Mon, 2015-05-18 at 09:29 +0200, Viktor Tarasov wrote: >>> As discussed in ticket #468 this version of libopensc.so.3 is >>> binary-incompatible with the libopensc.so.3 from previous OpenSC >>> releases. So anything linked against it may just crash on updating to >>> 0.15.0. >> For me the libopensc.so was always an internal OpenSC library. >> Maybe I'm missing something. > In that case, perhaps all we should do is make it stop *looking* like > it's a "proper" shared library with a coherently-managed ABI. If you > ever look at *anything* with an soname of 'libfoo.so.3' you're going to > be inclined to believe that the soname is actually meaningful. If it > ends '.so.0' then you might be more careful. > > If we do this... > > diff --git a/src/libopensc/Makefile.am b/src/libopensc/Makefile.am > index 1d42b0d..a0fc0e4 100644 > --- a/src/libopensc/Makefile.am > +++ b/src/libopensc/Makefile.am > @@ -64,7 +64,7 @@ if WIN32 > libopensc_la_LIBADD += -lws2_32 > endif > libopensc_la_LDFLAGS = $(AM_LDFLAGS) \ > - -version-info @OPENSC_LT_CURRENT@:@OPENSC_LT_REVISION@:@OPENSC_LT_AGE@ \ > + -release @PACKAGE_VERSION@ \ > -export-symbols "$(srcdir)/libopensc.exports" \ > -no-undefined > > ... then we end up with 'libopensc-0.15.0.so' which seems somewhat > clearer. > > It does still crash when I run 'pkcs11-tool -t -l' from the build > directory, however. Although /usr/lib64/pkcs11/opensc-pkcs11.so now > does *load* the old /usr/lib64/libopensc.so.3, it still doesn't *use* > it because it uses functions from the new libopensc-0.15.0.so instead. I have not seen this with opensc-pkcs11 and libopensc.so from the same revision. > To fix *that* we'd want symbol versioning. > > But perhaps we should just fix the 'run from build tree' case for > pkcs11-tool instead, so it's not using opensc-pkcs11.so from the > installed system? You can use pkcs11-tool with the "--module" argument. |