about summary refs log tree commit diff
path: root/pkgs/by-name/ci
diff options
context:
space:
mode:
authorlucasew <lucas59356@gmail.com>2023-10-20 11:49:29 -0300
committerlucasew <lucas59356@gmail.com>2023-10-22 20:33:57 -0300
commit533a80b695989977e8701cf7bb665ba185e9ce80 (patch)
treeaa66aecac838a97c0961302e28672e21fcdc70ef /pkgs/by-name/ci
parent3d7a169afe725339aeb7e24b8407fd8a7a013316 (diff)
ciscoPacketTracer: move to by-name
Signed-off-by: lucasew <lucas59356@gmail.com>
Diffstat (limited to 'pkgs/by-name/ci')
-rw-r--r--pkgs/by-name/ci/ciscoPacketTracer7/package.nix90
-rw-r--r--pkgs/by-name/ci/ciscoPacketTracer8/package.nix118
2 files changed, 208 insertions, 0 deletions
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" ];
+  };
+}