diff --git a/.gitignore b/.gitignore index 48c7a41..cc7d9d1 100644 --- a/.gitignore +++ b/.gitignore @@ -170,3 +170,11 @@ /rust-1.30.0-s390x-unknown-linux-gnu.tar.xz /rust-1.30.0-x86_64-unknown-linux-gnu.tar.xz /rustc-1.31.1-src.tar.xz +/rustc-1.32.0-src.tar.xz +/rust-1.31.1-aarch64-unknown-linux-gnu.tar.xz +/rust-1.31.1-armv7-unknown-linux-gnueabihf.tar.xz +/rust-1.31.1-i686-unknown-linux-gnu.tar.xz +/rust-1.31.1-powerpc64le-unknown-linux-gnu.tar.xz +/rust-1.31.1-powerpc64-unknown-linux-gnu.tar.xz +/rust-1.31.1-s390x-unknown-linux-gnu.tar.xz +/rust-1.31.1-x86_64-unknown-linux-gnu.tar.xz diff --git a/0001-Deal-with-EINTR-in-net-timeout-tests.patch b/0001-Deal-with-EINTR-in-net-timeout-tests.patch deleted file mode 100644 index 7e49746..0000000 --- a/0001-Deal-with-EINTR-in-net-timeout-tests.patch +++ /dev/null @@ -1,118 +0,0 @@ -From f107514aef0b25b0d959941df1e45b18a478151b Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Fri, 30 Nov 2018 15:33:40 -0800 -Subject: [PATCH] Deal with EINTR in net timeout tests - -We've seen sporadic QE failures in the timeout tests on this assertion: - - assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut); - -So there's an error, but not either of the expected kinds. Adding a -format to show the kind revealed `ErrorKind::Interrupted` (`EINTR`). - -For the cases that were using `read`, we can just use `read_exact` to -keep trying after interruption. For those using `recv_from`, we have to -manually loop until we get a non-interrupted result. ---- - src/libstd/net/tcp.rs | 10 ++++++---- - src/libstd/net/udp.rs | 20 ++++++++++++++++---- - src/libstd/sys/unix/ext/net.rs | 10 ++++++---- - 3 files changed, 28 insertions(+), 12 deletions(-) - -diff --git a/src/libstd/net/tcp.rs b/src/libstd/net/tcp.rs -index ad212a547579..be797803233a 100644 ---- a/src/libstd/net/tcp.rs -+++ b/src/libstd/net/tcp.rs -@@ -1548,8 +1548,9 @@ mod tests { - - let mut buf = [0; 10]; - let start = Instant::now(); -- let kind = stream.read(&mut buf).err().expect("expected error").kind(); -- assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut); -+ let kind = stream.read_exact(&mut buf).err().expect("expected error").kind(); -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); - assert!(start.elapsed() > Duration::from_millis(400)); - drop(listener); - } -@@ -1570,8 +1571,9 @@ mod tests { - assert_eq!(b"hello world", &buf[..]); - - let start = Instant::now(); -- let kind = stream.read(&mut buf).err().expect("expected error").kind(); -- assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut); -+ let kind = stream.read_exact(&mut buf).err().expect("expected error").kind(); -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); - assert!(start.elapsed() > Duration::from_millis(400)); - drop(listener); - } -diff --git a/src/libstd/net/udp.rs b/src/libstd/net/udp.rs -index 0ebe3284b4f0..fc68abae05a0 100644 ---- a/src/libstd/net/udp.rs -+++ b/src/libstd/net/udp.rs -@@ -1030,8 +1030,14 @@ mod tests { - let mut buf = [0; 10]; - - let start = Instant::now(); -- let kind = stream.recv_from(&mut buf).err().expect("expected error").kind(); -- assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut); -+ loop { -+ let kind = stream.recv_from(&mut buf).err().expect("expected error").kind(); -+ if kind != ErrorKind::Interrupted { -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); -+ break; -+ } -+ } - assert!(start.elapsed() > Duration::from_millis(400)); - } - -@@ -1049,8 +1055,14 @@ mod tests { - assert_eq!(b"hello world", &buf[..]); - - let start = Instant::now(); -- let kind = stream.recv_from(&mut buf).err().expect("expected error").kind(); -- assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut); -+ loop { -+ let kind = stream.recv_from(&mut buf).err().expect("expected error").kind(); -+ if kind != ErrorKind::Interrupted { -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); -+ break; -+ } -+ } - assert!(start.elapsed() > Duration::from_millis(400)); - } - -diff --git a/src/libstd/sys/unix/ext/net.rs b/src/libstd/sys/unix/ext/net.rs -index 55f43ccd7db4..737437c76b7c 100644 ---- a/src/libstd/sys/unix/ext/net.rs -+++ b/src/libstd/sys/unix/ext/net.rs -@@ -1654,8 +1654,9 @@ mod test { - or_panic!(stream.set_read_timeout(Some(Duration::from_millis(1000)))); - - let mut buf = [0; 10]; -- let kind = stream.read(&mut buf).err().expect("expected error").kind(); -- assert!(kind == io::ErrorKind::WouldBlock || kind == io::ErrorKind::TimedOut); -+ let kind = stream.read_exact(&mut buf).err().expect("expected error").kind(); -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); - } - - #[test] -@@ -1675,8 +1676,9 @@ mod test { - or_panic!(stream.read(&mut buf)); - assert_eq!(b"hello world", &buf[..]); - -- let kind = stream.read(&mut buf).err().expect("expected error").kind(); -- assert!(kind == io::ErrorKind::WouldBlock || kind == io::ErrorKind::TimedOut); -+ let kind = stream.read_exact(&mut buf).err().expect("expected error").kind(); -+ assert!(kind == ErrorKind::WouldBlock || kind == ErrorKind::TimedOut, -+ "unexpected_error: {:?}", kind); - } - - // Ensure the `set_read_timeout` and `set_write_timeout` calls return errors --- -2.19.1 - diff --git a/0001-Try-to-get-the-target-triple-from-rustc-itself.patch b/0001-Try-to-get-the-target-triple-from-rustc-itself.patch new file mode 100644 index 0000000..90f3115 --- /dev/null +++ b/0001-Try-to-get-the-target-triple-from-rustc-itself.patch @@ -0,0 +1,90 @@ +From 72cd8aedc2901d6a6b598eadc001cc39040ae487 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Wed, 12 Dec 2018 16:51:31 -0800 +Subject: [PATCH] Try to get the target triple from rustc itself + +The prior method was trying to pick the triple out of the sysroot path. +A FIXME comment already notes that this doesn't work with custom +toolchains in rustup. It also fails with distro-installed toolchains, +where the sysroot may simply be `/usr`. + +The output of `rustc -Vv` is a more reliable source, as it contains a +line like `host: x86_64-unknown-linux-gnu`. This should be enough to +identify the triple for any `rustc`, but just in case, the path-based +code is kept as a fallback. +--- + src/loader.rs | 41 ++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 38 insertions(+), 3 deletions(-) + +diff --git a/src/loader.rs b/src/loader.rs +index 645c95139164..fe92bef1c596 100644 +--- a/src/loader.rs ++++ b/src/loader.rs +@@ -108,9 +108,33 @@ impl AnalysisLoader for CargoAnalysisLoader { + } + } + ++fn extract_target_triple(sys_root_path: &Path) -> String { ++ // First try to get the triple from the rustc version output, ++ // otherwise fall back on the rustup-style toolchain path. ++ extract_rustc_host_triple() ++ .unwrap_or_else(|| extract_rustup_target_triple(sys_root_path)) ++} ++ ++fn extract_rustc_host_triple() -> Option { ++ let rustc = env::var("RUSTC").unwrap_or(String::from("rustc")); ++ let verbose_version = Command::new(rustc) ++ .arg("--verbose") ++ .arg("--version") ++ .output() ++ .ok() ++ .and_then(|out| String::from_utf8(out.stdout).ok())?; ++ ++ // Extracts the triple from a line like `host: x86_64-unknown-linux-gnu` ++ verbose_version ++ .lines() ++ .find(|line| line.starts_with("host: ")) ++ .and_then(|host| host.split_whitespace().nth(1)) ++ .map(String::from) ++} ++ + // FIXME: This can fail when using a custom toolchain in rustup (often linked to + // `/$rust_repo/build/$target/stage2`) +-fn extract_target_triple(sys_root_path: &Path) -> String { ++fn extract_rustup_target_triple(sys_root_path: &Path) -> String { + // Extracts nightly-x86_64-pc-windows-msvc from + // $HOME/.rustup/toolchains/nightly-x86_64-pc-windows-msvc + let toolchain = sys_root_path +@@ -169,7 +193,7 @@ mod tests { + r#"C:\Users\user\.rustup\toolchains\nightly-x86_64-pc-windows-msvc"#, + ); + assert_eq!( +- extract_target_triple(path), ++ extract_rustup_target_triple(path), + String::from("x86_64-pc-windows-msvc") + ); + } +@@ -180,8 +204,19 @@ mod tests { + "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu", + ); + assert_eq!( +- extract_target_triple(path), ++ extract_rustup_target_triple(path), + String::from("x86_64-unknown-linux-gnu") + ); + } ++ ++ #[test] ++ fn target_triple() { ++ let sys_root_path = sys_root_path(); ++ let target_triple = extract_target_triple(&sys_root_path); ++ let target_path = sys_root_path ++ .join("lib") ++ .join("rustlib") ++ .join(&target_triple); ++ assert!(target_path.is_dir(), "{:?} is not a directory!", target_path); ++ } + } +-- +2.19.2 + diff --git a/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch b/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch new file mode 100644 index 0000000..78b84c2 --- /dev/null +++ b/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch @@ -0,0 +1,33 @@ +From d9ddc39052c91568936427e3dee087b608140cf4 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Tue, 8 Jan 2019 13:19:50 -0800 +Subject: [PATCH] lldb_batchmode.py: try `import _thread` for Python 3 + +--- + src/etc/lldb_batchmode.py | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/etc/lldb_batchmode.py b/src/etc/lldb_batchmode.py +index 6b4c44806740..537b419b3279 100644 +--- a/src/etc/lldb_batchmode.py ++++ b/src/etc/lldb_batchmode.py +@@ -18,10 +18,15 @@ import lldb + import os + import sys + import threading +-import thread + import re + import time + ++try: ++ import thread ++except ModuleNotFoundError: ++ # The `thread` module was renamed to `_thread` in Python 3. ++ import _thread as thread ++ + # Set this to True for additional output + DEBUG_OUTPUT = False + +-- +2.20.1 + diff --git a/rust.spec b/rust.spec index 6e3754d..fb5ab5d 100644 --- a/rust.spec +++ b/rust.spec @@ -9,10 +9,10 @@ # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # or nightly wants some beta-YYYY-MM-DD # Note that cargo matches the program version here, not its crate version. -%global bootstrap_rust 1.30.0 -%global bootstrap_cargo 1.30.0 +%global bootstrap_rust 1.31.1 +%global bootstrap_cargo 1.31.0 %global bootstrap_channel %{bootstrap_rust} -%global bootstrap_date 2018-10-25 +%global bootstrap_date 2018-12-20 # Only the specified arches will use bootstrap binaries. #global bootstrap_arches %%{rust_arches} @@ -52,18 +52,9 @@ %bcond_with lldb %endif -# Some sub-packages are versioned independently of the rust compiler and runtime itself. -# Also beware that if any of these are not changed in a version bump, then the release -# number should still increase, not be reset to 1! -%global rustc_version 1.31.1 -%global cargo_version 1.31.0 -%global rustfmt_version 1.0.0 -%global rls_version 1.31.7 -%global clippy_version 0.0.212 - Name: rust -Version: %{rustc_version} -Release: 9%{?dist} +Version: 1.32.0 +Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) # ^ written as: (rust itself) and (bundled libraries) @@ -71,14 +62,17 @@ URL: https://www.rust-lang.org ExclusiveArch: %{rust_arches} %if "%{channel}" == "stable" -%global rustc_package rustc-%{rustc_version}-src +%global rustc_package rustc-%{version}-src %else %global rustc_package rustc-%{channel}-src %endif Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz -# https://github.com/rust-lang/rust/pull/56394 -Patch1: 0001-Deal-with-EINTR-in-net-timeout-tests.patch +# https://github.com/rust-dev-tools/rls-analysis/pull/160 +Patch1: 0001-Try-to-get-the-target-triple-from-rustc-itself.patch + +# https://github.com/rust-lang/rust/pull/57453 +Patch2: 0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -124,10 +118,10 @@ Provides: bundled(%{name}-bootstrap) = %{bootstrap_rust} %else BuildRequires: cargo >= %{bootstrap_cargo} %if 0%{?fedora} >= 27 -BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{rustc_version}) +BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) %else BuildRequires: %{name} >= %{bootstrap_rust} -BuildConflicts: %{name} > %{rustc_version} +BuildConflicts: %{name} > %{version} %endif %global local_rust_root %{_prefix} %endif @@ -190,11 +184,11 @@ Provides: bundled(libbacktrace) = 8.1.0 Provides: bundled(miniz) = 1.16~beta+r1 # Virtual provides for folks who attempt "dnf install rustc" -Provides: rustc = %{rustc_version}-%{release} -Provides: rustc%{?_isa} = %{rustc_version}-%{release} +Provides: rustc = %{version}-%{release} +Provides: rustc%{?_isa} = %{version}-%{release} # Always require our exact standard library -Requires: %{name}-std-static%{?_isa} = %{rustc_version}-%{release} +Requires: %{name}-std-static%{?_isa} = %{version}-%{release} # The C compiler is needed at runtime just for linking. Someday rustc might # invoke the linker directly, and then we'll only need binutils. @@ -260,7 +254,7 @@ This package includes the common functionality for %{name}-gdb and %{name}-lldb. Summary: GDB pretty printers for Rust BuildArch: noarch Requires: gdb -Requires: %{name}-debugger-common = %{rustc_version}-%{release} +Requires: %{name}-debugger-common = %{version}-%{release} %description gdb This package includes the rust-gdb script, which allows easier debugging of Rust @@ -277,7 +271,7 @@ Summary: LLDB pretty printers for Rust Requires: lldb Requires: python2-lldb -Requires: %{name}-debugger-common = %{rustc_version}-%{release} +Requires: %{name}-debugger-common = %{version}-%{release} %description lldb This package includes the rust-lldb script, which allows easier debugging of Rust @@ -300,7 +294,6 @@ its standard library. %package -n cargo Summary: Rust's package manager and build tool -Version: %{cargo_version} %if %with bundled_libgit2 Provides: bundled(libgit2) = 0.27 %endif @@ -319,11 +312,10 @@ and ensure that you'll always get a repeatable build. %package -n cargo-doc Summary: Documentation for Cargo -Version: %{cargo_version} BuildArch: noarch # Cargo no longer builds its own documentation # https://github.com/rust-lang/cargo/pull/4904 -Requires: rust-doc = %{rustc_version}-%{release} +Requires: rust-doc = %{version}-%{release} %description -n cargo-doc This package includes HTML documentation for Cargo. @@ -331,12 +323,11 @@ This package includes HTML documentation for Cargo. %package -n rustfmt Summary: Tool to find and fix Rust formatting issues -Version: %{rustfmt_version} Requires: cargo # The component/package was rustfmt-preview until Rust 1.31. Obsoletes: rustfmt-preview < 1.0.0 -Provides: rustfmt-preview = %{rustfmt_version}-%{release} +Provides: rustfmt-preview = %{version}-%{release} %description -n rustfmt A tool for formatting Rust code according to style guidelines. @@ -344,8 +335,6 @@ A tool for formatting Rust code according to style guidelines. %package -n rls Summary: Rust Language Server for IDE integration -Version: %{rls_version} -Provides: rls = %{rls_version} %if %with bundled_libgit2 Provides: bundled(libgit2) = 0.27 %endif @@ -354,11 +343,11 @@ Provides: bundled(libssh2) = 1.8.1~dev %endif Requires: rust-analysis # /usr/bin/rls is dynamically linked against internal rustc libs -Requires: %{name}%{?_isa} = %{rustc_version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} # The component/package was rls-preview until Rust 1.31. Obsoletes: rls-preview < 1.31.6 -Provides: rls-preview = %{rls_version}-%{release} +Provides: rls-preview = %{version}-%{release} %description -n rls The Rust Language Server provides a server that runs in the background, @@ -369,15 +358,13 @@ reformatting, and code completion, and enables renaming and refactorings. %package -n clippy Summary: Lints to catch common mistakes and improve your Rust code -Version: %{clippy_version} -Provides: clippy = %{clippy_version} Requires: cargo # /usr/bin/clippy-driver is dynamically linked against internal rustc libs -Requires: %{name}%{?_isa} = %{rustc_version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} # The component/package was clippy-preview until Rust 1.31. Obsoletes: clippy-preview <= 0.0.212 -Provides: clippy-preview = %{clippy_version}-%{release} +Provides: clippy-preview = %{version}-%{release} %description -n clippy A collection of lints to catch common mistakes and improve your Rust code. @@ -394,7 +381,7 @@ useful as a reference for code completion tools in various editors. %package analysis Summary: Compiler analysis data for the Rust standard library -Requires: rust-std-static%{?_isa} = %{rustc_version}-%{release} +Requires: rust-std-static%{?_isa} = %{version}-%{release} %description analysis This package contains analysis data files produced with rustc's -Zsave-analysis @@ -414,15 +401,15 @@ test -f '%{local_rust_root}/bin/rustc' %setup -q -n %{rustc_package} +pushd vendor/rls-analysis %patch1 -p1 +popd +%patch2 -p1 %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure %endif -# We're disabling jemalloc, but rust-src still wants it. -# rm -rf src/jemalloc/ - %if %without bundled_llvm rm -rf src/llvm/ %endif @@ -455,7 +442,7 @@ sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \ # The configure macro will modify some autoconf-related files, which upsets # cargo when it tries to verify checksums in those files. If we just truncate # that file list, cargo won't have anything to complain about. -find src/vendor -name .cargo-checksum.json \ +find vendor -name .cargo-checksum.json \ -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' @@ -501,7 +488,6 @@ export LIBSSH2_SYS_USE_PKG_CONFIG=1 %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ %{!?llvm_has_filecheck: --disable-codegen-tests} \ %{!?with_llvm_static: --enable-llvm-link-shared } } \ - --disable-jemalloc \ --disable-rpath \ %{enable_debuginfo} \ --enable-extended \ @@ -699,6 +685,9 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Jan 17 2019 Josh Stone - 1.32.0-1 +- Update to 1.32.0. + * Mon Jan 07 2019 Josh Stone - 1.31.1-9 - Update to 1.31.1 for RLS fixes. diff --git a/sources b/sources index 9da4e0a..6e7d3bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rustc-1.31.1-src.tar.xz) = d6688711452295c41468af214f036499074d82fbeedc3f03560275219c2fae910e623e38e3210176d86f78ba5533ea098da5ff21532c8ad1a5aac132bb74ee02 +SHA512 (rustc-1.32.0-src.tar.xz) = 487c405fed6430f62d2d0c38b65f6223b1c5074c7a0d3734dc8b3bb72fca255f5727e49541749569713a0c3e9a67eff574ba5698e8dceca6f0ef20b50f99aa42 diff --git a/sources-bootstrap b/sources-bootstrap index 2226688..2904e91 100644 --- a/sources-bootstrap +++ b/sources-bootstrap @@ -1,8 +1,8 @@ -SHA512 (rustc-1.31.1-src.tar.xz) = d6688711452295c41468af214f036499074d82fbeedc3f03560275219c2fae910e623e38e3210176d86f78ba5533ea098da5ff21532c8ad1a5aac132bb74ee02 -SHA512 (rust-1.30.0-aarch64-unknown-linux-gnu.tar.xz) = 47459ea5a92418fdbfed9517d2ca741d02d8342e87e8b0e191103ff5407e39da917534445008a036cf043f0e8aff15a5d8c1884b0144ce4022f626fcfb5a46c6 -SHA512 (rust-1.30.0-armv7-unknown-linux-gnueabihf.tar.xz) = c2849807e1fd37dc175ea4e41345076f5b24944471c191539b625eb59183d899c1f416b99bac8365ead20d2b49ede4254ccf39dc8006e17721a031f11fa42348 -SHA512 (rust-1.30.0-i686-unknown-linux-gnu.tar.xz) = 76542f5d1f030696c6fb2aea6d4d7d3cb5739a16b7ce38f85cd7295d8f5ff1f1854266a5d30830898ab2fc06030be10d70f246c1391f241b8d9cba243d9ff992 -SHA512 (rust-1.30.0-powerpc64le-unknown-linux-gnu.tar.xz) = 18095b68c6a5a4be32d4ad3413a251fe570c22d2c793852de6247fde5e061fc6d77bbcd812fff7e5bae7361c9588d7e41ef89ad791da678c89763acddc06a88f -SHA512 (rust-1.30.0-powerpc64-unknown-linux-gnu.tar.xz) = 8d371215eb3ba6b2f1fa9cc05ede5dd1cac873c82dde0f508f962cd27a13b15b814a6a9fdbce92b524dcebbb19294cd607c29d2d123cde1daefb61cd57090010 -SHA512 (rust-1.30.0-s390x-unknown-linux-gnu.tar.xz) = 19a2f218b3104cfa5e5578365cc9927c818ddf721e4e8eb381bba1bd182fdefd9ad085ba4cbe8248fdbf5b173081ca1a2648b5be5fad62a0a324c3ade7f21ae7 -SHA512 (rust-1.30.0-x86_64-unknown-linux-gnu.tar.xz) = 09d272bcc5b062815135d64441162b737078799328418adc4a4734fee69fcb9ad6abcbdc77b399688998481f0453915231b8b6d31b1d4066ac578035272c19f0 +SHA512 (rustc-1.32.0-src.tar.xz) = 487c405fed6430f62d2d0c38b65f6223b1c5074c7a0d3734dc8b3bb72fca255f5727e49541749569713a0c3e9a67eff574ba5698e8dceca6f0ef20b50f99aa42 +SHA512 (rust-1.31.1-aarch64-unknown-linux-gnu.tar.xz) = c45aebda96a2df0e24efc7dc75cb913f6f92f6214582863367f3556a335d9a5ddf5bb487cb33dee7a48ab1d4dc986bd1fcf32f85b75d07558b1d18d89b26fd30 +SHA512 (rust-1.31.1-armv7-unknown-linux-gnueabihf.tar.xz) = 78b1681f44274c9a0bf62c7646c5a2c85164c5f4dd4349a757b512dd82d435a4f2779c4b6653c8c3f66986512438d1b23e4af15defbbe9f489c0119141ef1942 +SHA512 (rust-1.31.1-i686-unknown-linux-gnu.tar.xz) = ee2c2bb2c1bb0f6e7f8eaeb4b2f0a8de7f53e8da675ec05cb56cab9bc4faa18b7075f5843226d7f9459e1208cc3fb1b90c65063b4a5a3828b04f8ff3c93ebe39 +SHA512 (rust-1.31.1-powerpc64le-unknown-linux-gnu.tar.xz) = e64f586b632b85d07e18c61e5ce18a69404d89e302ecd8b4495e09e2b2f62bd3f32455b3d0d81cfa2d0031c003f23797421587cf6f314ce5b18b12157e1e9a3b +SHA512 (rust-1.31.1-powerpc64-unknown-linux-gnu.tar.xz) = 9a4427735e345d5e8f860ceab497c0ea3efd001c04322f5d2ecf0d5ac76e27feb1a247bb42662446ae39bf52eca75455b01a4c27341d6241406aa6feab1d1d4b +SHA512 (rust-1.31.1-s390x-unknown-linux-gnu.tar.xz) = ce6999f7d27468143a9a288fd1bda9f3ec42475f8b8473518be41358a2144317abf8076ed9527a10db94b5b89cf920f04217ce7a78ec214aa3e073a8419675bc +SHA512 (rust-1.31.1-x86_64-unknown-linux-gnu.tar.xz) = 3bf37bc419acd7820c7e33d7b44e6cba7f3b556ca8880fee2f65b1648596f069e0bc590a3a7acc10c60a0328f83787a172650d9c26cf21aa14782dcd9a97ec3a