aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Abramov <levenson@mmer.org>2021-01-15 17:26:37 +0100
committerLudovic Courtès <ludo@gnu.org>2021-02-02 11:05:43 +0100
commit5be01dcdc1c8fa89fd120919258b574c844c13cb (patch)
tree6b104d2c8e05f5c48b009dd31adb7f8cc12cba3f
parent65454c1caa60c8f07833aa920648188ab6bbca85 (diff)
downloadguix-5be01dcdc1c8fa89fd120919258b574c844c13cb.tar
guix-5be01dcdc1c8fa89fd120919258b574c844c13cb.tar.gz
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-modules-location.patch: Patch it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/obs-modules-location.patch33
-rw-r--r--gnu/packages/video.scm14
3 files changed, 47 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d53ed440f9..49a5925280 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1411,6 +1411,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-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-modules-location.patch b/gnu/packages/patches/obs-modules-location.patch
new file mode 100644
index 0000000000..18b286d006
--- /dev/null
+++ b/gnu/packages/patches/obs-modules-location.patch
@@ -0,0 +1,33 @@
+From d250434e6c8eb4f8c8cb47ef3cc6e6de8fa8f828 Mon Sep 17 00:00:00 2001
+From: Alexey Abramov <levenson@mmer.org>
+Date: Fri, 15 Jan 2021 17:07:17 +0100
+Subject: [PATCH] Use environment variable for a default module location
+
+diff --git a/libobs/obs-nix.c b/libobs/obs-nix.c
+index 382fa0546..481ea0f14 100644
+*** a/libobs/obs-nix.c
+--- b/libobs/obs-nix.c
+@@ -66,8 +66,19 @@
+
+ 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 *bin_directory = getenv("OBS_PLUGINS_DIRECTORY");
++ char *data_directory = getenv("OBS_PLUGINS_DATA_DIRECTORY");
++ if (bin_directory && data_directory) {
++ struct dstr dstr_data_directory;
++ dstr_init_copy(&dstr_data_directory, data_directory);
++ dstr_cat(&dstr_data_directory, "/%module%");
++ obs_add_module_path(bin_directory, dstr_data_directory.array);
++ dstr_free(&dstr_data_directory);
++
++ } else {
++ for (int i = 0; i < module_patterns_size; i++)
++ obs_add_module_path(module_bin[i], module_data[i]);
++ }
+ }
+
+ /*
+--
+2.29.2 \ No newline at end of file
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index cd049fb375..ef80cb4cc2 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -47,6 +47,7 @@
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3083,7 +3084,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-modules-location.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -3098,6 +3101,15 @@ 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_DIRECTORY")
+ (separator #f) ;single entry
+ (files '("lib/obs-plugins")))
+ (search-path-specification
+ (variable "OBS_PLUGINS_DATA_DIRECTORY")
+ (separator #f) ;single entry
+ (files '("share/obs/obs-plugins")))))
(native-inputs
`(("cmocka" ,cmocka)
("pkg-config" ,pkg-config)))