Inconsistencies in include/image.mk

Adrian Schmutzler mail at adrianschmutzler.de
Thu Jun 3 14:24:40 PDT 2021


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of Philip Prindeville
> Sent: Donnerstag, 3. Juni 2021 07:23
> To: OpenWrt Development List <openwrt-devel at lists.openwrt.org>
> Subject: Inconsistencies in include/image.mk
> 
> Hi,
> 
> I was looking at this with Paul this afternoon, and noticed a few issues worth
> fixing in include/image.mk after reviewing the DEVICE_PACKAGES PR he sent
> out.

I've not checked it in detail, but it looks to me like you are mixing TARGET and DEVICE variables here.

IIRC IMG_PREFIX is a target-based, device-independent variable, so it should not be set based on a device-dependent PROFILE_something variable.

Best

Adrian

> 
> The first part is how IMG_PREFIX is derived:
> 
> IMG_PREFIX_EXTRA:=$(if $(EXTRA_IMAGE_NAME),$(call
> sanitize,$(EXTRA_IMAGE_NAME))-) IMG_PREFIX_VERNUM:=$(if
> $(CONFIG_VERSION_FILENAMES),$(call sanitize,$(VERSION_NUMBER))-)
> IMG_PREFIX_VERCODE:=$(if $(CONFIG_VERSION_CODE_FILENAMES),$(call
> sanitize,$(VERSION_CODE))-)
> 
> IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-
> $(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$
> (BOARD)$(if $(SUBTARGET),-$(SUBTARGET)) IMG_ROOTFS:=$(IMG_PREFIX)-
> rootfs IMG_COMBINED:=$(IMG_PREFIX)-combined
> 
> But we don't append -$(PROFILE_SANITIZED) to it (if set), adding it later
> here:
> 
> define Image/Manifest
> 	$(call opkg,$(TARGET_DIR_ORIG)) list-installed > \
> 		$(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-
> $(PROFILE_SANITIZED)).manifest
> endef
> 
> And here:
> 
> ifdef CONFIG_TARGET_ROOTFS_TARGZ
>   define Image/Build/targz
> 	$(TAR) -cp --numeric-owner --owner=0 --group=0 --mode=a-s --
> sort=name \
> 		$(if $(SOURCE_DATE_EPOCH),--
> mtime="@$(SOURCE_DATE_EPOCH)") \
> 		-C $(TARGET_DIR)/ . | gzip -9n >
> $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-
> $(PROFILE_SANITIZED))-rootfs.tar.gz
>   endef
> endif
> 
> Note that we're also adding the suffix -rootfs, but not using the
> $(IMG_ROOTFS) definition made up at the top.
> 
> Conversely, here:
> 
> ifdef CONFIG_TARGET_ROOTFS_CPIOGZ
>   define Image/Build/cpiogz
> 	( cd $(TARGET_DIR); find . | $(STAGING_DIR_HOST)/bin/cpio -o -H
> newc -R 0:0 | gzip -9n >$(BIN_DIR)/$(IMG_ROOTFS).cpio.gz )
>   endef
> endif
> 
> We use $(IMG_ROOTFS) which doesn't include $(PROFILE_SANITIZED)... but
> we do use $(PROFILE_SANITIZED) in Image/Build/targz.  I don't see why the
> two cases aren't handled in the same way.
> 
> Either $(PROFILE_SANITIZED) is important enough to be included in
> everything (including cpio.gz images and manifests) or it's not.
> 
> Creating a PR to address this:
> 
> https://github.com/openwrt/openwrt/pull/4223
> 
> I don't know how to get good coverage of this change with CI/CD since that
> seems to only happen with PR's for "packages", but not "openwrt".
> 
> Any suggestions?
> 
> Thanks,
> 
> -Philip
> 
> 
> 
> _______________________________________________
> 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/20210603/4d73c1a0/attachment.sig>


More information about the openwrt-devel mailing list