From 9bf10ac3c54d6cb5a1df732b7711773180ea4012 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 11 Jul 2023 13:09:23 +0200 Subject: [PATCH 1/3] obs-studio: 29.0.2 -> 29.1.3 Co-authored-by: matthewcroughan Co-authored-by: materus --- ...-plugin-destination-as-relative-path.patch | 26 ------------------- .../applications/video/obs-studio/default.nix | 22 +++++++++------- .../obs-studio/fix-nix-plugin-path.patch | 13 ++++++++++ 3 files changed, 25 insertions(+), 36 deletions(-) delete mode 100644 pkgs/applications/video/obs-studio/Provide-runtime-plugin-destination-as-relative-path.patch create mode 100644 pkgs/applications/video/obs-studio/fix-nix-plugin-path.patch diff --git a/pkgs/applications/video/obs-studio/Provide-runtime-plugin-destination-as-relative-path.patch b/pkgs/applications/video/obs-studio/Provide-runtime-plugin-destination-as-relative-path.patch deleted file mode 100644 index b39cb04a899c..000000000000 --- a/pkgs/applications/video/obs-studio/Provide-runtime-plugin-destination-as-relative-path.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt -index 790583cd5..763cf3548 100644 ---- a/libobs/CMakeLists.txt -+++ b/libobs/CMakeLists.txt -@@ -455,6 +455,8 @@ elseif(OS_POSIX) - libobs PROPERTIES BUILD_RPATH "$") - endif() - -+string(REGEX REPLACE "^${OBS_INSTALL_PREFIX}" "" OBS_PLUGIN_DESTINATION_RELATIVE ${OBS_PLUGIN_DESTINATION}) -+ - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/obsconfig.h.in - ${CMAKE_BINARY_DIR}/config/obsconfig.h) - -diff --git a/libobs/obsconfig.h.in b/libobs/obsconfig.h.in -index 4a664285a..5cff2ca53 100644 ---- a/libobs/obsconfig.h.in -+++ b/libobs/obsconfig.h.in -@@ -13,7 +13,7 @@ - #define OBS_VERSION_CANONICAL "@OBS_VERSION_CANONICAL@" - #define OBS_DATA_PATH "@OBS_DATA_PATH@" - #define OBS_INSTALL_PREFIX "@OBS_INSTALL_PREFIX@" --#define OBS_PLUGIN_DESTINATION "@OBS_PLUGIN_DESTINATION@" -+#define OBS_PLUGIN_DESTINATION "@OBS_PLUGIN_DESTINATION_RELATIVE@" - #define OBS_QT_VERSION @_QT_VERSION@ - - #cmakedefine LINUX_PORTABLE diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 286fc8fcc952..c901b06e41a3 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -25,7 +25,7 @@ , wrapGAppsHook , scriptingSupport ? true , luajit -, swig +, swig4 , python3 , alsaSupport ? stdenv.isLinux , alsa-lib @@ -42,6 +42,9 @@ , srt , qtwayland , wrapQtAppsHook +, nlohmann_json +, websocketpp +, asio }: let @@ -50,20 +53,20 @@ let in stdenv.mkDerivation rec { pname = "obs-studio"; - version = "29.0.2"; + version = "29.1.3"; src = fetchFromGitHub { owner = "obsproject"; repo = "obs-studio"; rev = version; - sha256 = "sha256-TIUSjyPEsKRNTSLQXuLJGEgD989hJ5GhOsqJ4nkKVsY="; + sha256 = "sha256-D0DPueMtopwz5rLgM8QcPT7DgTKcJKQHnst69EY9V6Q="; fetchSubmodules = true; }; patches = [ # Lets obs-browser build against CEF 90.1.0+ ./Enable-file-access-and-universal-access-for-file-URL.patch - ./Provide-runtime-plugin-destination-as-relative-path.patch + ./fix-nix-plugin-path.patch ]; nativeBuildInputs = [ @@ -73,7 +76,7 @@ stdenv.mkDerivation rec { wrapGAppsHook wrapQtAppsHook ] - ++ optional scriptingSupport swig; + ++ optional scriptingSupport swig4; buildInputs = [ curl @@ -99,6 +102,9 @@ stdenv.mkDerivation rec { libva srt qtwayland + nlohmann_json + websocketpp + asio ] ++ optionals scriptingSupport [ luajit python3 ] ++ optional alsaSupport alsa-lib @@ -117,11 +123,7 @@ stdenv.mkDerivation rec { cp -r ${libcef}/include cef/ ''; - # obs attempts to dlopen libobs-opengl, it fails unless we make sure - # DL_OPENGL is an explicit path. Not sure if there's a better way - # to handle this. cmakeFlags = [ - "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\"" "-DOBS_VERSION_OVERRIDE=${version}" "-Wno-dev" # kill dev warnings that are useless for packaging # Add support for browser source @@ -133,7 +135,7 @@ stdenv.mkDerivation rec { dontWrapGApps = true; preFixup = '' qtWrapperArgs+=( - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libX11 libvlc ]}" + --prefix LD_LIBRARY_PATH : "$out/lib:${lib.makeLibraryPath [ xorg.libX11 libvlc ]}" ''${gappsWrapperArgs[@]} ) ''; diff --git a/pkgs/applications/video/obs-studio/fix-nix-plugin-path.patch b/pkgs/applications/video/obs-studio/fix-nix-plugin-path.patch new file mode 100644 index 000000000000..d2c08c308bce --- /dev/null +++ b/pkgs/applications/video/obs-studio/fix-nix-plugin-path.patch @@ -0,0 +1,13 @@ +diff --git a/libobs/obs-nix.c b/libobs/obs-nix.c +index 36aac7097..801cec788 100644 +--- a/libobs/obs-nix.c ++++ b/libobs/obs-nix.c +@@ -56,7 +56,7 @@ const char *get_module_extension(void) + #define FLATPAK_PLUGIN_PATH "/app/plugins" + + static const char *module_bin[] = { +- OBS_INSTALL_PREFIX "/" OBS_PLUGIN_DESTINATION, ++ OBS_PLUGIN_DESTINATION, + "../../obs-plugins/" BIT_STRING, + FLATPAK_PLUGIN_PATH "/" OBS_PLUGIN_DESTINATION, + }; From 6eeae9d1c2bbb637dfa8d749d565df209c0de3b2 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 11 Jul 2023 13:31:58 +0200 Subject: [PATCH 2/3] obs-studio-plugins.obs-source-record: 2022-11-10 -> 0.3.2 --- .../obs-studio/plugins/obs-source-record.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/video/obs-studio/plugins/obs-source-record.nix b/pkgs/applications/video/obs-studio/plugins/obs-source-record.nix index 29dcb533915c..9f1a52bd8bd0 100644 --- a/pkgs/applications/video/obs-studio/plugins/obs-source-record.nix +++ b/pkgs/applications/video/obs-studio/plugins/obs-source-record.nix @@ -1,21 +1,31 @@ -{ lib, stdenv, fetchFromGitHub, cmake, obs-studio }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, obs-studio }: stdenv.mkDerivation rec { pname = "obs-source-record"; - version = "unstable-2022-11-10"; + version = "0.3.2"; src = fetchFromGitHub { owner = "exeldro"; repo = "obs-source-record"; - rev = "4a543d3577d56a27f5f2b9aa541a466b37dafde0"; - sha256 = "sha256-LoMgrWZ7r6lu2fisNvqrAiFvxWQQDE6lSxUHkMB/ZPY="; + rev = version; + sha256 = "sha256-H65uQ9HnKmHs52v3spG92ayeYH/TvmwcMoePMmBMqN8="; }; + patches = [ + # fix obs 29.1 compatibility + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/exeldro/obs-source-record/pull/83.diff"; + hash = "sha256-eWOjHHfoXZeoPtqvVyexSi/UQqHm8nu4FEEjma64Ly4="; + }) + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ obs-studio ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ]; + cmakeFlags = [ "-DBUILD_OUT_OF_TREE=On" ]; From cb10b111f3c236622bf3c2416e1841bfa46a89eb Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Wed, 2 Aug 2023 12:36:31 +0200 Subject: [PATCH 3/3] obs-studio: fix #226468 --- pkgs/applications/video/obs-studio/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index c901b06e41a3..1889d4354fdd 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -21,6 +21,7 @@ , xorg , pkg-config , libvlc +, libGL , mbedtls , wrapGAppsHook , scriptingSupport ? true @@ -135,7 +136,7 @@ stdenv.mkDerivation rec { dontWrapGApps = true; preFixup = '' qtWrapperArgs+=( - --prefix LD_LIBRARY_PATH : "$out/lib:${lib.makeLibraryPath [ xorg.libX11 libvlc ]}" + --prefix LD_LIBRARY_PATH : "$out/lib:${lib.makeLibraryPath [ xorg.libX11 libvlc libGL ]}" ''${gappsWrapperArgs[@]} ) '';