imagebuilder: fix APK architecture setting
authorRobert Marko <robimarko@gmail.com>
Tue, 19 Nov 2024 13:36:17 +0000 (14:36 +0100)
committerRobert Marko <robimarko@gmail.com>
Tue, 19 Nov 2024 18:52:03 +0000 (19:52 +0100)
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] https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/c1a3e69f24e235fc78f4dddb1f85fdf281464446

Fixes: #16953
Link: https://github.com/openwrt/openwrt/pull/17015
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/imagebuilder/files/Makefile

index d1502d40c1224ba9afaddf8a81e910ea482a1c91..2c6e26e4eec98e9dfcf5b970ad3afd6fa4effccf 100644 (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