From de5875a4d3f8dcf2ceb9dbc65baf9019fc1b49af Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Thu, 1 Oct 2020 16:42:03 +0200 Subject: [PATCH 1/3] libcef: 74.1.14 -> 75.1.14 Update libcef package to 75.1.14 This will allow us to enable browser source in the obs-studio build. It will also mean that obs-linuxbrowser probably doesn't work, but it's not needed any longer, so that shouldn't be a problem. --- pkgs/development/libraries/libcef/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/libcef/default.nix b/pkgs/development/libraries/libcef/default.nix index 4d08c2ba1fb3..93aaebc110e2 100644 --- a/pkgs/development/libraries/libcef/default.nix +++ b/pkgs/development/libraries/libcef/default.nix @@ -15,12 +15,12 @@ let in stdenv.mkDerivation rec { pname = "cef-binary"; - version = "74.1.14-g50c3c5c"; + version = "75.1.14-gc81164e"; src = fetchurl { - name = "cef_binary_74.1.14+g50c3c5c+chromium-74.0.3729.131_linux64_minimal.tar.bz2"; - url = "http://opensource.spotify.com/cefbuilds/cef_binary_74.1.19%2Bgb62bacf%2Bchromium-74.0.3729.157_linux64_minimal.tar.bz2"; - sha256 = "0v3540kq4y68gq7mb4d8a9issm363lm5ngrd6d96pcc7vckkw4wn"; + name = "cef_binary_75.1.14+gc81164e+chromium-75.0.3770.100_linux64_minimal.tar.bz2"; + url = "http://opensource.spotify.com/cefbuilds/cef_binary_75.1.14%2Bgc81164e%2Bchromium-75.0.3770.100_linux64_minimal.tar.bz2"; + sha256 = "0985b2bx505j0q693hifjgidzb597wqf5idql5aqxs8lfxhc2pgg"; }; nativeBuildInputs = [ cmake ]; From f0d31b3bd16e47009337b6e5fe3b36ae70dbcb46 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Thu, 1 Oct 2020 16:43:16 +0200 Subject: [PATCH 2/3] 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! --- .../applications/video/obs-studio/default.nix | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 0d0fce279bbd..518168b1587e 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 = '' From cbcb8418746ee98598bcec0e8a8442531ad129a4 Mon Sep 17 00:00:00 2001 From: Philip Munksgaard Date: Sat, 3 Oct 2020 20:11:17 +0200 Subject: [PATCH 3/3] Remove obs-linuxbrowser No longer needed since #99284 --- .../applications/video/obs-studio/default.nix | 1 - .../video/obs-studio/linuxbrowser.nix | 49 ------------------- pkgs/top-level/all-packages.nix | 2 - 3 files changed, 52 deletions(-) delete mode 100644 pkgs/applications/video/obs-studio/linuxbrowser.nix diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 518168b1587e..cdecde6b869a 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -86,7 +86,6 @@ in mkDerivation rec { 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 diff --git a/pkgs/applications/video/obs-studio/linuxbrowser.nix b/pkgs/applications/video/obs-studio/linuxbrowser.nix deleted file mode 100644 index a33383937fb8..000000000000 --- a/pkgs/applications/video/obs-studio/linuxbrowser.nix +++ /dev/null @@ -1,49 +0,0 @@ -# We don't have a wrapper which can supply obs-studio plugins so you have to -# somewhat manually install this: - -# nix-env -f . -iA obs-linuxbrowser -# mkdir -p ~/.config/obs-studio/plugins -# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-linuxbrowser ~/.config/obs-studio/plugins/ - -{ stdenv, fetchFromGitHub, obs-studio, cmake, libcef }: - -stdenv.mkDerivation rec { - pname = "obs-linuxbrowser"; - version = "0.6.1-6-gf86dba6"; - - src = fetchFromGitHub { - owner = "bazukas"; - repo = "obs-linuxbrowser"; - rev = version; - sha256 = "08d7qz0721va88bcyia8p0ycw50f6x3yk97s3vzhsc9xpq691kpi"; - }; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ obs-studio ]; - postUnpack = '' - mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/ - for i in ${libcef}/share/cef/*; do - ln -s $i cef/Release/ - ln -s $i cef/Resources/ - done - ln -s ${libcef}/lib/libcef.so cef/Release/ - ln -s ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/ - ln -s ${libcef}/include cef/ - ''; - cmakeFlags = [ - "-DCEF_ROOT_DIR=../../cef" - "-DOBS_INCLUDE_SEARCH_DIR=${obs-studio}/include/obs" - ]; - installPhase = '' - mkdir -p $out/share/obs/obs-plugins - cp -r build/obs-linuxbrowser $out/share/obs/obs-plugins/ - ''; - - meta = with stdenv.lib; { - description = "Browser source plugin for obs-studio based on Chromium Embedded Framework"; - homepage = "https://github.com/bazukas/obs-linuxbrowser"; - maintainers = with maintainers; [ puffnfresh ]; - license = licenses.gpl2; - platforms = with platforms; linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d0fc9f2aa6e..d691bb603791 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22656,8 +22656,6 @@ in inherit (gnome2) libglade; }; - obs-linuxbrowser = callPackage ../applications/video/obs-studio/linuxbrowser.nix { }; - obs-studio = libsForQt514.callPackage ../applications/video/obs-studio { }; obs-wlrobs = callPackage ../applications/video/obs-studio/wlrobs.nix { };