nixpkgs-immich/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
2024-09-17 10:23:40 -06:00

114 lines
2.3 KiB
Nix

{ stdenvNoCC
, lib
, alsa-lib
, autoPatchelfHook
, copyDesktopItems
, dbus
, dpkg
, expat
, fontconfig
, glib
, makeDesktopItem
, makeWrapper
, qt5
, requireFile
}:
let
hashes = {
"8.2.0" = "sha256-GxmIXVn2Ew7lVBT7AuIRoXc0YGids4v9Gsfw1FEX7RY=";
"8.2.1" = "sha256-QoM4rDKkdNTJ6TBDPCAs+l17JLnspQFlly9B60hOB7o=";
"8.2.2" = "sha256-bNK4iR35LSyti2/cR0gPwIneCFxPP+leuA1UUKKn9y0=";
};
names = {
"8.2.0" = "CiscoPacketTracer_820_Ubuntu_64bit.deb";
"8.2.1" = "CiscoPacketTracer_821_Ubuntu_64bit.deb";
"8.2.2" = "CiscoPacketTracer822_amd64_signed.deb";
};
in
stdenvNoCC.mkDerivation (args: {
pname = "ciscoPacketTracer8";
version = "8.2.2";
src = requireFile {
name = names.${args.version};
hash = hashes.${args.version};
url = "https://www.netacad.com";
};
unpackPhase = ''
runHook preUnpack
dpkg-deb -x $src $out
chmod 755 "$out"
runHook postUnpack
'';
nativeBuildInputs = [
autoPatchelfHook
copyDesktopItems
dpkg
makeWrapper
qt5.wrapQtAppsHook
];
buildInputs = [
alsa-lib
dbus
expat
fontconfig
glib
qt5.qtbase
qt5.qtmultimedia
qt5.qtnetworkauth
qt5.qtscript
qt5.qtspeech
qt5.qtwebengine
qt5.qtwebsockets
];
installPhase = ''
runHook preInstall
makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer8" \
"''${qtWrapperArgs[@]}" \
--set QT_QPA_PLATFORMTHEME "" \
--prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
install -D $out/opt/pt/art/app.png $out/share/icons/hicolor/128x128/apps/ciscoPacketTracer8.png
rm $out/opt/pt/bin/libQt5* -f
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "cisco-pt8.desktop";
desktopName = "Cisco Packet Tracer 8";
icon = "ciscoPacketTracer8";
exec = "packettracer8 %f";
mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ];
})
];
dontWrapQtApps = true;
passthru = {
inherit hashes;
};
meta = with lib; {
description = "Network simulation tool from Cisco";
homepage = "https://www.netacad.com/courses/packet-tracer";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ lucasew ];
platforms = [ "x86_64-linux" ];
mainProgram = "packettracer8";
};
})