include: choose package output directory based on repository info
Use the new repository metadata field to choose the output directory of the final package archives. Non-sharable packages will be placed in the per-target package directory while the rest will be placed in a per-repository sub directory within the $OUTPUT_DIR/packages/$CPU_TYPE/ prefix. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
941fc5e8c8
commit
5170393f8c
4 changed files with 25 additions and 19 deletions
|
@ -1,5 +1,6 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2014 OpenWrt.org
|
# Copyright (C) 2014 OpenWrt.org
|
||||||
|
# Copyright (C) 2016 LEDE Project
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -12,6 +13,16 @@ FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
|
||||||
FEEDS_ENABLED:=$(foreach feed,$(FEEDS_INSTALLED),$(if $(CONFIG_FEED_$(feed)),$(feed)))
|
FEEDS_ENABLED:=$(foreach feed,$(FEEDS_INSTALLED),$(if $(CONFIG_FEED_$(feed)),$(feed)))
|
||||||
FEEDS_DISABLED:=$(filter-out $(FEEDS_ENABLED),$(FEEDS_AVAILABLE))
|
FEEDS_DISABLED:=$(filter-out $(FEEDS_ENABLED),$(FEEDS_AVAILABLE))
|
||||||
|
|
||||||
|
PACKAGE_SUBDIRS=$(PACKAGE_DIR)
|
||||||
|
ifneq ($(CONFIG_PER_FEED_REPO),)
|
||||||
|
PACKAGE_SUBDIRS += $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/base
|
||||||
|
ifneq ($(CONFIG_PER_FEED_REPO_ADD_DISABLED),)
|
||||||
|
PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_AVAILABLE),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
|
||||||
|
else
|
||||||
|
PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_ENABLED),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS += \
|
PKG_CONFIG_DEPENDS += \
|
||||||
CONFIG_PER_FEED_REPO \
|
CONFIG_PER_FEED_REPO \
|
||||||
CONFIG_PER_FEED_REPO_ADD_DISABLED \
|
CONFIG_PER_FEED_REPO_ADD_DISABLED \
|
||||||
|
@ -19,9 +30,13 @@ PKG_CONFIG_DEPENDS += \
|
||||||
$(foreach feed,$(FEEDS_INSTALLED),CONFIG_FEED_$(feed))
|
$(foreach feed,$(FEEDS_INSTALLED),CONFIG_FEED_$(feed))
|
||||||
|
|
||||||
# 1: package name
|
# 1: package name
|
||||||
|
# 2: flags
|
||||||
|
# 3: section
|
||||||
define FeedPackageDir
|
define FeedPackageDir
|
||||||
$(strip $(if $(CONFIG_PER_FEED_REPO), \
|
$(strip $(if $(CONFIG_PER_FEED_REPO), \
|
||||||
$(abspath $(PACKAGE_DIR)/$(if $(Package/$(1)/subdir),$(Package/$(1)/subdir),base)), \
|
$(if $(Package/$(1)/subdir), \
|
||||||
|
$(abspath $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(Package/$(1)/subdir)), \
|
||||||
|
$(PACKAGE_DIR)), \
|
||||||
$(PACKAGE_DIR)))
|
$(PACKAGE_DIR)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ _endef=endef
|
||||||
|
|
||||||
ifeq ($(DUMP),)
|
ifeq ($(DUMP),)
|
||||||
define BuildTarget/ipkg
|
define BuildTarget/ipkg
|
||||||
PDIR_$(1):=$(call FeedPackageDir,$(1))
|
PDIR_$(1):=$(call FeedPackageDir,$(1),$(PKG_FLAGS),$(SECTION))
|
||||||
IPKG_$(1):=$$(PDIR_$(1))/$(1)_$(VERSION)_$(PKGARCH).ipk
|
IPKG_$(1):=$$(PDIR_$(1))/$(1)_$(VERSION)_$(PKGARCH).ipk
|
||||||
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
|
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
|
||||||
KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
|
KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
|
||||||
|
|
|
@ -294,7 +294,7 @@ Build/DistCheck=$(call Build/DistCheck/Default,)
|
||||||
prepare-package-install:
|
prepare-package-install:
|
||||||
@mkdir -p $(PKG_INFO_DIR)
|
@mkdir -p $(PKG_INFO_DIR)
|
||||||
@touch $(PKG_INSTALL_STAMP).clean
|
@touch $(PKG_INSTALL_STAMP).clean
|
||||||
@echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags
|
@echo "$(filter-out essential nonshared,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags
|
||||||
|
|
||||||
$(PACKAGE_DIR):
|
$(PACKAGE_DIR):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
|
@ -98,7 +98,7 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/system/opkg/host/install
|
||||||
- find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
|
- find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
|
||||||
rm -rf $(TARGET_DIR)
|
rm -rf $(TARGET_DIR)
|
||||||
[ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp
|
[ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp
|
||||||
@$(FIND) `sed -e 's|.*|$(PACKAGE_DIR)$(if $(CONFIG_PER_FEED_REPO),/*)/&_*.ipk|' $(PACKAGE_INSTALL_FILES)` | sort -u | $(OPKG) install
|
@echo $(wildcard $(foreach dir,$(PACKAGE_SUBDIRS),$(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(dir)/$(pkg)_*.ipk))) | $(OPKG) install
|
||||||
@for file in $(PACKAGE_INSTALL_FILES); do \
|
@for file in $(PACKAGE_INSTALL_FILES); do \
|
||||||
[ -s $$file.flags ] || continue; \
|
[ -s $$file.flags ] || continue; \
|
||||||
for flag in `cat $$file.flags`; do \
|
for flag in `cat $$file.flags`; do \
|
||||||
|
@ -139,28 +139,19 @@ ifndef CONFIG_OPKGSMIME_PASSPHRASE
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PACKAGE_SUBDIRS=.
|
|
||||||
ifneq ($(CONFIG_PER_FEED_REPO),)
|
|
||||||
ifneq ($(CONFIG_PER_FEED_REPO_ADD_DISABLED),)
|
|
||||||
PACKAGE_SUBDIRS=base kernel $(FEEDS_AVAILABLE)
|
|
||||||
else
|
|
||||||
PACKAGE_SUBDIRS=base kernel $(FEEDS_ENABLED)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(curdir)/index: FORCE
|
$(curdir)/index: FORCE
|
||||||
@echo Generating package index...
|
@echo Generating package index...
|
||||||
@for d in $(PACKAGE_SUBDIRS); do ( \
|
@for d in $(PACKAGE_SUBDIRS); do ( \
|
||||||
mkdir -p $(PACKAGE_DIR)/$$d; \
|
mkdir -p $$d; \
|
||||||
cd $(PACKAGE_DIR)/$$d || continue; \
|
cd $$d || continue; \
|
||||||
$(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages && \
|
$(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages && \
|
||||||
gzip -9nc Packages > Packages.gz; \
|
gzip -9nc Packages > Packages.gz; \
|
||||||
); done
|
); done
|
||||||
ifdef CONFIG_SIGNED_PACKAGES
|
ifdef CONFIG_SIGNED_PACKAGES
|
||||||
@echo Signing package index...
|
@echo Signing package index...
|
||||||
@for d in $(PACKAGE_SUBDIRS); do ( \
|
@for d in $(PACKAGE_SUBDIRS); do ( \
|
||||||
[ -d $(PACKAGE_DIR)/$$d ] && \
|
[ -d $$d ] && \
|
||||||
cd $(PACKAGE_DIR)/$$d || continue; \
|
cd $$d || continue; \
|
||||||
$(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY); \
|
$(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY); \
|
||||||
); done
|
); done
|
||||||
else
|
else
|
||||||
|
@ -172,8 +163,8 @@ ifeq ($(call qstrip,$(CONFIG_OPKGSMIME_CERT)),)
|
||||||
else
|
else
|
||||||
@echo Signing package index...
|
@echo Signing package index...
|
||||||
@for d in $(PACKAGE_SUBDIRS); do ( \
|
@for d in $(PACKAGE_SUBDIRS); do ( \
|
||||||
[ -d $(PACKAGE_DIR)/$$d ] && \
|
[ -d $$d ] && \
|
||||||
cd $(PACKAGE_DIR)/$$d || continue; \
|
cd $$d || continue; \
|
||||||
openssl smime -binary -in Packages.gz \
|
openssl smime -binary -in Packages.gz \
|
||||||
-out Packages.sig -outform PEM -sign \
|
-out Packages.sig -outform PEM -sign \
|
||||||
-signer $(CONFIG_OPKGSMIME_CERT) \
|
-signer $(CONFIG_OPKGSMIME_CERT) \
|
||||||
|
|
Loading…
Reference in a new issue