Bug 715131
Summary: | devel package ships invalid pkgconfig file | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | David Woodhouse <dwmw2> |
Component: | syncevolution | Assignee: | Peter Robinson <pbrobinson> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 15 | CC: | axel.thimm, dmaphy, james.leddy, patrick.ohly, pbrobinson |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | syncevolution-1.1.99.6-1.fc16 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-08-28 05:33:27 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
David Woodhouse
2011-06-21 23:24:08 UTC
diff --git a/syncevolution.spec b/syncevolution.spec index 99fac53..180493b 100644 --- a/syncevolution.spec +++ b/syncevolution.spec @@ -116,7 +116,7 @@ make install DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} rm -rf $RPM_BUILD_ROOT%{_datadir}/doc #Remove libtool archives and static libs -find %{buildroot} -name '*.la' -o -name '*.a' | xargs rm +find %{buildroot} -name '*.la' -o -name '*.a' | grep -v /libsynthesissdk.a | xargs rm %find_lang %{name} @@ -166,6 +166,7 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/sync-moblin.desktop %{_includedir}/synthesis %{_libdir}/pkgconfig/s*.pc %{_libdir}/*so +%{_libdir}/libsynthesissdk.a %files gtk %defattr(-,root,root,-) I'm not sure why that patch makes the pkgconfig file valid given that the Fedora package guidelines suggest removing static libraries, or at least shipping them in a -static package if necessary. Really the real fix to the problem is upstream including proper unbundling of libsynthesis The bug is that the pkgconfig file refers to a library that doesn't exist: $ pkg-config --libs syncevolution -lsyncevolution -lsynthesissdk -lsmltk -lsynthesis $ gcc -xc /dev/null `pkg-config --libs syncevolution` /usr/bin/ld: cannot find -lsynthesissdk The patch makes the pkgconfig file valid because it makes that file exist. I certainly agree that it's not the ideal solution to the problem. But at the moment we have a syncevolution-devel package which is just totally broken, so *anything* would be an improvement, surely? It occurs to me that "proper unbundling of libsynthesis", while desirable, still wouldn't fix this problem. You'd just move it to the libsynthesis package. The real problem is that libsynthesis ships a static library and refers to it in its pkgconfig file, and our packaging deletes static libraries. So the -devel package CANNOT WORK. libsynthesisdk.a must not be deleted. It is needed: - provides glue code which dlopens() a suitable libsynthesis (optional, SyncEvolution doesn't use this feature and links against libsynthesis directly) - provides C++ wrapper classes for the libsynthesis C API The C++ classes do not have a stable API/ABI and thus should not be put into a shared library. The stable API/ABI and most code is in libsynthesis, which is shared. OK, so the upstream developer has clearly stated that my patch in comment #1 is correct; that the libsynthesissdk.a library is necessary. Peter, if you want to take it up with upstream and try to persuade Patrick that this code should be given a stable ABI and then shipped as a shared library (despite the fact that it seems to exist as a separate entity solely for the purpose of having an unstable ABI), by all means feel free to do so. But in the *meantime* please can we fix the -devel package to include the existing library that the pkgconfig file explicitly references. syncevolution-1.1.99.6-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/syncevolution-1.1.99.6-1.fc16 Package syncevolution-1.1.99.6-1.fc16: * should fix your issue, * was pushed to the Fedora 16 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing syncevolution-1.1.99.6-1.fc16' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/syncevolution-1.1.99.6-1.fc16 then log in and leave karma (feedback). syncevolution-1.1.99.6-1.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report. |