build: don't drop 'user' flag when using the ImageBuilder
authorDaniel Golle <daniel@makrotopia.org>
Tue, 20 Feb 2024 21:14:03 +0000 (21:14 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Tue, 20 Feb 2024 21:18:44 +0000 (21:18 +0000)
Commit be9023ed43 ("build: fix opkg flags in rootfs") introduced a
call to 'awk' which removes the 'user' flag from all installed
packages in the opkg status file. While is is somehow desireable when
building images directly within the buildroot, when using the
ImageBuilder dropping the 'user' flag means loosing information about
a package being deliberately selected or just implicitely pulled as a
dependency. And that then break tools like 'auc' which request only
packages having the 'user' flag from the asu server, resulting in
broken images being delivered to users.

Restore the original behavior in case of an image being created using
the ImageBuilder.

Fixes: be9023ed43 ("build: fix opkg flags in rootfs")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
include/rootfs.mk

index 2128aefc2abda82d6f36bf7278a580ddb3922655..b07f33d2046aa42fab5bd98535e845f42cdb1706 100644 (file)
@@ -87,11 +87,11 @@ define prepare_rootfs
                        fi; \
                done || true \
        )
-       awk -i inplace \
+       $(if $(IB),,awk -i inplace \
                '/^Status:/ { \
                        if ($$3 == "user") { $$3 = "ok" } \
                        else { sub(/,\<user\>|\<user\>,/, "", $$3) } \
-               }1' $(1)/usr/lib/opkg/status
+               }1' $(1)/usr/lib/opkg/status)
        $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(1)/usr/lib/opkg/status)
        @-find $(1) -name CVS -o -name .svn -o -name .git -o -name '.#*' | $(XARGS) rm -rf
        rm -rf \