imagebuilder: fix APK architecture setting

Currently, when "apk add --initdb" is called it will populate the
/etc/apk/arch file with the architecture of the host instead of the target
package architecture and this will then make it impossible for new packages
to be installed on the device as the target architecture will not match
after APK is updated to include [1].

So, lets use override the architecture by passing the target package one
by using the "--arch" argument to "apk add".

[1] c1a3e69f24

Fixes: #16953
Link: https://github.com/openwrt/openwrt/pull/17015
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Robert Marko 2024-11-19 14:36:17 +01:00
parent 0d0a5eb4b5
commit 1c308bad54

View File

@ -200,7 +200,7 @@ ifeq ($(CONFIG_USE_APK),)
$(OPKG) update >&2 || true; \
fi
else
$(APK) add --initdb
$(APK) add --arch $(ARCH_PACKAGES) --initdb
if [ -d "$(PACKAGE_DIR)" ] && ( \
[ ! -f "$(PACKAGE_DIR)/packages.adb" ] || \
[ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/packages.adb`" ] ); then \
@ -227,7 +227,7 @@ ifeq ($(CONFIG_USE_APK),)
$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
$(OPKG) install $(BUILD_PACKAGES)
else
$(APK) add --no-scripts $(BUILD_PACKAGES)
$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES)
endif
prepare_rootfs: FORCE