lol
1{
2 lib,
3 stdenv,
4 fetchurl,
5 p7zip,
6 nss,
7 nspr,
8 libusb1,
9 cups,
10 autoPatchelfHook,
11 libgpg-error,
12 e2fsprogs,
13 makeDesktopItem,
14 copyDesktopItems,
15 xorg,
16 libGL,
17 alsa-lib,
18 freetype,
19 fontconfig,
20 makeWrapper,
21}:
22
23stdenv.mkDerivation rec {
24 pname = "lightburn";
25 version = "1.7.08";
26
27 src = fetchurl {
28 url = "https://release.lightburnsoftware.com/LightBurn/Release/LightBurn-v${version}/LightBurn-Linux64-v${version}.7z";
29 hash = "sha256-dG/A39/SapyS6GGSKCsHUvYN+CONul/s55HTi9Cc59g=";
30 };
31
32 nativeBuildInputs = [
33 p7zip
34 autoPatchelfHook
35 copyDesktopItems
36 makeWrapper
37 ];
38
39 buildInputs = [
40 nss
41 nspr
42 libusb1
43 cups
44 libgpg-error
45 e2fsprogs
46 xorg.libX11
47 xorg.libxcb
48 libGL
49 alsa-lib
50 freetype
51 fontconfig
52 ];
53
54 unpackPhase = ''
55 7z x $src
56 '';
57
58 desktopItems = [
59 (makeDesktopItem {
60 name = "lightburn";
61 exec = "lightburn";
62 icon = "lightburn";
63 genericName = "LightBurn";
64 desktopName = "LightBurn";
65 })
66 ];
67
68 installPhase = ''
69 runHook preInstall
70
71 mkdir -p $out/opt
72 cp -ar LightBurn $out/opt/lightburn
73 install -Dm644 $out/opt/lightburn/LightBurn.png $out/share/pixmaps/lightburn.png
74
75 runHook postInstall
76 '';
77
78 postFixup = ''
79 mkdir $out/bin
80 makeWrapper $out/opt/lightburn/AppRun $out/bin/lightburn \
81 --unset QT_PLUGIN_PATH \
82 --unset QML2_IMPORT_PATH
83 '';
84
85 meta = {
86 description = "Layout, editing, and control software for your laser cutter";
87 homepage = "https://lightburnsoftware.com";
88 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
89 license = lib.licenses.unfree;
90 maintainers = with lib.maintainers; [ q3k ];
91 platforms = [ "x86_64-linux" ];
92 mainProgram = "lightburn";
93 };
94}