Recommended update for rust

Announcement ID: SUSE-RU-2021:2855-1
Rating: moderate
References:
Affected Products:
  • Development Tools Module 15-SP3
  • openSUSE Leap 15.3
  • SUSE Linux Enterprise Desktop 15 SP3
  • SUSE Linux Enterprise High Performance Computing 15 SP3
  • SUSE Linux Enterprise Real Time 15 SP3
  • SUSE Linux Enterprise Server 15 SP3
  • SUSE Linux Enterprise Server 15 SP3 Business Critical Linux 15-SP3
  • SUSE Linux Enterprise Server for SAP Applications 15 SP3
  • SUSE Manager Proxy 4.2
  • SUSE Manager Retail Branch Server 4.2
  • SUSE Manager Server 4.2

An update that contains one feature can now be installed.

Description:

This update for rust fixes the following issues:

This ships the new parallel rust 1.54 version.

Version 1.54.0 (2021-07-29)

Language:

  • You can now use macros for values in built-in attribute macros. While a seemingly minor addition on its own, this enables a lot of powerful functionality when combined correctly. Most notably you can now include external documentation in your crate by writing the following. rust #![doc = include_str!("README.md")] You can also use this to include auto-generated modules: rust #[path = concat!(env!("OUT_DIR"), "/generated.rs")] mod generated;
  • You can now cast between unsized slice types (and types which contain unsized slices) in const fn.
  • You can now use multiple generic lifetimes with impl Trait where the lifetimes don't explicitly outlive another.

In code this means that you can now have impl Trait<'a, 'b> where as before you could only have impl Trait<'a, 'b> where 'b: 'a.

Compiler:

  • Rustc will now search for custom JSON targets in /lib/rustlib/<target-triple>/target.json where / is the "sysroot" directory. You can find your sysroot directory by running rustc --print sysroot.
  • Added wasm as a target_family for WebAssembly platforms.
  • You can now use #[target_feature] on safe functions when targeting WebAssembly platforms.
  • Improved debugger output for enums on Windows MSVC platforms.
  • Added tier 3* support for bpfel-unknown-none and bpfeb-unknown-none.

* Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries:

  • panic::panic_any will now #[track_caller].
  • Added OutOfMemory as a variant of io::ErrorKind.
  • proc_macro::Literal now implements FromStr.
  • The implementations of vendor intrinsics in core::arch have been significantly refactored. The main user-visible changes are a 50% reduction in the size of libcore.rlib and stricter validation of constant operands passed to intrinsics. The latter is technically a breaking change, but allows Rust to more closely match the C vendor intrinsics API.

Stabilized APIs:

  • BTreeMap::into_keys
  • BTreeMap::into_values
  • HashMap::into_keys
  • HashMap::into_values
  • arch::wasm32
  • VecDeque::binary_search
  • VecDeque::binary_search_by
  • VecDeque::binary_search_by_key
  • VecDeque::partition_point

Cargo:

  • Added the --prune <spec> option to cargo-tree to remove a package from the dependency graph.
  • Added the --depth option to cargo-tree to print only to a certain depth in the tree.
  • Added the no-proc-macro value to cargo-tree --edges to hide procedural macro dependencies.
  • A new environment variable named CARGO_TARGET_TMPDIR is available. This variable points to a directory that integration tests and benches can use as a "scratchpad" for testing filesystem operations.

Patch Instructions:

To install this SUSE update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:

  • openSUSE Leap 15.3
    zypper in -t patch SUSE-2021-2855=1
  • Development Tools Module 15-SP3
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP3-2021-2855=1

Package List:

  • openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
    • rust-1.54.0-21.6.2
    • rust1.54-gdb-1.54.0-7.3.1
    • cargo-1.54.0-21.6.2
    • cargo1.54-1.54.0-7.3.1
    • rust-gdb-1.54.0-21.6.2
    • rust1.54-debuginfo-1.54.0-7.3.1
    • cargo1.54-debuginfo-1.54.0-7.3.1
    • rust1.54-1.54.0-7.3.1
  • openSUSE Leap 15.3 (noarch)
    • rust1.54-src-1.54.0-7.3.1
    • cargo1.54-doc-1.54.0-7.3.1
  • openSUSE Leap 15.3 (aarch64 x86_64)
    • rls1.54-debuginfo-1.54.0-7.3.1
    • rls-1.54.0-21.6.2
    • rls1.54-1.54.0-7.3.1
    • rust1.54-analysis-1.54.0-7.3.1
    • rust1.54-doc-1.54.0-7.3.1
  • Development Tools Module 15-SP3 (aarch64 ppc64le s390x x86_64 i586)
    • rust-1.54.0-21.6.2
    • rust-gdb-1.54.0-21.6.2
    • cargo-1.54.0-21.6.2
  • Development Tools Module 15-SP3 (aarch64 ppc64le s390x x86_64)
    • rust1.54-gdb-1.54.0-7.3.1
    • cargo1.54-1.54.0-7.3.1
    • rust1.54-debuginfo-1.54.0-7.3.1
    • cargo1.54-debuginfo-1.54.0-7.3.1
    • rust1.54-1.54.0-7.3.1
  • Development Tools Module 15-SP3 (noarch)
    • rust1.54-src-1.54.0-7.3.1
    • cargo1.54-doc-1.54.0-7.3.1
  • Development Tools Module 15-SP3 (aarch64 x86_64)
    • rls1.54-debuginfo-1.54.0-7.3.1
    • rls-1.54.0-21.6.2
    • rls1.54-1.54.0-7.3.1
    • rust1.54-analysis-1.54.0-7.3.1
    • rust1.54-doc-1.54.0-7.3.1

References: