From f2b47bffd00ba103eea3bcc62b3926892d14805d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 15 Nov 2024 20:32:32 +0100 Subject: [PATCH 1/6] ciscoPacketTracer8: nixfmt --- .../by-name/ci/ciscoPacketTracer8/package.nix | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index 8c29081bf79ea..01ae0ae1f7f18 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -1,17 +1,18 @@ -{ stdenvNoCC -, lib -, alsa-lib -, autoPatchelfHook -, copyDesktopItems -, dbus -, dpkg -, expat -, fontconfig -, glib -, makeDesktopItem -, makeWrapper -, qt5 -, requireFile +{ + stdenvNoCC, + lib, + alsa-lib, + autoPatchelfHook, + copyDesktopItems, + dbus, + dpkg, + expat, + fontconfig, + glib, + makeDesktopItem, + makeWrapper, + qt5, + requireFile, }: let @@ -91,7 +92,11 @@ stdenvNoCC.mkDerivation (args: { desktopName = "Cisco Packet Tracer 8"; icon = "ciscoPacketTracer8"; exec = "packettracer8 %f"; - mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ]; + mimeTypes = [ + "application/x-pkt" + "application/x-pka" + "application/x-pkz" + ]; }) ]; From b5047459f9ccb75c513e2b06014711333f501dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 29 Nov 2024 19:44:21 +0100 Subject: [PATCH 2/6] ciscoPacketTracer8: remove `with lib;`, order `meta` attrs --- pkgs/by-name/ci/ciscoPacketTracer8/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index 01ae0ae1f7f18..f6b81b6e69f6e 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -106,13 +106,13 @@ stdenvNoCC.mkDerivation (args: { inherit hashes; }; - meta = with lib; { + meta = { description = "Network simulation tool from Cisco"; homepage = "https://www.netacad.com/courses/packet-tracer"; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - license = licenses.unfree; - maintainers = with maintainers; [ ]; - platforms = [ "x86_64-linux" ]; + license = lib.licenses.unfree; mainProgram = "packettracer8"; + maintainers = with lib.maintainers; [ ]; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }) From aeb72d953458ca682d8dacf93545bcad4343d0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 29 Nov 2024 19:45:49 +0100 Subject: [PATCH 3/6] ciscoPacketTracer8: add maintainer gepbird --- pkgs/by-name/ci/ciscoPacketTracer8/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index f6b81b6e69f6e..fef17198f2531 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -111,7 +111,9 @@ stdenvNoCC.mkDerivation (args: { homepage = "https://www.netacad.com/courses/packet-tracer"; license = lib.licenses.unfree; mainProgram = "packettracer8"; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ + gepbird + ]; platforms = [ "x86_64-linux" ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; From 46041f4f37a762e533a70bb897c27f13c24edd59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 15 Nov 2024 23:03:02 +0100 Subject: [PATCH 4/6] ciscoPacketTracer8: add version parameter --- pkgs/by-name/ci/ciscoPacketTracer8/package.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index fef17198f2531..1c3f5f016a185 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -13,6 +13,7 @@ makeWrapper, qt5, requireFile, + version ? "8.2.2", }: let @@ -28,14 +29,14 @@ let }; in -stdenvNoCC.mkDerivation (args: { +stdenvNoCC.mkDerivation { pname = "ciscoPacketTracer8"; - version = "8.2.2"; + inherit version; src = requireFile { - name = names.${args.version}; - hash = hashes.${args.version}; + name = names.${version}; + hash = hashes.${version}; url = "https://www.netacad.com"; }; @@ -117,4 +118,4 @@ stdenvNoCC.mkDerivation (args: { platforms = [ "x86_64-linux" ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; -}) +} From f8e91e908e33ceb61418cc75e9bee24af93d4948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 15 Nov 2024 23:07:54 +0100 Subject: [PATCH 5/6] ciscoPacketTracer8: revert to fhsEnv --- .../by-name/ci/ciscoPacketTracer8/package.nix | 155 +++++++++++------- 1 file changed, 99 insertions(+), 56 deletions(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index 1c3f5f016a185..f21558d9de360 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -1,18 +1,29 @@ { - stdenvNoCC, lib, - alsa-lib, + stdenvNoCC, + requireFile, autoPatchelfHook, - copyDesktopItems, + makeWrapper, + alsa-lib, dbus, - dpkg, expat, fontconfig, glib, + libdrm, + libglvnd, + libpulseaudio, + libudev0-shim, + libxkbcommon, + libxml2, + libxslt, + nspr, + wayland, + nss, + xorg, + dpkg, + buildFHSEnv, + copyDesktopItems, makeDesktopItem, - makeWrapper, - qt5, - requireFile, version ? "8.2.2", }: @@ -27,62 +38,100 @@ let "8.2.1" = "CiscoPacketTracer_821_Ubuntu_64bit.deb"; "8.2.2" = "CiscoPacketTracer822_amd64_signed.deb"; }; + + unwrapped = stdenvNoCC.mkDerivation { + name = "ciscoPacketTracer8-unwrapped"; + inherit version; + + src = requireFile { + name = names.${version}; + hash = hashes.${version}; + url = "https://www.netacad.com"; + }; + + buildInputs = + [ + autoPatchelfHook + makeWrapper + alsa-lib + dbus + expat + fontconfig + glib + libdrm + libglvnd + libpulseaudio + libudev0-shim + libxkbcommon + libxml2 + libxslt + nspr + nss + wayland + ] + ++ (with xorg; [ + libICE + libSM + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libxcb + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + ]); + + unpackPhase = '' + runHook preUnpack + + ${lib.getExe' dpkg "dpkg-deb"} -x $src $out + chmod 755 "$out" + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer8" \ + --prefix LD_LIBRARY_PATH : "$out/opt/pt/bin" + + runHook postInstall + ''; + }; + + fhs-env = buildFHSEnv { + name = "ciscoPacketTracer8-fhs-env"; + runScript = lib.getExe' unwrapped "packettracer8"; + targetPkgs = pkgs: [ libudev0-shim ]; + }; in stdenvNoCC.mkDerivation { pname = "ciscoPacketTracer8"; - inherit version; - src = requireFile { - name = names.${version}; - hash = hashes.${version}; - url = "https://www.netacad.com"; - }; - - unpackPhase = '' - runHook preUnpack - - dpkg-deb -x $src $out - chmod 755 "$out" - - runHook postUnpack - ''; + dontUnpack = true; 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 + mkdir -p $out/bin + ln -s ${fhs-env}/bin/${fhs-env.name} $out/bin/packettracer8 + ln -s ${fhs-env}/usr $out/usr runHook postInstall ''; @@ -91,7 +140,7 @@ stdenvNoCC.mkDerivation { (makeDesktopItem { name = "cisco-pt8.desktop"; desktopName = "Cisco Packet Tracer 8"; - icon = "ciscoPacketTracer8"; + icon = "${unwrapped}/opt/pt/art/app.png"; exec = "packettracer8 %f"; mimeTypes = [ "application/x-pkt" @@ -101,12 +150,6 @@ stdenvNoCC.mkDerivation { }) ]; - dontWrapQtApps = true; - - passthru = { - inherit hashes; - }; - meta = { description = "Network simulation tool from Cisco"; homepage = "https://www.netacad.com/courses/packet-tracer"; From a67194f905f0b41d072e0485a2574feb44df5ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 22 Nov 2024 22:06:49 +0100 Subject: [PATCH 6/6] ciscoPacketTracer8: allow overriding src --- pkgs/by-name/ci/ciscoPacketTracer8/package.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix index f21558d9de360..4f0801c984b5f 100644 --- a/pkgs/by-name/ci/ciscoPacketTracer8/package.nix +++ b/pkgs/by-name/ci/ciscoPacketTracer8/package.nix @@ -25,6 +25,7 @@ copyDesktopItems, makeDesktopItem, version ? "8.2.2", + packetTracerSource ? null, }: let @@ -43,11 +44,15 @@ let name = "ciscoPacketTracer8-unwrapped"; inherit version; - src = requireFile { - name = names.${version}; - hash = hashes.${version}; - url = "https://www.netacad.com"; - }; + src = + if (packetTracerSource != null) then + packetTracerSource + else + requireFile { + name = names.${version}; + hash = hashes.${version}; + url = "https://www.netacad.com"; + }; buildInputs = [