diff --git a/extra/rust/build b/extra/rust/build index 674d17006..f918b1502 100755 --- a/extra/rust/build +++ b/extra/rust/build @@ -5,15 +5,15 @@ # connection requirement per build further enabling checksums # and signature verification by KISS. { - cache_dir=build/cache/2019-11-07 + cache_dir=build/cache/2019-12-19 mkdir -p "$cache_dir" - for tarball in *.tar.gz\?no-extract; do + for tarball in *.tar.xz\?no-extract; do mv -f "$tarball" "$cache_dir/${tarball%%\?no-extract}" done } -patch -p1 < musl-libressl.patch +patch -p1 < musl.patch # 'rust' checksums files in 'vendor/', but we patch a few files. for vendor in libc openssl-sys; do diff --git a/extra/rust/checksums b/extra/rust/checksums index b67e0616a..70c8ff177 100644 --- a/extra/rust/checksums +++ b/extra/rust/checksums @@ -1,5 +1,5 @@ -dd97005578defc10a482bff3e4e728350d2099c60ffcf1f5e189540c39a549ad rustc-1.40.0-src.tar.gz -9c6b49e161e53c174b4fd46825a96b78854cfbcd0971ce846d4edd33c2b5f275 rust-std-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract -07a9705dd77c6859ef921389dc6a958a297030e53571fe015163c79aa93d1e43 rustc-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract -c3a04bfe988f84dc4bffd8b4fef29f2ad461483fd22e4bf329d2189e16213d0c cargo-0.40.0-x86_64-unknown-linux-musl.tar.gz?no-extract -bc6a567b76c3186ac868c13831c402c595015ad48e047387b32f833af460f7fa musl-libressl.patch +38d6742e5c4c98a835de5d6e12a209e442fb3078a03b2c01bab6ea7afb25be6f rustc-1.41.0-src.tar.xz +c647bb7f399b3d18e345b2dab1fb073470582a9298e83d8648f6661544df7279 rust-std-1.40.0-x86_64-unknown-linux-musl.tar.xz?no-extract +769b9e31557fcc0ea2a661f88b679d3dbd62b537807c7b3c75ac6816a1be4fa3 rustc-1.40.0-x86_64-unknown-linux-musl.tar.xz?no-extract +848646326474392bdac70a5bfa06efda4c36e2bbbf088f07456f98c7575844e1 cargo-0.41.0-x86_64-unknown-linux-musl.tar.xz?no-extract +bb6f561f1a6ddd15b32126a024f3b0a4f66555797c1ebd6d1d17b7d604a083ae musl.patch diff --git a/extra/rust/patches/musl-libressl.patch b/extra/rust/patches/musl-libressl.patch deleted file mode 100644 index 334025974..000000000 --- a/extra/rust/patches/musl-libressl.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs -index 8e5fe25..0d3e27e 100644 ---- a/src/bootstrap/compile.rs -+++ b/src/bootstrap/compile.rs -@@ -136,7 +136,7 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: - // with a glibc-targeting toolchain, given we have the appropriate startup - // files. As those shipped with glibc won't work, copy the ones provided by - // musl so we have them on linux-gnu hosts. -- if target.contains("musl") { -+ if target.contains("noop") { - let srcdir = builder.musl_root(target).unwrap().join("lib"); - for &obj in &["crt1.o", "crti.o", "crtn.o"] { - copy_and_stamp(&srcdir, obj); -diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs -index bffe748f3..40f9f597f 100644 ---- a/src/bootstrap/sanity.rs -+++ b/src/bootstrap/sanity.rs -@@ -188,7 +188,7 @@ pub fn check(build: &mut Build) { - } - - // Make sure musl-root is valid -- if target.contains("musl") { -+ if target.contains("noop") { - // If this is a native target (host is also musl) and no musl-root is given, - // fall back to the system toolchain in /usr before giving up - if build.musl_root(*target).is_none() && build.config.build == *target { -diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs -index e294e6398..17fecb3b2 100644 ---- a/src/librustc_target/spec/linux_musl_base.rs -+++ b/src/librustc_target/spec/linux_musl_base.rs -@@ -26,7 +26,7 @@ pub fn opts() -> TargetOptions { - base.post_link_objects_crt.push("crtn.o".to_string()); - - // These targets statically link libc by default -- base.crt_static_default = true; -+ base.crt_static_default = false; - // These targets allow the user to choose between static and dynamic linking. - base.crt_static_respected = true; - -diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs -index f24d957d6..4632212fd 100644 ---- a/src/libunwind/build.rs -+++ b/src/libunwind/build.rs -@@ -10,7 +10,7 @@ fn main() { - // Build the unwinding from libunwind C/C++ source code. - llvm_libunwind::compile(); - } else if target.contains("linux") { -- if target.contains("musl") { -+ if target.contains("noop") { - // linking for musl is handled in lib.rs - llvm_libunwind::compile(); - } else if !target.contains("android") { -diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs -index 8d9164471..3adaaf43d 100644 ---- a/src/libunwind/lib.rs -+++ b/src/libunwind/lib.rs -@@ -20,7 +20,7 @@ cfg_if::cfg_if! { - } - } - --#[cfg(target_env = "musl")] -+#[cfg(target_env = "noop")] - #[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))] - #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] - extern {} -diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs -index 721d24116..26bf271cd 100644 ---- a/vendor/libc/src/unix/mod.rs -+++ b/vendor/libc/src/unix/mod.rs -@@ -296,7 +296,7 @@ cfg_if! { - } else if #[cfg(feature = "std")] { - // cargo build, don't pull in anything extra as the libstd dep - // already pulls in all libs. -- } else if #[cfg(target_env = "musl")] { -+ } else if #[cfg(target_env = "noop")] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", - cfg(target_feature = "crt-static")))] -diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs -index 02b93b90a..27deca5fe 100644 ---- a/vendor/openssl-sys/build/main.rs -+++ b/vendor/openssl-sys/build/main.rs -@@ -183,27 +183,30 @@ See rust-openssl README for more information: - if let Some(libressl_version) = libressl_version { - println!("cargo:libressl_version_number={:x}", libressl_version); - -+ let major = (libressl_version >> 28) as u8; - let minor = (libressl_version >> 20) as u8; - let fix = (libressl_version >> 12) as u8; -- let (minor, fix) = match (minor, fix) { -- (5, 0) => ('5', '0'), -- (5, 1) => ('5', '1'), -- (5, 2) => ('5', '2'), -- (5, _) => ('5', 'x'), -- (6, 0) => ('6', '0'), -- (6, 1) => ('6', '1'), -- (6, 2) => ('6', '2'), -- (6, _) => ('6', 'x'), -- (7, _) => ('7', 'x'), -- (8, 0) => ('8', '0'), -- (8, 1) => ('8', '1'), -- (8, _) => ('8', 'x'), -- (9, 0) => ('9', '0'), -+ let (major, minor, fix) = match (major, minor, fix) { -+ (2, 5, 0) => ('2', '5', '0'), -+ (2, 5, 1) => ('2', '5', '1'), -+ (2, 5, 2) => ('2', '5', '2'), -+ (2, 5, _) => ('2', '5', 'x'), -+ (2, 6, 0) => ('2', '6', '0'), -+ (2, 6, 1) => ('2', '6', '1'), -+ (2, 6, 2) => ('2', '6', '2'), -+ (2, 6, _) => ('2', '6', 'x'), -+ (2, 7, _) => ('2', '7', 'x'), -+ (2, 8, 0) => ('2', '8', '0'), -+ (2, 8, 1) => ('2', '8', '1'), -+ (3, 0, _) => ('3', '0', 'x'), -+ (2, 9, 0) => ('2', '9', '0'), -+ (2, 9, _) => ('2', '9', 'x'), -+ (3, 0, 0) => ('3', '0', '0'), - _ => version_error(), - }; - - println!("cargo:libressl=true"); -- println!("cargo:libressl_version=2{}{}", minor, fix); -+ println!("cargo:libressl_version={}{}{}", major, minor, fix); - println!("cargo:version=101"); - Version::Libressl - } else { diff --git a/testing/rust/patches/musl.patch b/extra/rust/patches/musl.patch similarity index 100% rename from testing/rust/patches/musl.patch rename to extra/rust/patches/musl.patch diff --git a/extra/rust/sources b/extra/rust/sources index a6e7cb5d3..0ca170838 100644 --- a/extra/rust/sources +++ b/extra/rust/sources @@ -1,5 +1,5 @@ -https://static.rust-lang.org/dist/rustc-1.40.0-src.tar.gz -https://static.rust-lang.org/dist/2019-11-07/rust-std-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract -https://static.rust-lang.org/dist/2019-11-07/rustc-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract -https://static.rust-lang.org/dist/2019-11-07/cargo-0.40.0-x86_64-unknown-linux-musl.tar.gz?no-extract -patches/musl-libressl.patch +https://static.rust-lang.org/dist/rustc-1.41.0-src.tar.xz +https://static.rust-lang.org/dist/2019-12-19/rust-std-1.40.0-x86_64-unknown-linux-musl.tar.xz?no-extract +https://static.rust-lang.org/dist/2019-12-19/rustc-1.40.0-x86_64-unknown-linux-musl.tar.xz?no-extract +https://static.rust-lang.org/dist/2019-12-19/cargo-0.41.0-x86_64-unknown-linux-musl.tar.xz?no-extract +patches/musl.patch diff --git a/extra/rust/version b/extra/rust/version index 087701973..bab56fdcd 100644 --- a/extra/rust/version +++ b/extra/rust/version @@ -1 +1 @@ -1.40.0 1 +1.41.0 1 diff --git a/testing/rust/build b/testing/rust/build deleted file mode 100755 index f918b1502..000000000 --- a/testing/rust/build +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -e - -# This package mimics the download process of rust's 'x.py' -# bootstrap library to allow for the removal of the internet -# connection requirement per build further enabling checksums -# and signature verification by KISS. -{ - cache_dir=build/cache/2019-12-19 - mkdir -p "$cache_dir" - - for tarball in *.tar.xz\?no-extract; do - mv -f "$tarball" "$cache_dir/${tarball%%\?no-extract}" - done -} - -patch -p1 < musl.patch - -# 'rust' checksums files in 'vendor/', but we patch a few files. -for vendor in libc openssl-sys; do - sed -i 's/\("files":{\)[^}]*/\1/' "vendor/$vendor/.cargo-checksum.json" -done - -cat > config.toml <