[PATCH v2] imagebuilder, sdk: unset BINARY_FOLDER and DOWNLOAD_FOLDER in final archives

Adrian Schmutzler mail at adrianschmutzler.de
Sun Apr 25 20:09:40 BST 2021


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of Sven Roederer
> Sent: Samstag, 24. April 2021 23:48
> To: openwrt-devel at lists.openwrt.org
> Subject: [PATCH v2] imagebuilder, sdk: unset BINARY_FOLDER and
> DOWNLOAD_FOLDER in final archives
> 
> Using these config-options to customize the folders used at build-time
> makes these folder settings appear in generated archives. This causes the
> archives to be not portable, as they going to use the build-time folders on
> the new systems. Errors look like for the imagebuilder:
> 
>   mkdir: cannot create directory '/mnt/build': Permission denied
>   Makefile:116: recipe for target '_call_image' failed
>   make[2]: *** [_call_image] Error 1
>   Makefile:241: recipe for target 'image' failed
>   make[1]: *** [image] Error 2
> 
> The build-time settings of these folders are passed into the archives via
> .config for the imagebuilder and via Config.in and Config.build for the sdk.
> The expected behavior is that after unpacking sdk and imagebuilder act like
> these settings have the default, using intree folders. So unset or filter out
> the build- time settings.

Consider breaking this down into separate patches for imagebuilder and sdk.

Best

Adrian

> 
> Signed-off-by: Sven Roederer <devel-sven at geroedel.de>
> ---
> 
> This is an rewrite and extension of the patch send on 11. April.
> 
> 
>  target/imagebuilder/Makefile | 2 ++
>  target/sdk/Makefile          | 1 +
>  target/sdk/convert-config.pl | 9 ++++++++-
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
> index f9c08776a8..ef7fd3f25e 100644
> --- a/target/imagebuilder/Makefile
> +++ b/target/imagebuilder/Makefile
> @@ -29,6 +29,8 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean
>  	mkdir -p $(IB_KDIR) $(IB_LDIR)
> $(PKG_BUILD_DIR)/staging_dir/host/lib \
>  		$(PKG_BUILD_DIR)/target $(PKG_BUILD_DIR)/scripts
> $(IB_DTSDIR)
>  	-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
> +	$(SED) 's/^CONFIG_BINARY_FOLDER=.*/# CONFIG_BINARY_FOLDER
> was reset by Imagebuilder/' $(PKG_BUILD_DIR)/.config
> +	$(SED) 's/^CONFIG_DOWNLOAD_FOLDER=.*/#
> CONFIG_DOWNLOAD_FOLDER was
> +reset by Imagebuilder/' $(PKG_BUILD_DIR)/.config
>  	$(CP) -L \
>  		$(INCLUDE_DIR) $(SCRIPT_DIR) \
>  		$(TOPDIR)/rules.mk \
> diff --git a/target/sdk/Makefile b/target/sdk/Makefile index
> 0606621192..5330d14955 100644
> --- a/target/sdk/Makefile
> +++ b/target/sdk/Makefile
> @@ -159,6 +159,7 @@ $(BIN_DIR)/$(SDK_NAME).tar.xz: clean
>  	$(SED) 's,^# REVISION:=.*,REVISION:=$(REVISION),g'
> $(SDK_BUILD_DIR)/include/version.mk
>  	$(SED) 's,^#
> SOURCE_DATE_EPOCH:=.*,SOURCE_DATE_EPOCH:=$(SOURCE_DATE_EPOC
> H),g' $(SDK_BUILD_DIR)/include/version.mk
>  	$(SED) '/LINUX_VERMAGIC:=/ { s,unknown,$(LINUX_VERMAGIC),g }'
> $(SDK_BUILD_DIR)/include/kernel.mk
> +	$(SED) 's,default "$(CONFIG_DOWNLOAD_FOLDER)",default "",'
> +$(SDK_BUILD_DIR)/Config.in
>  	find $(SDK_BUILD_DIR) -name .git | $(XARGS) rm -rf
>  	find $(SDK_BUILD_DIR) -name .svn | $(XARGS) rm -rf
>  	find $(SDK_BUILD_DIR) -name CVS | $(XARGS) rm -rf diff --git
> a/target/sdk/convert-config.pl b/target/sdk/convert-config.pl index
> f73744af09..f6bc831d3a 100755
> --- a/target/sdk/convert-config.pl
> +++ b/target/sdk/convert-config.pl
> @@ -9,7 +9,14 @@ while (<>) {
>  	chomp;
>  	next if /^CONFIG_SIGNED_PACKAGES/;
> 
> -	if (/^CONFIG_([^=]+)=(.*)$/) {
> +	if (/^CONFIG_((BINARY)|(DOWNLOAD))_FOLDER=(.*)$/) {
> +		# We don't want to preserve the build setting of
> +		# BINARY_FOLDER and DOWNLOAD_FOLDER.
> +		$var = "$1_FOLDER";
> +		$val = '""';
> +		$type = "string";
> +#		warn "DEBUG: type: $type found for symbol
> CONFIG_$var=$val\n";
> +	} elsif (/^CONFIG_([^=]+)=(.*)$/) {
>  		$var = $1;
>  		$val = $2;
> 
> --
> 2.17.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210425/36efc3f7/attachment-0001.sig>


More information about the openwrt-devel mailing list