mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-03-14 23:09:45 +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:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
|
||||||
BUILD_PACKAGES:=$(USER_PACKAGES) $(BUILD_PACKAGES)
|
BUILD_PACKAGES:=$(USER_PACKAGES) $(BUILD_PACKAGES)
|
||||||
BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_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:=
|
PACKAGES:=
|
||||||
|
|
||||||
_call_image: staging_dir/host/.prereq-build
|
_call_image: staging_dir/host/.prereq-build
|
||||||
|
|
@ -229,10 +255,8 @@ ifeq ($(CONFIG_USE_APK),)
|
||||||
$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
|
$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
|
||||||
$(OPKG) install $(BUILD_PACKAGES)
|
$(OPKG) install $(BUILD_PACKAGES)
|
||||||
else
|
else
|
||||||
$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES) \
|
$(eval BUILD_PACKAGES:=$(call FormatPackages,$(BUILD_PACKAGES)))
|
||||||
"base-files=$(BASE_FILES_VERSION)" \
|
$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES)
|
||||||
"libc=$(LIBC_VERSION)" \
|
|
||||||
"kernel=$(KERNEL_VERSION)"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
prepare_rootfs: FORCE
|
prepare_rootfs: FORCE
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue