diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-06 21:54:00 +0200 |
---|---|---|
committer | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-06 21:54:00 +0200 |
commit | 74fe2fb2a6282a9292cc912b865ce0179dbc3412 (patch) | |
tree | d006abece962a65d3538b9b0d8f4e3d264d59eca /flatpak/patches/weird_libdecor.patch | |
parent | a83e5be8f2acd66f83ad181e54fe688ed08c1b6f (diff) | |
parent | efaf4024ab22a53a3ef05f0a41b746b7561e087c (diff) | |
download | PrismLauncher-74fe2fb2a6282a9292cc912b865ce0179dbc3412.tar.gz PrismLauncher-74fe2fb2a6282a9292cc912b865ce0179dbc3412.tar.bz2 PrismLauncher-74fe2fb2a6282a9292cc912b865ce0179dbc3412.zip |
Merge remote-tracking branch 'upstream/staging' into curseforge-url-handle
Diffstat (limited to 'flatpak/patches/weird_libdecor.patch')
-rw-r--r-- | flatpak/patches/weird_libdecor.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/flatpak/patches/weird_libdecor.patch b/flatpak/patches/weird_libdecor.patch new file mode 100644 index 00000000..3a400b82 --- /dev/null +++ b/flatpak/patches/weird_libdecor.patch @@ -0,0 +1,40 @@ +diff --git a/src/libdecor.c b/src/libdecor.c +index a9c1106..1aa38b3 100644 +--- a/src/libdecor.c ++++ b/src/libdecor.c +@@ -1391,22 +1391,32 @@ calculate_priority(const struct libdecor_plugin_description *plugin_description) + static bool + check_symbol_conflicts(const struct libdecor_plugin_description *plugin_description) + { ++ bool ret = true; + char * const *symbol; ++ void* main_prog = dlopen(NULL, RTLD_LAZY); ++ if (!main_prog) { ++ fprintf(stderr, "Plugin \"%s\" couldn't check conflicting symbols: \"%s\".\n", ++ plugin_description->description, dlerror()); ++ return false; ++ } ++ + + symbol = plugin_description->conflicting_symbols; + while (*symbol) { + dlerror(); +- dlsym (RTLD_DEFAULT, *symbol); ++ dlsym (main_prog, *symbol); + if (!dlerror()) { + fprintf(stderr, "Plugin \"%s\" uses conflicting symbol \"%s\".\n", + plugin_description->description, *symbol); +- return false; ++ ret = false; ++ break; + } + + symbol++; + } + +- return true; ++ dlclose(main_prog); ++ return ret; + } + + static struct plugin_loader * |