17 python3Packages.buildPythonApplication rec {
21 src = fetchFromGitHub {
25 rev = "refs/tags/v${version}";
28 nativeBuildInputs = with python3Packages; [ wrapQtAppsHook ];
30 build-system = with python3Packages; [ setuptools ];
32 propagatedBuildInputs = [ qt5.qtwayland ];
34 dependencies = with python3Packages; [
41 (pyqt5.override { withWebSockets = true; })
43 ] ++ lib.optionals (pythonOlder "3.9") [
47 dontWrapQtApps = true;
50 wrapQtApp "$out/bin/gns3"
55 checkInputs = with python3Packages; [ pytestCheckHook ];
58 export HOME=$(mktemp -d)
59 export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
60 export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
61 export QT_QPA_PLATFORM=offscreen
64 passthru.tests.version = testers.testVersion {
66 command = "${lib.getExe gns3-gui} --version";
70 description = "Graphical Network Simulator 3 GUI (${channel} release)";
72 Graphical user interface for controlling the GNS3 network simulator. This
73 requires access to a local or remote GNS3 server (it's recommended to
74 download the official GNS3 VM).
76 homepage = "https://www.gns3.com/";
77 changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}";
78 license = lib.licenses.gpl3Plus;
79 platforms = lib.platforms.linux;
80 maintainers = with lib.maintainers; [ anthonyroussel ];