From 533a80b695989977e8701cf7bb665ba185e9ce80 Mon Sep 17 00:00:00 2001 From: lucasew Date: Fri, 20 Oct 2023 11:49:29 -0300 Subject: ciscoPacketTracer: move to by-name Signed-off-by: lucasew --- pkgs/by-name/ci/ciscoPacketTracer7/package.nix | 90 +++++++++++++++++++ pkgs/by-name/ci/ciscoPacketTracer8/package.nix | 118 +++++++++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 pkgs/by-name/ci/ciscoPacketTracer7/package.nix create mode 100644 pkgs/by-name/ci/ciscoPacketTracer8/package.nix (limited to 'pkgs/by-name/ci') diff --git a/pkgs/by-name/ci/ciscoPacketTracer7/package.nix b/pkgs/by-name/ci/ciscoPacketTracer7/package.nix new file mode 100644 index 0000000000000..620e7420439b2 --- /dev/null +++ b/pkgs/by-name/ci/ciscoPacketTracer7/package.nix @@ -0,0 +1,90 @@ +{ stdenv +, lib +, buildFHSEnv +, copyDesktopItems +, dpkg +, lndir +, makeDesktopItem +, makeWrapper +, requireFile +}: + +let + version = "7.3.1"; + + ptFiles = stdenv.mkDerivation { + name = "PacketTracer7drv"; + inherit version; + + dontUnpack = true; + src = requireFile { + name = "PacketTracer_${builtins.replaceStrings ["."] [""] version}_amd64.deb"; + sha256 = "c39802d15dd61d00ba27fb8c116da45fd8562ab4b49996555ad66b88deace27f"; + url = "https://www.netacad.com"; + }; + + nativeBuildInputs = [ dpkg makeWrapper ]; + + installPhase = '' + dpkg-deb -x $src $out + makeWrapper "$out/opt/pt/bin/PacketTracer7" "$out/bin/packettracer7" \ + --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin" + ''; + }; + + desktopItem = makeDesktopItem { + name = "cisco-pt7.desktop"; + desktopName = "Cisco Packet Tracer 7"; + icon = "${ptFiles}/opt/pt/art/app.png"; + exec = "packettracer7 %f"; + mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ]; + }; + + fhs = buildFHSEnv { + name = "packettracer7"; + runScript = "${ptFiles}/bin/packettracer7"; + + targetPkgs = pkgs: with pkgs; [ + alsa-lib + dbus + expat + fontconfig + glib + libglvnd + libpulseaudio + libudev0-shim + libxkbcommon + libxml2 + libxslt + nspr + nss + xorg.libICE + xorg.libSM + xorg.libX11 + xorg.libXScrnSaver + ]; + }; +in stdenv.mkDerivation { + pname = "ciscoPacketTracer7"; + inherit version; + + dontUnpack = true; + + installPhase = '' + mkdir $out + ${lndir}/bin/lndir -silent ${fhs} $out + ''; + + desktopItems = [ desktopItem ]; + + nativeBuildInputs = [ copyDesktopItems ]; + + 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" ]; + }; +} diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix new file mode 100644 index 0000000000000..5784c156e956d --- /dev/null +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -0,0 +1,118 @@ +{ stdenvNoCC +, lib +, alsa-lib +, autoPatchelfHook +, buildFHSEnv +, ciscoPacketTracer8 +, copyDesktopItems +, dbus +, dpkg +, expat +, fontconfig +, glib +, libdrm +, libglvnd +, libpulseaudio +, libudev0-shim +, libxkbcommon +, libxml2 +, libxslt +, lndir +, makeDesktopItem +, makeWrapper +, nspr +, nss +, qt5 +, requireFile +, xorg +}: + +let + hashes = { + "8.2.0" = "1b19885d59f6130ee55414fb02e211a1773460689db38bfd1ac7f0d45117ed16"; + "8.2.1" = "1fh79r4fnh9gjxjh39gcp4j7npgs5hh3qhrhx74x8x546an3i0s2"; + }; +in + +stdenvNoCC.mkDerivation rec { + pname = "ciscoPacketTracer8"; + + version = "8.2.1"; + + src = requireFile { + name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb"; + sha256 = hashes.${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[@]}" \ + --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" ]; + }; +} -- cgit 1.4.1