Compatibility Issue Report: cairo-fdr Library Naming Change in Cairo 1.18

Uli Schlachter psychon at znc.in
Tue Jul 8 15:45:26 UTC 2025


Hi,

Am 08.07.25 um 04:33 schrieb zengjianqi163 at 163.co:
> Consequently, applications using dlopen("cairo-fdr.so") will fail after upgrading to Cairo 1.18 due to the missing library name.

Quick first reaction: Are there any such libraries? Why would they do 
that? I thought cairo-fdr is meant to be used through LD_PRELOAD by 
users to debug crashes and I think no one actually does that / uses it.

Debian codesearch finds nothing: 
https://codesearch.debian.net/search?q=cairo-fdr.so&literal=1

Also, I doubt that anyone uses cairo-fdr for anything. In commit 
b35a9ead974 I removed the hidden visibility specification which broke it 
completely. We got reports about this for cairo-trace, but I do not 
recall anyone mentioning this for cairo-fdr.

Do you actually use cairo-fdr for something? Could you tell us more 
about that.

> If this change is intentional, please disregard this report. Otherwise, I propose three solutions:

I doubt that it is intention. :-)

> Attached patches demonstrate each approach. I welcome further discussion or feedback.

Solution 4: Do not install cairo-fdr and wait for someone to complain 
about this change.

diff --git a/util/cairo-fdr/meson.build b/util/cairo-fdr/meson.build
index c333bf765..4bf986535 100644
--- a/util/cairo-fdr/meson.build
+++ b/util/cairo-fdr/meson.build
@@ -6,6 +6,5 @@ libcairofdr = library('cairo-fdr', cairo_fdr_sources,
    include_directories: [incbase, incsrc],
    dependencies: deps,
    link_args: extra_link_args,
-  install: true,
-  install_dir: get_option('libdir') / 'cairo',
+  install: false,
  )

Cons: If someone actually uses this, this breaks their workflow... but 
apparently we already did something similar with Cairo 1.18.

Cheers,
Uli
-- 
Homophobia - The fear that another man will treat you the way you treat 
women.


More information about the cairo mailing list