Package: cups-filters
Version: 1.28.17-7+b2
Severity: important
Dear Maintainer,
With libqpdf30 12.4.0-1, /usr/lib/cups/filter/gstoraster fails
immediately with a dynamic linker error:
|/usr/lib/cups/filter/gstoraster: symbol lookup error:
/usr/lib/cups/filter/gstoraster: undefined symbol:
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm,
version LIBQPDF_30 |
Installed cups-filters is:
|cups-filters 1.28.17-7+b2 |
The relevant dependency is:
|libqpdf30 (>> 12.3.2~) |
so libqpdf30 12.4.0-1 is considered a valid dependency.
The problem is reproducible simply with:
|/usr/lib/cups/filter/gstoraster 2>&1 | head -5 |
With libqpdf30 12.4.0-1, this produces the symbol lookup error above.
I investigated the symbol versions involved.
gstoraster requests:
|readelf -Ws /usr/lib/cups/filter/gstoraster | grep 'M_replace'
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm@LIBQPDF_30
|
However, libqpdf.so.30 from libqpdf30 12.4.0-1 contains this symbol only
as an undefined libstdc++ symbol:
|objdump -T /usr/lib/x86_64-linux-gnu/libqpdf.so.30 | grep 'M_replace'
... (GLIBCXX_3.4.31) ... _M_replace_cold... ... (GLIBCXX_3.4.21) ...
_M_replace... ... (GLIBCXX_3.4.21) ... _M_replace_aux... |
The corresponding GLIBCXX symbols are present in the installed
libstdc++6 (16.2.0-1).
I also verified that the installed gstoraster binary is exactly the one
shipped by cups-filters 1.28.17-7+b2:
|sha256sum /usr/lib/cups/filter/gstoraster \
/tmp/cups-filters-test/usr/lib/cups/filter/gstoraster
35d03c8fbe89159554dabc6f395276052a286d9dd72a5bdd004e55cc90f44653
35d03c8fbe89159554dabc6f395276052a286d9dd72a5bdd004e55cc90f44653 |
As a control test, I downgraded libqpdf30 to:
|libqpdf30 12.3.2-1+b1 |
With that version installed, the same command:
|/usr/lib/cups/filter/gstoraster 2>&1 | head -5 |
no longer produces a dynamic linker error. Instead, gstoraster starts
normally and reports its expected usage:
|ERROR: /usr/lib/cups/filter/gstoraster job-id user title copies options
[file] |
This makes the interaction between cups-filters 1.28.17-7+b2 and
libqpdf30 12.4.0-1 reproducible and distinguishes it from a general
gstoraster problem.
There is an existing Debian bug #1100207 concerning qpdf 12 support in
cups-filters. That bug was fixed in cups-filters 1.28.17-6. However, the
current issue appears to be a separate runtime symbol-versioning/ABI
problem with libqpdf30 12.4.0-1.
The current cups-filters dependency accepts libqpdf30 12.4.0-1, but
gstoraster cannot load with that version.
Expected result:
gstoraster should start normally with the libqpdf30 version accepted by
the cups-filters dependency.
Actual result:
gstoraster aborts during dynamic linking with an undefined LIBQPDF_30
symbol.
The current workaround is to keep libqpdf30 at 12.3.2-1+b1.
System information generated by reportbug follows.
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 7.0.13+deb14-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages cups-filters depends on:
ii bc 1.07.1-4
ii cups-filters-core-drivers 1.28.17-7+b2
ii ghostscript 10.07.1~dfsg-1
ii libc6 2.42-17
ii libcups2t64 2.4.18-1
ii libcupsfilters1t64 1.28.17-7+b2
ii libfontconfig1 2.17.1-5
ii libfontembed1t64 1.28.17-7+b2
hi libqpdf30 12.3.2-1+b1
ii libstdc++6 16.2.0-1
ii poppler-utils 26.07.0-2
Versions of packages cups-filters recommends:
ii colord 1.4.8-3
ii liblouisutdml-bin 2.12.0-8+b2
ii lynx 2.9.3-2
Versions of packages cups-filters suggests:
pn antiword
pn docx2txt
pn foomatic-db-compressed-ppds | foomatic-db
ii imagemagick 8:7.1.2.27+dfsg1-1+b1
ii imagemagick-7.q16 [imagemagick] 8:7.1.2.27+dfsg1-1+b1
|Thank you for looking into this issue.|
-- no debconf information