diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2022-10-14 21:30:23 +0530 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2022-11-04 02:21:52 +0000 |
commit | df62d03e91d718dcfff03f8635d1ec517d326b59 (patch) | |
tree | 84296c1492e57a2ad8b1dfea2e2d7fcd6dcac751 | |
parent | 44578a36472dfd307992e30c690311c8b12611e2 (diff) |
glib.recipe: Update patch to auto-detect modules on macOS
Upstream MR has been merged, so lets' update the patch so we're using
the right code, and we can get testing for it before 2.76 is out.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2848
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/995>
-rw-r--r-- | recipes/glib.recipe | 2 | ||||
-rw-r--r-- | recipes/glib/0001-giomodule-Automatically-detect-modules-on-macOS.patch | 54 |
2 files changed, 28 insertions, 28 deletions
diff --git a/recipes/glib.recipe b/recipes/glib.recipe index 0d5423f9..4041ba4e 100644 --- a/recipes/glib.recipe +++ b/recipes/glib.recipe @@ -38,7 +38,7 @@ class Recipe(recipe.Recipe): 'glib/0006-giomodule-do-not-try-to-load-modules-from-gio-module.patch', 'glib/0008-Unhide-_g_io_modules_ensure_extension_points_registe.patch', 'glib/0009-Implementation-of-Cocoa-event-loop-integration-in-GM.patch', - # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1415, + # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1415 'glib/0001-meson-Don-t-use-assert-in-test-code.patch', # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1433 'glib/0001-meson-fix-buildtype-args-and-vscrt-usage.patch', diff --git a/recipes/glib/0001-giomodule-Automatically-detect-modules-on-macOS.patch b/recipes/glib/0001-giomodule-Automatically-detect-modules-on-macOS.patch index 87e104ca..e1a37f13 100644 --- a/recipes/glib/0001-giomodule-Automatically-detect-modules-on-macOS.patch +++ b/recipes/glib/0001-giomodule-Automatically-detect-modules-on-macOS.patch @@ -1,6 +1,6 @@ -From 1ea5c0f0c62368aa5e363cdacb9b723b4bfa3235 Mon Sep 17 00:00:00 2001 +From af83c6571e47d06468b8162dd29ad57bcf4967a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Brzezi=C5=84ski?= <piotr@centricular.com> -Date: Tue, 2 Aug 2022 22:47:44 +0200 +Date: Tue, 9 Aug 2022 10:42:39 +0200 Subject: [PATCH] giomodule: Automatically detect modules on macOS Makes use of relocatable prefixes, allowing gio to find modules @@ -10,39 +10,39 @@ automatically without needing to set the GIO_EXTRA_MODULES env var. 1 file changed, 23 insertions(+) diff --git a/gio/giomodule.c b/gio/giomodule.c -index f5dbb4555..e3ff3fdb1 100644 +index f5dbb4555f..fce60e9fc5 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c -@@ -1260,6 +1260,29 @@ get_gio_module_dir (void) - "lib", "gio", "modules", - NULL); +@@ -1262,6 +1262,29 @@ get_gio_module_dir (void) g_free (install_dir); -+#elif defined (__APPLE__) + #else + module_dir = g_strdup (GIO_MODULE_DIR); ++#ifdef __APPLE__ +#include "TargetConditionals.h" +#if TARGET_OS_OSX +#include <dlfcn.h> -+ char *path, *p; -+ Dl_info info; -+ -+ if (!dladdr (get_gio_module_dir, &info)) -+ return NULL; -+ -+ path = strdup (info.dli_fname); ++ { ++ g_autofree gchar *path = NULL; ++ g_autofree gchar *possible_dir = NULL; ++ Dl_info info; + -+ /* PREFIX/lib directory */ -+ if ((p = strrchr (path, '/')) == NULL) -+ { -+ free (path); -+ return NULL; -+ } -+ *p = '\0'; -+ -+ module_dir = g_build_filename (path, "gio", "modules", NULL); -+ free(path); ++ if (dladdr (get_gio_module_dir, &info)) ++ { ++ /* Gets path to the PREFIX/lib directory */ ++ path = g_path_get_dirname (info.dli_fname); ++ possible_dir = g_build_filename (path, "gio", "modules", NULL); ++ if (g_file_test (possible_dir, G_FILE_TEST_IS_DIR)) ++ { ++ g_free (module_dir); ++ module_dir = g_steal_pointer (&possible_dir); ++ } ++ } ++ } ++#endif +#endif - #else - module_dir = g_strdup (GIO_MODULE_DIR); #endif + } + -- -2.32.1 (Apple Git-133) +GitLab |