[cairo] Build with Meson, Update to 1.17.8 #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was bored and wanted to learn... and accidentally put some time into this such that even if i wasn't very efficient it might save you some time.
(This update is not something i need/want... purely done for fun)
Rumor has it they will be Meson-only from 1.18 and forward.
It did not build on current version, so updated to latest along with changing build system, which perhaps ideally should have been two steps.
NB: i have not dared to test this yet.
Summary of diff:
...and the submodule.
This did not work on 1.17.4... so stepped to latest.
Stolen from Fedora. We satisfy it.
-BuildRequires: pkgconfig(libxml-2.0)SVG backend no longer needs this, since 1.1.10 - and xml backend removed.
Gl backend removed.
-BuildRequires: binutils-develSee symbol-lookup below.
+BuildRequires: mesonObviously...
+BuildRequires: ccacheMeson/ninja seems to want it. It just worked.
--disable-xlib->-Dxlib=disabled-Dxcb=disabledSome other X11 dependency to disable--enable-ps/pdf/svgAre enabled always it seems, and i can't see any "redundant" switches to use to guard against that changing.--enable-xmlRemoved (even if there is a Dxml in this version) since it has since been removed upstream.--enable-gobject->-Dglib=enabledpresumably.--enable-glesv3Removed. gles backend is removed upstream.--disable-gtk-doc->-Dgtk_doc=falseNow comes the iffy one:
-Dtee=disabledThis is broken in 1.17.8, and Cairo devs seems to think it is not much used.
Fedora has it enabled; but do we care about tee, aka flight data recorder aka fdr?
Somewhat well-founded guesswork:
-Dsymbol-lookup=disabledBuild fails with no reference to binutils bfd_openr
This is the (only afaict) dependency to binutils, removed above.
Not enabled in Fedora either. Do we use it?
Some mumblings about this being a Meson bug fixed in a few versions. Using 1.0 did not help for me.
-Dspectre=disabledGhostscript libspectre for rendering Postscript.
Not enabled in Fedora either. I don't think you depended on this before, nor have ghostscript.
Additions:
-Dfreetype=enabled,-Dfontconfig=enabledClear dependencies. Fedora does this.-Dzlib=enabled,-Dpng=enabledLooked through what options there are. These we obviously want.Fedora spec for reference: https://src.fedoraproject.org/rpms/cairo/blob/rawhide/f/cairo.spec
files:
-%{_libdir}/cairo/cairo*.so*After removing tee/fdr, there is only libcairo-trace.so here.
Also note that nothing matches cairo*.so.* with a trailing dot.
devel:
-%{_libdir}/cairo/cairo*.so*Same.
NB that libcairo-trace.so is excluded in the trace package itself.
No idea why.