git-nomad: 0.7.1 -> 0.8.0 (#365279)
[NixPkgs.git] / pkgs / applications / networking / gns3 / gui.nix
blobf1f14ad917d03acc9d9f281b86daaf0802d24be2
2   channel,
3   version,
4   hash,
5 }:
8   fetchFromGitHub,
9   gns3-gui,
10   lib,
11   python3Packages,
12   qt5,
13   testers,
14   wrapQtAppsHook,
17 python3Packages.buildPythonApplication rec {
18   pname = "gns3-gui";
19   inherit version;
21   src = fetchFromGitHub {
22     inherit hash;
23     owner = "GNS3";
24     repo = "gns3-gui";
25     rev = "refs/tags/v${version}";
26   };
28   nativeBuildInputs = with python3Packages; [ wrapQtAppsHook ];
30   build-system = with python3Packages; [ setuptools ];
32   propagatedBuildInputs = [ qt5.qtwayland ];
34   dependencies =
35     with python3Packages;
36     [
37       distro
38       jsonschema
39       psutil
40       sentry-sdk
41       setuptools
42       sip
43       (pyqt5.override { withWebSockets = true; })
44       truststore
45     ]
46     ++ lib.optionals (pythonOlder "3.9") [
47       importlib-resources
48     ];
50   dontWrapQtApps = true;
52   preFixup = ''
53     wrapQtApp "$out/bin/gns3"
54   '';
56   doCheck = true;
58   checkInputs = with python3Packages; [ pytestCheckHook ];
60   preCheck = ''
61     export HOME=$(mktemp -d)
62     export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
63     export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
64     export QT_QPA_PLATFORM=offscreen
65   '';
67   passthru.tests.version = testers.testVersion {
68     package = gns3-gui;
69     command = "${lib.getExe gns3-gui} --version";
70   };
72   meta = {
73     description = "Graphical Network Simulator 3 GUI (${channel} release)";
74     longDescription = ''
75       Graphical user interface for controlling the GNS3 network simulator. This
76       requires access to a local or remote GNS3 server (it's recommended to
77       download the official GNS3 VM).
78     '';
79     homepage = "https://www.gns3.com/";
80     changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}";
81     license = lib.licenses.gpl3Plus;
82     platforms = lib.platforms.linux;
83     maintainers = with lib.maintainers; [ anthonyroussel ];
84     mainProgram = "gns3";
85   };