Accepting request 877726 from home:Guillaume_G:branches:openSUSE:Factory:ARM

- Update to version 1.50:
  * This fixes build on armv7 - boo#1181643
  + Language
    - You can now use const values for x in [x; N] array expressions. 
    This has been technically possible since 1.38.0, as it was 
    unintentionally stabilized.
    - Assignments to ManuallyDrop<T> union fields are now considered safe.
  + Compiler
    - Added tier 3* support for the armv5te-unknown-linux-uclibceabi
    target.
    - Added tier 3 support for the aarch64-apple-ios-macabi target.
    - The x86_64-unknown-freebsd is now built with the full toolset.
    - Dropped support for all cloudabi targets.
    * Refer to Rust's platform support page for more information on
    Rust's tiered platform support.
  + Libraries
    - proc_macro::Punct now implements PartialEq<char>.
    - ops::{Index, IndexMut} are now implemented for fixed sized
    arrays of any length.
    - On Unix platforms, the std::fs::File type now has a "niche" of -1.
    This value cannot be a valid file descriptor, and now means Option<File>
    takes up the same amount of space as File.
  + Stabilized APIs
    bool::then
    btree_map::Entry::or_insert_with_key
    f32::clamp
    f64::clamp
    hash_map::Entry::or_insert_with_key
    Ord::clamp
    RefCell::take
    slice::fill
    UnsafeCell::get_mut
    - The following previously stable methods are now const.
    IpAddr::is_ipv4
    IpAddr::is_ipv6
    IpAddr::is_unspecified
    IpAddr::is_loopback
    IpAddr::is_multicast
    Ipv4Addr::octets
    Ipv4Addr::is_loopback
    Ipv4Addr::is_private
    Ipv4Addr::is_link_local
    Ipv4Addr::is_multicast
    Ipv4Addr::is_broadcast
    Ipv4Addr::is_documentation
    Ipv4Addr::to_ipv6_compatible
    Ipv4Addr::to_ipv6_mapped
    Ipv6Addr::segments
    Ipv6Addr::is_unspecified
    Ipv6Addr::is_loopback
    Ipv6Addr::is_multicast
    Ipv6Addr::to_ipv4
    Layout::size
    Layout::align
    Layout::from_size_align
    pow for all integer types.
    checked_pow for all integer types.
    saturating_pow for all integer types.
    wrapping_pow for all integer types.
    next_power_of_two for all unsigned integer types.
    checked_next_power_of_two for all unsigned integer types.
  + Cargo
    - Added the [build.rustc-workspace-wrapper] option. This option
    sets a wrapper to execute instead of rustc, for workspace members only.
    - cargo:rerun-if-changed will now, if provided a directory,
    scan the entire contents of that directory for changes.
    - Added the --workspace flag to the cargo update command.
  + Misc
    - The search results tab and the help button are focusable
    with keyboard in rustdoc.
    - Running tests will now print the total time taken to execute.
  + Compatibility Notes
    - The compare_and_swap method on atomics has been deprecated.
    It's recommended to use the compare_exchange and 
    compare_exchange_weak methods instead.
    - Changes in how TokenStreams are checked have fixed some cases
    where you could write unhygenic macro_rules! macros.
    - #![test] as an inner attribute is now considered unstable
    like other inner macro attributes, and reports an error by
    default through the soft_unstable lint.
    - Overriding a forbid lint at the same level that it was set
    is now a hard error.
    - You can no longer intercept panic! calls by supplying your own
    macro. It's recommended to use the #[panic_handler] attribute
    to provide your own implementation.
    - Semi-colons after item statements (e.g. struct Foo {};)
    now produce a warning.
- Add download_helper.sh to ease download of bootstrap packages

OBS-URL: https://build.opensuse.org/request/show/877726
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=277
This commit is contained in:
2021-03-08 12:49:24 +00:00
committed by Git OBS Bridge
parent 17c7e17fbc
commit 266f40cbab
42 changed files with 306 additions and 193 deletions

View File

@@ -17,9 +17,9 @@
#
%global version_current 1.49.0
%global version_previous 1.48.0
%global version_bootstrap 1.48.0
%global version_current 1.50.0
%global version_previous 1.49.0
%global version_bootstrap 1.50.0
# some sub-packages are versioned independently
%global rustfmt_version 1.4.25
@@ -86,14 +86,15 @@
%bcond_without rls
%endif
# Do not use parallel codegen in order to
# a) not exhaust memory on build-machines and
# Do not use parallel codegen in order to
# a) not exhaust memory on build-machines and
# b) generate the fastest possible binary
# at the cost of longer build times for this package
%define codegen_units --set rust.codegen-units=1
# Debuginfo can exhaust memory on these architecture workers
%ifarch %{arm} %{ix86}
%define debug_info --disable-debuginfo --disable-debuginfo-only-std --disable-debuginfo-tools --disable-debuginfo-lines
%define strip_debug_flag 1
%else
%define debug_info --enable-debuginfo --disable-debuginfo-only-std --enable-debuginfo-tools --disable-debuginfo-lines
%endif
@@ -125,7 +126,7 @@ Name: rust
Version: %{version_current}
Release: 0
Summary: A systems programming language
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
URL: https://www.rust-lang.org
Source0: %{dl_url}/rustc-%{version}-src.tar.xz
@@ -233,7 +234,7 @@ like a low-level language would.
%package -n rust-std-static
Summary: Standard library for Rust
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Conflicts: rust-std < %{version}
@@ -246,7 +247,7 @@ written in Rust.
%package -n rust-doc
Summary: Rust documentation
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
@@ -255,7 +256,7 @@ Documentation for the Rust language.
%package -n rust-gdb
Summary: Gdb integration for rust binaries
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
%if 0%{?suse_version} && 0%{?suse_version} < 1500
@@ -272,7 +273,7 @@ invoking gdb on rust binaries.
%package -n rust-src
Summary: Sources for the Rust standard library
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
BuildArch: noarch
@@ -284,7 +285,7 @@ as RLS or racer.
%package -n rls
Summary: Language server for Rust lang
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: %{name}-analysis = %{version}
@@ -299,7 +300,7 @@ refactorings. It can be used with an IDE such as Gnome-Builder.
%package -n rust-analysis
Summary: Compiler analysis data for the Rust standard library
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-std-static = %{version}
@@ -311,7 +312,7 @@ standard library.
%package -n rustfmt
Summary: Code formatting tool for Rust lang
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Requires: cargo = %{version}
@@ -342,7 +343,7 @@ A collection of lints to catch common mistakes and improve Rust code.
%package -n cargo
Summary: The Rust package manager
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: %{name} = %{version}
Conflicts: cargo < %{version}
@@ -358,7 +359,7 @@ Cargo downloads dependencies of Rust projects and compiles it.
Summary: Documentation for Cargo
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
License: MIT OR Apache-2.0
License: Apache-2.0 OR MIT
Group: Development/Languages/Rust
Requires: rust-doc = %{version}
BuildArch: noarch
@@ -484,7 +485,6 @@ fi
sed -i -e "s|#ninja = true|ninja = false|" config.toml
%endif
# Create exports file
# Keep all the "export VARIABLE" together here, so they can be
# reread in the %%install section below.
@@ -500,13 +500,17 @@ export CXX=g++-7
%if !%{with rust_bootstrap} && 0%{?sle_version} >= 150000
export LIBSSH2_SYS_USE_PKG_CONFIG=1
%endif
# eliminate complaint from RPMlint
export CPPFLAGS="%{optflags}"
export DESTDIR=%{buildroot}
# END EXPORTS
EOF
. ./.env.sh
%if 0%{?strip_debug_flag}
export CFLAGS="$(echo $RPM_OPT_FLAGS | sed -e 's/ -g$//')"
%endif
export CXXFLAGS="$CFLAGS"
unset FFLAGS
./x.py build -v
./x.py doc -v --stage 1
@@ -542,6 +546,10 @@ find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' -exec chmod -
# The shared libraries should be executable for debuginfo extraction.
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# Install rust-llvm-dwp in _bindir
mv %{buildroot}%{rustlibdir}/*-unknown-linux-gnu*/bin/rust-llvm-dwp %{buildroot}%{_bindir}
rm -rf %{buildroot}%{rustlibdir}/*-unknown-linux-gnu*/bin
# The html docs for x86 and x86_64 are the same in most places
%fdupes -s %{buildroot}%{_docdir}/%{name}/html
%fdupes -s %{buildroot}/%{_mandir}
@@ -576,6 +584,7 @@ rm -rf %{buildroot}/home
%{_bindir}/rustc
%{_bindir}/rustdoc
%{_bindir}/rust-lldb
%{_bindir}/rust-llvm-dwp
%{_mandir}/man1/rustc.1%{?ext_man}
%{_mandir}/man1/rustdoc.1%{?ext_man}
%{_prefix}/lib/lib*.so
@@ -583,6 +592,7 @@ rm -rf %{buildroot}/home
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.so
%{_libexecdir}/cargo-credential-1password
%exclude %{_docdir}/%{name}/html
%exclude %{rustlibdir}/src