From 9ade5607aab510cc88561efb7c0b08567b5e19fe Mon Sep 17 00:00:00 2001 From: Alexey Abramov Date: Fri, 15 Jan 2021 17:26:37 +0100 Subject: [PATCH] gnu: obs: Use an environment variable for plugins location. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/video.scm (obs): Use it. * gnu/packages/patches/obs-override-default-modules-location.patch: Patch it. --- gnu/local.mk | 1 + ...bs-override-default-modules-location.patch | 32 +++++++++++++++++++ gnu/packages/video.scm | 9 +++++- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/obs-override-default-modules-location.patch diff --git a/gnu/local.mk b/gnu/local.mk index eb28104add..cd4085890b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1404,6 +1404,7 @@ dist_patch_DATA = \ %D%/packages/patches/nvi-dbpagesize-binpower.patch \ %D%/packages/patches/nvi-db4.patch \ %D%/packages/patches/nyacc-binary-literals.patch \ + %D%/packages/patches/obs-override-default-modules-location.patch \ %D%/packages/patches/ocaml-bitstring-fix-configure.patch \ %D%/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch \ %D%/packages/patches/ocaml-CVE-2015-8869.patch \ diff --git a/gnu/packages/patches/obs-override-default-modules-location.patch b/gnu/packages/patches/obs-override-default-modules-location.patch new file mode 100644 index 0000000000..88adb4a8c1 --- /dev/null +++ b/gnu/packages/patches/obs-override-default-modules-location.patch @@ -0,0 +1,32 @@ +From 96e3c05043eb6b682b105e9080b45efeee33dcd0 Mon Sep 17 00:00:00 2001 +From: Alexey Abramov +Date: Fri, 15 Jan 2021 17:07:17 +0100 +Subject: [PATCH] Use an environment variable for a default modules location + +--- + libobs/obs-nix.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/libobs/obs-nix.c b/libobs/obs-nix.c +index 382fa0546..d58a0b48a 100644 +--- a/libobs/obs-nix.c ++++ b/libobs/obs-nix.c +@@ -66,8 +66,14 @@ static const int module_patterns_size = + + void add_default_module_paths(void) + { +- for (int i = 0; i < module_patterns_size; i++) +- obs_add_module_path(module_bin[i], module_data[i]); ++ char *obs_plugins_path = getenv("OBS_PLUGINS_PATH"); ++ if (obs_plugins_path) { ++ struct dstr obs_plugins_data_path; ++ dstr_init_copy(&obs_plugins_data_path, obs_plugins_path); ++ dstr_cat(&obs_plugins_data_path, "/../../share/obs/obs-plugins/%module%"); ++ obs_add_module_path(obs_plugins_path, obs_plugins_data_path.array); ++ dstr_free(&obs_plugins_data_path); ++ } + } + + /* +-- +2.29.2 diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index b314e4903b..15bb2e4d40 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3087,7 +3087,9 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc")))) + "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc")) + (patches + (search-patches "obs-override-default-modules-location.patch")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -3102,6 +3104,11 @@ be used for realtime video capture via Linux-specific APIs.") (wrap-program (string-append out "/bin/obs") `("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))) #t))))) + (native-search-paths + (list (search-path-specification + (variable "OBS_PLUGINS_PATH") + (separator #f) ;single entry + (files '("lib/obs-plugins"))))) (native-inputs `(("cmocka" ,cmocka) ("pkg-config" ,pkg-config))) -- 2.29.2