summary refs log tree commit diff
path: root/pkgs/applications/video/obs-studio
diff options
context:
space:
mode:
authorPhilip Munksgaard <philip@munksgaard.me>2020-10-01 16:43:16 +0200
committerPhilip Munksgaard <philip@munksgaard.me>2020-11-01 21:32:47 +0100
commitf0d31b3bd16e47009337b6e5fe3b36ae70dbcb46 (patch)
tree16f22f64c479d40cbf1eaafb6b5305f0b7d6be54 /pkgs/applications/video/obs-studio
parentde5875a4d3f8dcf2ceb9dbc65baf9019fc1b49af (diff)
downloadnixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar.gz
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar.bz2
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar.lz
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar.xz
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.tar.zst
nixpkgs-f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46.zip
obs-studio: Enable builtin browser support
Since version 25, OBS Studio has shipped with a version of obs-browser that
includes linux support (which means that we don't need the obs-linuxbrowser any
more). This commit enables the builtin browser source.

Fixes #98035

Thanks to @mohe2015 for fixing a patchelf issue I had!
Diffstat (limited to 'pkgs/applications/video/obs-studio')
-rw-r--r--pkgs/applications/video/obs-studio/default.nix23
1 files changed, 21 insertions, 2 deletions
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 0d0fce279bb..518168b1587 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -32,6 +32,7 @@
 , alsaLib
 , pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
 , libpulseaudio
+, libcef
 }:
 
 let
@@ -44,8 +45,9 @@ in mkDerivation rec {
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = "obs-studio";
-    rev = version;
-    sha256 = "1d502f80whh686mvq0yn6zpa5nvmnlzxwp5sjz43vpbbvhpbrdqj";
+    rev = "refs/tags/${version}";
+    sha256 = "1bf56z2yb7gq1knqwcqj369c3wl9jr3wll5vlngmfy2gwqrczjmw";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ addOpenGLRunpath cmake pkgconfig ];
@@ -55,6 +57,7 @@ in mkDerivation rec {
     fdk_aac
     ffmpeg
     jansson
+    libcef
     libjack2
     libv4l
     libxkbcommon
@@ -73,6 +76,19 @@ in mkDerivation rec {
   ++ optional alsaSupport alsaLib
   ++ optional pulseaudioSupport libpulseaudio;
 
+  # Copied from the obs-linuxbrowser
+  postUnpack = ''
+    mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
+    for i in ${libcef}/share/cef/*; do
+      cp -r $i cef/Release/
+      cp -r $i cef/Resources/
+    done
+    cp -r ${libcef}/lib/libcef.so cef/Release/
+    cp -r ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
+    cp -r ${libcef}/include cef/
+    ls -R 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.
@@ -80,6 +96,9 @@ in mkDerivation rec {
     "-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
+    "-DBUILD_BROWSER=ON"
+    "-DCEF_ROOT_DIR=../../cef"
   ];
 
   postInstall = ''