buildroot.busybox.net archive mirror
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Herve Codina <herve.codina@bootlin.com>,
	Naumann Andreas <ANaumann@ultratronik.de>,
	Peter Seiderer <ps.report@gmx.net>,
	Julien Corjon <corjon.j@ecagroup.com>,
	buildroot@buildroot.org,
	Ricardo Martincoski <ricardo.martincoski@gmail.com>
Subject: Re: [Buildroot] [PATCH v3 07/16] package/pkg-generic.mk: detect files overwritten in TARGET_DIR and HOST_DIR
Date: Sun, 29 Aug 2021 18:40:31 +0200	[thread overview]
Message-ID: <20210829164031.GB1053080@scaer> (raw)
In-Reply-To: <20210829125121.GA1053080@scaer>

Thomas, All,

On 2021-08-29 14:51 +0200, Yann E. MORIN spake thusly:
[--SNIP--]
> Finally, as a side note: there is still a case of file overwrite that we
> do not detect, even with this series: if two packages that are not part
> of the same dependency chain (i.e. they do not depend one on the other),
> and they both install the same file, then the file-overwrite will only
> happen when we eventually assemble the global target/ and host/ from the
> individual PPD target/ and host/ and we still have to add a detection
> for that case (which is not a pre-requisite before we apply the current
> series, of course).

And of course, this will also cause an overwrite when two such packages
are also dependencies of a third patckage, and so when the PPD of that
third package is prepared, we would have to detect file overwrite.

Note: let's assume the following hypotetical dependency graph (where the
notation A --<-- B means that B depends on A):

      .-<-- A --<-.                 S: skeleton
     /             \                F: target-finalize
    S --<-- B --<-- C
     \               \
      `-<-- D --<-----<-- F

If A and B both install the same file, then we do not have a sane PPD
to build C.

If D and any package in the dependency chain of C (i.e. S, A, B, or C
itself) install the same file, then we can only detect it in
target-finalize.

So, let's take a step back, and have a wider look. I wonder if the end
of a package installation step is the best location to detected file
overwrite...

Indeed, let's assume that we do file overwrite detection:

 1. in PPD preparation (when we rsync the dependencies, in the macro
    per-package-rsync): we can also detect that a package overwrites one
    or more files of another package, report those files, *and* prevent
    building a package with unsound dependencies;

 2. in {target,host}-finalize: we can detect that a package overwrites
    one or more files provided by another package, and report those
    files.

So, the above (still theoretical implementation) is all we would need,
in the end, and we would not need to do the detection at the end of a
package installation step of each package, because it would not provide
any information that we couldn't have with the above.

However, a benefit of also doing it at the end of the installation step,
of a package, is that we can cut short on the build time. However, I am
not sure that benefit is that important or major...

So, I'd like we think a bit harder before we apply this patch...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

  reply	other threads:[~2021-08-29 16:41 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17  8:39 [Buildroot] [PATCH v3 00/16] Overwritten file detection and fixes, one more step to TLP build Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 01/16] package/pkg-python: fix PKG_PYTHON_FIXUP_SYSCONFIGDATA Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 02/16] package/pkg-python: invalidate precompiled _sysconfigdata*.pyc Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 03/16] package/pkg-generic.mk: move python fixup to generic package infrastructure Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 04/16] package/owfs: remove Python sysconfigdata fixup Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 05/16] qt5: Fix sporadic build failure during top-level parallel build Herve Codina
2021-08-28 16:38   ` Yann E. MORIN
2021-08-28 17:39     ` Yann E. MORIN
2021-08-28 20:19   ` Yann E. MORIN
2021-08-17  8:39 ` [Buildroot] [PATCH v3 06/16] package/pkg-qmake.mk: Move QT5_QT_CONF_FIXUP to post-prepare hook Herve Codina
2021-08-28 20:19   ` Yann E. MORIN
2021-08-17  8:39 ` [Buildroot] [PATCH v3 07/16] package/pkg-generic.mk: detect files overwritten in TARGET_DIR and HOST_DIR Herve Codina
2021-08-28 22:47   ` Yann E. MORIN
2021-08-29 11:39     ` Thomas Petazzoni
2021-08-29 12:51       ` Yann E. MORIN
2021-08-29 16:40         ` Yann E. MORIN [this message]
2021-08-30  9:46           ` Arnout Vandecappelle
2021-08-29 15:01       ` Arnout Vandecappelle
2021-08-31 15:35         ` Andreas Naumann
2021-09-17 19:43   ` Yann E. MORIN
2021-08-17  8:39 ` [Buildroot] [PATCH v3 08/16] package/pkg-generic.mk: generate final rsync exclude file list Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 09/16] Makefile: rsync global {TARGET, HOST}_DIR using exclusion " Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 10/16] Makefile: breaks hardlinks in global {TARGET, HOST}_DIR on per-package build Herve Codina
2021-09-17 19:51   ` Yann E. MORIN
2023-10-01 12:56   ` Peter Korsgaard
2023-10-13 14:36     ` Peter Korsgaard
2021-08-17  8:39 ` [Buildroot] [PATCH v3 11/16] package/pkg-generic.mk: fix per-package <pkg>-{reconfigure, rebuild, reinstall} Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 12/16] package/pkg-generic.mk: remove .files-final-rsync.before temporary file Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 13/16] support/testing/infra: add log_file_path() function Herve Codina
2021-08-29 10:42   ` Yann E. MORIN
2021-08-17  8:39 ` [Buildroot] [PATCH v3 14/16] support/testing/tests: add test for check_bin_arch Herve Codina
2021-08-29 10:46   ` Yann E. MORIN
2021-08-17  8:39 ` [Buildroot] [PATCH v3 15/16] support/testing/tests: add test for file overwrite detection Herve Codina
2021-08-17  8:39 ` [Buildroot] [PATCH v3 16/16] package/pkg-generic.mk: move fixup-libtool-files to post-prepare hook Herve Codina
2021-08-28 14:47 ` [Buildroot] [PATCH v3 00/16] Overwritten file detection and fixes, one more step to TLP build 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=20210829164031.GB1053080@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=ANaumann@ultratronik.de \
    --cc=buildroot@buildroot.org \
    --cc=corjon.j@ecagroup.com \
    --cc=herve.codina@bootlin.com \
    --cc=ps.report@gmx.net \
    --cc=ricardo.martincoski@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    /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;
as well as URLs for NNTP newsgroup(s).