From: Herve Codina <herve.codina@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 01/15] package/pkg-generic.mk: detect files overwritten in TARGET_DIR and HOST_DIR
Date: Tue, 22 Jun 2021 09:40:52 +0200 [thread overview]
Message-ID: <20210622094052.01c0a074@bootlin.com> (raw)
In-Reply-To: <20210621213140.GA44262@scaer>
Hi,
On Mon, 21 Jun 2021 23:31:40 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
[...]
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
>
> From here...
>
> > This commit is retreived from Thomas's work.
> > The first version was discussed
> > https://patchwork.ozlabs.org/project/buildroot/patch/20200430095249.782597-9-thomas.petazzoni at bootlin.com/
> > This new version was not already submitted by Thomas or I missed it.
>
> ... to here: this should have been a post-commit note, after the ---
> line...
>
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> > ---
>
> ... here.
>
> Additionally, it would have been nice to summarise the changes made
> between the original submission and htis new one, and how the previous
> review was handled.
I moved the note after a '---' line and added:
Compared to the first version, this patch has an improved commit message and
generates the md5sum snapshot using
'find -L $(1) -type f -print0 | xargs -0 -r md5sum > $($(PKG)_DIR)/.files$(2).md5;'
instead of
'cd $(1); LC_ALL=C find . -type f -exec md5sum {} \; > $($(PKG)_DIR)/.files$(2).md5'
>
> > package/pkg-generic.mk | 23 +++++++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> > diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> > index 45589bcbb4..bb9ff4150a 100644
> > --- a/package/pkg-generic.mk
> > +++ b/package/pkg-generic.mk
> > @@ -102,6 +102,25 @@ define fixup-libtool-files
> > endef
> > endif
> >
> > +# Functions to detect overwritten files
> > +
> > +ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
> > +# $(1): base directory to search in
> > +# $(2): suffix of file (optional)
> > +define pkg_detect_overwrite_before
> > + LC_ALL=C find $(1) -type f -print0 | xargs -0 -r md5sum > $($(PKG)_DIR)/.files$(2).md5;
> > +endef
> > +
> > +# $(1): base directory to search in
> > +# $(2): suffix of file (optional)
> > +define pkg_detect_overwrite_after
> > + if test -s $($(PKG)_DIR)/.files$(2).md5 ; then \
> > + LC_ALL=C md5sum --quiet -c $($(PKG)_DIR)/.files$(2).md5 || \
> > + { echo "ERROR: package $($(PKG)_NAME) has overwritten files installed by a previous package, aborting."; exit 1; } ; \
> > + fi
> > +endef
> > +endif
>
> And now I see that only part of the problem is handled; it only tries
> and detect files which content changes; it does not account for files
> which type did change. I.e. a symlink that was onverted over to a file,
> or the other way around.
>
> So I think we could change the pkg_detect_overwrite_before macro thusly;
>
> LC_ALL=C find -L $(1) -type f -print0 |...
I added '-L' option.
>
> That should cover both cases, with just the esception that a symlink is
> replaced with a file of the same content (or the other way around).
> There's just a little quirk, though:
>
> find: File system loop detected; ?host/usr? is part of the same file
> system loop as ?host?.
>
> Meh, that's starting to be a bit hairy... We can just ignore it
> explicitly, maybe? For merged-usr in target, we should not have that
> problem, but there is still the option for a custom skeleton, where
> people could provide it as well...
>
> So, to summarise: this patch does not cover all cases, but it is still
> acceptable, and brings in the necessary infra that we can later extend
> should the need arises.
>
Ok, v2 with the changes I mentioned will be sent.
Thanks for the review,
Herv? Codina
--
Herv? Codina, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2021-06-22 7:40 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-21 14:11 [Buildroot] [PATCH 00/15] Overwritten file detection and fixes, one more step to TLP build Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 01/15] package/pkg-generic.mk: detect files overwritten in TARGET_DIR and HOST_DIR Herve Codina
2021-06-21 21:31 ` Yann E. MORIN
2021-06-22 7:40 ` Herve Codina [this message]
2021-06-22 9:30 ` Thomas Petazzoni
2021-06-22 9:57 ` Nicolas Cavallari
2021-06-22 10:24 ` Yann E. MORIN
2021-06-24 14:09 ` Herve Codina
2021-06-24 16:18 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 02/15] package/e2fsprogs: fix fsck overwrite in HOST_DIR Herve Codina
2021-06-21 20:52 ` Thomas Petazzoni
2021-06-22 16:26 ` Herve Codina
2021-06-22 19:40 ` Yann E. MORIN
2021-06-24 14:13 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 03/15] package/pkg-generic.mk: Remove Info documents dir entry Herve Codina
2021-06-21 20:51 ` Thomas Petazzoni
2021-06-22 8:43 ` Herve Codina
2021-06-22 9:34 ` Thomas Petazzoni
2021-06-22 20:18 ` Yann E. MORIN
2021-06-24 15:03 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 04/15] package/pkg-generic.mk: Fix .la files overwrite detection Herve Codina
2021-06-21 20:54 ` Thomas Petazzoni
2021-06-22 18:01 ` Herve Codina
2021-06-21 21:42 ` Yann E. MORIN
2021-06-22 9:31 ` Herve Codina
2021-06-22 9:56 ` Yann E. MORIN
2021-06-22 10:12 ` Thomas Petazzoni
2021-06-22 10:30 ` Yann E. MORIN
2021-06-24 15:44 ` Herve Codina
2021-06-24 16:22 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 05/15] package/pkg-generic.mk: Perform .la files fixup in per-package HOST_DIR Herve Codina
2021-06-21 20:48 ` Thomas Petazzoni
2021-06-22 9:38 ` Herve Codina
2021-06-22 10:12 ` Yann E. MORIN
2021-06-24 16:20 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 06/15] package/pkg-generic.mk: Introduce <PKG>_PER_PACKAGE_TWEAK_HOOKS Herve Codina
2021-06-21 15:10 ` Thomas Petazzoni
2021-06-22 20:39 ` Yann E. MORIN
2021-06-23 12:40 ` Thomas Petazzoni
2021-06-25 7:15 ` Herve Codina
2021-06-25 7:21 ` Herve Codina
2021-07-02 7:18 ` Herve Codina
2021-07-03 6:21 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 07/15] package/apr-util: Use <PKG>_PER_PACKAGE_TWEAK_HOOKS Herve Codina
2021-06-21 20:56 ` Thomas Petazzoni
2021-06-22 9:47 ` Herve Codina
2021-06-22 20:42 ` Yann E. MORIN
2021-06-25 7:30 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 08/15] package/apache: Move APACHE_FIXUP_APR_LIBTOOL to <PKG>_PER_PACKAGE_TWEAK_HOOKS Herve Codina
2021-06-22 20:43 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 09/15] package/pkg-python: Remove _sysconfigdata*.pyc files when _sysconfigdata*.py are changed Herve Codina
2021-06-21 15:12 ` Thomas Petazzoni
2021-06-22 17:52 ` Herve Codina
2021-06-22 20:50 ` Yann E. MORIN
2021-06-25 8:04 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 10/15] package/pkg-generic.mk: Move python fixup to generic package infrastructure Herve Codina
2021-06-22 21:01 ` Yann E. MORIN
2021-06-25 8:22 ` Herve Codina
2021-06-25 9:27 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 11/15] package/owfs: Remove Python sysconfigdata fixup Herve Codina
2021-06-22 21:02 ` Yann E. MORIN
2021-06-25 8:25 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 12/15] package/pkg-generic.mk: Generate final rsync exclude file list Herve Codina
2021-06-22 21:15 ` Yann E. MORIN
2021-06-25 9:05 ` Herve Codina
2021-06-25 9:32 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 13/15] Makefile: Rsync global {TARGET, HOST}_DIR using exclusion " Herve Codina
2021-06-24 20:20 ` Yann E. MORIN
2021-06-24 20:34 ` Yann E. MORIN
2021-06-25 11:59 ` Herve Codina
2021-06-25 12:50 ` Yann E. MORIN
2021-06-25 12:00 ` Herve Codina
2021-06-21 14:11 ` [Buildroot] [PATCH 14/15] Makefile: Breaks hardlinks in global {TARGET, HOST}_DIR on per-package build Herve Codina
2021-06-24 20:22 ` Yann E. MORIN
2021-06-21 14:11 ` [Buildroot] [PATCH 15/15] package/pkg-generic.mk: Fix per-package <pkg>-{reconfigure, rebuild, reinstall} Herve Codina
2021-06-24 20:44 ` Yann E. MORIN
2021-06-25 14:00 ` Herve Codina
2021-06-21 20:42 ` [Buildroot] [PATCH 00/15] Overwritten file detection and fixes, one more step to TLP build Arnout Vandecappelle
2021-07-06 14:15 ` Herve Codina
2021-06-24 20:53 ` Yann E. MORIN
2021-06-25 9:08 ` Andreas Naumann
2021-06-25 13:13 ` Herve Codina
2021-06-25 14:55 ` Andreas Naumann
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=20210622094052.01c0a074@bootlin.com \
--to=herve.codina@bootlin.com \
--cc=buildroot@busybox.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox