Merge branch '2.2' into 3.0

# Conflicts:
#	CHANGELOG
#	gns3server/compute/iou/iou_vm.py
#	gns3server/crash_report.py
#	gns3server/utils/asyncio/telnet_server.py
#	gns3server/version.py
#	requirements.txt
#	setup.py
This commit is contained in:
grossmj 2026-05-09 18:23:00 +08:00
commit 97bf94e06e
No known key found for this signature in database
GPG Key ID: 1E7DD6DBB53FF3D7
11 changed files with 170 additions and 169 deletions

View File

@ -1,5 +1,12 @@
# Change Log
## 2.2.59 08/05/2026
* Sync appliances
* Fix snapshot restore does not work after export/import of project
* Warn to use 64-bit IOU images. Fixes #2716 32-bit IOU image support has been removed from the GNS3 VM.
* Fix telnet console silent-proxy hang on non-ConnectionError exit (#2344)
## 3.1.0a1 25/04/2026
* New completely revamped Web interface.

View File

@ -25,6 +25,30 @@
"options": "-cpu host -nographic"
},
"images": [
{
"filename": "AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2",
"version": "10.0",
"md5sum": "e5099e33f16014b6cc851482d865720d",
"filesize": 460062720,
"download_url": "https://vault.almalinux.org/10.0/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/10.0/cloud/x86_64/images/AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2"
},
{
"filename": "AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2",
"version": "9.6",
"md5sum": "ae02074389961caf08bbe44439603061",
"filesize": 530776064,
"download_url": "https://vault.almalinux.org/9.6/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/9.6/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2"
},
{
"filename": "AlmaLinux-9-GenericCloud-9.5-20241120.x86_64.qcow2",
"version": "9.5",
"md5sum": "cb48bc1c609a1d3d62f48397acdd038e",
"filesize": 490995712,
"download_url": "https://vault.almalinux.org/9.5/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/9.5/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.5-20241120.x86_64"
},
{
"filename": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
"version": "9.4",
@ -75,6 +99,27 @@
}
],
"versions": [
{
"name": "10.0",
"images": {
"hda_disk_image": "AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "9.6",
"images": {
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "9.5",
"images": {
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.5-20241120.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "9.4",
"images": {

View File

@ -27,20 +27,20 @@
},
"images": [
{
"filename": "CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2",
"version": "Stream-10 (20250331.0)",
"md5sum": "776033371ca346001dd6390f0cbaf0d0",
"filesize": 952041472,
"filename": "CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2",
"version": "Stream-10 (20260504.0)",
"md5sum": "932b0bcc7e5c7404f91432979dc95314",
"filesize": 2173501440,
"download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2"
"direct_download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2"
},
{
"filename": "CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2",
"version": "Stream-9 (20250331.0)",
"md5sum": "4aaeddc6ca497065522c75a7471f9bfd",
"filesize": 1250625536,
"filename": "CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2",
"version": "Stream-9 (20260504.0)",
"md5sum": "ebfbbd23ba7b85bbaf83c6c0626c2b70",
"filesize": 1877251072,
"download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2"
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2"
},
{
"filename": "CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2",
@ -61,16 +61,16 @@
],
"versions": [
{
"name": "Stream-10 (20250331.0)",
"name": "Stream-10 (20260504.0)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2",
"hda_disk_image": "CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "Stream-9 (20250331.0)",
"name": "Stream-9 (20260504.0)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2",
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},

View File

@ -38,18 +38,6 @@
"version": "17.12.1",
"md5sum": "2b5055e4cef8fd257416d74a94adb626",
"filesize": 240355720
},
{
"filename": "i86bi_linux_l2-adventerprisek9-ms.SSA.high_iron_20190423.bin",
"version": "15.2(20190423)",
"md5sum": "ffe884f8e762b762d7886c51d8ee015c",
"filesize": 126249700
},
{
"filename": "i86bi_LinuxL2-AdvEnterpriseK9-M_152_May_2018.bin",
"version": "15.2(20180510)",
"md5sum": "d704b68c5f4c4f92e56b754b49b92012",
"filesize": 126226692
}
],
"versions": [
@ -70,18 +58,6 @@
"images": {
"image": "x86_64_crb_linux_l2-adventerprisek9-ms"
}
},
{
"name": "15.2(20190423)",
"images": {
"image": "i86bi_linux_l2-adventerprisek9-ms.SSA.high_iron_20190423.bin"
}
},
{
"name": "15.2(20180510)",
"images": {
"image": "i86bi_LinuxL2-AdvEnterpriseK9-M_152_May_2018.bin"
}
}
]
}

View File

@ -38,12 +38,6 @@
"version": "17.12.1",
"md5sum": "4a2fce8de21d1831fbceffd155e41ae7",
"filesize": 288947184
},
{
"filename": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin",
"version": "15.7(3)M2",
"md5sum": "d6874260c3daeeb96d10fc844ae0b93b",
"filesize": 184759244
}
],
"versions": [
@ -64,12 +58,6 @@
"images": {
"image": "x86_64_crb_linux-adventerprisek9-ms"
}
},
{
"name": "15.7(3)M2",
"images": {
"image": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin"
}
}
]
}

View File

@ -26,6 +26,30 @@
"options": "-nographic"
},
"images": [
{
"filename": "Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2",
"version": "44-1.7",
"md5sum": "49784011eb752291bfead24d3be8163f",
"filesize": 583729152,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/44/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2",
"version": "43-1.6",
"md5sum": "f2f671db53fae58b79bb2e2259fa3622",
"filesize": 583335936,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2",
"version": "42-1.1",
"md5sum": "2d660d2adc20b1fe793df5cb66f1d868",
"filesize": 532217856,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/42/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/42/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
"version": "41-1.4",
@ -34,30 +58,6 @@
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2",
"version": "40-1.14",
"md5sum": "3eed4b1a9de35208ed30d9bb72c1522d",
"filesize": 397475840,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2"
},
{
"filename": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
"version": "39-1.5",
"md5sum": "800a10df2d369891ed65900bcacacd47",
"filesize": 544604160,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images",
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images/Fedora-Cloud-Base-39-1.5.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
"version": "38-1.6",
"md5sum": "53ddfe7b28666d5ddc55e93ff06abad2",
"filesize": 497287168,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images",
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images/Fedora-Cloud-Base-38-1.6.x86_64.qcow2"
},
{
"filename": "fedora-cloud-init-data.iso",
"version": "1.0",
@ -68,33 +68,33 @@
}
],
"versions": [
{
"name": "44-1.7",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "43-1.6",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "42-1.1",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "41-1.4",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "40-1.14",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "39-1.5",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "38-1.6",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
}
]
}

View File

@ -17,7 +17,7 @@
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
"ram": 1024,
"ram": 1536,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
@ -27,60 +27,36 @@
},
"images": [
{
"filename": "OL9U5_x86_64-kvm-b259.qcow2",
"version": "9.5",
"md5sum": "05e9b62c408ab49a02d6833fc683d1ad",
"filesize": 652935168,
"filename": "OL10U1_x86_64-kvm-b270.qcow2",
"version": "10.1",
"md5sum": "c3ed48965110e0cbbd75734d3c23a2ce",
"filesize": 1044119552,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u5/x86_64/OL9U5_x86_64-kvm-b259.qcow2"
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL10/u1/x86_64/OL10U1_x86_64-kvm-b270.qcow2"
},
{
"filename": "OL9U2_x86_64-kvm-b197.qcow",
"version": "9.2",
"md5sum": "2ff3d0bc8a243ad89c96215f303f1c73",
"filesize": 560791552,
"filename": "OL9U7_x86_64-kvm-b269.qcow2",
"version": "9.7",
"md5sum": "fe0c555620d2001bb4d4d95a53b43738",
"filesize": 792985600,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u2/x86_64/OL9U2_x86_64-kvm-b197.qcow"
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u7/x86_64/OL9U7_x86_64-kvm-b269.qcow2"
},
{
"filename": "OL9U1_x86_64-kvm-b158.qcow",
"version": "9.1",
"md5sum": "9f32851b96fc38191892197fa11f7435",
"filesize": 539033600,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u1/x86_64/OL9U1_x86_64-kvm-b158.qcow"
},
{
"filename": "OL8U10_x86_64-kvm-b258.qcow2",
"filename": "OL8U10_x86_64-kvm-b271.qcow2",
"version": "8.10",
"md5sum": "bb07581af5122515b6822595ded5deef",
"filesize": 1251672064,
"md5sum": "f3184e536af1c2aba6b6f499b1a7085a",
"filesize": 1585643520,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u10/x86_64/OL8U10_x86_64-kvm-b258.qcow2"
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u10/x86_64/OL8U10_x86_64-kvm-b271.qcow2"
},
{
"filename": "OL8U8_x86_64-kvm-b198.qcow",
"version": "8.8",
"md5sum": "717622f373d77349cc102a3a325efbd3",
"filesize": 934215680,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u8/x86_64/OL8U8_x86_64-kvm-b198.qcow"
},
{
"filename": "OL8U7_x86_64-kvm-b148.qcow",
"version": "8.7",
"md5sum": "962cdde7e810888b9914e937222f687f",
"filesize": 913965056,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u7/x86_64/OL8U7_x86_64-kvm-b148.qcow"
},
{
"filename": "OL7U9_x86_64-kvm-b145.qcow",
"filename": "OL7U9_x86_64-kvm-b257.qcow2",
"version": "7.9",
"md5sum": "e60d4145a69b34026db6121109ca9131",
"filesize": 725221376,
"md5sum": "d3af7cf0b8f44d298a67ce9ebe184494",
"filesize": 998244352,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b145.qcow"
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b257.qcow2"
},
{
"filename": "oracle-cloud-init-data.iso",
@ -93,51 +69,30 @@
],
"versions": [
{
"name": "9.5",
"name": "10.1",
"images": {
"hda_disk_image": "OL9U5_x86_64-kvm-b259.qcow2",
"hda_disk_image": "OL10U1_x86_64-kvm-b270.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "9.2",
"name": "9.7",
"images": {
"hda_disk_image": "OL9U2_x86_64-kvm-b197.qcow",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "9.1",
"images": {
"hda_disk_image": "OL9U1_x86_64-kvm-b158.qcow",
"hda_disk_image": "OL9U7_x86_64-kvm-b269.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "8.10",
"images": {
"hda_disk_image": "OL8U10_x86_64-kvm-b258.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "8.8",
"images": {
"hda_disk_image": "OL8U8_x86_64-kvm-b198.qcow",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "8.7",
"images": {
"hda_disk_image": "OL8U7_x86_64-kvm-b148.qcow",
"hda_disk_image": "OL8U10_x86_64-kvm-b271.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "7.9",
"images": {
"hda_disk_image": "OL7U9_x86_64-kvm-b145.qcow",
"hda_disk_image": "OL7U9_x86_64-kvm-b257.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
}

View File

@ -17,7 +17,7 @@
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
"ram": 1024,
"ram": 1536,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
@ -26,6 +26,22 @@
"options": "-nographic -cpu host"
},
"images": [
{
"filename": "Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2",
"version": "10.1",
"md5sum": "729d7235716bd41a0a15e07d2b44c679",
"filesize": 575406080,
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
"direct_download_url": "https://download.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2"
},
{
"filename": "Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2",
"version": "9.7",
"md5sum": "4a0cbfb45b97f09b690044429aaca1c8",
"filesize": 648806400,
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2"
},
{
"filename": "Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2",
"version": "9.5",
@ -76,6 +92,20 @@
}
],
"versions": [
{
"name": "10.1",
"images": {
"hda_disk_image": "Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2",
"cdrom_image": "rocky-cloud-init-data.iso"
}
},
{
"name": "9.7",
"images": {
"hda_disk_image": "Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2",
"cdrom_image": "rocky-cloud-init-data.iso"
}
},
{
"name": "9.5",
"images": {

View File

@ -631,7 +631,7 @@ class IOUVM(BaseNode):
callback = functools.partial(self._termination_callback, "IOU")
gns3server.utils.asyncio.monitor_process(self._iou_process, callback)
except FileNotFoundError as e:
raise IOUError(f"Could not start IOU: {e}: 32-bit binary support is probably not installed")
raise IOUError(f"Could not start IOU: {e}: 32-bit binary support is probably not installed, it is recommended to use a 64-bit image instead")
except (OSError, subprocess.SubprocessError) as e:
iou_stdout = self.read_iou_stdout()
log.error(f"Could not start IOU {self._path}: {e}\n{iou_stdout}")

View File

@ -336,7 +336,7 @@ async def update_snapshots(snapshots_dir, project_path, project_name, project_id
topology = json.load(f)
topology["name"] = project_name
topology["project_id"] = project_id
regenerate_topology_ids(topology, project_path, reset_mac_addresses)
regenerate_topology_ids(topology, tmpdir, reset_mac_addresses)
with open(topology_file_path, "w+", encoding="utf-8") as f:
json.dump(topology, f, indent=4, sort_keys=True)
except OSError as e:

View File

@ -140,7 +140,7 @@ class Snapshot:
# delete the current project files
project_files_path = os.path.join(self._project.path, "project-files")
if os.path.exists(project_files_path):
await wait_run_in_executor(shutil.rmtree, project_files_path)
await wait_run_in_executor(shutil.rmtree, project_files_path, ignore_errors=True)
with open(self._path, "rb") as f:
project = await import_project(
self._project.controller,