From: Herve Codina via buildroot <buildroot@buildroot.org>
To: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 2/2] package/pkg-utils: teach per-package-rsync to copy or hardlink dest
Date: Wed, 18 Oct 2023 10:53:01 +0200 [thread overview]
Message-ID: <20231018105301.495c5899@bootlin.com> (raw)
In-Reply-To: <3a0be46ecee62af708a5c63ebcd4845228fc29a5.1697576472.git.yann.morin.1998@free.fr>
Hi Yann,
On Tue, 17 Oct 2023 23:01:20 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> commit 21d52e52d8de (package/pkg-utils.mk: break hardlinks in global
> {TARGET, HOST}_DIR on per-package build) was recently reverted, so we
> are back to a situation where it is possible for packages and post-build
> scripts to modify files in-place, and thus impact files in any arbitrary
> per-package directory, which may break things on rebuild for example.
>
> 21d52e52d8de wsa too big a hammer, but we can still apply the reasoning
s/wsa/was/
> from it, to the aggregation of the final target and host directories.
>
> This solves the case for post-build scripts at least. We leave the case
> of inter-package modification aside, as it is a bigger issue that will
> need more than jsut copying files around.
s/jsut/just/
>
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
> Cc: Herve Codina <herve.codina@bootlin.com>
> Cc: Peter Korsgaard <peter@korsgaard.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> Makefile | 4 ++--
> package/pkg-utils.mk | 15 ++++++++++++---
> 2 files changed, 14 insertions(+), 5 deletions(-)
>
[...]
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -214,10 +214,19 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
> # $1: space-separated list of packages to rsync from
> # $2: 'host' or 'target'
> # $3: destination directory
> +# $4: literal "copy" or "hardlink" to copy or hardlink files from src to dest
> define per-package-rsync
> mkdir -p $(3)
> $(foreach pkg,$(1),\
> - rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> + rsync -a \
> + --hard-links \
You preserve hard links (--hard-links) in all cases (copy and hardlink).
In case of copy, is it correct to preserve hard links ?
> + $(if $(filter hardlink,$(4)), \
> + --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/, \
> + $(if $(filter copy,$(4)), \
> + $(empty), \
> + $(error per-package-rsync can only "copy" or "hardlink", not "$(4)") \
> + ) \
> + ) \
> $(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> $(3)$(sep))
> endef
[...]
Best regards,
Hervé
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2023-10-18 8:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 21:01 [Buildroot] [PATCH 0/2] package/pkg-utils: fix regression in size and build time with PPD (branch yem/rsync-copy) Yann E. MORIN
2023-10-17 21:01 ` [Buildroot] [PATCH 1/2] Revert "package/pkg-utils.mk: break hardlinks in global {TARGET, HOST}_DIR on per-package build" Yann E. MORIN
2023-10-18 8:38 ` Herve Codina via buildroot
2023-10-26 18:34 ` Peter Korsgaard
2023-10-17 21:01 ` [Buildroot] [PATCH 2/2] package/pkg-utils: teach per-package-rsync to copy or hardlink dest Yann E. MORIN
2023-10-18 8:53 ` Herve Codina via buildroot [this message]
2023-10-18 15:20 ` Yann E. MORIN
2023-10-18 15:38 ` Herve Codina via buildroot
2023-10-18 16:18 ` Yann E. MORIN
2023-10-18 16:42 ` Herve Codina via buildroot
2023-10-26 18:34 ` Peter Korsgaard
2023-10-21 19:25 ` [Buildroot] [PATCH 0/2] package/pkg-utils: fix regression in size and build time with PPD (branch yem/rsync-copy) Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231018105301.495c5899@bootlin.com \
--to=buildroot@buildroot.org \
--cc=herve.codina@bootlin.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=yann.morin.1998@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.