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