summaryrefslogtreecommitdiff
path: root/derivations
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2025-07-11 11:54:39 -0500
committerTim Keller <tjk@tjkeller.xyz>2025-07-11 11:54:39 -0500
commit470531af44ebb4b7ca1194df0c0f8cc17794b9f1 (patch)
tree96f5f590caeb4f3f6c28be19a8a2fde91ecba0ff /derivations
parent635edfc0ce1ae0504f2877f846211a4fdfa6d327 (diff)
downloadnixos-470531af44ebb4b7ca1194df0c0f8cc17794b9f1.tar.xz
nixos-470531af44ebb4b7ca1194df0c0f8cc17794b9f1.zip
Diffstat (limited to 'derivations')
-rw-r--r--derivations/blackmagic-desktop-video-gui/generic.nix71
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;
};
})