mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-01-28 01:17:30 +01:00
imagebuilder: add ABI suffix to packages when using apk
If an apk package with an ABI version doesn't have priority set, it
can't be selected by its base name:
$ make manifest PACKAGES='libustream-openssl libsqlite3'
ERROR: unable to select packages:
libsqlite3 (virtual):
note: please select one of the 'provided by'
packages explicitly
provided by: libsqlite3-0
required by: world[libsqlite3]
libustream-openssl (virtual):
note: please select one of the 'provided by'
packages explicitly
provided by: libustream-openssl20201210
required by: world[libustream-openssl]
Look up the ABI version in apk index and if present, add an ABI suffix
to all requested packages.
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21449
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
02f0efd60b
commit
31cdd13d22
1 changed files with 28 additions and 4 deletions
|
|
@ -145,6 +145,32 @@ BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
|
|||
BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
|
||||
BUILD_PACKAGES:=$(USER_PACKAGES) $(BUILD_PACKAGES)
|
||||
BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
|
||||
|
||||
ifneq ($(CONFIG_USE_APK),)
|
||||
BUILD_PACKAGES+= \
|
||||
"base-files=$(BASE_FILES_VERSION)" \
|
||||
"libc=$(LIBC_VERSION)" \
|
||||
"kernel=$(KERNEL_VERSION)"
|
||||
endif
|
||||
|
||||
# Get ABI version suffix for a package from an apk index
|
||||
#
|
||||
# 1: package name
|
||||
define GetABISuffix
|
||||
$(shell $(APK) query --fields tags --match provides $(1) | grep openwrt:abiversion | awk -F= '{print $$2; exit}')
|
||||
endef
|
||||
|
||||
# Format packages by adding an ABI version suffix if found
|
||||
#
|
||||
# 1: list of packages
|
||||
define FormatPackages
|
||||
$(strip $(foreach pkg,$(strip $(subst ",,$(1))),
|
||||
$(eval pkg_name:=$(firstword $(subst =, ,$(pkg))))
|
||||
$(if $(findstring =,$(pkg)),$(eval pkg_ver:==$(lastword $(subst =, ,$(pkg)))))
|
||||
$(pkg_name)$(call GetABISuffix,$(pkg_name))$(pkg_ver)
|
||||
))
|
||||
endef
|
||||
|
||||
PACKAGES:=
|
||||
|
||||
_call_image: staging_dir/host/.prereq-build
|
||||
|
|
@ -229,10 +255,8 @@ ifeq ($(CONFIG_USE_APK),)
|
|||
$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
|
||||
$(OPKG) install $(BUILD_PACKAGES)
|
||||
else
|
||||
$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES) \
|
||||
"base-files=$(BASE_FILES_VERSION)" \
|
||||
"libc=$(LIBC_VERSION)" \
|
||||
"kernel=$(KERNEL_VERSION)"
|
||||
$(eval BUILD_PACKAGES:=$(call FormatPackages,$(BUILD_PACKAGES)))
|
||||
$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES)
|
||||
endif
|
||||
|
||||
prepare_rootfs: FORCE
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue