From: Daniel Dickinson <[email protected]>

Abstract out the signing-key from base-files (to make duplicating
for use for building different key for SDK easier; the SDK needs to
build a signing-key by default when base-files has a signing key
due to the fact opkg will not accept unsigned package lists when
configured to use signed packages)

Signed-off-by: Daniel Dickinson <[email protected]>
---
 package/base-files/Makefile  | 20 ++------------
 package/signing-key/Makefile | 66 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 17 deletions(-)
 create mode 100644 package/signing-key/Makefile

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 8c75b91..da9525c 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -17,7 +17,7 @@ PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ 
$(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=usign/host
 PKG_LICENSE:=GPL-2.0
 
-PKG_CONFIG_DEPENDS := CONFIG_SIGNED_PACKAGES CONFIG_TARGET_INIT_PATH
+PKG_CONFIG_DEPENDS := CONFIG_TARGET_INIT_PATH
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -32,7 +32,7 @@ endif
 define Package/base-files
   SECTION:=base
   CATEGORY:=Base system
-  DEPENDS:=+netifd +libc +procd +jsonfilter +SIGNED_PACKAGES:usign +fstools
+  DEPENDS:=+netifd +libc +procd +jsonfilter +fstools 
+SIGNED_PACKAGES:signing-key
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
   VERSION:=$(PKG_RELEASE)-$(REVISION)
@@ -91,25 +91,11 @@ endef
 define Build/Compile/Default
 
 endef
-Build/Compile = $(Build/Compile/Default)
-
-ifdef CONFIG_SIGNED_PACKAGES
-  define Build/Configure
-       [ -s $(BUILD_KEY) -a -s $(BUILD_KEY).pub ] || \
-               $(STAGING_DIR_HOST)/bin/usign -G -s $(BUILD_KEY) -p 
$(BUILD_KEY).pub -c "Local build key"
-
-  endef
 
-  define Package/base-files/install-key
-       mkdir -p $(1)/etc/opkg/keys
-       $(CP) $(BUILD_KEY).pub 
$(1)/etc/opkg/keys/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub`
-
-  endef
-endif
+Build/Compile = $(Build/Compile/Default)
 
 define Package/base-files/install
        $(CP) ./files/* $(1)/
-       $(Package/base-files/install-key)
        if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
                $(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
        fi
diff --git a/package/signing-key/Makefile b/package/signing-key/Makefile
new file mode 100644
index 0000000..3108e36
--- /dev/null
+++ b/package/signing-key/Makefile
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2007-2015 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=signing-key
+PKG_VERSION:=1.0
+PKG_RELEASE:=1
+
+PKG_BUILD_DEPENDS:=usign/host
+PKG_LICENSE:=GPL-2.0
+
+PKG_CONFIG_DEPENDS := CONFIG_SIGNED_PACKAGES
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/signing-key
+  SECTION:=base
+  CATEGORY:=Base system
+  DEPENDS:=+usign
+  TITLE:=Signing key when using signed package lists (base build key)
+  URL:=http://openwrt.org/
+  DEFAULT:=y if SIGNED_PACKAGES
+endef
+
+define Package/signing-key/description
+  This package contains the opkg signing key for the base build when using 
signed package lists
+endef
+
+define Build/Prepare
+       true
+endef
+
+NOT_SDK_KEY=$(if $(SDK),,1)
+
+ifeq ($(NOT_SDK_KEY),1)
+define Build/Configure
+       [ -s $(BUILD_KEY) -a -s $(BUILD_KEY).pub ] || \
+               $(STAGING_DIR_HOST)/bin/usign -G -s $(BUILD_KEY) -p 
$(BUILD_KEY).pub -c "Local build key"
+endef
+
+else
+
+define Build/Configure
+       true
+endef
+endif
+
+define Build/Compile
+       echo "Placeholder for log file"
+endef
+
+ifeq ($(NOT_SDK_OR_IS_SDK_KEY),1)
+define Package/signing-key/install
+       $(INSTALL_DIR) $(1)/etc/opkg/keys
+       $(CP) $(BUILD_KEY).pub 
$(1)/etc/opkg/keys/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub`
+endef
+endif
+
+$(eval $(call BuildPackage,signing-key))
-- 
2.4.3
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to