gpu-screen-recorder: 1.0.0 -> unstable-2023.11.18

gpu-screen-recorder-gtk: 0.1.0 -> 3.2.5

authored by

Babbaj and committed by
Jörg Thalheim
ae190884 9f7be03e

+56 -75
+32 -20
pkgs/applications/video/gpu-screen-recorder/default.nix
··· 1 - { stdenv, lib, fetchgit, makeWrapper, pkg-config, cudatoolkit, glew, libX11 2 - , libXcomposite, glfw, libpulseaudio, ffmpeg }: 3 4 - stdenv.mkDerivation rec { 5 pname = "gpu-screen-recorder"; 6 - version = "1.0.0"; 7 8 - src = fetchgit { 9 - url = "https://repo.dec05eba.com/gpu-screen-recorder"; 10 - rev = "36fd4516db06bcb192e49055319d1778bbed0322"; 11 - sha256 = "sha256-hYEHM4FOYcPmQ5Yxh520PKy8HiD+G0xv9hrn8SmA07w="; 12 }; 13 14 nativeBuildInputs = [ 15 pkg-config ··· 17 ]; 18 19 buildInputs = [ 20 - glew 21 - libX11 22 libXcomposite 23 - glfw 24 libpulseaudio 25 ffmpeg 26 ]; 27 28 - postPatch = '' 29 - substituteInPlace ./build.sh \ 30 - --replace '/opt/cuda/targets/x86_64-linux/include' '${cudatoolkit}/targets/x86_64-linux/include' \ 31 - --replace '/usr/lib64/libcuda.so' '${cudatoolkit}/targets/x86_64-linux/lib/stubs/libcuda.so' 32 - ''; 33 - 34 buildPhase = '' 35 ./build.sh 36 ''; 37 38 - installPhase = '' 39 - install -Dt $out/bin/ gpu-screen-recorder 40 - wrapProgram $out/bin/gpu-screen-recorder --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib 41 ''; 42 43 meta = with lib; {
··· 1 + { stdenv 2 + , lib 3 + , fetchurl 4 + , makeWrapper 5 + , pkg-config 6 + , libXcomposite 7 + , libpulseaudio 8 + , ffmpeg 9 + , wayland 10 + , libdrm 11 + , libva 12 + , libglvnd 13 + , libXrandr 14 + }: 15 16 + stdenv.mkDerivation { 17 pname = "gpu-screen-recorder"; 18 + version = "unstable-2023-11-18"; 19 20 + # printf "r%s.%s\n" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" 21 + src = fetchurl { 22 + url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.r418.5a8900e.tar.gz"; 23 + hash = "sha256-Dal6KxQOTqoNH6e8lYk5XEXGFG/vzbguNFZ9yk9nKe0="; 24 }; 25 + sourceRoot = "."; 26 27 nativeBuildInputs = [ 28 pkg-config ··· 30 ]; 31 32 buildInputs = [ 33 libXcomposite 34 libpulseaudio 35 ffmpeg 36 + wayland 37 + libdrm 38 + libva 39 + libXrandr 40 ]; 41 42 buildPhase = '' 43 ./build.sh 44 ''; 45 46 + postInstall = '' 47 + install -Dt $out/bin gpu-screen-recorder gsr-kms-server 48 + mkdir $out/bin/.wrapped 49 + mv $out/bin/gpu-screen-recorder $out/bin/.wrapped/ 50 + makeWrapper "$out/bin/.wrapped/gpu-screen-recorder" "$out/bin/gpu-screen-recorder" \ 51 + --prefix LD_LIBRARY_PATH : ${libglvnd}/lib \ 52 + --prefix PATH : $out/bin 53 ''; 54 55 meta = with lib; {
-38
pkgs/applications/video/gpu-screen-recorder/fix-nvfbc-check.patch
··· 1 - diff --git a/build.sh b/build.sh 2 - index 05603db..8c38b31 100755 3 - --- a/build.sh 4 - +++ b/build.sh 5 - @@ -2,5 +2,5 @@ 6 - 7 - dependencies="gtk+-3.0 x11 xrandr libpulse" 8 - includes="$(pkg-config --cflags $dependencies)" 9 - -libs="$(pkg-config --libs $dependencies)" 10 - +libs="$(pkg-config --libs $dependencies) -ldl" 11 - g++ -o gpu-screen-recorder-gtk -O2 src/main.cpp -s $includes $libs 12 - diff --git a/src/main.cpp b/src/main.cpp 13 - index ae2078f..9dcdce1 100644 14 - --- a/src/main.cpp 15 - +++ b/src/main.cpp 16 - @@ -15,6 +15,7 @@ 17 - #include <pwd.h> 18 - #include <libgen.h> 19 - #include <functional> 20 - +#include <dlfcn.h> 21 - 22 - typedef struct { 23 - Display *display; 24 - @@ -830,7 +831,13 @@ static void audio_input_change_callback(GtkComboBox *widget, gpointer userdata) 25 - } 26 - 27 - static bool is_nv_fbc_installed() { 28 - - return access("/usr/lib/libnvidia-fbc.so.1", F_OK) == 0 || access("/usr/local/lib/libnvidia-fbc.so.1", F_OK) == 0; 29 - + auto handle = dlopen("libnvidia-fbc.so.1", RTLD_LAZY); 30 - + if (handle) { 31 - + dlclose(handle); 32 - + return true; 33 - + } else { 34 - + return false; 35 - + } 36 - } 37 - 38 - static GtkWidget* create_common_settings_page(GtkStack *stack, GtkApplication *app) {
···
+23 -13
pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
··· 1 - { stdenv, lib, fetchgit, pkg-config, makeWrapper, gtk3, libX11, libXrandr 2 - , libpulseaudio, gpu-screen-recorder }: 3 4 - stdenv.mkDerivation rec { 5 pname = "gpu-screen-recorder-gtk"; 6 - version = "0.1.0"; 7 8 - src = fetchgit { 9 - url = "https://repo.dec05eba.com/gpu-screen-recorder-gtk"; 10 - rev = "4c317abd0531f8e155fbbbcd32850bbeebbf2ead"; 11 - sha256 = "sha256-5W6qmUMP31ndRDxMHuQ/XnZysPQgaie0vVlMTzfODU4="; 12 }; 13 - 14 - patches = [ ./fix-nvfbc-check.patch ]; 15 16 nativeBuildInputs = [ 17 pkg-config 18 makeWrapper 19 ]; 20 21 buildInputs = [ 22 gtk3 23 - libX11 24 - libXrandr 25 libpulseaudio 26 ]; 27 28 buildPhase = '' ··· 33 install -Dt $out/bin/ gpu-screen-recorder-gtk 34 install -Dt $out/share/applications/ gpu-screen-recorder-gtk.desktop 35 36 - wrapProgram $out/bin/gpu-screen-recorder-gtk --prefix PATH : ${lib.makeBinPath [ gpu-screen-recorder ]} 37 ''; 38 39 meta = with lib; {
··· 1 + { stdenv 2 + , lib 3 + , fetchurl 4 + , pkg-config 5 + , makeWrapper 6 + , gtk3 7 + , libpulseaudio 8 + , libdrm 9 + , gpu-screen-recorder 10 + , libglvnd 11 + , wrapGAppsHook 12 + }: 13 14 + stdenv.mkDerivation { 15 pname = "gpu-screen-recorder-gtk"; 16 + version = "3.2.5"; 17 18 + src = fetchurl { 19 + url = "https://dec05eba.com/snapshot/gpu-screen-recorder-gtk.git.r175.cfd18af.tar.gz"; 20 + hash = "sha256-HhZe22Hm9yGoy5WoyuP2+Wj8E3nMs4uf96mzmP6CMqU="; 21 }; 22 + sourceRoot = "."; 23 24 nativeBuildInputs = [ 25 pkg-config 26 makeWrapper 27 + wrapGAppsHook 28 ]; 29 30 buildInputs = [ 31 gtk3 32 libpulseaudio 33 + libdrm 34 ]; 35 36 buildPhase = '' ··· 41 install -Dt $out/bin/ gpu-screen-recorder-gtk 42 install -Dt $out/share/applications/ gpu-screen-recorder-gtk.desktop 43 44 + gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gpu-screen-recorder ]}) 45 + # we also append /run/opengl-driver/lib as it otherwise fails to find libcuda. 46 + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd ]}:/run/opengl-driver/lib) 47 ''; 48 49 meta = with lib; {
+1 -4
pkgs/top-level/all-packages.nix
··· 32297 32298 gpsprune = callPackage ../applications/misc/gpsprune { }; 32299 32300 - gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { 32301 - # rm me as soon as this package gains the support for cuda 11 32302 - inherit (cudaPackages_10) cudatoolkit; 32303 - }; 32304 32305 gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { }; 32306
··· 32297 32298 gpsprune = callPackage ../applications/misc/gpsprune { }; 32299 32300 + gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { }; 32301 32302 gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { }; 32303