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