[openwrt/openwrt] build: generate private key for APK early

LEDE Commits lede-commits at lists.infradead.org
Wed May 22 10:31:18 PDT 2024


dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/9a11bc3682dd7e95eb0534da9e2dbe3cdaa1c6de

commit 9a11bc3682dd7e95eb0534da9e2dbe3cdaa1c6de
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Wed May 22 16:19:45 2024 +0200

    build: generate private key for APK early
    
    Other than OPKG which only uses signed package list, APK uses
    individually signed packages in addition to signed package lists. Hence,
    in order to be able to generate package, the private key needs to be
    generated before compiling packages. Express that dependency and
    generate the private key before building any packages instead of doing
    so as part of the base-files package build.
    
    Fixes: d788ab376f ("build: add APK package build capabilities")
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/Makefile            | 8 +++++++-
 package/base-files/Makefile | 6 ------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/package/Makefile b/package/Makefile
index 301a9e6cd5..eb7cfcf962 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -59,6 +59,12 @@ else
 	-$(foreach pdir,$(PACKAGE_SUBDIRS),$(if $(wildcard $(pdir)/*.ipk),ln -s $(pdir)/*.ipk $(PACKAGE_DIR_ALL);))
 endif
 
+$(BUILD_KEY_APK_SEC):
+	$(STAGING_DIR_HOST)/bin/openssl ecparam -name prime256v1 -genkey -noout -out $(BUILD_KEY_APK_SEC)
+
+$(BUILD_KEY_APK_PUB): $(BUILD_KEY_APK_SEC)
+	$(STAGING_DIR_HOST)/bin/openssl ec -in $(BUILD_KEY_APK_SEC) -pubout > $(BUILD_KEY_APK_PUB)
+
 $(curdir)/merge-index: $(curdir)/merge
 ifneq ($(CONFIG_USE_APK),)
 	(cd $(PACKAGE_DIR_ALL) && $(STAGING_DIR_HOST)/bin/apk mkndx \
@@ -75,7 +81,7 @@ endif
 ifndef SDK
   $(curdir)//compile = $(STAGING_DIR)/.prepared $(BIN_DIR)
 ifneq ($(CONFIG_USE_APK),)
-  $(curdir)/compile: $(curdir)/system/apk/host/compile
+  $(curdir)/compile: $(curdir)/system/apk/host/compile $(BUILD_KEY_APK_SEC) $(BUILD_KEY_APK_PUB)
 else
   $(curdir)/compile: $(curdir)/system/opkg/host/compile
 endif
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 0aa7ecd854..4425bb346d 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -117,12 +117,6 @@ endef
 Build/Compile = $(Build/Compile/Default)
 
 ifneq ($(CONFIG_USE_APK),)
-  define Build/Configure
-	[ -s $(BUILD_KEY_APK_SEC) -a -s $(BUILD_KEY_APK_PUB) ] || \
-		$(STAGING_DIR_HOST)/bin/openssl ecparam -name prime256v1 -genkey -noout -out $(BUILD_KEY_APK_SEC); \
-		$(STAGING_DIR_HOST)/bin/openssl ec -in $(BUILD_KEY_APK_SEC) -pubout > $(BUILD_KEY_APK_PUB)
-  endef
-
 ifndef CONFIG_BUILDBOT
   define Package/base-files/install-key
 	mkdir -p $(1)/etc/apk/keys




More information about the lede-commits mailing list