Message ID | 87k0setadp.fsf@delta.lan |
---|---|
State | Accepted |
Headers | show |
Series | [bug#45707] gnu: Add obs-v4l2sink. | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hi, Alexey Abramov <levenson@mmer.org> skribis: > Thanks Ludo. With this patch, obs will check OBS_PLUGINS_PATH environment variable for a *default* location of modules. OK. > Plugins might also have some data. I am not sure if it is safe to use relative path thought. Would it be better to use OBS_PLUGINS_DATA_PATH var? I don’t know, how does this patch change the situation wrt. finding a plugin’s data? > From 9ade5607aab510cc88561efb7c0b08567b5e19fe Mon Sep 17 00:00:00 2001 > From: Alexey Abramov <levenson@mmer.org> > 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. Some minor issues: > +++ b/gnu/packages/patches/obs-override-default-modules-location.patch ‘guix lint’ might complain about the file name length. :-) Perhaps remove ‘override-default-’ from the file name. > @@ -0,0 +1,32 @@ > +From 96e3c05043eb6b682b105e9080b45efeee33dcd0 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 an environment variable for a default modules location > + > +--- > + libobs/obs-nix.c | 10 ++++++++-- If it comes from another distro, please indicate it clearly at the top of the file. > ++ 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%"); Shouldn’t it be lib/obs-plugins, as your ‘search-path-specification’ indicates? > + (native-search-paths > + (list (search-path-specification > + (variable "OBS_PLUGINS_PATH") > + (separator #f) ;single entry > + (files '("lib/obs-plugins"))))) How about renaming the variable to ‘OBS_PLUGINS_DIRECTORY’ given that it designates a single directory rather than a search path? Could you send an updated patch? Thanks! Ludo’.
From 9ade5607aab510cc88561efb7c0b08567b5e19fe Mon Sep 17 00:00:00 2001 From: Alexey Abramov <levenson@mmer.org> 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 <levenson@mmer.org> +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