ciscoPacketTracer8: 8.2.0 -> 8.2.1, refactor

Signed-off-by: lucasew <lucas59356@gmail.com>

lucasew 2920b6fc a2420e26

Changed files
+69 -84
pkgs
applications
networking
cisco-packet-tracer
+69 -84
pkgs/applications/networking/cisco-packet-tracer/8.nix
···
-
{ stdenv
+
{ stdenvNoCC
, lib
, alsa-lib
, autoPatchelfHook
, buildFHSEnv
+
, ciscoPacketTracer8
, copyDesktopItems
, dbus
, dpkg
···
, makeWrapper
, nspr
, nss
+
, qt5
, requireFile
, xorg
}:
let
-
version = "8.2.0";
+
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";
+
};
-
ptFiles = stdenv.mkDerivation {
-
name = "PacketTracer8Drv";
-
inherit version;
+
unpackPhase = ''
+
runHook preUnpack
-
dontUnpack = true;
-
src = requireFile {
-
name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb";
-
sha256 = "1b19885d59f6130ee55414fb02e211a1773460689db38bfd1ac7f0d45117ed16";
-
url = "https://www.netacad.com";
-
};
+
dpkg-deb -x $src $out
+
chmod 755 "$out"
-
nativeBuildInputs = [
-
alsa-lib
-
autoPatchelfHook
-
dbus
-
dpkg
-
expat
-
fontconfig
-
glib
-
libdrm
-
libglvnd
-
libpulseaudio
-
libudev0-shim
-
libxkbcommon
-
libxml2
-
libxslt
-
makeWrapper
-
nspr
-
nss
-
] ++ (with xorg; [
-
libICE
-
libSM
-
libX11
-
libxcb
-
libXcomposite
-
libXcursor
-
libXdamage
-
libXext
-
libXfixes
-
libXi
-
libXrandr
-
libXrender
-
libXScrnSaver
-
libXtst
-
xcbutilimage
-
xcbutilkeysyms
-
xcbutilrenderutil
-
xcbutilwm
-
]);
+
runHook postUnpack
+
'';
-
installPhase = ''
-
dpkg-deb -x $src $out
-
chmod 755 "$out"
-
makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer" \
-
--prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
+
nativeBuildInputs = [
+
autoPatchelfHook
+
copyDesktopItems
+
dpkg
+
makeWrapper
+
qt5.wrapQtAppsHook
+
];
-
# Keep source archive cached, to avoid re-downloading
-
ln -s $src $out/usr/share/
-
'';
-
};
+
buildInputs = [
+
alsa-lib
+
dbus
+
expat
+
fontconfig
+
glib
+
qt5.qtbase
+
qt5.qtmultimedia
+
qt5.qtnetworkauth
+
qt5.qtscript
+
qt5.qtspeech
+
qt5.qtwebengine
+
qt5.qtwebsockets
+
];
-
desktopItem = makeDesktopItem {
-
name = "cisco-pt8.desktop";
-
desktopName = "Cisco Packet Tracer 8";
-
icon = "${ptFiles}/opt/pt/art/app.png";
-
exec = "packettracer8 %f";
-
mimeTypes = [ "application/x-pkt" "application/x-pka" "application/x-pkz" ];
-
};
+
installPhase = ''
+
runHook preInstall
-
fhs = buildFHSEnv {
-
name = "packettracer8";
-
runScript = "${ptFiles}/bin/packettracer";
-
targetPkgs = pkgs: [ libudev0-shim ];
+
makeWrapper "$out/opt/pt/bin/PacketTracer" "$out/bin/packettracer8" \
+
"''${qtWrapperArgs[@]}" \
+
--prefix LD_LIBRARY_PATH : "$out/opt/pt/bin"
-
extraInstallCommands = ''
-
mkdir -p "$out/share/applications"
-
cp "${desktopItem}"/share/applications/* "$out/share/applications/"
-
'';
-
};
-
in
-
stdenv.mkDerivation {
-
pname = "ciscoPacketTracer8";
-
inherit version;
+
install -D $out/opt/pt/art/app.png $out/share/icons/hicolor/128x128/apps/ciscoPacketTracer8.png
-
dontUnpack = true;
+
rm $out/opt/pt/bin/libQt5* -f
-
installPhase = ''
-
mkdir $out
-
${lndir}/bin/lndir -silent ${fhs} $out
+
runHook postInstall
'';
-
desktopItems = [ desktopItem ];
-
nativeBuildInputs = [ copyDesktopItems ];
+
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";