mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-01 21:33:02 +02:00
Merge pull request #1138 from kernelkit/test-sanity
This commit is contained in:
@@ -27,7 +27,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build
|
|||||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
||||||
BR2_LINUX_KERNEL=y
|
BR2_LINUX_KERNEL=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.44"
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.45"
|
||||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/linux_defconfig"
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/linux_defconfig"
|
||||||
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-build
|
|||||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
||||||
BR2_LINUX_KERNEL=y
|
BR2_LINUX_KERNEL=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.44"
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.45"
|
||||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/linux_defconfig"
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/linux_defconfig"
|
||||||
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image
|
|||||||
BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/genimage.cfg"
|
BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/genimage.cfg"
|
||||||
BR2_LINUX_KERNEL=y
|
BR2_LINUX_KERNEL=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.44"
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.45"
|
||||||
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/rk3328-nanopi-r2s-dts.patch"
|
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_INFIX_PATH)/board/aarch64/r2s/rk3328-nanopi-r2s-dts.patch"
|
||||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/r2s/linux_defconfig"
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/aarch64/r2s/linux_defconfig"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh ${BR2_EXTERNAL_INF
|
|||||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
||||||
BR2_LINUX_KERNEL=y
|
BR2_LINUX_KERNEL=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.44"
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.45"
|
||||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/linux_defconfig"
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/linux_defconfig"
|
||||||
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh ${BR2_EXTERNAL_INF
|
|||||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="${BR2_EXTERNAL_INFIX_PATH}/board/common/post-image.sh"
|
||||||
BR2_LINUX_KERNEL=y
|
BR2_LINUX_KERNEL=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.44"
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.45"
|
||||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/linux_defconfig"
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/x86_64/linux_defconfig"
|
||||||
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
||||||
|
|||||||
@@ -3,6 +3,14 @@ Change Log
|
|||||||
|
|
||||||
All notable changes to the project are documented in this file.
|
All notable changes to the project are documented in this file.
|
||||||
|
|
||||||
|
[v25.09.0][UNRELEASED] -
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Upgrade Linux kernel to 6.12.45 (LTS)
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
[v25.08.0][] - 2025-09-01
|
[v25.08.0][] - 2025-09-01
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From b4f8d056cfbf3af9116952f5f03ed2bfba13fcbb Mon Sep 17 00:00:00 2001
|
From b17d0b24ef5119f5a5d6c1c4f0f64a7fd40eb9c3 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 12 Mar 2024 10:27:24 +0100
|
Date: Tue, 12 Mar 2024 10:27:24 +0100
|
||||||
Subject: [PATCH 01/30] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
|
Subject: [PATCH 01/30] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From b9bf83b003601dc306d3a2cd7dd51f2795bbb451 Mon Sep 17 00:00:00 2001
|
From b860638f4b4beb87e594489fbfb853733055f511 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 27 Mar 2024 15:52:43 +0100
|
Date: Wed, 27 Mar 2024 15:52:43 +0100
|
||||||
Subject: [PATCH 02/30] net: dsa: mv88e6xxx: Improve indirect register access
|
Subject: [PATCH 02/30] net: dsa: mv88e6xxx: Improve indirect register access
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From c6171e8b4f0a7acb1a8d57e9fe8900e132917e82 Mon Sep 17 00:00:00 2001
|
From 2a2a0c493171231effe779e90674cf0b0781aca8 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Mon, 22 Apr 2024 23:18:01 +0200
|
Date: Mon, 22 Apr 2024 23:18:01 +0200
|
||||||
Subject: [PATCH 03/30] net: dsa: mv88e6xxx: Honor ports being managed via
|
Subject: [PATCH 03/30] net: dsa: mv88e6xxx: Honor ports being managed via
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 8138197f76730926e96d94b532d0215de20470af Mon Sep 17 00:00:00 2001
|
From 739504c5079ce8bef32f74a60a3d64658820afb0 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 24 Apr 2024 22:41:04 +0200
|
Date: Wed, 24 Apr 2024 22:41:04 +0200
|
||||||
Subject: [PATCH 04/30] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
|
Subject: [PATCH 04/30] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From a02245c2aa6783aae016266ef3f226f85bf402da Mon Sep 17 00:00:00 2001
|
From 120982bf4321ef9a0aca86a58de41b3889820218 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Thu, 16 Nov 2023 19:44:32 +0100
|
Date: Thu, 16 Nov 2023 19:44:32 +0100
|
||||||
Subject: [PATCH 05/30] net: dsa: mv88e6xxx: Add LED infrastructure
|
Subject: [PATCH 05/30] net: dsa: mv88e6xxx: Add LED infrastructure
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From cf091bc712f67eaa733194de9b84003d27221053 Mon Sep 17 00:00:00 2001
|
From aaced18de42d22b092fcfdf06b408e580340e53a Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Thu, 16 Nov 2023 21:59:35 +0100
|
Date: Thu, 16 Nov 2023 21:59:35 +0100
|
||||||
Subject: [PATCH 06/30] net: dsa: mv88e6xxx: Add LED support for 6393X
|
Subject: [PATCH 06/30] net: dsa: mv88e6xxx: Add LED support for 6393X
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 630151bff3fa0f6ef64c326ca874ef9858bdcb8a Mon Sep 17 00:00:00 2001
|
From c9899deafacca21badc0f69650c15240cf16affa Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 28 May 2024 10:38:42 +0200
|
Date: Tue, 28 May 2024 10:38:42 +0200
|
||||||
Subject: [PATCH 07/30] net: dsa: tag_dsa: Use tag priority as initial
|
Subject: [PATCH 07/30] net: dsa: tag_dsa: Use tag priority as initial
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From a87bfa946479faea1dce4d9ee1034922263dc758 Mon Sep 17 00:00:00 2001
|
From 15221467565f0f282c4f992d0577a45874cc07dd Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 16 Jan 2024 16:00:55 +0100
|
Date: Tue, 16 Jan 2024 16:00:55 +0100
|
||||||
Subject: [PATCH 08/30] net: dsa: Support MDB memberships whose L2 addresses
|
Subject: [PATCH 08/30] net: dsa: Support MDB memberships whose L2 addresses
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 8465eec4cbeccb7eb683820e8e4f4601ce05509f Mon Sep 17 00:00:00 2001
|
From 2cba1d99ca6f51a04f67efc27c9c46b3ed14d796 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Thu, 21 Mar 2024 19:12:15 +0100
|
Date: Thu, 21 Mar 2024 19:12:15 +0100
|
||||||
Subject: [PATCH 09/30] net: dsa: Support EtherType based priority overrides
|
Subject: [PATCH 09/30] net: dsa: Support EtherType based priority overrides
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 6809a220eb75ef2ac5eed033028cd0a98948cca3 Mon Sep 17 00:00:00 2001
|
From 491d425be06d272c35cb46548e2b6ea54c043956 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Fri, 22 Mar 2024 16:15:43 +0100
|
Date: Fri, 22 Mar 2024 16:15:43 +0100
|
||||||
Subject: [PATCH 10/30] net: dsa: mv88e6xxx: Support EtherType based priority
|
Subject: [PATCH 10/30] net: dsa: mv88e6xxx: Support EtherType based priority
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From ecc33c81e71000a7db4abf1fd769783528883c0a Mon Sep 17 00:00:00 2001
|
From b415909d2a9a1645926ce09542d9c84719db15d7 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 28 May 2024 11:04:22 +0200
|
Date: Tue, 28 May 2024 11:04:22 +0200
|
||||||
Subject: [PATCH 11/30] net: dsa: mv88e6xxx: Add mqprio qdisc support
|
Subject: [PATCH 11/30] net: dsa: mv88e6xxx: Add mqprio qdisc support
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 446ee49b7ecef20c17fa7fd8c2d196236fdbeb0f Mon Sep 17 00:00:00 2001
|
From e15ee1e8f94f033b4f34279294b13b48a3d2c648 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 29 May 2024 13:20:41 +0200
|
Date: Wed, 29 May 2024 13:20:41 +0200
|
||||||
Subject: [PATCH 12/30] net: dsa: mv88e6xxx: Use VLAN prio over IP when both
|
Subject: [PATCH 12/30] net: dsa: mv88e6xxx: Use VLAN prio over IP when both
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 379d6362066d1e3944f2610b6769bcb170f5cfb5 Mon Sep 17 00:00:00 2001
|
From 09590ee1dcb17adee292add407cfcb1d1647685a Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 26 Nov 2024 19:45:59 +0100
|
Date: Tue, 26 Nov 2024 19:45:59 +0100
|
||||||
Subject: [PATCH 13/30] [FIX] net: dsa: mv88e6xxx: Trap locally terminated
|
Subject: [PATCH 13/30] [FIX] net: dsa: mv88e6xxx: Trap locally terminated
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From c1c803aae5530c6ad8cba5e1b690309343d70581 Mon Sep 17 00:00:00 2001
|
From d3cedfa6405e8e855bd034a51597584b004dc833 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 19 Sep 2023 18:38:10 +0200
|
Date: Tue, 19 Sep 2023 18:38:10 +0200
|
||||||
Subject: [PATCH 14/30] net: phy: marvell10g: Support firmware loading on
|
Subject: [PATCH 14/30] net: phy: marvell10g: Support firmware loading on
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From f78961c99e9027e093d5fc4b16b890acb0f4c906 Mon Sep 17 00:00:00 2001
|
From 20c76093cab636da669779bf12e2726daa839ff9 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 21 Nov 2023 20:15:24 +0100
|
Date: Tue, 21 Nov 2023 20:15:24 +0100
|
||||||
Subject: [PATCH 15/30] net: phy: marvell10g: Fix power-up when strapped to
|
Subject: [PATCH 15/30] net: phy: marvell10g: Fix power-up when strapped to
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From f91ec427a88888262de0e670ec1d6d5a2dd1ea19 Mon Sep 17 00:00:00 2001
|
From cf1d957921a498300441320ce15d18382a94fae4 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 15 Nov 2023 20:58:42 +0100
|
Date: Wed, 15 Nov 2023 20:58:42 +0100
|
||||||
Subject: [PATCH 16/30] net: phy: marvell10g: Add LED support for 88X3310
|
Subject: [PATCH 16/30] net: phy: marvell10g: Add LED support for 88X3310
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 4bd8aa58f2cf82d8df62624a030ca822d1991e3f Mon Sep 17 00:00:00 2001
|
From 468f8f10888e8ab41975088e68a1a291f4ac0d58 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Tue, 12 Dec 2023 09:51:05 +0100
|
Date: Tue, 12 Dec 2023 09:51:05 +0100
|
||||||
Subject: [PATCH 17/30] net: phy: marvell10g: Support LEDs tied to a single
|
Subject: [PATCH 17/30] net: phy: marvell10g: Support LEDs tied to a single
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 462548c531a48ea97f16fe02f8214304bf5717eb Mon Sep 17 00:00:00 2001
|
From a5255b6fcd938722071c6f39ff2d23fd97376b6e Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 27 Mar 2024 10:10:19 +0100
|
Date: Wed, 27 Mar 2024 10:10:19 +0100
|
||||||
Subject: [PATCH 18/30] net: phy: Do not resume PHY when attaching
|
Subject: [PATCH 18/30] net: phy: Do not resume PHY when attaching
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 550d6f5a0463f39f2959415495b86c79816d4055 Mon Sep 17 00:00:00 2001
|
From 42c7c014fe63c98fc81757ae0df53699d08d3ea7 Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Mon, 4 Mar 2024 16:47:28 +0100
|
Date: Mon, 4 Mar 2024 16:47:28 +0100
|
||||||
Subject: [PATCH 19/30] net: bridge: avoid classifying unknown multicast as
|
Subject: [PATCH 19/30] net: bridge: avoid classifying unknown multicast as
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From b1e6fb8acc320967fa2435dda641ec2031fd55cc Mon Sep 17 00:00:00 2001
|
From b6b8cef52cef59809f585a48e3272bc13f178d82 Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Tue, 5 Mar 2024 06:44:41 +0100
|
Date: Tue, 5 Mar 2024 06:44:41 +0100
|
||||||
Subject: [PATCH 20/30] net: bridge: Ignore router ports when forwarding L2
|
Subject: [PATCH 20/30] net: bridge: Ignore router ports when forwarding L2
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From c0de0c952b98eea283925a7f15255a7501c7343c Mon Sep 17 00:00:00 2001
|
From 96749ad0bc548f3add2d131809de6f80be7d69c2 Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Thu, 4 Apr 2024 16:36:30 +0200
|
Date: Thu, 4 Apr 2024 16:36:30 +0200
|
||||||
Subject: [PATCH 21/30] net: bridge: drop delay for applying strict multicast
|
Subject: [PATCH 21/30] net: bridge: drop delay for applying strict multicast
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 778143529c0df2eeada5e2c682156d62103b92bc Mon Sep 17 00:00:00 2001
|
From a1f922b3646af126da825a2dd0ba32d73abefd1c Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Thu, 16 May 2024 14:51:54 +0200
|
Date: Thu, 16 May 2024 14:51:54 +0200
|
||||||
Subject: [PATCH 22/30] net: bridge: Differentiate MDB additions from
|
Subject: [PATCH 22/30] net: bridge: Differentiate MDB additions from
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From adc96c55eaea59edd98026c209f435238ceeac09 Mon Sep 17 00:00:00 2001
|
From 54454a98875cdc439dd2d7c546a4e555ae46caed Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Fri, 24 Nov 2023 23:29:55 +0100
|
Date: Fri, 24 Nov 2023 23:29:55 +0100
|
||||||
Subject: [PATCH 23/30] nvmem: layouts: onie-tlv: Let device probe even when
|
Subject: [PATCH 23/30] nvmem: layouts: onie-tlv: Let device probe even when
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From fecf7749e91bd1d2d54e2003daefe97ae449b04c Mon Sep 17 00:00:00 2001
|
From adc984529922b8ead7e393f133e81c4aba8a8d9f Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Mon, 29 Apr 2024 15:14:51 +0200
|
Date: Mon, 29 Apr 2024 15:14:51 +0200
|
||||||
Subject: [PATCH 24/30] usb: core: adjust log level for unauthorized devices
|
Subject: [PATCH 24/30] usb: core: adjust log level for unauthorized devices
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From c89e3e44747f2cddfaf47e0a55027a14579ca4ce Mon Sep 17 00:00:00 2001
|
From ffa0d98802a2445e47122b8c6fb3b37592dfbd1e Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Thu, 16 Jan 2025 12:35:12 +0100
|
Date: Thu, 16 Jan 2025 12:35:12 +0100
|
||||||
Subject: [PATCH 25/30] net: dsa: mv88e6xxx: collapse disabled state into
|
Subject: [PATCH 25/30] net: dsa: mv88e6xxx: collapse disabled state into
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 34de4ecc90144fb98aae12cbc22c847eb0e1f92f Mon Sep 17 00:00:00 2001
|
From 44c483f21c129b8e4ef8892192e31dbe2761be34 Mon Sep 17 00:00:00 2001
|
||||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||||
Date: Wed, 12 Feb 2025 22:03:14 +0100
|
Date: Wed, 12 Feb 2025 22:03:14 +0100
|
||||||
Subject: [PATCH 26/30] net: dsa: mv88e6xxx: Only activate LAG offloading when
|
Subject: [PATCH 26/30] net: dsa: mv88e6xxx: Only activate LAG offloading when
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From 10df1d67f996439e1f4dd41ec761c94631383930 Mon Sep 17 00:00:00 2001
|
From 1e8f38520f4189fc18aa68aa0ec2daebc8ccba20 Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Sun, 11 Aug 2024 11:27:35 +0200
|
Date: Sun, 11 Aug 2024 11:27:35 +0200
|
||||||
Subject: [PATCH 27/30] net: usb: r8152: add r8153b support for link/activity
|
Subject: [PATCH 27/30] net: usb: r8152: add r8153b support for link/activity
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From cd45846aea45d8a51d40472ee5993de43a98d4a6 Mon Sep 17 00:00:00 2001
|
From 6ff60fec79ca075406d2631ca1f8a514561adbd0 Mon Sep 17 00:00:00 2001
|
||||||
From: Joachim Wiberg <troglobit@gmail.com>
|
From: Joachim Wiberg <troglobit@gmail.com>
|
||||||
Date: Sun, 10 Aug 2025 18:52:54 +0200
|
Date: Sun, 10 Aug 2025 18:52:54 +0200
|
||||||
Subject: [PATCH 28/30] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to
|
Subject: [PATCH 28/30] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From b978886aa20a68f9d5be378797fa45054c249905 Mon Sep 17 00:00:00 2001
|
From 64a98c298358ca9332f6073ec9d52489075c9e65 Mon Sep 17 00:00:00 2001
|
||||||
From: Mattias Walström <lazzer@gmail.com>
|
From: Mattias Walström <lazzer@gmail.com>
|
||||||
Date: Wed, 20 Aug 2025 21:38:24 +0200
|
Date: Wed, 20 Aug 2025 21:38:24 +0200
|
||||||
Subject: [PATCH 29/30] drm/panel-simple: Add a timing for the Raspberry Pi 7"
|
Subject: [PATCH 29/30] drm/panel-simple: Add a timing for the Raspberry Pi 7"
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
From b6b066a94032f06e669685208969cf00172a361e Mon Sep 17 00:00:00 2001
|
From 177a00df238e615a5aaea9a4ecdd01e7f747f8f4 Mon Sep 17 00:00:00 2001
|
||||||
From: Mattias Walström <lazzer@gmail.com>
|
From: Mattias Walström <lazzer@gmail.com>
|
||||||
Date: Thu, 21 Aug 2025 11:20:23 +0200
|
Date: Thu, 21 Aug 2025 11:20:23 +0200
|
||||||
Subject: [PATCH 30/30] input:touchscreen:edt-ft5x06: Add polled mode
|
Subject: [PATCH 30/30] input:touchscreen:edt-ft5x06: Add polled mode
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# Calculated with ../utils/kernel-refresh.sh
|
# Calculated with ../utils/kernel-refresh.sh
|
||||||
sha256 b650210ed3027b224969d148aa377452a9aad3ae7f2851abedd31adfef16bdae linux-6.12.44.tar.xz
|
sha256 8f95a8549cfbdfb89c1181a1f55a971f04dfcd629508a2ed70b777ab92f9db3e linux-6.12.45.tar.xz
|
||||||
|
|||||||
@@ -6,12 +6,26 @@
|
|||||||
infamy:
|
infamy:
|
||||||
specification: False
|
specification: False
|
||||||
|
|
||||||
|
- case: meta/bootorder.py
|
||||||
|
infamy:
|
||||||
|
specification: False
|
||||||
|
|
||||||
|
- case: meta/check-version.py
|
||||||
|
infamy:
|
||||||
|
specification: False
|
||||||
|
|
||||||
|
|
||||||
- name: Misc tests
|
- name: Misc tests
|
||||||
suite: misc/misc.yaml
|
suite: misc/misc.yaml
|
||||||
|
|
||||||
- name: ietf-system
|
- name: ietf-system
|
||||||
suite: ietf_system/ietf_system.yaml
|
suite: ietf_system/ietf_system.yaml
|
||||||
|
|
||||||
|
# Upgrade may leave wrong boot order
|
||||||
|
- case: meta/bootorder.py
|
||||||
|
infamy:
|
||||||
|
specification: False
|
||||||
|
|
||||||
- name: ietf-syslog
|
- name: ietf-syslog
|
||||||
suite: ietf_syslog/ietf_syslog.yaml
|
suite: ietf_syslog/ietf_syslog.yaml
|
||||||
|
|
||||||
|
|||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import infamy
|
||||||
|
|
||||||
|
with infamy.Test() as test:
|
||||||
|
with test.step("Discover topology and attach to available DUTs"):
|
||||||
|
env = infamy.Env(False)
|
||||||
|
ctrl = env.ptop.get_ctrl()
|
||||||
|
duts = {}
|
||||||
|
duts_state = {}
|
||||||
|
for ix in env.ptop.get_infixen():
|
||||||
|
cport, ixport = env.ptop.get_mgmt_link(ctrl, ix)
|
||||||
|
print(f"Attaching to {ix}:{ixport} via {ctrl}:{cport}")
|
||||||
|
duts[ix] = env.attach(ix, ixport)
|
||||||
|
|
||||||
|
with test.step("Verify bootorder"):
|
||||||
|
for name, tgt in duts.items():
|
||||||
|
expected = env.ptop.get_expected_boot(name)
|
||||||
|
running = tgt.get_data("/ietf-system:system-state")
|
||||||
|
running = running['system-state']['software']['booted']
|
||||||
|
print(f"{name}: booted: {running} expected: {expected}")
|
||||||
|
|
||||||
|
if running != expected:
|
||||||
|
test.fail()
|
||||||
|
test.succeed()
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import infamy
|
||||||
|
import os
|
||||||
|
|
||||||
|
with infamy.Test() as test:
|
||||||
|
with test.step("Discover topology and attach to available DUTs"):
|
||||||
|
env = infamy.Env(False)
|
||||||
|
ctrl = env.ptop.get_ctrl()
|
||||||
|
duts = {}
|
||||||
|
duts_state = {}
|
||||||
|
for ix in env.ptop.get_infixen():
|
||||||
|
cport, ixport = env.ptop.get_mgmt_link(ctrl, ix)
|
||||||
|
print(f"Attaching to {ix}:{ixport} via {ctrl}:{cport}")
|
||||||
|
duts[ix] = env.attach(ix, ixport)
|
||||||
|
|
||||||
|
with test.step("Verify software version"):
|
||||||
|
expected=os.environ.get("VERSION")
|
||||||
|
for name, tgt in duts.items():
|
||||||
|
running = tgt.get_data("/ietf-system:system-state")
|
||||||
|
running = running['system-state']['platform']['os-version']
|
||||||
|
print(f"{name}: booted: {running} expected {expected}")
|
||||||
|
if running != expected:
|
||||||
|
test.fail()
|
||||||
|
test.succeed()
|
||||||
@@ -13,27 +13,4 @@ with infamy.Test() as test:
|
|||||||
else:
|
else:
|
||||||
print(f"Specify PYTHONHASHSEED={seed} to reproduce this test environment")
|
print(f"Specify PYTHONHASHSEED={seed} to reproduce this test environment")
|
||||||
|
|
||||||
with test.step("Discover topology and attach to available DUTs"):
|
|
||||||
env = infamy.Env(False)
|
|
||||||
ctrl = env.ptop.get_ctrl()
|
|
||||||
|
|
||||||
duts = {}
|
|
||||||
for ix in env.ptop.get_infixen():
|
|
||||||
cport, ixport = env.ptop.get_mgmt_link(ctrl, ix)
|
|
||||||
print(f"Attaching to {ix}:{ixport} via {ctrl}:{cport}")
|
|
||||||
duts[ix] = env.attach(ix, ixport)
|
|
||||||
|
|
||||||
with test.step("Log running software versions"):
|
|
||||||
for name, tgt in duts.items():
|
|
||||||
sys = tgt.get_data("/ietf-system:system-state")
|
|
||||||
sw = sys["system-state"]["software"]
|
|
||||||
plt = sys["system-state"]["platform"]
|
|
||||||
|
|
||||||
print(f"{name}:")
|
|
||||||
for k,v in plt.items():
|
|
||||||
print(f" {k:<16s} {v}")
|
|
||||||
|
|
||||||
for k in ("compatible", "booted"):
|
|
||||||
print(f" {k:<16s} {sw[k]}")
|
|
||||||
|
|
||||||
test.succeed()
|
test.succeed()
|
||||||
|
|||||||
@@ -184,6 +184,7 @@ while getopts "b:cCDf:hiKp:q:rt:" opt; do
|
|||||||
kvm=
|
kvm=
|
||||||
;;
|
;;
|
||||||
p)
|
p)
|
||||||
|
version=$(unsquashfs -cat $OPTARG manifest.raucm | awk -F'=' '/^version=/ {print $2}')
|
||||||
INFAMY_ARGS="$INFAMY_ARGS -p $OPTARG"
|
INFAMY_ARGS="$INFAMY_ARGS -p $OPTARG"
|
||||||
;;
|
;;
|
||||||
q)
|
q)
|
||||||
@@ -234,6 +235,7 @@ if [ "$containerize" ]; then
|
|||||||
--env NINEPM_PROJ_CONFIG="$NINEPM_PROJ_CONFIG" \
|
--env NINEPM_PROJ_CONFIG="$NINEPM_PROJ_CONFIG" \
|
||||||
--env QENETH_PATH="$testdir/templates:$testdir" \
|
--env QENETH_PATH="$testdir/templates:$testdir" \
|
||||||
--env PS1="$(build_ps1)" \
|
--env PS1="$(build_ps1)" \
|
||||||
|
--env VERSION="$version" \
|
||||||
$extra_env \
|
$extra_env \
|
||||||
--expose 9001-9010 --publish-all \
|
--expose 9001-9010 --publish-all \
|
||||||
-v "$HOME/.infix/.ash_history":/root/.ash_history \
|
-v "$HOME/.infix/.ash_history":/root/.ash_history \
|
||||||
|
|||||||
@@ -131,6 +131,13 @@ class Topology:
|
|||||||
|
|
||||||
return qstrip(password) if password is not None else "admin"
|
return qstrip(password) if password is not None else "admin"
|
||||||
|
|
||||||
|
def get_expected_boot(self, node):
|
||||||
|
n = self.dotg.get_node(node)
|
||||||
|
b = n[0] if n else {}
|
||||||
|
boot = b.get("expected_boot")
|
||||||
|
|
||||||
|
return _qstrip(boot)
|
||||||
|
|
||||||
def get_link(self, src, dst, flt=lambda _: True):
|
def get_link(self, src, dst, flt=lambda _: True):
|
||||||
es = self.g.get_edge_data(src, dst)
|
es = self.g.get_edge_data(src, dst)
|
||||||
for e in es.values():
|
for e in es.values():
|
||||||
@@ -150,7 +157,6 @@ class Topology:
|
|||||||
def get_infixen(self):
|
def get_infixen(self):
|
||||||
return self.get_nodes(lambda _, attrs: compatible(attrs, {"requires": {"infix"}}))
|
return self.get_nodes(lambda _, attrs: compatible(attrs, {"requires": {"infix"}}))
|
||||||
|
|
||||||
|
|
||||||
def get_attr(self, name, default=None):
|
def get_attr(self, name, default=None):
|
||||||
return _qstrip(self.dotg.get_attributes().get(name, default))
|
return _qstrip(self.dotg.get_attributes().get(name, default))
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -14,8 +14,7 @@ mode-qeneth := -q $(test-dir)/virt/quad
|
|||||||
mode-host := -t $(or $(TOPOLOGY),/etc/infamy.dot)
|
mode-host := -t $(or $(TOPOLOGY),/etc/infamy.dot)
|
||||||
mode-run := -t $(BINARIES_DIR)/qemu.dot
|
mode-run := -t $(BINARIES_DIR)/qemu.dot
|
||||||
mode := $(mode-$(TEST_MODE))
|
mode := $(mode-$(TEST_MODE))
|
||||||
|
INFIX_IMAGE_ID := $(call qstrip,$(INFIX_IMAGE_ID))
|
||||||
INFIX_IMAGE_ID := $(call qstrip,$(INFIX_IMAGE_ID))
|
|
||||||
binaries-$(ARCH) := $(addprefix $(INFIX_IMAGE_ID),.img -disk.qcow2)
|
binaries-$(ARCH) := $(addprefix $(INFIX_IMAGE_ID),.img -disk.qcow2)
|
||||||
pkg-$(ARCH) := -p $(O)/images/$(addprefix $(INFIX_IMAGE_ID),.pkg)
|
pkg-$(ARCH) := -p $(O)/images/$(addprefix $(INFIX_IMAGE_ID),.pkg)
|
||||||
binaries-x86_64 += OVMF.fd
|
binaries-x86_64 += OVMF.fd
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ graph "dual" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut1 | { <e4> e4 | <e5> e5 | <e6> e6 }",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut1 | { <e4> e4 | <e5> e5 | <e6> e6 }",
|
||||||
pos="10,18!",
|
pos="10,18!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9001,
|
qn_console=9001,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut1.usb"
|
qn_usb="dut1.usb"
|
||||||
@@ -33,6 +34,7 @@ graph "dual" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 }",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 }",
|
||||||
pos="10,12!",
|
pos="10,12!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9002,
|
qn_console=9002,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut2.usb"
|
qn_usb="dut2.usb"
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ graph "quad" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut1 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut1 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
||||||
pos="10,30!",
|
pos="10,30!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9001,
|
qn_console=9001,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut1.usb"
|
qn_usb="dut1.usb"
|
||||||
@@ -32,6 +33,7 @@ graph "quad" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut2 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut2 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
||||||
pos="0,20!",
|
pos="0,20!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9002,
|
qn_console=9002,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut2.usb"
|
qn_usb="dut2.usb"
|
||||||
@@ -40,6 +42,7 @@ graph "quad" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut3 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut3 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
||||||
pos="0,10!",
|
pos="0,10!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9003,
|
qn_console=9003,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut3.usb"
|
qn_usb="dut3.usb"
|
||||||
@@ -49,6 +52,7 @@ graph "quad" {
|
|||||||
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut4 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut4 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
|
||||||
pos="10,0!",
|
pos="10,0!",
|
||||||
provides="infix",
|
provides="infix",
|
||||||
|
expected_boot="primary",
|
||||||
qn_console=9004,
|
qn_console=9004,
|
||||||
qn_mem="384M",
|
qn_mem="384M",
|
||||||
qn_usb="dut4.usb"
|
qn_usb="dut4.usb"
|
||||||
|
|||||||
Executable
+91
@@ -0,0 +1,91 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import argparse
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import urllib.request
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
BIOS_IMAGE = "OVMF-edk2-stable202305.fd"
|
||||||
|
REPO = "https://github.com/kernelkit/infix"
|
||||||
|
|
||||||
|
def check_version_format(ver):
|
||||||
|
if not re.fullmatch(r"\d{2}\.\d{2}\.\d+", ver):
|
||||||
|
sys.exit("Error: version must be full form like 25.08.0")
|
||||||
|
return ver
|
||||||
|
|
||||||
|
def compute_md5_and_size(url):
|
||||||
|
md5 = hashlib.md5()
|
||||||
|
size = 0
|
||||||
|
with urllib.request.urlopen(url) as resp:
|
||||||
|
while True:
|
||||||
|
chunk = resp.read(1024 * 1024)
|
||||||
|
if not chunk:
|
||||||
|
break
|
||||||
|
md5.update(chunk)
|
||||||
|
size += len(chunk)
|
||||||
|
return md5.hexdigest(), size
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="Add a new Infix version to a GNS3 appliance file")
|
||||||
|
parser.add_argument("version", help="Infix version (e.g. 25.08.0)")
|
||||||
|
parser.add_argument("appliance", help="Path to appliance JSON (.gns3a)")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
version = check_version_format(args.version)
|
||||||
|
appliance_path = args.appliance
|
||||||
|
|
||||||
|
# Load JSON
|
||||||
|
with open(appliance_path, "r", encoding="utf-8") as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
# Skip if version already exists
|
||||||
|
for v in data.get("versions", []):
|
||||||
|
if v.get("name") == version:
|
||||||
|
print(f"Version {version} already exists.")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Build qcow2 URL
|
||||||
|
filename = f"infix-x86_64-disk-{version}.qcow2"
|
||||||
|
url = f"{REPO}/releases/download/v{version}/{filename}"
|
||||||
|
|
||||||
|
print(f"Downloading {url} to compute MD5 and size...")
|
||||||
|
md5sum, size = compute_md5_and_size(url)
|
||||||
|
|
||||||
|
# Add image entry
|
||||||
|
image_entry = {
|
||||||
|
"filename": filename,
|
||||||
|
"filesize": size,
|
||||||
|
"md5sum": md5sum,
|
||||||
|
"version": version,
|
||||||
|
"direct_download_url": url
|
||||||
|
}
|
||||||
|
data.setdefault("images", []).append(image_entry)
|
||||||
|
|
||||||
|
# Add version entry (newest first)
|
||||||
|
version_entry = {
|
||||||
|
"name": version,
|
||||||
|
"images": {
|
||||||
|
"bios_image": BIOS_IMAGE,
|
||||||
|
"hda_disk_image": filename
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.setdefault("versions", []).insert(0, version_entry)
|
||||||
|
|
||||||
|
# Backup
|
||||||
|
backup = appliance_path + ".bak-" + datetime.now().strftime("%Y%m%d-%H%M%S")
|
||||||
|
shutil.copy2(appliance_path, backup)
|
||||||
|
|
||||||
|
# Save updated JSON
|
||||||
|
with open(appliance_path, "w", encoding="utf-8") as f:
|
||||||
|
json.dump(data, f, indent=4)
|
||||||
|
|
||||||
|
print(f"✅ Added version {version}")
|
||||||
|
print(f" File: {appliance_path}")
|
||||||
|
print(f" Backup: {backup}")
|
||||||
|
print(f" Disk: {filename} (size={size} bytes, md5={md5sum})")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user