build: introduce per feed repository support

This changeset implements a new menuconfig option to generate separate
repositories for each enabled package feed instead of one monolithic one.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42002 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
Jo-Philipp Wich
2014-08-05 11:24:24 +00:00
parent 2f757bc989
commit fdb795c3e4
14 changed files with 115 additions and 14 deletions

View File

@@ -7,6 +7,8 @@
curdir:=package
include $(INCLUDE_DIR)/feeds.mk
-include $(TMP_DIR)/.packagedeps
$(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m))
$(curdir)/builddirs-install:=.
@@ -127,11 +129,19 @@ ifndef CONFIG_OPKGSMIME_PASSPHRASE
endif
endif
PACKAGE_SUBDIRS=.
ifneq ($(CONFIG_PER_FEED_REPO),)
PACKAGE_SUBDIRS=base $(FEEDS_ENABLED)
endif
$(curdir)/index: FORCE
@echo Generating package index...
@(cd $(PACKAGE_DIR); \
@for d in $(PACKAGE_SUBDIRS); do ( \
[ -d $(PACKAGE_DIR)/$$d ] && \
cd $(PACKAGE_DIR)/$$d || continue; \
$(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages && \
gzip -9c Packages > Packages.gz )
gzip -9c Packages > Packages.gz; \
); done
ifeq ($(call qstrip,$(CONFIG_OPKGSMIME_KEY)),)
@echo Signing key has not been configured
else
@@ -139,12 +149,15 @@ ifeq ($(call qstrip,$(CONFIG_OPKGSMIME_CERT)),)
@echo Certificate has not been configured
else
@echo Signing package index...
@(cd $(PACKAGE_DIR); \
@for d in $(PACKAGE_SUBDIRS); do ( \
[ -d $(PACKAGE_DIR)/$$d ] && \
cd $(PACKAGE_DIR)/$$d || continue; \
openssl smime -binary -in Packages.gz \
-out Packages.sig -outform PEM -sign \
-signer $(CONFIG_OPKGSMIME_CERT) \
-inkey $(CONFIG_OPKGSMIME_KEY) \
$(PASSOPT) $(PASSARG) )
$(PASSOPT) $(PASSARG); \
); done
endif
endif