Hello community, here is the log from the commit of package rust for openSUSE:Factory checked in at 2019-04-02 09:18:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rust (Old) and /work/SRC/openSUSE:Factory/.rust.new.25356 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rust" Tue Apr 2 09:18:58 2019 rev:35 rq:687578 version:1.33.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rust/rust.changes 2019-03-05 12:18:23.288968344 +0100 +++ /work/SRC/openSUSE:Factory/.rust.new.25356/rust.changes 2019-04-02 09:19:02.716566546 +0200 @@ -1,0 +2,133 @@ +Fri Mar 22 00:02:26 UTC 2019 - Luke Jones <[email protected]> + +- Explicitly build only a subset of tools + +------------------------------------------------------------------- +Sat Mar 16 01:19:22 UTC 2019 - Luke Jones <[email protected]> + +- Remove miri complete instead of excluding. This is experimental + and so should not be included. +- BuildRequires ccache in attempt to reduce compile times. +- Remove more extraneous directories from src that will never be + used. +- Extra patterns in rpmlintrc to catch more false positives: + + Rust has no stable API, ignore SONAME warnings + + Tool versions don't update in step with rust, ignore warnings + +------------------------------------------------------------------- +Wed Mar 6 09:07:43 UTC 2019 - Luke Jones <[email protected]> + +- Separate the bootstrap version from the minimum required system + version for package builds. + +------------------------------------------------------------------- +Mon Mar 4 08:17:43 UTC 2019 - Luke Jones <[email protected]> + +- add depreciated-trim_left_matches.patch: replaces depreciated + function call in src/tools/tidy with trim_start_matches to fix + error when bootstrapping with system 1.33.0 + +------------------------------------------------------------------- +Sat Mar 2 05:17:36 UTC 2019 - Luke Jones <[email protected]> + +- Update to version 1.33.0 + + Language + - You can now use the `cfg(target_vendor)` attribute. E.g. + `#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }` + - Integer patterns such as in a match expression can now be exhaustive. + E.g. You can have match statement on a `u8` that covers `0..=255` and + you would no longer be required to have a `_ => unreachable!()` case. + - You can now have multiple patterns in `if let` and `while let` + expressions. You can do this with the same syntax as a `match` + expression. E.g. + ``` + enum Creature { + Crab(String), + Lobster(String), + Person(String), + } + + fn main() { + let state = Creature::Crab("Ferris"); + + if let Creature::Crab(name) | Creature::Person(name) = state { + println!("This creature's name is: {}", name); + } + } + ``` + - You can now have irrefutable `if let` and `while let` patterns. Using + this feature will by default produce a warning as this behaviour can be + unintuitive. E.g. `if let _ = 5 {}` + - You can now use `let` bindings, assignments, expression statements, + and irrefutable pattern destructuring in const functions. + - You can now call unsafe const functions. E.g. + ``` + const unsafe fn foo() -> i32 { 5 } + const fn bar() -> i32 { + unsafe { foo() } + } + ``` + - You can now specify multiple attributes in a `cfg_attr` attribute. + E.g. `#[cfg_attr(all(), must_use, optimize)]` + - You can now specify a specific alignment with the `#[repr(packed)]` + attribute. E.g. `#[repr(packed(2))] struct Foo(i16, i32);` is a struct + with an alignment of 2 bytes and a size of 6 bytes. + - You can now import an item from a module as an `_`. This allows you to + import a trait's impls, and not have the name in the namespace. E.g. + ``` + use std::io::Read as _; + + // Allowed as there is only one `Read` in the module. + pub trait Read {} + ``` + - extern` functions will now abort by default when panicking. + This was previously undefined behaviour. + + Compiler + - You can now set a linker flavor for `rustc` with the `-Clinker-flavor` + command line argument. + - The mininum required LLVM version has been bumped to 6.0. + - Added support for the PowerPC64 architecture on FreeBSD. + - The `x86_64-fortanix-unknown-sgx` target support has been upgraded to + tier 2 support. Visit the [platform support][platform-support] page for + information on Rust's platform support. + - Added support for the `thumbv7neon-linux-androideabi` and + `thumbv7neon-unknown-linux-gnueabihf` targets. + - Added support for the `x86_64-unknown-uefi` target. + + + Libraries + - The methods `overflowing_{add, sub, mul, shl, shr}` are now `const` + functions for all numeric types. + - The methods `rotate_left`, `rotate_right`, and `wrapping_{add, sub, mul, shl, shr}` + are now `const` functions for all numeric types. + - The methods `is_positive` and `is_negative` are now `const` functions for + all signed numeric types. + - The `get` method for all `NonZero` types is now `const`. + - The methods `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`, + `swap_bytes`, `from_be`, `from_le`, `to_be`, `to_le` are now `const` for all + numeric types. + - Ipv4Addr::new` is now a `const` function + + Stabilized APIs + - unix::FileExt::read_exact_at + - unix::FileExt::write_all_at + - Option::transpose + - Result::transpose + - convert::identity + - pin::Pin + - marker::Unpin + - marker::PhantomPinned + - Vec::resize_with + - VecDeque::resize_with + - Duration::as_millis + - Duration::as_micros + - Duration::as_nanos + + Cargo + - Cargo should now rebuild a crate if a file was modified during the initial + build.][cargo/6484] + + + Compatibility Notes + - The methods `str::{trim_left, trim_right, trim_left_matches, trim_right_matches}` + are now deprecated in the standard library, and their usage will now produce a warning. + Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}` + methods instead. + +------------------------------------------------------------------- Old: ---- rustc-1.32.0-src.tar.xz New: ---- depreciated-trim_left_matches.patch rustc-1.33.0-src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rust.spec ++++++ --- /var/tmp/diff_new_pack.DJkJrN/_old 2019-04-02 09:19:19.316568938 +0200 +++ /var/tmp/diff_new_pack.DJkJrN/_new 2019-04-02 09:19:19.320568939 +0200 @@ -13,11 +13,13 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%global prev_rust 1.32.0 +%global version_current 1.33.0 +%global version_previous 1.32.0 +%global version_bootstrap 1.32.0 # some sub-packages are versioned independantly %global rustfmt_version 1.0.0 %global rls_version 1.31.6 @@ -79,7 +81,7 @@ %global rustflags -Clink-arg=-Wl,-z,relro,-z,now Name: rust -Version: 1.32.0 +Version: %{version_current} Release: 0 Summary: A systems programming language License: MIT OR Apache-2.0 @@ -87,16 +89,19 @@ Url: https://www.rust-lang.org Source0: %{dl_url}/rustc-%{version}-src.tar.xz Source99: %{name}-rpmlintrc -Source100: %{dl_url}/rust-%{prev_rust}-x86_64-unknown-linux-gnu.tar.xz -Source101: %{dl_url}/rust-%{prev_rust}-i686-unknown-linux-gnu.tar.xz -Source102: %{dl_url}/rust-%{prev_rust}-aarch64-unknown-linux-gnu.tar.xz -Source103: %{dl_url}/rust-%{prev_rust}-armv7-unknown-linux-gnueabihf.tar.xz -Source104: %{dl_url}/rust-%{prev_rust}-arm-unknown-linux-gnueabihf.tar.xz -Source105: %{dl_url}/rust-%{prev_rust}-powerpc64-unknown-linux-gnu.tar.xz -Source106: %{dl_url}/rust-%{prev_rust}-powerpc64le-unknown-linux-gnu.tar.xz -Source107: %{dl_url}/rust-%{prev_rust}-s390x-unknown-linux-gnu.tar.xz +Source100: %{dl_url}/rust-%{version_bootstrap}-x86_64-unknown-linux-gnu.tar.xz +Source101: %{dl_url}/rust-%{version_bootstrap}-i686-unknown-linux-gnu.tar.xz +Source102: %{dl_url}/rust-%{version_bootstrap}-aarch64-unknown-linux-gnu.tar.xz +Source103: %{dl_url}/rust-%{version_bootstrap}-armv7-unknown-linux-gnueabihf.tar.xz +Source104: %{dl_url}/rust-%{version_bootstrap}-arm-unknown-linux-gnueabihf.tar.xz +Source105: %{dl_url}/rust-%{version_bootstrap}-powerpc64-unknown-linux-gnu.tar.xz +Source106: %{dl_url}/rust-%{version_bootstrap}-powerpc64le-unknown-linux-gnu.tar.xz +Source107: %{dl_url}/rust-%{version_bootstrap}-s390x-unknown-linux-gnu.tar.xz # PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag Patch0: ignore-Wstring-conversion.patch +# PATCH-FIX-OPENSUSE: replace depreciated trim_left_matches with trim_start_matches +Patch1: depreciated-trim_left_matches.patch +BuildRequires: ccache # Leap 42 to 42.3, SLE12 SP1, SP2 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120200 # In these distros cmake is 2.x, so we need cmake3 for building llvm. @@ -137,18 +142,18 @@ %endif # Real LLVM minimum version should be 7.x, but rust has a fallback mode %if !%with bundled_llvm -BuildRequires: llvm-devel >= 7.0 +BuildRequires: llvm-devel >= 6.0 %endif %if !%with rust_bootstrap # We will now package cargo using the version number of rustc since # it is being built from rust sources. Old cargo packages have a 0.x number -BuildRequires: cargo <= %{version} -BuildRequires: cargo >= %{prev_rust} -BuildRequires: rust <= %{version} -BuildRequires: rust >= %{prev_rust} +BuildRequires: cargo <= %{version_current} +BuildRequires: cargo >= %{version_previous} +BuildRequires: rust <= %{version_current} +BuildRequires: rust >= %{version_previous} # This must be bumped to rust-std-static after 1.27.2 is in mainstream -BuildRequires: rust-std-static <= %{version} -BuildRequires: rust-std-static >= %{prev_rust} +BuildRequires: rust-std-static <= %{version_current} +BuildRequires: rust-std-static >= %{version_previous} %endif %description @@ -200,7 +205,6 @@ # Standard form Supplements: (%{name} and gdb) %endif -Provides: rust-gdb = %{version} %description -n rust-gdb This subpackage provides pretty printers and a wrapper script for @@ -289,8 +293,6 @@ Cargo downloads dependencies of Rust projects and compiles it. %package -n cargo-doc -Version: %{version} -Release: 0 Summary: Documentation for Cargo # Cargo no longer builds its own documentation # https://github.com/rust-lang/cargo/pull/4904 @@ -305,34 +307,34 @@ %prep %if %{with rust_bootstrap} %ifarch x86_64 -%setup -q -T -b 100 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 100 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch %{ix86} -%setup -q -T -b 101 -n rust-%{prev_rust}-i686-unknown-linux-%{abi} +%setup -q -T -b 101 -n rust-%{version_bootstrap}-i686-unknown-linux-%{abi} %endif %ifarch aarch64 -%setup -q -T -b 102 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 102 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch armv7hl -%setup -q -T -b 103 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 103 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch armv6hl -%setup -q -T -b 104 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 104 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch ppc64 -%setup -q -T -b 105 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 105 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch ppc64le -%setup -q -T -b 106 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 106 -n rust-%{version_bootstrap}-%{rust_triple} %endif %ifarch s390x -%setup -q -T -b 107 -n rust-%{prev_rust}-%{rust_triple} +%setup -q -T -b 107 -n rust-%{version_bootstrap}-%{rust_triple} %endif ./install.sh --components=cargo,rustc,rust-std-%{rust_triple} --prefix=.%{_prefix} --disable-ldconfig %endif %if %{with rust_bootstrap} - %global rust_root %{_builddir}/rust-%{prev_rust}-%{rust_triple}%{_prefix} + %global rust_root %{_builddir}/rust-%{version_bootstrap}-%{rust_triple}%{_prefix} %else %global rust_root %{_prefix} %endif @@ -340,6 +342,7 @@ %setup -q -n rustc-%{version}-src %patch0 -p1 +%patch1 -p1 # use python3 sed -i -e "1s|#!.*|#!%{_bindir}/python3|" x.py @@ -351,15 +354,17 @@ rm -rf src/tools/clang rm -rf src/tools/lld rm -rf src/tools/lldb +# CI tooling won't be used +rm -rf src/stdsimd/ci + +# Remove hidden files from source +find src/ -type f -name '.appveyor.yml -exec rm -v '{}' '+' +find src/ -type f -name '.travis.yml -exec rm -v '{}' '+' %if !%with bundled_llvm rm -rf src/llvm/ %endif -# extract bundled licenses for packaging -sed -e '/*\//q' src/libbacktrace/backtrace.h \ - >src/libbacktrace/LICENSE-libbacktrace - # 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. @@ -368,15 +373,8 @@ # Fix rpmlint error "This script uses 'env' as an interpreter" sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/unicode.py -find src/libcompiler_builtins/compiler-rt/lib/ -name '*.py' \ - -exec sed -i -e '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' '{}' '+' - -# Fix rpmlint warnings about these shell scripts not having a shebang or incorrect path -sed -i '1s|^|#!/bin/bash\n|' src/libbacktrace/ltmain.sh -sed -i '1s|^|#!/bin/bash\n|' src/libcompiler_builtins/ci/run.sh -sed -i '1s|^|#!/bin/bash\n|' src/liblibc/ci/run-docker.sh -sed -i '1s|^|#!/bin/bash\n|' src/liblibc/ci/emscripten-entry.sh -sed -i '1s|^|#!/bin/bash\n|' src/stdsimd/ci/run-docker.sh +sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/printable.py +chmod +x src/libcore/unicode/printable.py %build %configure \ @@ -386,17 +384,20 @@ --local-rust-root=%{rust_root} \ --libdir=%{common_libdir} \ --docdir=%{_docdir}/%{name} \ - %{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared --set llvm.link-jobs=1} \ + %{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared} \ + %{?with_bundled_llvm: --disable-llvm-link-shared --set llvm.link-jobs=4} \ --disable-codegen-tests \ --enable-optimize \ + --enable-ccache \ --enable-docs \ --enable-verbose-tests \ --disable-jemalloc \ --disable-rpath \ %{debug_info} \ %{codegen_units} \ - --enable-extended \ --enable-vendor \ + --enable-extended \ + --tools="cargo","rls","clippy","rustfmt","analysis","src" \ --release-channel="stable" # Sometimes we may be rebuilding with the same compiler, @@ -464,19 +465,13 @@ # Remove installer artifacts (manifests, uninstall scripts, etc.) find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' -# Remove hidden files from source -find %{buildroot}%{rustlibdir} -type f -name '.appveyor.yml -exec rm -v '{}' '+' -find %{buildroot}%{rustlibdir} -type f -name '.travis.yml -exec rm -v '{}' '+' - # The shared libraries should be executable for debuginfo extraction. find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+' -# extract bundled licenses for packaging - From fedora spec -sed -e '/*\//q' src/libbacktrace/backtrace.h > src/libbacktrace/LICENSE-libbacktrace - # The html docs for x86 and x86_64 are the same in most places -%fdupes %{buildroot}%{_docdir}/%{name}/html -# We don't want to run fdupes over much else (like src) or it may cause weirdness. +%fdupes -s %{buildroot}%{_docdir}/%{name}/html +%fdupes -s %{buildroot}/%{_mandir} +%fdupes %{buildroot}/%{_prefix} # Create the path for crate-devel packages mkdir -p %{buildroot}%{_datadir}/cargo/registry @@ -497,10 +492,8 @@ %files %if 0%{?suse_version} == 1315 %doc COPYRIGHT LICENSE-APACHE LICENSE-MIT -%doc src/libbacktrace/LICENSE-libbacktrace %else %license COPYRIGHT LICENSE-APACHE LICENSE-MIT -%license src/libbacktrace/LICENSE-libbacktrace %endif %doc CONTRIBUTING.md README.md RELEASES.md %{_bindir}/rustc ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.DJkJrN/_old 2019-04-02 09:19:19.376568947 +0200 +++ /var/tmp/diff_new_pack.DJkJrN/_new 2019-04-02 09:19:19.376568947 +0200 @@ -1,14 +1,15 @@ <?xml version="1.0"?> <constraints> <hardware> - <processors>4</processors> + <processors>8</processors> <memory> <size unit="G">8</size> </memory> <disk> - <size unit="G">20</size> + <size unit="G">60</size> </disk> </hardware> +<!-- i586, armv6 and armv7 tend to run out of memory during builds --> <overwrite> <conditions> <arch>i586</arch> @@ -25,6 +26,7 @@ </disk> </hardware> </overwrite> +<!-- x86_64 to use physical memory to speed builds up --> <overwrite> <conditions> <arch>x86_64</arch> @@ -33,8 +35,12 @@ <physicalmemory> <size unit="G">8</size> </physicalmemory> + <disk> + <size unit="G">25</size> + </disk> </hardware> </overwrite> +<!-- aarch64 is a time consuming build, try to use RAM --> <overwrite> <conditions> <arch>aarch64</arch> @@ -48,4 +54,17 @@ </disk> </hardware> </overwrite> +<!-- 25GB of disk as 60GB is unavailable (and unrequired) on s390x and ppc64 --> + <overwrite> + <conditions> + <arch>s390x</arch> + <arch>ppc64</arch> + <arch>ppc64le</arch> + </conditions> + <hardware> + <disk> + <size unit="G">25</size> + </disk> + </hardware> + </overwrite> </constraints> ++++++ depreciated-trim_left_matches.patch ++++++ diff -u ./src/tools/tidy/src/features.rs ../rustc-1.33.0-src/src/tools/tidy/src/features.rs --- ../rustc-1.33.0-src/src/tools/tidy/src/features.rs 2019-02-28 21:53:35.000000000 +1300 +++ ./src/tools/tidy/src/features.rs 2019-03-04 21:10:20.854805497 +1300 @@ -188,7 +188,7 @@ } let mut parts = line.split(','); - let level = match parts.next().map(|l| l.trim().trim_left_matches('(')) { + let level = match parts.next().map(|l| l.trim().trim_start_matches('(')) { Some("active") => Status::Unstable, Some("removed") => Status::Removed, Some("accepted") => Status::Stable, ++++++ rust-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.DJkJrN/_old 2019-04-02 09:19:19.432568955 +0200 +++ /var/tmp/diff_new_pack.DJkJrN/_new 2019-04-02 09:19:19.432568955 +0200 @@ -6,3 +6,11 @@ addFilter("binaryinfo-readelf-failed*./usr/lib/rustlib/*.rlib") # rust has no stable ABI as of yet, soname is of no use yet addFilter("no-soname.*/usr/lib/rustlib/.*") +addFilter("no-soname.*/usr/lib/lib*") +# tool versions don't always change at same pace as rustc +addFilter("clippy.x86_64: W: no-version-in-last-changelog") +addFilter("rls.x86_64: W: no-version-in-last-changelog") +addFilter("rust-analysis.x86_64: W: no-version-in-last-changelog") +addFilter("rustfmt.x86_64: W: no-version-in-last-changelog") +# error when building with bootstrap. ignore for now +addFilter(".*shlib-policy-name-error.*libLLVM-8svn.*") \ No newline at end of file ++++++ rustc-1.32.0-src.tar.xz -> rustc-1.33.0-src.tar.xz ++++++ /work/SRC/openSUSE:Factory/rust/rustc-1.32.0-src.tar.xz /work/SRC/openSUSE:Factory/.rust.new.25356/rustc-1.33.0-src.tar.xz differ: char 27, line 1
