https://bugs.kde.org/show_bug.cgi?id=489827
Bug ID: 489827 Summary: Spurious automatic dependency on Poppler "Core" requires rebuild each time Poppler breaks ABI Classification: Frameworks and Libraries Product: extra-cmake-modules Version: unspecified Platform: Compiled Sources OS: All Status: REPORTED Severity: wishlist Priority: NOR Component: general Assignee: ecm-bugs-n...@kde.org Reporter: rjvber...@gmail.com Target Milestone: --- *** If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports *** SUMMARY Poppler has a habit of breaking ABI in its core library even for minor version updates like 24.01.0 to 24.04.0 . In my experience code that only uses the Qt4 or Qt5 interface libraries is not affected by such breakage as the interface API and ABI have proven to be as stable as the `SOVERSION` of libpoppler-qt? promises. ECM's FindPoppler module adds a dependency on Poppler's "Core" module however, which is still unnecessary as of Poppler 24.04.0 but causes binaries to have a hard dependency on the presence of a specific libpoppler version in addition to the actually required libpoppler-qt? file. As a result, these binaries often fail to load after a Poppler upgrade and need to be rebuilt. This puts an unnecessary burden on package maintainers and users like me who build everything themselves. STEPS TO REPRODUCE 1. Build and install the KFileMetadata and/or Okular from source (also tested with Kile and Tellico) 2. Upgrade Poppler to a version with a different libpoppler.so SOVERSION (e.g. 24.01.0 to 24.04.0) 3. Try to use the KFMD framework or opening a PDF file in Okular OBSERVED RESULT Failure at step 3 because of a missing libpoppler.x.so file (with x=133 in the example above) EXPECTED RESULT The dependent software should continue to function. SOFTWARE/OS VERSIONS Observed on Mac and Linux with various Qt5 versions (this is not a new phenomenon for me). ADDITIONAL INFORMATION Using `patchelf --remove-needed` to remove the spurious dependency on libpoppler.133.so fixes the problem. After rebuilding I can still remove the dependency on libpoppler.136.so without breaking functionality. I tried modifying the Kile and Tellico build systems to they only link to libpoppler-qt5.so and this breaks neither the build nor the functionality of the applications. I long had comments in my build scripts for some poppler dependents ago that rebuilding isn't required after a Poppler upgrade because the code only links to the stable libpoppler-qt5 library. Submitting this as a wishlist item because the FindPoppler module was introduced with this "feature" and dropping the automatic dependency may require some work for applications that do depend on Poppler's main library. -- You are receiving this mail because: You are watching all bug changes.