Subject: Re: [bug#30831] [PATCH] gnu: rust: Update rust from 1.22.1 release to 1.24.1

From: [email-masked] (Ludovic Courtès)
Date: Sat, 17 Mar 2018 22:22:35 +0100

Hi Nikolai,

Great piece of work!

Nikolai Merinov <[email-masked]> skribis:

> * gnu/packages/rust.scm (%rust-bootstrap-binaries-version): Update version.
> (%rust-bootstrap-binaries): Update hashsums.
> (cargo-bootstrap): Update minor version.
> (rust): Rename "rustc" to "rust". Update sha256 for tarball. Add cargo related
> dependencies. Install "cargo" as separate "rust" output. Remove substitutes
> for bugs that was fixed in "rustc" source code. Install documentation to
> separate "doc" output. Update configuration according to changes in "rustc"
> source code.
> * guix/build-system/cargo.scm (default-rust): Replace "default-cargo" and
> "default-rustc" functions with "default-rust" function.
> (cargo-build-system): Take only one package as "rust" source. Use "rustc" from
> default output of "rust" package, use "cargo" as "cargo" output of "rust"
> package.
>
> Cargo was moved from separate package to "rust" output because starting from
> 0.25.0 release cargo have no "Cargo.lock" anymore. According to
> https://github.com/rust-lang/cargo/commit/5c9665f41c6b4d3b99d3b9f8b48a286f5f154692
> commit message "cargo" used as "rust" dependency and stable version for
> "cargo" provided through "Cargo.lock" file from "rust-lang/rust"
> repository. As result only way to get stable version of "cargo" is build it from
> "rust" sources.

OK.

>  ;; Should be one less than the current released version.
> -(define %rust-bootstrap-binaries-version "1.21.0")
> +(define %rust-bootstrap-binaries-version "1.23.0")
>  
>  (define %rust-bootstrap-binaries
>    (origin
> @@ -66,15 +66,15 @@
>       (base32
>        (match %host-type
>          ("i686-unknown-linux-gnu"
> -         "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
> +         "0gs283lw6larhjlr02zm9g78djq2f6bdhxj6ls66q0z18zpx0nyw")
>          ("x86_64-unknown-linux-gnu"
> -         "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
> +         "0znw3xxh837i5wlwsbbw6bxdqfa58bxyw3716wbckwyph8xb4d4s")
>          ("armv7-unknown-linux-gnueabihf"
> -         "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
> +         "13mh4qx996rb6c3xygflc10j5zkmcxzjr32340ardwb7ja4jfw2q")
>          ("aarch64-unknown-linux-gnu"
> -         "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
> +         "1irbj73ifdm7xvshma7qp61sadm683dnc57jfg5qc8kdjyyrydrq")
>          ("mips64el-unknown-linux-gnuabi64"
> -         "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
> +         "1wksf07ba9idrj1z6x0hdfjsmhpzzi5idawnkfbhy6cj1g9ihnzv")
>          (_ "")))))) ; Catch-all for other systems.

Instead of incrementing the version number of the bootstrap binaries, do
you think it would be an option to keep 1.22 and build 1.23 from it, or
does that cargo/rust merge prevent it?

That would allow us to build Rust independently from what upstream did,
thereby increasing binary diversity, which I think is a good thing
security-wise.

Thoughts?

Ludo’.