From c4dbc4019150b6fbbfe2392872dbd8a4894e0fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Wed, 29 Oct 2025 03:15:53 +0100 Subject: [PATCH] ciscoPacketTracer9: init at 9.0.0 --- .../by-name/ci/ciscoPacketTracer9/package.nix | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 pkgs/by-name/ci/ciscoPacketTracer9/package.nix diff --git a/pkgs/by-name/ci/ciscoPacketTracer9/package.nix b/pkgs/by-name/ci/ciscoPacketTracer9/package.nix new file mode 100644 index 000000000000..d0e59507f916 --- /dev/null +++ b/pkgs/by-name/ci/ciscoPacketTracer9/package.nix @@ -0,0 +1,90 @@ +{ + appimageTools, + dpkg, + lib, + libpng, + libxkbfile, + requireFile, + stdenvNoCC, + version ? "9.0.0", +}: + +let + pname = "ciscoPacketTracer9"; + + appimage = stdenvNoCC.mkDerivation { + pname = "ciscoPacketTracer9-appimage"; + inherit version; + + src = + let + sources = { + "9.0.0" = { + name = "CiscoPacketTracer_900_Ubuntu_64bit.deb"; + hash = "sha256-3ZrA1Mf8N9y2j2J/18fm+m1CAMFEklJuVhi5vRcu2SA="; + }; + }; + in + requireFile { + inherit (sources."${version}") name hash; + url = "https://www.netacad.com/resources/lab-downloads"; + }; + + nativeBuildInputs = [ + dpkg + ]; + + installPhase = '' + runHook preInstall + + cp opt/pt/packettracer.AppImage $out + + runHook postInstall + ''; + }; + +in +appimageTools.wrapType2 rec { + inherit pname version; + src = appimage; + + extraPkgs = _: [ + libpng + libxkbfile + ]; + + extraBwrapArgs = [ + # fixes launch on wayland when the user sets QT_QPA_PLATFORM=wayland: + # "Fatal: This application failed to start because no Qt platform plugin could be initialized." + "--setenv QT_QPA_PLATFORM xcb" + ]; + + extraInstallCommands = + let + contents = appimageTools.extract { inherit pname version src; }; + in + '' + mv $out/bin/${pname} $out/bin/packettracer9 + + install -Dm444 ${contents}/CiscoPacketTracer-9.0.0.desktop $out/share/applications/cisco-packet-tracer-9.desktop + install -Dm444 ${contents}/CiscoPacketTracerPtsa-9.0.0.desktop $out/share/applications/cisco-packet-tracer-ptsa-9.desktop + substituteInPlace $out/share/applications/* \ + --replace-fail "Exec=@EXEC_PATH@" "Exec=packettracer9" \ + --replace-fail "Icon=app" "Icon=cisco-packet-tracer-9" + + install -Dm444 ${contents}/usr/share/icons/hicolor/48x48/apps/app.png $out/share/icons/hicolor/48x48/apps/cisco-packet-tracer-9.png + cp -r ${contents}/usr/share/icons/gnome/48x48/mimetypes $out/share/icons/hicolor/48x48/ + ''; + + meta = { + description = "Network simulation tool from Cisco"; + homepage = "https://www.netacad.com/courses/packet-tracer"; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ + gepbird + ]; + mainProgram = "packettracer9"; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +}