evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / uh / uhk-agent / package.nix
blobd2a4078a8957bd31ff5a96eca16dbc06d3f11bcd
1 { lib
2 , stdenv
3 , stdenvNoCC
4 , fetchurl
5 , appimageTools
6 , electron
7 , makeWrapper
8 , asar
9 , autoPatchelfHook
10 , libusb1
13 let
14   pname = "uhk-agent";
15   version = "4.1.0";
17   src = fetchurl {
18     url = "https://github.com/UltimateHackingKeyboard/agent/releases/download/v${version}/UHK.Agent-${version}-linux-x86_64.AppImage";
19     name = "${pname}-${version}.AppImage";
20     sha256 = "sha256-5VzUSuq+yc8HXSILMg24w/hbwasf4jq0H0wte9Mw+nY=";
21   };
23   appimageContents = appimageTools.extract {
24     inherit pname version src;
25   };
27 stdenvNoCC.mkDerivation {
28   inherit pname version src;
30   dontUnpack = true;
32   nativeBuildInputs = [
33     asar
34     makeWrapper
35     autoPatchelfHook
36   ];
38   buildInputs = [
39     (lib.getLib stdenv.cc.cc)
40     libusb1
41   ];
43   autoPatchelfIgnoreMissingDeps = [
44     "libc.musl-x86_64.so.1"
45   ];
47   installPhase = ''
48     runHook preInstall
50     mkdir -p "$out"/{opt,share/applications}
52     cp -r --no-preserve=mode "${appimageContents}/resources"        "$out/opt/${pname}"
53     cp -r --no-preserve=mode "${appimageContents}/usr/share/icons"  "$out/share/icons"
54     cp -r --no-preserve=mode "${appimageContents}/${pname}.desktop" "$out/share/applications/${pname}.desktop"
56     substituteInPlace "$out/share/applications/${pname}.desktop" \
57       --replace "Exec=AppRun" "Exec=${pname}"
59     asar extract "$out/opt/${pname}/app.asar" "$out/opt/${pname}/app.asar.unpacked"
60     rm           "$out/opt/${pname}/app.asar"
62     makeWrapper "${electron}/bin/electron" "$out/bin/${pname}" \
63       --add-flags "$out/opt/${pname}/app.asar.unpacked" \
64       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
65       --set-default ELECTRON_IS_DEV 0 \
66       --inherit-argv0
68     runHook postInstall
69   '';
71   meta = with lib; {
72     description = "Agent is the configuration application of the Ultimate Hacking Keyboard";
73     homepage = "https://github.com/UltimateHackingKeyboard/agent";
74     license = licenses.unfreeRedistributable;
75     maintainers = with maintainers; [ ngiger nickcao ];
76     platforms = [ "x86_64-linux" ];
77   };