unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Reproducible rust builds
@ 2018-10-12 21:16 Nikolai Merinov
  2018-10-15 20:21 ` Joe Hillenbrand
  0 siblings, 1 reply; 5+ messages in thread
From: Nikolai Merinov @ 2018-10-12 21:16 UTC (permalink / raw)
  To: guix-devel

Hi,

I made some investigations about reproducible builds of rust packages
(at least of my laptop with x86_64 arch) and I got next results:

1. I failed to make rust 1.25.0 reproducible with LLVM 6.0.1, but this
release reproducible if we build it with LLVM 3.9.1. I also tried to
build rust 1.25.0 with internal LLVM and got same reproducibility issue.
2. Rust 1.26.2 reproducible with LLVM 6.0.1 regardless of which LLVM
used for rust 1.25.0. I failed to find any specific changes that allow
this version to be built in reproducible manner with LLVM 6.0.1.
3. There is a same situation with 1.27.2 as with rust 1.25.0:
Reproducible with LLVM 3.9.1, not reproducible with LLVM 6.0.1. Build
with LLVM 3.9.1 step on reproducibility issue in rustdoc, but there is
patch for this issue.
4. Rust 1.28.0 and 1.29.1 releases builds well with LLVM 6.0.1
5. From very first release we missed cargo dependency on libssh2 and
libgit2 and this dependencies was build internally by rust.

Code of reproducible packages for 1.25.0, 1.27.2, 1.28.0, and 1.29.1
rust releases you can find in
https://github.com/mnd/guix-mnd-pkgs/blob/master/mnd/packages/rust.scm

Can you recommend preferable changes for rust packages in GuixSD? I
suggest to make next changes:

1. Switch back to llvm 3.9.1 in rust 1.25.0, 1.26.2, 1.27.2 rust
packages. NOTE: External LLVM 6.0 in rust 1.26.0 and newer allow to use
#[cfg(target-feature)] to check processor features. Prior to 1.26.0
release this feature was supported only with bundled llvm.
2. Use llvm 6.0.1 for rust 1.28.0 and newer.
3. Add external libssh2 and libgit2 dependencies to rust packages.

Open question: To which release should I add dependency on libgit2 and
libssh2? It can be added to rust-1.19 still it was missed from very
beginning or to rust-1.25, because we should change rust-1.25 package in
any case.

Regards,
Nikolai

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-10-17 19:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-12 21:16 Reproducible rust builds Nikolai Merinov
2018-10-15 20:21 ` Joe Hillenbrand
2018-10-15 21:05   ` Nikolai Merinov
2018-10-16 13:22     ` Danny Milosavljevic
2018-10-17 19:21   ` Joe Hillenbrand

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).