Merge pull request #3829 from GNS3/release/v2.2.59

Release v2.2.59
This commit is contained in:
Jeremy Grossmann
2026-05-08 20:06:01 +08:00
committed by GitHub
9 changed files with 24 additions and 16 deletions

View File

@@ -1,5 +1,12 @@
# Change Log
## 2.2.59 08/05/2026
* Remove psutil version check
* Fix remaining PyQt6 compatibility issues. Fixes #3822
* Add --title to remote-viewer console commands. Fixes #3783
* Fix deleting drawings. Ref #3810
## 2.2.58.1 12/04/2026
* Fix callback issues in found in v2.2.58

View File

@@ -50,7 +50,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://af760e2022b321441622330f11dcb650@o19455.ingest.us.sentry.io/38506"
DSN = "https://dd662ce99d7e4a04714a89939ec523c9@o19455.ingest.us.sentry.io/38506"
_instance = None
def __init__(self):

View File

@@ -106,6 +106,11 @@ class DrawingItem:
"""
if error:
if "doesn't exist" in result.get("message", ""):
log.warning("Drawing not found on server, recreating: {}".format(self._id))
self._id = None
self.create()
return True
log.error("Error while updating drawing: {}".format(result["message"]))
return False
self.setPos(QtCore.QPointF(result["x"], result["y"]))
@@ -214,7 +219,7 @@ class DrawingItem:
"""
Deletes this drawing.
:param skip_controller: Do not replicate change on the controller (usefull when it's already deleted on controller)
:param skip_controller: Do not replicate change on the controller (useful when it's already deleted on controller)
"""
self.setDeleting()
@@ -222,7 +227,7 @@ class DrawingItem:
from ..topology import Topology
Topology.instance().removeDrawing(self)
if self._id and not skip_controller:
self._project.delete("/drawings/" + self._id, None, body=self.__json__())
self._project.delete("/drawings/" + self._id, None)
def itemChange(self, change, value):

View File

@@ -132,7 +132,7 @@ class TextItem(QtWidgets.QGraphicsTextItem, DrawingItem):
text.set("text-decoration", "underline")
text.set("fill", "#" + hex(self.defaultTextColor().rgba())[4:])
text.set("fill-opacity", str(self.defaultTextColor().alphaF()))
text.text = self.toPlainText()
text.text = self.toPlainText() or " "
svg = ET.tostring(svg, encoding="utf-8").decode("utf-8")
return svg

View File

@@ -36,7 +36,6 @@ import time
import locale
import argparse
import signal
import psutil
try:
from gns3.qt import QtCore, QtWidgets
@@ -191,9 +190,6 @@ def main():
if parse_version(QtCore.QT_VERSION_STR) < parse_version("6.3.1"):
raise SystemExit("Requirement is PyQt6 version 6.3.1 or higher, got version {}".format(QtCore.QT_VERSION_STR))
if parse_version(psutil.__version__) < parse_version("2.2.1"):
raise SystemExit("Requirement is psutil version 2.2.1 or higher, got version {}".format(psutil.__version__))
# check for the correct locale
# (UNIX/Linux only)
locale_check()

View File

@@ -208,7 +208,7 @@ else:
'TightVNC': 'vncviewer {host}:{port}',
'Vinagre': 'vinagre {host}::{port}',
'gvncviewer': 'gvncviewer {host}:{display}',
'Remote Viewer': 'remote-viewer vnc://{host}:{port}',
'Remote Viewer': 'remote-viewer --title "({name})" vnc://{host}:{port}',
'KRDC': 'krdc vnc://{host}:{port}'
}
@@ -219,7 +219,7 @@ else:
if sys.platform.startswith("win"):
# Windows
PRECONFIGURED_SPICE_CONSOLE_COMMANDS = {
'Remote Viewer': r'"{}\VirtViewer v11.0-256\bin\remote-viewer.exe" spice://{{host}}:{{port}}'.format(program_files),
'Remote Viewer': r'"{}\VirtViewer v11.0-256\bin\remote-viewer.exe" --title "({{name}})" spice://{{host}}:{{port}}'.format(program_files),
}
# default Windows SPICE console command
@@ -228,7 +228,7 @@ if sys.platform.startswith("win"):
elif sys.platform.startswith("darwin"):
# Mac OS X
PRECONFIGURED_SPICE_CONSOLE_COMMANDS = {
'Remote Viewer': '/Applications/RemoteViewer.app/Contents/MacOS/RemoteViewer spice://{host}:{port}',
'Remote Viewer': '/Applications/RemoteViewer.app/Contents/MacOS/RemoteViewer --title "({name})" spice://{host}:{port}',
}
# default Mac OS X SPICE console command
@@ -236,7 +236,7 @@ elif sys.platform.startswith("darwin"):
else:
PRECONFIGURED_SPICE_CONSOLE_COMMANDS = {
'Remote Viewer': 'remote-viewer spice://{host}:{port}',
'Remote Viewer': 'remote-viewer --title "({name})" spice://{host}:{port}',
}
# default SPICE console command on other systems

View File

@@ -23,8 +23,8 @@
# or negative for a release candidate or beta (after the base version
# number has been incremented)
__version__ = "2.2.58.1"
__version_info__ = (2, 2, 58, -99)
__version__ = "2.2.59"
__version_info__ = (2, 2, 59, 0)
if "dev" in __version__:
try:

View File

@@ -1,6 +1,6 @@
jsonschema==4.25.1; python_version == '3.9' # version 4.25.1 is the last to support Python 3.9
jsonschema>=4.26.0,<4.27; python_version >= '3.10'
sentry-sdk>=2.52.0,<3 # optional dependency
sentry-sdk>=2.59.0,<3 # optional dependency
psutil>=7.2.2
distro>=1.9.0
truststore>=0.10.4; python_version >= '3.10'

View File

@@ -79,7 +79,7 @@ setup(
include_package_data=True,
package_data={"gns3": ["configs/*.txt", "schemas/*.json"]},
platforms="any",
python_requires=">=3.8",
python_requires=">=3.9",
setup_requires=["setuptools>=45.2"],
classifiers=[
"Development Status :: 5 - Production/Stable",