2013/6/3 Pete Batard <p...@akeo.ie>:
> On 2013.06.01 12:57, Ludovic Rousseau wrote:
>> Only one libusb.pc file can be installed at a given time.
>>
>> I will take an example with a foo library on Linux.
>> The libfoo-x.y.z.tar.gz archive when build will provide the files
>> - libfoo.pc
>> - libfoo.so.0.1.0
>> - libfoo.so.0 (link to libfoo.so.0.1.0)
>> - libfoo.so (link to libfoo.so.0)
>>
>> The libfoo.so.0 and libfoo.so.0.1.0 files are used at the execution time.
>> The libfoo.so and libfoo.pc files are used a build time.
>>
>> libfoo.so.0 and libfoo.so.0.1.0 will be packaged in libfoo0_x.y.z.deb
>> libfoo.so and libfoo.so.pc will be packaged in libfoo-dev_x.y.z.deb
>> (or -devel for rpm packages)
>>
>> One benefit of this naming is that if the ABI change in an
>> incompatible way then the library will use libfoo.so.1.
>> So both libfoo.so.0 and libfoo.so.1 can be installed on the system at
>> the same time. Binaries using the old ABI can coexist with binaries
>> using the new ABI.
>>
>> You can install both libfoo0 and libfoo1 packages at the same time.
>> But you can't install libfoo-dev from 2 different releases. This is
>> not really a problem since you only need this package at build time,
>> not at run time.
>
> So if you have two incompatible versions of the API, despite the fact
> that the .so.x(.y) runtimes can coexist nicely in that scenario, you're
> screwed in terms of .so and .pc because there are no provisions there
> for concurrent incompatible APIs.

Note that I was talking about ABI change, not API.

If you can't write the API header file so that old code can stile
compile with a newer version then you have to create a new library.
You can call it libfoo1 (and libfoo1.so.0) instead of libfoo. But
remind that this is a versioning of the API, not a release number.

With libfooA.so.B
- if the ABI change then update B
- if the API change then update A and set B=0

Bye

--
 Dr. Ludovic Rousseau

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to