|
| 1 | +From: Christian Breunig <christian@vyos.io> |
| 2 | +Date: Sun, 5 Jul 2026 00:00:00 +0200 |
| 3 | +Subject: [PATCH] cmake: package signed/compressed kernel modules |
| 4 | + |
| 5 | +sign-modules.sh signs the built ipoe/vlan_mon/pptp kernel modules and, |
| 6 | +if the target kernel's .config enables CONFIG_MODULE_COMPRESS_XZ, |
| 7 | +compresses them to .ko.xz before cpack packages the Debian archive. |
| 8 | +The Debian packaging rules installed the drivers by their exact |
| 9 | +pre-sign build path (*.ko) unconditionally, so a compressed build |
| 10 | +never actually shipped the compressed module. Mirror sign-modules.sh's |
| 11 | +own .config check to pick the extension that actually ends up on disk. |
| 12 | + |
| 13 | +--- |
| 14 | + cmake/debian/debian.cmake | 16 ++++++++++++++-- |
| 15 | + 1 file changed, 14 insertions(+), 2 deletions(-) |
| 16 | + |
| 17 | +diff --git a/cmake/debian/debian.cmake b/cmake/debian/debian.cmake |
| 18 | +index 8db274a..64b8f7d 100644 |
| 19 | +--- a/cmake/debian/debian.cmake |
| 20 | ++++ b/cmake/debian/debian.cmake |
| 21 | +@@ -9,6 +9,18 @@ if (NOT DEFINED MODULES_KDIR) |
| 22 | + ) |
| 23 | + endif() |
| 24 | + |
| 25 | ++# sign-modules.sh signs the built .ko files and, if the target kernel's |
| 26 | ++# .config has module compression enabled, xz-compresses them in place. |
| 27 | ++# Mirror that check here so we install whichever artifact actually ends |
| 28 | ++# up on disk. |
| 29 | ++SET(KMOD_EXT ".ko") |
| 30 | ++IF (DEFINED KDIR AND EXISTS "${KDIR}/.config") |
| 31 | ++ FILE(STRINGS "${KDIR}/.config" _ACCEL_PPP_KMOD_COMPRESS_XZ REGEX "^CONFIG_MODULE_COMPRESS_XZ=y$") |
| 32 | ++ IF (_ACCEL_PPP_KMOD_COMPRESS_XZ) |
| 33 | ++ SET(KMOD_EXT ".ko.xz") |
| 34 | ++ ENDIF () |
| 35 | ++ENDIF () |
| 36 | ++ |
| 37 | + if (BUILD_PPTP_DRIVER) |
| 38 | + if (BUILD_DRIVER_ONLY) |
| 39 | + SET(CPACK_PACKAGE_VERSION_MAJOR "0") |
| 40 | +@@ -21,7 +33,7 @@ if (BUILD_PPTP_DRIVER) |
| 41 | + SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst") |
| 42 | + endif () |
| 43 | + #INSTALL(DIRECTORY lib/modules/${DEBIAN_KDIR}/extra) |
| 44 | +- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/driver/driver/pptp.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 45 | ++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/driver/driver/pptp${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 46 | + #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "linux-image (= ${LINUX_IMAGE})") |
| 47 | + endif (BUILD_PPTP_DRIVER) |
| 48 | + |
| 49 | +@@ -33,7 +45,7 @@ if (BUILD_IPOE_DRIVER) |
| 50 | + SET(CPACK_DEBIAN_PACKAGE_DEPENDS "") |
| 51 | + SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst") |
| 52 | + endif () |
| 53 | +- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe/driver/ipoe.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 54 | ++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe/driver/ipoe${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 55 | + endif (BUILD_IPOE_DRIVER) |
| 56 | + |
| 57 | + if (BUILD_VLAN_MON_DRIVER) |
| 58 | +@@ -44,7 +56,7 @@ if (BUILD_VLAN_MON_DRIVER) |
| 59 | + SET(CPACK_DEBIAN_PACKAGE_DEPENDS "") |
| 60 | + SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst") |
| 61 | + endif () |
| 62 | +- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/vlan_mon/driver/vlan_mon.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 63 | ++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/vlan_mon/driver/vlan_mon${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra) |
| 64 | + endif (BUILD_VLAN_MON_DRIVER) |
| 65 | + |
| 66 | + if (NOT BUILD_DRIVER_ONLY) |
0 commit comments