[Buildroot] [PATCH 1/4] linux: create a scmversion file based on the custom repo variables
ckhardin at gmail.com
ckhardin at gmail.com
Thu Feb 9 23:15:15 UTC 2023
From: Charles Hardin <ckhardin at gmail.com>
When using the custom repositories, the archive creation will
omit the source history to get reproducible hashes. This has
the side effect of making the setlocalversion scripts within the
builds to not create the tracking information as expected. So,
just generate a .scmversion so that kernels will be labelled
with where buildroot referenced them.
For example (line wrapped)
#define UTS_RELEASE "5.4.70-repo-version-" \
"92c23d10d0031e0a13244a1a97e7530d3b53fc6e"
Signed-off-by: Charles Hardin <ckhardin at gmail.com>
---
linux/linux.mk | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/linux/linux.mk b/linux/linux.mk
index 7645b5f507..0b27c8dee2 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -596,6 +596,20 @@ endif
ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)),)
$(error No custom repo URL set. Check your BR2_LINUX_KERNEL_CUSTOM_REPO_URL setting)
endif
+
+# Create a custom scm version file to reflect the source version since the
+# archive will omit source directories like .git to maintain reproducible
+# hashes for the archives
+LINUX_CUSTOM_REPO_SCMVERSION = \
+ "-repo-version-$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION))"
+define LINUX_CUSTOM_REPO_SCMVERSION_HOOK
+ (cd $(@D); \
+ if [ ! -f .scmversion ]; then \
+ echo $(LINUX_CUSTOM_REPO_SCMVERSION) > .scmversion; \
+ fi)
+endef
+
+LINUX_POST_EXTRACT_HOOKS += LINUX_CUSTOM_REPO_SCMVERSION_HOOK
endif
ifeq ($(BR_BUILDING),y)
--
2.37.1 (Apple Git-137.1)
More information about the buildroot
mailing list