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

zengjianqi163@163.co zengjianqi163 at 163.com
Wed Jul 9 06:41:26 UTC 2025


Hi, Uli

I apologize that I don't frequently work with Cairo, 
so I'm not very familiar with the specific usage details of its libraries.
If, as you mentioned, cairo-fdr is used via LD_PRELOAD, 
then the change in its name indeed wouldn't cause compatibility issues with dynamic linking.

On my end, I only noticed the library name change while
performing compatibility analysis at the system level (for software packages),
which led me to suspect potential compatibility problems.

Thank you very much for your reply and clarifications!


Best regards,
zengjianqi





At 2025-07-08 23:45:26, "Uli Schlachter" <psychon at znc.in> wrote:
>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