Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Antoine Coutant <antoine.coutant@smile.fr>,
	romain.naour@smile.fr, sebastian.weyer@smile.fr,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2 2/3] package/ripgrep: bump to version 14.0.3
Date: Sat, 30 Dec 2023 23:08:49 +0100	[thread overview]
Message-ID: <ZZCU8UABqefYpf8n@landeda> (raw)
In-Reply-To: <ZZBzIdHGdJufQNWn@landeda>

Thomas, Antoine, All,

On 2023-12-30 20:44 +0100, Yann E. MORIN spake thusly:
> On 2023-12-30 19:00 +0100, Thomas Petazzoni via buildroot spake thusly:
> > On Fri, 29 Dec 2023 23:13:35 +0100
> > "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> > > If that's so, then we have a big problem: the hashes for all the
> > > cargo-based packages will change, and thus it means we will have to
> > > name the generated archive based on the cargo version used to do the
> > > vendoring. That would apply to:
> > Note that I also encountered some hash mismatch on some Rust/Cargo
> > package recently, and BR was falling back to sources.buildroot.net. I
> > did not have the time to investigate at the time (I was looking into
> > another issue, and didn't want to enter an infinite recursion of
> > problem solving quest). And now, I don't remember with which package I
> > encountered this. But yes, it seems like we have a reproducibility
> > issue.
[--SNIP--]
>   - ripgrep fails vendoring, and reports the same hash failure
>   - host-sentry-cli fails vendoring, again with the same reported hash
>     failure

diffoscope to the rescue: the only change in either package, is a single
file that got its mode bits changed (context elided for brevity):

    --- ripgrep-af6b6c543b224d348a8876f0c06245d9ea7929c5.tar
    +++ ripgrep-af6b6c543b224d348a8876f0c06245d9ea7929c5-2.tar
    ├── file list
    │ @@ -2731,1 +2731,1 @@
    │ --rwxr-x---   0        0        0    10719 2021-06-12 12:12:24.000000 ripgrep-af6b6c543b224d348a8876f0c06245d9ea7929c5/VENDOR/unicode-width/scripts/unicode.py
    │ +-rwxr-x--x   0        0        0    10719 2021-06-12 12:12:24.000000 ripgrep-af6b6c543b224d348a8876f0c06245d9ea7929c5/VENDOR/unicode-width/scripts/unicode.py

    --- sentry-cli-2.20.3.tar
    +++ sentry-cli-2.20.3-2.tar
    ├── file list
    │ @@ -15292,1 +15292,1 @@
    │ --rwx------   0        0        0     1796 2023-07-31 09:58:46.000000 sentry-cli-2.20.3/VENDOR/username/src/lib.rs
    │ +-rwx--x--x   0        0        0     1796 2023-07-31 09:58:46.000000 sentry-cli-2.20.3/VENDOR/username/src/lib.rs

In either case, a single file had its mode bits changed, and it smells
like go+X was applied.

It seems that cargo did change its behaviour at some point, as the
archive as manually downloaded from crates.io does have the executable
bits as we originally expected:

    $ wget -O unicode-width-0.1.8.tar.gz https://crates.io/api/v1/crates/unicode-width/0.1.8/download
    $ tar xzf unicode-width-0.1.8.tar.gz
    $ ls -hl unicode-width-0.1.8/scripts/unicode.py
    -rwxr-x---. 1 ymorin ymorin 11K Jun 29  2020 unicode-width-0.1.8/scripts/unicode.py*
    $ wget -O username-0.2.0.tar.gz https://crates.io/api/v1/crates/username/0.2.0/download
    $ tar xzf username-0.2.0.tar.gz
    $ ls -hl username-0.2.0/src/lib.rs
    -rwx------. 1 ymorin ymorin 1.8K Aug 10  2017 username-0.2.0/src/lib.rs

I could not find anything relevant in the cargo bug tracker:
    https://github.com/rust-lang/cargo/issues?q=is%3Aissue+vendor+executable+bit

So, I have no clue what the best course of action would be. The
short-term workaround is to chop-off one more digit from the ripgrep
version and recalculate a new hash for it, and for sentry-cli maybe we
can update the version (or switch to a commit hash).

Probably we will want at some point to introduce a vendoring version,
like we have for the git and svn methods. so that we can update rust
(and thus cargo) without requiring a version bump/tweak for all affected
packages...

As an aside, the situation for sentry-cli is a bit concerning: the
'username' crate only ever had one release, 0.2.0, over 6 years ago
now, and the documentation and repository listed on the crates.io
page no longer exist:

    https://crates.io/crates/username
    http://pijul.org/user/doc/user/index.html   => 404
    https://pijul.org/darcs/user                => 404

Meh?...

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@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2023-12-30 22:09 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-28 15:26 [Buildroot] [PATCH v2 1/3] package/{rust, rust-bin}: bump to version 1.74.1 Antoine Coutant
2023-12-28 15:26 ` [Buildroot] [PATCH v2 2/3] package/ripgrep: bump to version 14.0.3 Antoine Coutant
2023-12-29 22:13   ` Yann E. MORIN
2023-12-30 18:00     ` Thomas Petazzoni via buildroot
2023-12-30 19:44       ` Yann E. MORIN
2023-12-30 22:08         ` Yann E. MORIN [this message]
2023-12-31  9:25         ` Yann E. MORIN
2023-12-31 11:01           ` Yann E. MORIN
2023-12-31 14:25             ` Yann E. MORIN
2023-12-31 14:36   ` Yann E. MORIN
2024-01-10 14:22     ` Romain Naour
2024-01-10 14:29     ` Antoine Coutant
2024-01-10 20:27       ` Yann E. MORIN
2023-12-28 15:26 ` [Buildroot] [PATCH v2 3/3] support/testing: test_rust.py: Add test to check correct vendoring Antoine Coutant
2023-12-30 18:01 ` [Buildroot] [PATCH v2 1/3] package/{rust, rust-bin}: bump to version 1.74.1 Thomas Petazzoni via buildroot

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=ZZCU8UABqefYpf8n@landeda \
    --to=yann.morin.1998@free.fr \
    --cc=antoine.coutant@smile.fr \
    --cc=buildroot@buildroot.org \
    --cc=romain.naour@smile.fr \
    --cc=sebastian.weyer@smile.fr \
    --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