diff options
-rw-r--r-- | gnu/packages/patches/obs-modules-location.patch | 36 | ||||
-rw-r--r-- | gnu/packages/video.scm | 32 |
2 files changed, 36 insertions, 32 deletions
diff --git a/gnu/packages/patches/obs-modules-location.patch b/gnu/packages/patches/obs-modules-location.patch index 18b286d006..742119470a 100644 --- a/gnu/packages/patches/obs-modules-location.patch +++ b/gnu/packages/patches/obs-modules-location.patch @@ -5,29 +5,23 @@ 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 @@ +--- a.c 2025-02-10 12:48:39.885858056 +0800 ++++ b.c 2025-02-10 12:57:18.913869843 +0800 +@@ -83,6 +83,17 @@ void add_default_module_paths(void) + bfree(module_bin_path); + bfree(module_data_path); - 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) { ++ module_bin_path = getenv("OBS_PLUGINS_DIRECTORY"); ++ module_data_path = getenv("OBS_PLUGINS_DATA_DIRECTORY"); ++ if (module_bin_path && module_data_path) { + struct dstr dstr_data_directory; -+ dstr_init_copy(&dstr_data_directory, data_directory); ++ dstr_init_copy(&dstr_data_directory, module_data_path); + dstr_cat(&dstr_data_directory, "/%module%"); -+ obs_add_module_path(bin_directory, dstr_data_directory.array); ++ obs_add_module_path(module_bin_path, 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]); ++ return; + } - } - - /* --- -2.29.2
\ No newline at end of file ++ + for (int i = 0; i < module_patterns_size; i++) { + obs_add_module_path(module_bin[i], module_data[i]); + } diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1891885e40..41940fc497 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -130,12 +130,14 @@ #:use-module (gnu packages cdrom) #:use-module (gnu packages certs) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-check) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages curl) + #:use-module (gnu packages datastructures) #:use-module (gnu packages dbm) #:use-module (gnu packages dejagnu) #:use-module (gnu packages dns) @@ -4071,7 +4073,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "30.1.2") + (version "31.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -4081,21 +4083,27 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "02pm6397h7l0xhdpscbh1kq8y98zx236z95wvw60kbhq38s0i0ik")) + "02l1qr7pbmg0va1m9ydmzamg3kh4h05if1hbg0kzfngq93vvy13p")) (patches (search-patches "obs-modules-location.patch")))) (build-system cmake-build-system) (arguments (list + #:cmake cmake-next ;needs cmake >= 3.28 #:configure-flags - #~(list (string-append "-DOBS_VERSION_OVERRIDE=" #$version) - "-DENABLE_UNIT_TESTS=ON" - "-DENABLE_NEW_MPEGTS_OUTPUT=OFF" - "-DENABLE_AJA=OFF" - "-DENABLE_QSV11=OFF" - ;; Browser plugin requires cef, but it is not packaged yet. - ;; <https://bitbucket.org/chromiumembedded/cef/src/master/> - "-DBUILD_BROWSER=OFF") + #~(let ((libdir (string-append (assoc-ref %outputs "out") "/lib"))) + (list (string-append "-DOBS_VERSION_OVERRIDE=" #$version) + (string-append "-DOBS_EXECUTABLE_RPATH=" libdir) + (string-append "-DOBS_LIBRARY_RPATH=" libdir) + (string-append "-DOBS_MODULE_RPATH=" libdir) + "-DENABLE_UNIT_TESTS=ON" + "-DENABLE_NEW_MPEGTS_OUTPUT=OFF" + "-DENABLE_AJA=OFF" + "-DENABLE_QSV11=OFF" + "-DENABLE_NVENC=OFF" + ;; Browser plugin requires cef, but it is not packaged yet. + ;; <https://bitbucket.org/chromiumembedded/cef/src/master/> + "-DBUILD_BROWSER=OFF")) #:phases #~(modify-phases %standard-phases (add-after 'install 'wrap-executable @@ -4151,10 +4159,12 @@ be used for realtime video capture via Linux-specific APIs.") qtbase qtsvg qtwayland + rnnoise speexdsp v4l-utils - vulkan-headers + uthash vlc + vulkan-headers wayland wayland-protocols websocketpp |