[Buildroot] [PATCH-NEXT 2/4] package/linux-firmware.mk: get rid of temporary tarball for file installation
Peter Korsgaard
peter at korsgaard.com
Fri Feb 12 21:37:27 UTC 2021
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> Peter, All,
> On 2021-02-12 19:40 +0100, Peter Korsgaard spake thusly:
>> With the upcoming addition of the images-install step,
>> LINUX_FIRMWARE_INSTALl_FILES is called twice, for installing to the target
>> and to the images directory - Which may race with each other and cause
>> problems with the temporary install.tar tarball.
>>
>> There is no specific reason to use a temporary file, we can just as well
>> pipe the two tar invocations together, so do that instead.
> Actually, there *is* a reason why an intermediate tarball is used, see
> commit 21a283ffb0d (linux-firmware: fail build for missing file).
> The idea is that, when we bump the version a firmware file may get
> removed, and we may not notice right when updating (because of the
> many sub-options), and that file is still isted.
> If that is the case, then the first tar will bail out on that missing
> file, and stop right away, thus not including the followign files. But
> because it is on the LHS of a pipe, its return code is ignored.
> Then the second tar is still happy with what it gets, because it is a
> proper tar archive (if the last file in a tarball was extracted
> successfully, there is no way to know if the tarball was truncated or
> not).
> As a consequence, the copy is only partial, and the build does not fail.
Ok, so we need to stick a set -o pipefail before?
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list