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 ];
43 (pyqt5.override { withWebSockets = true; })
46 ++ lib.optionals (pythonOlder "3.9") [
50 dontWrapQtApps = true;
53 wrapQtApp "$out/bin/gns3"
58 checkInputs = with python3Packages; [ pytestCheckHook ];
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
67 passthru.tests.version = testers.testVersion {
69 command = "${lib.getExe gns3-gui} --version";
73 description = "Graphical Network Simulator 3 GUI (${channel} release)";
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).
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 ];