guix/gnu/packages/patches/obs-modules-location.patch
Alexey Abramov 5be01dcdc1
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>
2021-02-02 11:05:43 +01:00

33 lines
No EOL
1 KiB
Diff

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