[vlc-commits] contrib: bluray: Add patch to fix libbluray.jar loading on macOS
Marvin Scholz
git at videolan.org
Sun Mar 18 21:16:49 CET 2018
vlc/vlc-3.0 | branch: master | Marvin Scholz <epirat07 at gmail.com> | Sun Mar 18 21:02:02 2018 +0100| [b228f22b57a55aa0ad39a7caed7ea4465faf4ac9] | committer: Jean-Baptiste Kempf
contrib: bluray: Add patch to fix libbluray.jar loading on macOS
This is already landed upstream but we need a new release, so for now
keep this local patch. When a release is done and the contrib is
updated, this should be removed.
Fix #19702
(cherry picked from commit 774019955c8d44f6888fc1fce970e7f730e59594)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=b228f22b57a55aa0ad39a7caed7ea4465faf4ac9
---
...01-Implement-dl_get_path-for-darwin-macOS.patch | 62 ++++++++++++++++++++++
contrib/src/bluray/rules.mak | 1 +
2 files changed, 63 insertions(+)
diff --git a/contrib/src/bluray/0001-Implement-dl_get_path-for-darwin-macOS.patch b/contrib/src/bluray/0001-Implement-dl_get_path-for-darwin-macOS.patch
new file mode 100644
index 0000000000..f70ad4ae03
--- /dev/null
+++ b/contrib/src/bluray/0001-Implement-dl_get_path-for-darwin-macOS.patch
@@ -0,0 +1,62 @@
+From 8c15fdad7797854bc4f98cdb339074a4f9f2dbb3 Mon Sep 17 00:00:00 2001
+From: Marvin Scholz <epirat07 at gmail.com>
+Date: Wed, 7 Mar 2018 10:24:41 +0100
+Subject: [PATCH] Implement dl_get_path for darwin (macOS)
+
+---
+ src/file/dl_posix.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/src/file/dl_posix.c b/src/file/dl_posix.c
+index f1852a43..b97f12fe 100644
+--- a/src/file/dl_posix.c
++++ b/src/file/dl_posix.c
+@@ -27,6 +27,11 @@
+ #include "util/logging.h"
+ #include "util/strutl.h"
+
++#ifdef __APPLE__
++// Required to make dladdr available
++# define _DARWIN_C_SOURCE
++#endif
++
+ #if defined(HAVE_DLFCN_H)
+ # include <dlfcn.h>
+ #elif defined(HAVE_SYS_DL_H)
+@@ -112,6 +117,7 @@ int dl_dlclose(void *handle)
+ return dlclose(handle);
+ }
+
++#define PATH_SEPARATOR '/'
+ const char *dl_get_path(void)
+ {
+ static char *lib_path = NULL;
+@@ -120,7 +126,25 @@ const char *dl_get_path(void)
+ if (!initialized) {
+ initialized = 1;
+
++#ifdef __APPLE__
++ Dl_info dl_info;
++ int ret = dladdr((void *)dl_get_path, &dl_info);
++
++ if (ret != 0) {
++ lib_path = strdup(dl_info.dli_fname);
++
++ /* cut library name from path */
++ char *p = strrchr(lib_path, PATH_SEPARATOR);
++ if (p) {
++ *(p+1) = 0;
++ }
++ BD_DEBUG(DBG_FILE, "library file is %s\n", lib_path);
++ } else {
++ BD_DEBUG(DBG_FILE, "Can't determine libbluray.so install path\n");
++ }
++#else
+ BD_DEBUG(DBG_FILE, "Can't determine libbluray.so install path\n");
++#endif
+ }
+
+ return lib_path;
+--
+2.14.3 (Apple Git-98)
+
diff --git a/contrib/src/bluray/rules.mak b/contrib/src/bluray/rules.mak
index fb5b9252e1..f0fe41d341 100644
--- a/contrib/src/bluray/rules.mak
+++ b/contrib/src/bluray/rules.mak
@@ -48,6 +48,7 @@ $(TARBALLS)/libbluray-$(BLURAY_VERSION).tar.bz2:
bluray: libbluray-$(BLURAY_VERSION).tar.bz2 .sum-bluray
$(UNPACK)
+ $(APPLY) $(SRC)/lua/0001-Implement-dl_get_path-for-darwin-macOS.patch
$(call pkg_static,"src/libbluray.pc.in")
$(MOVE)
More information about the vlc-commits
mailing list