forgejo-lts: 7.0.10 -> 7.0.11
[NixPkgs.git] / pkgs / by-name / ci / ciscoPacketTracer7 / package.nix
bloba378940e559905d9922567f253ec18d30a7ba0c8
1 { stdenv
2 , lib
3 , buildFHSEnv
4 , copyDesktopItems
5 , dpkg
6 , lndir
7 , makeDesktopItem
8 , makeWrapper
9 , requireFile
12 let
13   version = "7.3.1";
15   ptFiles = stdenv.mkDerivation {
16     name = "PacketTracer7drv";
17     inherit version;
19     dontUnpack = true;
20     src = requireFile {
21       name = "PacketTracer_${builtins.replaceStrings ["."] [""] version}_amd64.deb";
22       hash = "sha256-w5gC0V3WHQC6J/uMEW2kX9hWKrS0mZZVWtZriN6s4n8=";
23       url = "https://www.netacad.com";
24     };
26     nativeBuildInputs = [ dpkg makeWrapper ];
28     installPhase = ''
29       dpkg-deb -x $src $out
30       makeWrapper "$out/opt/pt/bin/PacketTracer7" "$out/bin/packettracer7" \
31           --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
32     '';
33   };
35   desktopItem = makeDesktopItem {
36     name = "cisco-pt7.desktop";
37     desktopName = "Cisco Packet Tracer 7";
38     icon = "${ptFiles}/opt/pt/art/app.png";
39     exec = "packettracer7 %f";
40     mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ];
41   };
43   fhs = buildFHSEnv {
44     name = "packettracer7";
45     runScript = "${ptFiles}/bin/packettracer7";
47     targetPkgs = pkgs: with pkgs; [
48       alsa-lib
49       dbus
50       expat
51       fontconfig
52       glib
53       libglvnd
54       libpulseaudio
55       libudev0-shim
56       libxkbcommon
57       libxml2
58       libxslt
59       nspr
60       nss
61       xorg.libICE
62       xorg.libSM
63       xorg.libX11
64       xorg.libXScrnSaver
65     ];
66   };
67 in stdenv.mkDerivation {
68   pname = "ciscoPacketTracer7";
69   inherit version;
71   dontUnpack = true;
73   installPhase = ''
74     mkdir $out
75     ${lndir}/bin/lndir -silent ${fhs} $out
76   '';
78   desktopItems = [ desktopItem ];
80   nativeBuildInputs = [ copyDesktopItems ];
82   meta = with lib; {
83     description = "Network simulation tool from Cisco";
84     homepage = "https://www.netacad.com/courses/packet-tracer";
85     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
86     license = licenses.unfree;
87     maintainers = with maintainers; [ lucasew ];
88     platforms = [ "x86_64-linux" ];
89   };