[openwrt/openwrt] build: use STAGING_DIR for special APK package versions

LEDE Commits lede-commits at lists.infradead.org
Sun Feb 1 02:17:00 PST 2026


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a4e92f0484f365565072162dad3eeaca0e38b709

commit a4e92f0484f365565072162dad3eeaca0e38b709
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Wed Jan 14 20:19:30 2026 +0100

    build: use STAGING_DIR for special APK package versions
    
    Removing tmp/ after having built base-files or toolchain currently
    breaks rootfs generation:
    
    $ rm -rf tmp
    $ make V=w
    ...
     make[2] package/install
    cat: .../openwrt/tmp/base-files.version: No such file or directory
    cat: .../openwrt/openwrt/tmp/libc.version: No such file or directory
    ERROR: 'base-files=' is not a valid world dependency, format is name(@tag)([<>~=]version)
    make[2]: *** [package/Makefile:100: package/install] Error 99
    
    The only way to recover from here is to clean toolchain and base-files via
    
    $ make package/{base-files,toolchain}/clean
    
    tmp is supposed to be ephemeral, so clearing it is an expected action,
    which normally just triggers a regeneration of all files there.
    
    Fix this by moving the version files to $(STAGING_DIR).
    
    Fixes: 63e178f067 ("build: lock versions for special APK packages")
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/21803
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/Makefile                | 6 +++---
 package/base-files/Makefile     | 2 +-
 package/kernel/linux/Makefile   | 2 +-
 package/libs/toolchain/Makefile | 4 ++--
 target/imagebuilder/Makefile    | 6 +++---
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/package/Makefile b/package/Makefile
index 0fd3a5e8c8..7e69b9a0b5 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -103,9 +103,9 @@ ifneq ($(CONFIG_USE_APK),)
 		--repositories-file /dev/null --repository file://$(PACKAGE_DIR_ALL)/packages.adb \
 		$(if $(CONFIG_SIGNED_PACKAGES),,--allow-untrusted) \
 		$$(cat $(TMP_DIR)/apk_install_list) \
-			"base-files=$(shell cat $(TMP_DIR)/base-files.version)" \
-			"libc=$(shell cat $(TMP_DIR)/libc.version)" \
-			"kernel=$(subst -rc,_rc,$(shell cat $(TMP_DIR)/kernel.version))"
+			"base-files=$(shell cat $(STAGING_DIR)/base-files.version)" \
+			"libc=$(shell cat $(STAGING_DIR)/libc.version)" \
+			"kernel=$(subst -rc,_rc,$(shell cat $(STAGING_DIR)/kernel.version))"
 
 	rm -rf $(TARGET_DIR)/run
 else
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index f5e1db114d..5bc60ea9d2 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -256,7 +256,7 @@ ifneq ($(CONFIG_USE_APK),)
 
 	rm -f $(1)/etc/uci-defaults/13_fix-group-user
 	rm -f $(1)/sbin/pkg_check
-	echo $(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION))) >$(TMP_DIR)/base-files.version
+	echo $(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION))) >$(STAGING_DIR)/base-files.version
 else
 	$(if $(CONFIG_CLEAN_IPKG),, \
 		mkdir -p $(1)/etc/opkg; \
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index 8a36b41a5b..f59610218b 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -65,7 +65,7 @@ define Package/kernel/install
 	strings $(LINUX_DIR)/modules.builtin.modinfo | \
 		grep -E -v "\.(file$(if CONFIG_MODULE_STRIPPED,|parmtype))=" | \
 		tr '\n' '\0' > $(1)/$(MODULES_SUBDIR)/modules.builtin.modinfo
-	echo $(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE) > $(TMP_DIR)/kernel.version
+	echo $(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE) > $(STAGING_DIR)/kernel.version
 endef
 
 define Package/kernel/extra_provides
diff --git a/package/libs/toolchain/Makefile b/package/libs/toolchain/Makefile
index 142dbb9807..0db9c1a841 100644
--- a/package/libs/toolchain/Makefile
+++ b/package/libs/toolchain/Makefile
@@ -578,7 +578,7 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
   endef
 
   define Package/libc/install
-    echo $(LIBC_VERSION)-r$(PKG_RELEASE) > $(TMP_DIR)/libc.version; \
+    echo $(LIBC_VERSION)-r$(PKG_RELEASE) > $(STAGING_DIR)/libc.version; \
     $(call Package/$(LIBC)/install,$1)
   endef
 
@@ -698,7 +698,7 @@ else
   endef
 
   define Package/libc/install
-	echo $(LIBC_VERSION)-r$(PKG_RELEASE) > $(TMP_DIR)/libc.version; \
+	echo $(LIBC_VERSION)-r$(PKG_RELEASE) > $(STAGING_DIR)/libc.version; \
 	for file in $(call qstrip,$(CONFIG_LIBC_FILE_SPEC)); do \
 		if [ '$(CONFIG_USE_GLIBC)' != '' ] ; then \
 			case "$${file}" in \
diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index 6fca91939f..9ccc5b83e7 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -126,9 +126,9 @@ endif
 	fi
 	$(SED) 's,^# REVISION:=.*,REVISION:=$(REVISION),g' $(PKG_BUILD_DIR)/include/version.mk
 	$(SED) 's,^# SOURCE_DATE_EPOCH:=.*,SOURCE_DATE_EPOCH:=$(SOURCE_DATE_EPOCH),g' $(PKG_BUILD_DIR)/include/version.mk
-	$(SED) 's,^# BASE_FILES_VERSION:=.*,BASE_FILES_VERSION:=$(shell cat $(TMP_DIR)/base-files.version),g' $(PKG_BUILD_DIR)/include/version.mk
-	$(SED) 's,^# LIBC_VERSION:=.*,LIBC_VERSION:=$(shell cat $(TMP_DIR)/libc.version),g' $(PKG_BUILD_DIR)/include/version.mk
-	$(SED) 's,^# KERNEL_VERSION:=.*,KERNEL_VERSION:=$(shell cat $(TMP_DIR)/kernel.version),g' $(PKG_BUILD_DIR)/include/version.mk
+	$(SED) 's,^# BASE_FILES_VERSION:=.*,BASE_FILES_VERSION:=$(shell cat $(STAGING_DIR)/base-files.version),g' $(PKG_BUILD_DIR)/include/version.mk
+	$(SED) 's,^# LIBC_VERSION:=.*,LIBC_VERSION:=$(shell cat $(STAGING_DIR)/libc.version),g' $(PKG_BUILD_DIR)/include/version.mk
+	$(SED) 's,^# KERNEL_VERSION:=.*,KERNEL_VERSION:=$(shell cat $(STAGING_DIR)/kernel.version),g' $(PKG_BUILD_DIR)/include/version.mk
 	$(SED) '/LINUX_VERMAGIC:=/ { s,unknown,$(LINUX_VERMAGIC),g }' $(PKG_BUILD_DIR)/include/kernel.mk
 	find $(PKG_BUILD_DIR) -name CVS -o -name .git -o -name .svn \
 	  | $(XARGS) rm -rf




More information about the lede-commits mailing list