Created attachment 37459 [details] [review]
Patch removing version information from modules
The modules, installed under /usr/lib/cairo are being built as versioned shared libraries instead of modules, which does not make a lot of sense.
I suggest applying the added patch for this reason.
Created attachment 60780 [details] [review]
Moving to 1.12.2... after all this is still there.
I'm not sure about this patch. In fact, none of these libraries ever get dlopen()'d, so why are they marked as -module?
I can see the reason for -avoid-version for cairo-trace, because the cairo-trace utility doesn't use any version. Dunno about the other libraries (how/where are they used?)
Cairo trace loads it's library in a 'rude' / non-version aware way like this (as you say yourself):
if test "x$CAIRO_TRACE_SO" = "x"; then
for lib in /usr/lib64/cairo/libcairo-trace.so /usr/lib64/cairo/libcairo-trace.so* /usr/lib64/cairo/libcairo-trace.*.so ; do
if test -h "$lib" -o -f "$lib"; then
=> so whatever versioning is being used, is ignored anyway and can as well not be used ==> -avoid-version makes sense (it is not shared library after all)
For -sphinx I'm not sure if the .so ever get's used... this might actually be just a mistake in Makefile.am and the 'library' is not needed at all (It's also never referenced as a dependency)
This can be applied without build issues:
@@ -1,6 +1,5 @@
cairolibdir = $(libdir)/cairo
-cairolib_LTLIBRARIES = cairo-sphinx.la
bin_PROGRAMS = cairo-sphinx
AM_CPPFLAGS = -I$(top_srcdir)/src \
@@ -8,12 +7,6 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
-cairo_sphinx_la_SOURCES = fdr.c
-cairo_sphinx_la_CPPFLAGS = $(AM_CPPFLAGS)
-cairo_sphinx_la_CFLAGS = $(CAIRO_CFLAGS)
-cairo_sphinx_la_LDFLAGS = -module -no-undefined
-cairo_sphinx_la_LIBADD = -ldl
cairo_sphinx_SOURCES = sphinx.c
cairo_sphinx_CPPFLAGS = $(AM_CPPFLAGS) -DLIBDIR="\"$(cairolibdir)\""
cairo_sphinx_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS) $(glib_CFLAGS)
=> cairo-sphinx still runs too (well, it starts and exits.. just as before.. not sure how to test this binary)
cairo-fdr: this is apparenty lever loaded / referenced? Might well be just an old reminder that was not cleaned up?
ping? (openSUSE carries the patch from comment #0 since 2010 and no issues appeared ever since... )
Just updating the version number again... openSUSE still carries that patch...
Patch still applies for ver 1.15.2.
Pretty please with sugar on top, could we reach a conclusion on this?
We have had this patch in openSUSE since 2010!
This can definitely be committed.
(In reply to Behdad Esfahbod from comment #7)
> This can definitely be committed.
Thanks for the reply Behdad. Somehow that email passed my by without me noticing.
As far as I know neither Dominique nor me have commit rights for cairo, so if you could be so kind to do it for us it would be appreciated.
Please commit the patch, as neither of us downstream people have commit rights.
6 years in the "making" should be enough...
I'm sure you know, by now, that no maintainers are left. So, keeping snark down is more productive. In fact, that is the case even more when there are maintainers around. :)
Anyway, pushed it out.
First: Sorry Behdad! - I was frustrated and snapped. Apologies!
Second: Thanks a lot for committing it.
Third: Sad to hear that there is no maintainers left for cairo :-/ didn't know that.