Bug#969907: inkscape, etc. crashing with mismatched libpoppler102 and libpoppler-glib8
Andreas Beckmann
anbe at debian.org
Tue Jan 10 18:12:15 GMT 2023
What about this solution:
In src:poppler provide a virtual package
Package: libpoppler-glibYY
Provides: libpopplerXX-glibYY (= ${binary:Version})
(where XX and YY are the sonames of the respective packages)
and in src:inkscape (and maybe others) add some sed
manipulation to d/rules:
# generate a virtual package dependency to ensure inkscape uses
# matching versions of libpopplerXX and libpoppler-glibYY
# #969907
execute_after_dh_shlibdeps:
sed -ri -e '/shlibs:Depends=/ s/$$/, POPPLER-GLIB/' \
-e 's/(libpoppler[0-9]+)(.*)POPPLER/\1\2\1/' \
-e 's/libpoppler-(glib[0-9]+)(.*)GLIB/\1\2\1/' \
debian/inkscape.substvars
Just tried that and it generated:
Depends: ..., libpoppler-glib8 (>= 0.18.0), libpoppler123 (>= 22.08.0), ..., libpoppler123-glib8
This should ensure inkscape depends on libpopplerXX and
libpoppler-glibYY with matching versions (something that
cannot be expressed easily in regular shared library
package dependencies) without unneccessarily tightening
poppler dependencies in packages that use only one of
these libraries.
(This will intentionally generate an unsatisfiable meta
dependency once inkscape no longer links to both
libpopplerXX and libpoppler-glibYY.)
Andreas
More information about the Pkg-freedesktop-maintainers
mailing list