mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
071514c641
Nightly snapshot builds of OpenWrt change their kernels versions frequently and lose thereby compatibility to kmods from the upstream target specific packages feed. To allow opkg to install packages over multiple days a kmod archive is offered at $target/$subtarget/kmods/$kernelversion and added as a feed to created snapshot images via a buildbot step[1]. Instead of using a buildstep add the kmod feed directly via FeedSourcesAppend to be included in the ImageBuilder repositories.conf as well. This is conditionally only done for SNAPSHOT builds and when running as BUILDBOT. Releases are unaffected as they don't include kernel version changes and local builds may use different kernel versions or magics than available upstream. This commit allows in a future step to ship ImageBuilders without a locally stored kmod archive. [1]: https://git.openwrt.org/?p=buildbot.git;a=blob;f=phase1/master.cfg;h=3ba7a1606e89b095b10555e703ea96e93295deec;hb=HEAD#l1025 Signed-off-by: Paul Spooren <mail@aparcar.org>
51 lines
1.7 KiB
Makefile
51 lines
1.7 KiB
Makefile
#
|
|
# Copyright (C) 2014 OpenWrt.org
|
|
# Copyright (C) 2016 LEDE Project
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
-include $(TMP_DIR)/.packageauxvars
|
|
|
|
FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
|
|
FEEDS_AVAILABLE:=$(sort $(FEEDS_INSTALLED) $(shell $(SCRIPT_DIR)/feeds list -n 2>/dev/null))
|
|
|
|
PACKAGE_SUBDIRS=$(PACKAGE_DIR)
|
|
ifneq ($(CONFIG_PER_FEED_REPO),)
|
|
PACKAGE_SUBDIRS += $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/base
|
|
PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_AVAILABLE),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED))
|
|
endif
|
|
|
|
opkg_package_files = $(wildcard \
|
|
$(foreach dir,$(PACKAGE_SUBDIRS), \
|
|
$(foreach pkg,$(1), $(dir)/$(pkg)_*.ipk)))
|
|
|
|
# 1: package name
|
|
define FeedPackageDir
|
|
$(strip $(if $(CONFIG_PER_FEED_REPO), \
|
|
$(if $(Package/$(1)/subdir), \
|
|
$(abspath $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(Package/$(1)/subdir)), \
|
|
$(PACKAGE_DIR)), \
|
|
$(PACKAGE_DIR)))
|
|
endef
|
|
|
|
# 1: destination file
|
|
define FeedSourcesAppend
|
|
( \
|
|
echo 'src/gz %d_core %U/targets/%S/packages'; \
|
|
$(strip $(if $(CONFIG_PER_FEED_REPO), \
|
|
echo 'src/gz %d_base %U/packages/%A/base'; \
|
|
$(if $(filter %SNAPSHOT-y,$(VERSION_NUMBER)-$(CONFIG_BUILDBOT)), \
|
|
echo 'src/gz %d_kmods %U/targets/%S/kmods/$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)';) \
|
|
$(foreach feed,$(FEEDS_AVAILABLE), \
|
|
$(if $(CONFIG_FEED_$(feed)), \
|
|
echo '$(if $(filter m,$(CONFIG_FEED_$(feed))),# )src/gz %d_$(feed) %U/packages/%A/$(feed)';)))) \
|
|
) >> $(1)
|
|
endef
|
|
|
|
# 1: package name
|
|
define GetABISuffix
|
|
$(if $(filter-out kmod-%,$(1)),$(if $(Package/$(1)/abiversion),$(if $(filter %0 %1 %2 %3 %4 %5 %6 %7 %8 %9,$(1)),-)$(Package/$(1)/abiversion)))
|
|
endef
|