On Sat, 13 Oct 2007 13:50:39 -0600, Jerry Williams wrote: > I think the answers are going in the wrong direction. No. > And maybe this isn't about portaudio at all, but more of a dependency > problem. No. :) > I have a binary crrcsim-0.9.8-1.fc6.i386.rpm that was built on Fedora Core > 6. Are PortAudio v18 and v19 compatible? On Fedora 6 and 7 we have the old v18 with no SONAME, i.e. a libportaudio.so with _no_ soname. On Fedora 8 devel we have the newer v19 with a SONAME: libportaudio.so.2 The change in the library soname -- think of it as an identifier inside the library headers -- makes the two library releases incompatible already, even if creating a link for the old name might work (when the two libraries are ABI-compatible except for their sonames). > It installs just fine on Fedora 7, but that could be because when I enter > the command rpm -q portaudio returns portaudio-18.1-8.fc6. > > When I try and install it on Fedora 8 Test 3 it complains: > error: Failed dependencies: > libportaudio.so is needed by crrcsim-0.9.8-1.fc6.i386 > and it won't install. The application is linked against the old PortAudio v18 and hence requires the old library soname. That old soname is only provided by RPM packages which contain the old PortAudio v18 library. > And I think that is a bug of some kind because there is a > /usr/lib/libportaudio.so or at least a file that is a link. That symlink is only to be used during building of software, not at run-time. At run-time the versioned libportaudio.so.2* are to be used, since applications are linked against them. > And it does work if I install crrcsim with the --nodeps option. > > So am I just lucky that it works? Either that, or PortAudio has stayed ABI- and API-compatible between v18 and v19. Its API is from 2004 or so. > Should something be changed so that it satisfies the libportaudio.so No. > and so > it should let crrcsim install without having to use the --nodeps option? crrcsim ought to be rebuilt to link against the proper library, i.e the v19 PortAudio. > And I guess I don't understand the stuff below about sonames and such. > Why does it matter if I list the whole path or not? In addition to the list of files (incl. absolute paths) in a package, shared-library packages contain information in the RPM data about what library "name" they make available to the system. Only if you know that "rpm -q --whatprovides libfoo.so.2" is a query about a library soname, you know that it is not equivalent to "rpm -q --whatprovides /usr/lib/libfoo.so.4" which is a query about a file. So, even if you have a file/link called /usr/lib/libfoo.so, it might only point to a library with a versioned soname like "libfoo.so.4". > So is it the fact that on Fedora 8 I have version 2 of libportaudio.so and > on Fedora 7 I have version 1 or none and that the link in the devel package > is there so that things that require libportaudio.so will compile against > version 2, but the rpm wants to keep thing that where compiled against > version 1 to fail install because they might not work? RPM simply wants a package that offers the needed library soname, and in PortAudio v19 that name has changed to contain a version, "2". -- fedora-test-list mailing list fedora-test-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-test-list