Publish internal cairo symbols within libpoppler library.
Based on #83 (closed) in !252 (merged) the headers of internal poppler modules related to Cairo (
CairoRescaleBox), were published as an unstable API. This put
CairoOutputDev on par with other output devices such as
However the binary symbols in the object files were only available through
poppler-glib (as it uses them). Eventually in !39 (merged) (4ef2020d) the private symbols in
poppler-glib were hidden (which makes sense). A bit strange thing was that
libpoppler was still exposing other symbols (eg.
SplashOutputDev), but not
The cause is that in the
CMakeLists.txt file the Cairo sources/libraries were not included at all. They were only included to
pdftocairo where they were used.
In this MR we try to rectify this situation. If the cairo parts of the internal API/ABI were already published via the headers also the binary symbols should be published.
In particular, the https://github.com/rossumai/pdfparser depends on this (even though it ideally should not and the required changes should be possibly ported directly to poppler).
I have build a PPA port of poppler-0.86.1 (for Ubuntu Focal) with these changes applied (https://launchpad.net/~bzamecnik/+archive/ubuntu/poppler/+packages)
poppler - 0.86.1-0ubuntu1ppa~focal3 and it seems to work.
# Ubuntu 20.04 $ apt update && apt install -y binutils $ apt install -y libpoppler97 $ objdump -T /usr/lib/x86_64-linux-gnu/libpoppler.so.97.0.0 |grep Cairo # empty $ export DEBIAN_FRONTEND=noninteractive $ apt-get update && apt-get -y install software-properties-common $ LC_ALL=C.UTF-8 add-apt-repository -y -u ppa:bzamecnik/poppler $ apt-get update && apt-get install -y libpoppler97=0.86.1-0ubuntu1ppa~focal3 $ objdump -T /usr/lib/x86_64-linux-gnu/libpoppler.so.97.0.0 |grep Cairo|head 00000000002644e0 g DF .text 0000000000000026 Base _ZN14CairoOutputDev13clearSoftMaskEP8GfxState 0000000000264510 g DF .text 00000000000000e3 Base _ZN14CairoOutputDevD2Ev 0000000000267f80 g DF .text 000000000000022d Base _ZN14CairoOutputDev6doPathEP6_cairoP8GfxStatePK7GfxPath 0000000000265940 g DF .text 000000000000026d Base _ZN14CairoOutputDev16radialShadedFillEP8GfxStateP16GfxRadialShadingdd 0000000000263700 g DF .text 00000000000007e0 Base _ZN17CairoFreeTypeFont6createEP7GfxFontP4XRefP14FT_LibraryRec_b 000000000026e0a0 w DF .text 000000000000000a Base _ZN19CairoImageOutputDev10upsideDownEv 000000000026e040 w DF .text 000000000000000a Base _ZN14CairoOutputDev11useDrawCharEv 00000000002683f0 g DF .text 00000000000000ea Base _ZN14CairoOutputDev20fillToStrokePathClipEP8GfxState 00000000002664d0 g DF .text 0000000000000276 Base _ZN14CairoOutputDev9endStringEP8GfxState 0000000000266180 g DF .text 0000000000000096 Base _ZN14CairoOutputDev19updateFillColorStopEP8GfxStated