[PATCH] x86: use mkfs.fat, sed, mmd and mcopy from staging_dir

Bas Mevissen abuse at basmevissen.nl
Fri Jan 20 05:47:31 PST 2023

On 2023-01-20 13:24, Florian Eckert wrote:
> On 2023-01-20 12:49, Felix Fietkau wrote:
>> On 20.01.23 12:42, Florian Eckert wrote:
>>> Hello Felix,
>>>>> During image generation, the host tools should not be used but the 
>>>>> tools
>>>>> from the staging_dir.
>>>>> - mkfs.fat
>>>>> - sed
>>>>> - mmd
>>>>> - mcopy
>>>> Why is this necessary? $STAGING_DIR_HOST/bin should already be in
>>>> $PATH before the host system parts.
>>> I only noticed that the prefix $(STAGING_DIR_HOST) is missing for 
>>> these
>>> tools on x86_64 image Makefile.
>>> If I look for this prefix in OpenWrt, it is found in some image
>>> Makefiles commands.
>>> For examples:
>>> -
>>> https://github.com/openwrt/openwrt/blob/master/target/linux/realtek/image/Makefile
>>> -
>>> https://github.com/openwrt/openwrt/blob/master/target/linux/bcm63xx/image/Makefile
>>> -
>>> https://github.com/openwrt/openwrt/blob/master/target/linux/ath25/image/Makefile
>>> If this is in the PATH through this line
>>> https://github.com/openwrt/openwrt/blob/master/Makefile, then this is
>>> not needed for the others?
>>> I only wanted to unify this with the change and make it clear that 
>>> the
>>> tool from staging is used here.
>> Thanks. I don't have a strong opinion one way or the other, but I
>> think the code might be more readable without the explicit
>> $(STAGING_DIR_HOST)/bin prefix.
> Your right It works regardless of whether the prefix is there or not.
> But I would just like to note that it is easier to see whether the
> tools are now used from staging or the build host.
> The tool mkisofs
> https://github.com/openwrt/openwrt/blob/master/target/linux/x86/image/Makefile#L100,
> for example, is used from the build host!
> There is indeed a guard here
> https://github.com/openwrt/openwrt/blob/master/target/linux/x86/Makefile.
> But I am not sure if this is the case everywhere and if it is clear to
> everyone which tool is now being used during development.
> I just wanted to say that I am more in favor of explicitly select
> which tool is now being used.

I think the actual tool used should be in a variable, like 
$(STAGING_HOST_SED). This is very readable and it also makes the list of 
tools used explicitly known. The PATH must still be set for tools to 
find other staging dir tools.

Actually, the host path should be unset to avoid inadvertently using the 
host tools instead of the one of the staging dir.
I personally would prefer using a chroot-ed staging host to avoid any 
host interference.



More information about the openwrt-devel mailing list