diff options
author | Tim Keller <tjk@tjkeller.xyz> | 2025-07-11 11:54:39 -0500 |
---|---|---|
committer | Tim Keller <tjk@tjkeller.xyz> | 2025-07-11 11:54:39 -0500 |
commit | 470531af44ebb4b7ca1194df0c0f8cc17794b9f1 (patch) | |
tree | 96f5f590caeb4f3f6c28be19a8a2fde91ecba0ff /derivations/blackmagic-desktop-video-gui/generic.nix | |
parent | 635edfc0ce1ae0504f2877f846211a4fdfa6d327 (diff) | |
download | nixos-origin/decklink.tar.xz nixos-origin/decklink.zip |
Diffstat (limited to 'derivations/blackmagic-desktop-video-gui/generic.nix')
-rw-r--r-- | derivations/blackmagic-desktop-video-gui/generic.nix | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/derivations/blackmagic-desktop-video-gui/generic.nix b/derivations/blackmagic-desktop-video-gui/generic.nix index 5eb36e9..b99c550 100644 --- a/derivations/blackmagic-desktop-video-gui/generic.nix +++ b/derivations/blackmagic-desktop-video-gui/generic.nix @@ -9,22 +9,23 @@ libGL, gcc, - optionals, - optionalString, - desktopVideoFull ? false, + + # whether to include firmware update tool desktopVideoUpdater ? desktopVideoFull, + libusb1 ? desktopVideoUpdater, - dbus ? desktopVideoFull, - glib ? desktopVideoFull, - fontconfig ? desktopVideoFull, - freetype ? desktopVideoFull, - libXrender ? desktopVideoFull, - libICE ? desktopVideoFull, - libusb1 ? desktopVideoFull, - qt5 ? desktopVideoFull, - wrapQtAppsHook ? desktopVideoFull, + # whether to include gui applications as well + desktopVideoGUI ? desktopVideoFull, + dbus ? desktopVideoGUI, + fontconfig ? desktopVideoGUI, + freetype ? desktopVideoGUI, + glib ? desktopVideoGUI, + libICE ? desktopVideoGUI, + libXrender ? desktopVideoGUI, + qt5 ? desktopVideoGUI, }: + stdenv.mkDerivation (finalAttrs: { pname = "blackmagic-desktop-video"; version = "14.4.1a4"; @@ -34,17 +35,18 @@ stdenv.mkDerivation (finalAttrs: { libcxx libGL gcc.cc.lib - ] ++ optionals desktopVideoFull [ + ] ++ lib.optionals desktopVideoUpdater [ + libusb1 + ] ++ lib.optionals desktopVideoGUI [ dbus - glib fontconfig freetype - libXrender + glib libICE - libusb1 + libXrender qt5.qtbase ]; - nativeBuildInputs = lib.mkIf desktopVideoFull [ wrapQtAppsHook ]; + nativeBuildInputs = [] ++ lib.optionals desktopVideoGUI [ qt5.wrapQtAppsHook ]; # yes, the below download function is an absolute mess. # blame blackmagicdesign. @@ -114,33 +116,30 @@ stdenv.mkDerivation (finalAttrs: { runHook preInstall mkdir -p $out/{bin,share/doc,share/man/man1,lib/systemd/system} cp -r $unpacked/usr/share/doc/desktopvideo $out/share/doc - cp $unpacked/usr/share/man/man1/DesktopVideoHelper.1 $out/share/man/man1 + cp $unpacked/usr/share/man/man1/DesktopVideoHelper.1 $out/share/man/man1 cp $unpacked/usr/lib/*.so $out/lib cp $unpacked/usr/lib/systemd/system/DesktopVideoHelper.service $out/lib/systemd/system cp $unpacked/usr/lib/blackmagic/DesktopVideo/DesktopVideoHelper $out/bin/ + cp $unpacked/usr/lib/blackmagic/DesktopVideo/DesktopVideoNotifier $out/bin/ substituteInPlace $out/lib/systemd/system/DesktopVideoHelper.service \ --replace-fail "/usr/lib/blackmagic/DesktopVideo/DesktopVideoHelper" "$out/bin/DesktopVideoHelper" '' - # FIXME TODO patch update tool with correct patj - + optionalString (desktopVideoUpdater || desktopVideoFull) '' - mkdir -p $out/lib/blackmagic/DesktopVideo/Firmware - cp $unpacked/usr/share/man/man1/DesktopVideoUpdateTool.1 $out/share/man/man1 + + lib.optionalString desktopVideoUpdater '' + mkdir -p $out/{lib/blackmagic/DesktopVideo/Firmware,share/icons,share/applications} + cp $unpacked/usr/share/man/man1/DesktopVideo{UpdateTool,Updater}.1 $out/share/man/man1 + cp -r $unpacked/usr/share/icons/* $out/share/icons + cp $unpacked/usr/share/applications/DesktopVideoUpdater.desktop $out/share/applications cp -r $unpacked/usr/lib/blackmagic/DesktopVideo/Firmware $out/lib/blackmagic/DesktopVideo/Firmware - cp $unpacked/usr/lib/blackmagic/DesktopVideo/DesktopVideoUpdateTool $out/bin/ + cp $unpacked/usr/lib/blackmagic/DesktopVideo/libDVUpdate.so $out/lib + cp $unpacked/usr/lib/blackmagic/DesktopVideo/DesktopVideo{UpdateTool,Updater} $out/bin/ '' - + optionalString desktopVideoFull '' - mkdir -p $out/{share/man,share/icons,share/applications} + + lib.optionalString desktopVideoGUI '' + mkdir -p $out/share/{icons,applications} cp -r $unpacked/usr/share/doc/desktopvideo-gui $out/share/doc - # Man - cp -r $unpacked/usr/share/man/man1/{DesktopVideoUpdater,BlackmagicDesktopVideoSetup}.1 $out/share/man/man1 - # Icons + cp $unpacked/usr/share/man/man1/BlackmagicDesktopVideoSetup.1 $out/share/man/man1 cp -r $unpacked/usr/share/icons/* $out/share/icons - # Desktop files - cp $unpacked/usr/share/applications/* $out/share/applications - # Additional libs - cp $unpacked/usr/lib/blackmagic/DesktopVideo/*.so $out/lib - # Bins - #cp $unpacked/usr/lib/blackmagic/DesktopVideo/{DesktopVideo{Notifier,Updater},BlackmagicDesktopVideoSetup} $out/bin/ + cp $unpacked/usr/share/applications/BlackmagicDesktopVideoSetup.desktop $out/share/applications + cp $unpacked/usr/lib/blackmagic/DesktopVideo/BlackmagicDesktopVideoSetup $out/bin/ '' + '' runHook postInstall @@ -151,9 +150,9 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { homepage = "https://www.blackmagicdesign.com/support/family/capture-and-playback"; - maintainers = [ maintainers.naxdy ]; + maintainers = with maintainers; [ naxdy tjkeller ]; license = licenses.unfree; - description = "Supporting applications for Blackmagic Decklink. Doesn't include the desktop applications, only the helper required to make the driver work"; + description = "Supporting applications for Blackmagic Decklink. Doesn't include the desktop applications or firmware updater by default, only the helper required to make the driver work"; platforms = platforms.linux; }; }) |