Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 12/16 v3] core/legal-info: renumber saved patches
Date: Sun, 31 Jan 2016 21:02:27 +0100	[thread overview]
Message-ID: <20160131200227.GD14626@free.fr> (raw)
In-Reply-To: <56AE639F.3080304@lucaceresoli.net>

Luca, All,

On 2016-01-31 20:42 +0100, Luca Ceresoli spake thusly:
> Yann E. MORIN wrote:
> >Patches we save can come from various locations;
> >   - bundled with Buildroot
> >   - downloaded
> >   - from one or more global-patch-dir
> >
> >It is possible that two patches lying into different locations have the
> >same basename, like so (first is bundled, second is from an hypothetical
> >global-patch-dir):
> >     package/foo/0001-fix-Makefile.patch
> >     /path/to/my/patches/foo/0001-fix-Makefile.patch
> >
> >In that case, we'd save onlt the second patch, overwriting the first.
> 
> onlt -> only

Damned... ;-)

> Indeed for legal-info it would be a serious issue if we silently
> overwrite a patch, resulting in _silently_ missing a patch.

It's not only about missing a patch (althigh that is the worst
outocome), it's also about having dependent patches, like:

    /path/to/buildroot/package/foo/0001-fix-Makefile.patch
    /path/to/global/patch/dir/foo/0001-fix-Makefile.patch

with the second patch furhter changing the *same* part of the Makefile,
so it would overwrite the previous one, but fail to apply.

So, two issues;
  - patches faling to apply (bad, because technically incorrect)
  - missign patches (the worst, because legally incorrect)

> As an alternative solution, Arnout proposed to error out if two patches
> have the same basename. Even though if would avoid the ugly prefixing,
> it would unnecessarily break builds without a need (as far as the
> development is concerned).

I'm not very much in favour of erroring out either... The resulting file
names may _look_ ugly, but I don't care: they are for legal people. ;-)

Seriously, I have the same point of view as Luca here.

[--SNIP--]
> >+# Because patches may come from various places (bundled in Buildroot,
> >+# from one or more global-patch-dir), there might be collisions on the
> >+# basenames of those files.
> >+# We add a new numbering to each patch to ensure unicity of the filenames.
> >+	$$(Q)cpt=1; while read f; do \
> >+		_c=$$$$(printf "%04d" $$$${cpt}); \
> >+		$$(call hardlink-copy,$$$${f},$$($(2)_REDIST_SOURCES_DIR),\
> >+			$$$${_c}-$$$${f##*/}) || exit 1; \
> >+		printf "%s\n" "$$$${_c}-$$$${f##*/}" >>$$($(2)_REDIST_SOURCES_DIR)/series || exit 1; \
> >+		: $$$$((cpt++)); \
> 
> I must admit this is not the most readable piece of code I have seen so
> far... ;)

Hehe! ;-]

> I cannot do anything about the '$$$$'s, but at least I can
> suggest to rename the variables:
> 
>  - cpt -> patch_num
>  - _c -> prefix_num

OK, workd for me.

> But it works fine, thus:
> Tested-by: Luca Ceresoli <luca@lucaceresoli.net>

Thanks.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2016-01-31 20:02 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-28 18:15 [Buildroot] [PATCH 0/16 v3] legal-info improvements and completeness (branch yem/legal-2) Yann E. MORIN
2016-01-28 18:14 ` [Buildroot] [PATCH 01/16 v3] core/legal-info: update the legal-info report header Yann E. MORIN
2016-02-01 22:42   ` Thomas Petazzoni
2016-01-28 18:15 ` [Buildroot] [PATCH 02/16 v3] toolchain/external: add hashes for actual sources Yann E. MORIN
2016-01-31 22:30   ` Arnout Vandecappelle
2016-02-01 13:54     ` Yann E. MORIN
2016-02-01 14:08       ` Arnout Vandecappelle
2016-01-28 18:15 ` [Buildroot] [PATCH 03/16 v3] core/pkg-utils: add macro to hardlink-or-copy Yann E. MORIN
2016-01-30 11:29   ` Luca Ceresoli
2016-01-30 11:55     ` Yann E. MORIN
2016-01-31 22:43   ` Arnout Vandecappelle
2016-02-01 10:13     ` Luca Ceresoli
2016-02-01 11:22       ` Arnout Vandecappelle
2016-01-28 18:15 ` [Buildroot] [PATCH 04/16 v3] core/legal-info: use the macro to install source archives Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 05/16 v3] core/pkg-generic: reorder variables definitions for legal-info Yann E. MORIN
2016-01-30 15:02   ` Luca Ceresoli
2016-01-30 15:46     ` Yann E. MORIN
2016-01-31 22:47   ` Arnout Vandecappelle
2016-01-28 18:15 ` [Buildroot] [PATCH 06/16 v3] core/legal-info: ensure legal-info works in off-line mode Yann E. MORIN
2016-01-30 14:56   ` Luca Ceresoli
2016-01-30 15:24     ` Yann E. MORIN
2016-01-30 15:31       ` Luca Ceresoli
2016-01-30 15:43         ` Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 07/16 v3] core/pkg-generic: add variable to store the package rawname-version Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 08/16 v3] core/legal-info: install source archives in their own sub-dir Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 09/16 v3] core/legal-info: add package version to license directory Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 10/16 v3] core/apply-patches: store full path of applied patches Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 11/16 v3] core/legal-info: also save patches Yann E. MORIN
2016-01-31 10:18   ` Luca Ceresoli
2016-01-28 18:15 ` [Buildroot] [PATCH 12/16 v3] core/legal-info: renumber saved patches Yann E. MORIN
2016-01-31 19:42   ` Luca Ceresoli
2016-01-31 20:02     ` Yann E. MORIN [this message]
2016-01-28 18:15 ` [Buildroot] [PATCH 13/16 v3] core/legal-info: also save extra downloads Yann E. MORIN
2016-01-31 14:38   ` Luca Ceresoli
2016-01-28 18:15 ` [Buildroot] [PATCH 14/16 v3] core/legal-info: generate a hash of all saved files Yann E. MORIN
2016-01-31 14:40   ` Luca Ceresoli
2016-01-28 18:15 ` [Buildroot] [PATCH 15/16 v3] core/legal-info: allow ignoring packages from the legal-info Yann E. MORIN
2016-01-31 20:11   ` Luca Ceresoli
2016-01-31 21:44     ` Yann E. MORIN
2016-01-28 18:15 ` [Buildroot] [PATCH 16/16 v3] core/pkg-virtual: ignore from legal-info output Yann E. MORIN
2016-02-01  9:07   ` Luca Ceresoli

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=20160131200227.GD14626@free.fr \
    --to=yann.morin.1998@free.fr \
    --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