From 3f4f2817f91653d597c0e3916619e8171dce4723 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Wed, 4 Feb 2026 20:30:59 +0100 Subject: [PATCH 1/3] gns3-server: 2.2.56 -> 2.2.56.1 Diff: https://github.com/GNS3/gns3-server/compare/v2.2.56...v2.2.56.1 --- pkgs/by-name/gn/gns3-server/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gn/gns3-server/package.nix b/pkgs/by-name/gn/gns3-server/package.nix index c817deb471de..767d76988877 100644 --- a/pkgs/by-name/gn/gns3-server/package.nix +++ b/pkgs/by-name/gn/gns3-server/package.nix @@ -13,14 +13,14 @@ python3Packages.buildPythonApplication rec { pname = "gns3-server"; - version = "2.2.56"; + version = "2.2.56.1"; pyproject = true; src = fetchFromGitHub { owner = "GNS3"; repo = "gns3-server"; tag = "v${version}"; - hash = "sha256-akA6P/ONPioce4pJbg4wAzSvb7aSYGM8NfCs7q9svic="; + hash = "sha256-1eYUJtrOfe1DXzxJbT1HQ6oiiiS+xHRG/wg9gOs0uTU="; }; # GNS3 2.3.26 requires a static BusyBox for the Docker integration @@ -29,10 +29,12 @@ python3Packages.buildPythonApplication rec { ''; pythonRelaxDeps = [ + "aiofiles" "aiohttp" "aiohttp-cors" "jsonschema" "platformdirs" + "psutil" "sentry-sdk" ]; From a9da5e8b0d8729414f0afaff4bd0ab4fe2ef7ebc Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Wed, 4 Feb 2026 21:17:10 +0100 Subject: [PATCH 2/3] gns3-gui: 2.2.55 -> 2.2.56.1 Diff: https://github.com/GNS3/gns3-gui/compare/v2.2.55...v2.2.56.1 --- pkgs/by-name/gn/gns3-gui/package.nix | 40 +++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/gn/gns3-gui/package.nix b/pkgs/by-name/gn/gns3-gui/package.nix index e147afc1ee32..2d1af2ba0725 100644 --- a/pkgs/by-name/gn/gns3-gui/package.nix +++ b/pkgs/by-name/gn/gns3-gui/package.nix @@ -1,48 +1,51 @@ { fetchFromGitHub, + fetchpatch, gns3-gui, lib, python3Packages, - qt5, + qt6, testers, writableTmpDirAsHomeHook, }: -let - pythonPackages = python3Packages.overrideScope ( - final: prev: { - pyqt5 = prev.pyqt5.override { withWebSockets = true; }; - } - ); -in -pythonPackages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "gns3-gui"; - version = "2.2.55"; + version = "2.2.56.1"; pyproject = true; src = fetchFromGitHub { owner = "GNS3"; repo = "gns3-gui"; tag = "v${version}"; - hash = "sha256-6jblQakNpoSQXfy5pU68Aedg661VcwpqQilvqOV15pQ"; + hash = "sha256-HBTBwn7jAW/SXFTfPbO08bDG5NfS3tuic/Z0ib1/Uo8="; }; + patches = [ + # Fix tests after PyQt6 migration + (fetchpatch { + url = "https://github.com/GNS3/gns3-gui/commit/e6e2a1cafbc3ce4be9cca3428e60400f25806cde.patch"; + hash = "sha256-T15OCqm+Te9ZOCg/kFf/fd2DY75LfaLHskAAgGYMloI="; + }) + ]; + pythonRelaxDeps = [ "jsonschema" + "psutil" "sentry-sdk" ]; - nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + nativeBuildInputs = [ qt6.wrapQtAppsHook ]; - buildInputs = [ qt5.qtwayland ]; + buildInputs = [ qt6.qtwayland ]; - build-system = with pythonPackages; [ setuptools ]; + build-system = with python3Packages; [ setuptools ]; - dependencies = with pythonPackages; [ + dependencies = with python3Packages; [ distro jsonschema psutil - pyqt5 + pyqt6 sentry-sdk setuptools sip @@ -55,14 +58,13 @@ pythonPackages.buildPythonApplication rec { makeWrapperArgs+=("''${qtWrapperArgs[@]}") ''; - nativeCheckInputs = with pythonPackages; [ + nativeCheckInputs = with python3Packages; [ pytestCheckHook writableTmpDirAsHomeHook ]; preCheck = '' - export QT_PLUGIN_PATH="${lib.getBin qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}" - export QT_QPA_PLATFORM_PLUGIN_PATH="${lib.getBin qt5.qtbase}/lib/qt-${qt5.qtbase.version}/plugins"; + export QT_PLUGIN_PATH="${lib.getBin qt6.qtbase}/${qt6.qtbase.qtPluginPrefix}" export QT_QPA_PLATFORM=offscreen ''; From 3ecd2d02fac86f747523831e4b71312d8cf9d310 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Wed, 4 Feb 2026 21:48:21 +0100 Subject: [PATCH 3/3] gns3-gui,gns3-server: use passthru.updateScript gns3-gui and gns3-server versions should kept in sync. --- pkgs/by-name/gn/gns3-gui/package.nix | 10 +++++++--- pkgs/by-name/gn/gns3-server/package.nix | 22 +++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/gn/gns3-gui/package.nix b/pkgs/by-name/gn/gns3-gui/package.nix index 2d1af2ba0725..7ee34cb12eb8 100644 --- a/pkgs/by-name/gn/gns3-gui/package.nix +++ b/pkgs/by-name/gn/gns3-gui/package.nix @@ -2,6 +2,7 @@ fetchFromGitHub, fetchpatch, gns3-gui, + gns3-server, lib, python3Packages, qt6, @@ -68,9 +69,12 @@ python3Packages.buildPythonApplication rec { export QT_QPA_PLATFORM=offscreen ''; - passthru.tests.version = testers.testVersion { - package = gns3-gui; - command = "${lib.getExe gns3-gui} --version"; + passthru = { + tests.version = testers.testVersion { + package = gns3-gui; + command = "${lib.getExe gns3-gui} --version"; + }; + inherit (gns3-server.passthru) updateScript; }; meta = { diff --git a/pkgs/by-name/gn/gns3-server/package.nix b/pkgs/by-name/gn/gns3-server/package.nix index 767d76988877..11c023f94630 100644 --- a/pkgs/by-name/gn/gns3-server/package.nix +++ b/pkgs/by-name/gn/gns3-server/package.nix @@ -9,6 +9,7 @@ testers, util-linux, writableTmpDirAsHomeHook, + writeScript, }: python3Packages.buildPythonApplication rec { @@ -84,12 +85,23 @@ python3Packages.buildPythonApplication rec { "tests/controller/test_project.py" ]; - passthru.tests = { - inherit (nixosTests) gns3-server; - version = testers.testVersion { - package = gns3-server; - command = "${lib.getExe gns3-server} --version"; + passthru = { + tests = { + inherit (nixosTests) gns3-server; + version = testers.testVersion { + package = gns3-server; + command = "${lib.getExe gns3-server} --version"; + }; }; + updateScript = writeScript "update-gns3" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p nix-update + + set -eu -o pipefail + + nix-update gns3-gui --version-regex '^v(2\.[\d\.]+)$' --commit + nix-update gns3-server --version-regex '^v(2\.[\d\.]+)$' --commit + ''; }; meta = {