[Buildroot] [PATCH] Revert "package/pkg-generic.mk: create directories upfront in the configure step"
Yann E. MORIN
yann.morin.1998 at free.fr
Sun Aug 2 20:19:54 UTC 2020
All,
On 2020-08-01 14:01 +0200, Yann E. MORIN spake thusly:
> This _partially_ reverts commit 2dbb0660fb4d89f8eac86fcff08e9b3d0a705917.
>
> Indeed, before 2dbb0660fb, the per-package ../host/ directory was
> explicitly created right before it was populated. With 2dbb0660fb, it
> is now created only at the begining of the configure step.
>
> However, some packages may have download or extract host dependencies,
> and when we are trying to rsync them, the destination .../host/
> directory does not yet exist at the download or wxtract steps, thus the
> build fails. E.g., with wget which needs host-lzip if the system does
> not have it yet:
>
> rsync -a --link-dest=/home/ymorin/dev/buildroot/O/per-package/host-lzip/host/ /home/ymorin/dev/buildroot/O/per-package/host-lzip/host/ /home/ymorin/dev/buildroot/O/per-package/wget/host
> rsync: mkdir "/home/ymorin/dev/buildroot/O/per-package/wget/host" failed: No such file or directory (2)
> rsync error: error in file IO (code 11) at main.c(682) [Receiver=3.1.3]
> make[1]: *** [package/pkg-generic.mk:170: /home/ymorin/dev/buildroot/O/build/wget-1.20.3/.stamp_extracted] Error 11
>
> Kudos to Raphael for pin-pointing the culprit commit.
>
> Fixes:
> http://autobuild.buildroot.org/results/4c8/4c895c7ac0a635d38f5015b5df0393581ad7b508/
> and a slew of similar failures
>
> Notes:
> An alternatative solution would be to move the creation of the
> directories from the configure step to the download step *and* to the
> rsync step, but this is not so nice in the end... Let's just ensure they
> are created where needed: at the configure step, and when populating
> them.
>
> Reported-by: Raphael Jacob <r.jacob2002 at gmail.com>
> Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Applied to master.
Thomas, I applied as a stop-gap measure, but also because I believe this
is semantically correct to do so.
Should you think otherwise, this leaves us a bit more time to devise a
better solution.
Regards,
Yann E. MORIN.
> ---
> package/pkg-utils.mk | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
> index f6de295b7f..ad7a84475a 100644
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -167,6 +167,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
> # $2: 'host' or 'target'
> # $3: destination directory
> define per-package-rsync
> + mkdir -p $(3)
> $(foreach pkg,$(1),\
> rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> $(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> --
> 2.20.1
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list