biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / misc / snapmaker-luban / default.nix
blob351a17c5fc4d29e1dd762240fc6446e650b7eec8
1 { lib, stdenv, autoPatchelfHook, makeDesktopItem, copyDesktopItems, wrapGAppsHook, fetchurl
2 , alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups
3 , gtk3, nss, glib, dbus, nspr, gdk-pixbuf, libdrm, mesa
4 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
5 , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, pango
6 , gcc-unwrapped, udev
7 }:
9 stdenv.mkDerivation rec {
10   pname = "snapmaker-luban";
11   version = "4.10.2";
13   src = fetchurl {
14     url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
15     sha256 = "sha256-unxI0L8pcF6iWWa57GpYv/aYsApKAKfRaes3uXE7izM=";
16   };
18   nativeBuildInputs = [
19     autoPatchelfHook
20     wrapGAppsHook
21     copyDesktopItems
22   ];
24   buildInputs = [
25     alsa-lib
26     at-spi2-atk
27     at-spi2-core
28     cairo
29     cups
30     gcc-unwrapped
31     gtk3
32     libdrm
33     libXdamage
34     libX11
35     libXScrnSaver
36     libXtst
37     libxcb
38     libxshmfence
39     mesa # Required for libgbm
40     nspr
41     nss
42   ];
44   libPath = lib.makeLibraryPath [
45     stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups
46     gdk-pixbuf glib gtk3 libX11 libXcomposite libxshmfence
47     libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
48     libXtst nspr nss libxcb pango libXScrnSaver udev
49   ];
51   autoPatchelfIgnoreMissingDeps = [
52     "libc.musl-x86_64.so.1"
53   ];
55   dontWrapGApps = true;
56   dontConfigure = true;
57   dontBuild = true;
59   installPhase = ''
60     runHook preInstall
62     mkdir -p $out/{bin,opt,share/pixmaps}/
63     mv * $out/opt/
65     patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
66       $out/opt/snapmaker-luban
68     wrapProgram $out/opt/snapmaker-luban \
69       "''${gappsWrapperArgs[@]}" \
70       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
71       --prefix LD_LIBRARY_PATH : ${libPath}:$out/snapmaker-luban
73     ln -s $out/opt/snapmaker-luban $out/bin/snapmaker-luban
74     ln -s $out/opt/resources/app/app/resources/images/snap-luban-logo-64x64.png $out/share/pixmaps/snapmaker-luban.png
76     runHook postInstall
77   '';
79   desktopItems = [
80     (makeDesktopItem {
81       name = pname;
82       exec = "snapmaker-luban";
83       icon = "snapmaker-luban";
84       desktopName = "Snapmaker Luban";
85       genericName = meta.description;
86       categories = [ "Office" "Printing" ];
87     })
88   ];
90   meta = with lib; {
91     description = "Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines";
92     homepage = "https://github.com/Snapmaker/Luban";
93     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
94     license = licenses.gpl3;
95     maintainers = [ maintainers.simonkampe ];
96     platforms = [ "x86_64-linux" ];
97     knownVulnerabilities = [ "CVE-2023-5217" ];
98   };