summaryrefslogtreecommitdiff
path: root/scripts/package-build/linux-kernel/patches/accel-ppp-ng/0001-cmake-package-signed-compressed-kernel-modules.patch
blob: d69ef0382d997565845fc25a707f69373f191817 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
From: Christian Breunig <christian@vyos.io>
Date: Sun, 5 Jul 2026 00:00:00 +0200
Subject: [PATCH] cmake: package signed/compressed kernel modules

sign-modules.sh signs the built ipoe/vlan_mon/pptp kernel modules and,
if the target kernel's .config enables CONFIG_MODULE_COMPRESS_XZ,
compresses them to .ko.xz before cpack packages the Debian archive.
The Debian packaging rules installed the drivers by their exact
pre-sign build path (*.ko) unconditionally, so a compressed build
never actually shipped the compressed module. Mirror sign-modules.sh's
own .config check to pick the extension that actually ends up on disk.

---
 cmake/debian/debian.cmake | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/cmake/debian/debian.cmake b/cmake/debian/debian.cmake
index 8db274a..64b8f7d 100644
--- a/cmake/debian/debian.cmake
+++ b/cmake/debian/debian.cmake
@@ -9,6 +9,18 @@ if (NOT DEFINED MODULES_KDIR)
 	)
 endif()

+# sign-modules.sh signs the built .ko files and, if the target kernel's
+# .config has module compression enabled, xz-compresses them in place.
+# Mirror that check here so we install whichever artifact actually ends
+# up on disk.
+SET(KMOD_EXT ".ko")
+IF (DEFINED KDIR AND EXISTS "${KDIR}/.config")
+	FILE(STRINGS "${KDIR}/.config" _ACCEL_PPP_KMOD_COMPRESS_XZ REGEX "^CONFIG_MODULE_COMPRESS_XZ=y$")
+	IF (_ACCEL_PPP_KMOD_COMPRESS_XZ)
+		SET(KMOD_EXT ".ko.xz")
+	ENDIF ()
+ENDIF ()
+
 if (BUILD_PPTP_DRIVER)
 	if (BUILD_DRIVER_ONLY)
 		SET(CPACK_PACKAGE_VERSION_MAJOR "0")
@@ -21,7 +33,7 @@ if (BUILD_PPTP_DRIVER)
 		SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst")
 	endif ()
 	#INSTALL(DIRECTORY lib/modules/${DEBIAN_KDIR}/extra)
-	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/driver/driver/pptp.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra)
+	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/driver/driver/pptp${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra)
 	#SET(CPACK_DEBIAN_PACKAGE_DEPENDS "linux-image (= ${LINUX_IMAGE})")
 endif (BUILD_PPTP_DRIVER)

@@ -33,7 +45,7 @@ if (BUILD_IPOE_DRIVER)
 		SET(CPACK_DEBIAN_PACKAGE_DEPENDS "")
 		SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst")
 	endif ()
-	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe/driver/ipoe.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra)
+	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe/driver/ipoe${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra)
 endif (BUILD_IPOE_DRIVER)

 if (BUILD_VLAN_MON_DRIVER)
@@ -44,7 +56,7 @@ if (BUILD_VLAN_MON_DRIVER)
 		SET(CPACK_DEBIAN_PACKAGE_DEPENDS "")
 		SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian-kmod/postinst")
 	endif ()
-	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/vlan_mon/driver/vlan_mon.ko DESTINATION /lib/modules/${MODULES_KDIR}/extra)
+	INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/drivers/vlan_mon/driver/vlan_mon${KMOD_EXT} DESTINATION /lib/modules/${MODULES_KDIR}/extra)
 endif (BUILD_VLAN_MON_DRIVER)

 if (NOT BUILD_DRIVER_ONLY)