FWIW, I've now used rust-1.49.0 successfully to build both MozillaFirefox-84.0.2 and firefox-esr-78.6.1!
FWIW2, I raised the memory constraints for x86_64 from 8 to 11G, because otherwise a build got killed due to OOM too often.
This SR contains everything which got accepted for 1.48 just recently.
- Update to version 1.49.0
+ Language
- Unions can now implement Drop, and you can now have a field in
a union with ManuallyDrop<T>.
- You can now cast uninhabited enums to integers.
- You can now bind by reference and by move in patterns. This
allows you to selectively borrow individual components of a type.
E.g.
#[derive(Debug)]
struct Person {
name: String,
age: u8,
}
let person = Person {
name: String::from("Alice"),
age: 20,
};
// `name` is moved out of person, but `age` is referenced.
let Person { name, ref age } = person;
println!("{} {}", name, age);
+ Compiler
- Added tier 1* support for aarch64-unknown-linux-gnu.
- Added tier 2 support for aarch64-apple-darwin.
- Added tier 2 support for aarch64-pc-windows-msvc.
- Added tier 3 support for mipsel-unknown-none.
- Raised the minimum supported LLVM version to LLVM 9.
- Output from threads spawned in tests is now captured.
- Change os and vendor values to "none" and "unknown" for some targets
* Refer to Rust's platform support page for more information on Rust's
tiered platform support.
+ Libraries
- RangeInclusive now checks for exhaustion when calling contains and
indexing.
- ToString::to_string now no longer shrinks the internal buffer in
the default implementation.
- ops::{Index, IndexMut} are now implemented for fixed sized arrays
of any length.
+ Stabilized APIs
- slice::select_nth_unstable
- slice::select_nth_unstable_by
- slice::select_nth_unstable_by_key
The following previously stable methods are now const.
- Poll::is_ready
- Poll::is_pending
+ Cargo
- Building a crate with cargo-package should now be independently
reproducible.
- cargo-tree now marks proc-macro crates.
- Added CARGO_PRIMARY_PACKAGE build-time environment variable. This
variable will be set if the crate being built is one the user
selected to build, either with -p or through defaults.
- You can now use glob patterns when specifying packages & targets.
+ Compatibility Notes
- Demoted i686-unknown-freebsd from host tier 2 to target tier 2
support.
- Macros that end with a semi-colon are now treated as statements
even if they expand to nothing.
- Rustc will now check for the validity of some built-in attributes
on enum variants. Previously such invalid or unused attributes
could be ignored.
- Leading whitespace is stripped more uniformly in documentation
comments, which may change behavior. You read this post about
the changes for more details.
- Trait bounds are no longer inferred for associated types.
+ Internal Only
These changes provide no direct user facing benefits, but
represent significant improvements to the internals and overall
performance of rustc and related tools.
- rustc's internal crates are now compiled using the initial-exec
Thread Local Storage model.
- Calculate visibilities once in resolve.
- Added system to the llvm-libunwind bootstrap config option.
- Added --color for configuring terminal color support to bootstrap.
- Rebased patches:
+ ignore-Wstring-conversion.patch (location)
OBS-URL: https://build.opensuse.org/request/show/862664
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=275
Final SR - promised :)
- <https://github.com/rust-lang/rust/issues/74976>: Add "--stage 1"
to the "./x.py doc" call to ensure the newly built compiler gets
used.
-------------------------------------------------------------------
Sat Jan 9 09:25:07 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>
- Leap 15.3 does not provide a suitable llvm-devel package, hence
explicitly require llvm9-devel. Details can be seen in the following
e-mail thread
<https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/ZQWAMG2VYBSI2BFM7G3H5YG26ALXWAOA/>
-------------------------------------------------------------------
Sun Jan 3 11:27:23 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>
- LLVM >= 9.0 is needed nowadays.
- Disable usage of "ninja" for all distributions older than Leap 15.2
-------------------------------------------------------------------
Sat Jan 2 16:50:47 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>
- Update to version 1.48.0
+ Language
- The `unsafe` keyword is now syntactically permitted on modules.
This is still rejected semantically, but can now be parsed by procedural
macros.
+ Compiler
- Stabilised the `-C link-self-contained=<yes|no>` compiler flag.
This tells `rustc` whether to link its own C runtime and libraries or to
rely on a external linker to find them. (Supported only on `windows-gnu`,
`linux-musl`, and `wasi` platforms.)
- You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.
Note: If you're using cargo you must explicitly pass the `--target` flag.
- Added tier 2* support for aarch64-unknown-linux-musl.
* Refer to Rust's platform support page for more information on Rust's
tiered platform support.
+ Libraries
- io::Write is now implemented for &ChildStdin &Sink, &Stdout, and &Stderr.
- All arrays of any length now implement TryFrom<Vec<T>>.
- The matches! macro now supports having a trailing comma.
- Vec<A> now implements PartialEq<[B]> where A: PartialEq<B>.
- The RefCell::{replace, replace_with, clone} methods now all use #[track_caller].
+ Stabilized APIs
- slice::as_ptr_range
- slice::as_mut_ptr_range
- VecDeque::make_contiguous
- future::pending
- future::ready
The following previously stable methods are now `const fn's`:
- Option::is_some
- Option::is_none
- Option::as_ref
- Result::is_ok
- Result::is_err
- Result::as_ref
- Ordering::reverse
- Ordering::then
+ Cargo
+ Rustdoc
- You can now link to items in rustdoc using the intra-doc link syntax.
E.g. /// Uses [`std::future`] will automatically generate a link to
std::future's documentation. See "Linking to items by name" for more
information.
- You can now specify #[doc(alias = "<alias>")] on items to add search
aliases when searching through rustdoc's UI.
+ Compatibility Notes
- Promotion of references to 'static lifetime inside const fn now
follows the same rules as inside a fn body. In particular, &foo()
will not be promoted to 'static lifetime any more inside const fns.
- Associated type bindings on trait objects are now verified to meet
the bounds declared on the trait when checking that they implement
the trait.
- When trait bounds on associated types or opaque types are ambiguous,
the compiler no longer makes an arbitrary choice on which bound to use.
- Fixed recursive nonterminals not being expanded in macros during
pretty-print/reparse check. This may cause errors if your macro
wasn't correctly handling recursive nonterminal tokens.
- &mut references to non zero-sized types are no longer promoted.
- rustc will now warn if you use attributes like #[link_name] or
#[cold] in places where they have no effect.
- Updated _mm256_extract_epi8 and _mm256_extract_epi16 signatures
in arch::{x86, x86_64} to return i32 to match the vendor signatures.
- mem::uninitialized will now panic if any inner types inside a struct
or enum disallow zero-initialization.
- #[target_feature] will now error if used in a place where it has no effect.
- Foreign exceptions are now caught by catch_unwind and will cause an
abort. Note: This behaviour is not guaranteed and is still considered
undefined behaviour, see the catch_unwind documentation for further
information.
+ Internal Only
These changes provide no direct user facing benefits, but represent
significant improvements to the internals and overall performance of
rustc and related tools.
- Building rustc from source now uses ninja by default over make.
You can continue building with make by setting ninja=false in
your config.toml.
- cg_llvm: fewer_names in uncached_llvm_type
- Made ensure_sufficient_stack() non-generic
- Rebased patches:
+ ignore-Wstring-conversion.patch (location)
OBS-URL: https://build.opensuse.org/request/show/862086
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=272
This request actually fixes two issues:
- rust-rpmlintrc: Reflect updated LLVM name in the filter.
#1: LLVM got updated to version 11, but the rpmlint filter does not reflect it. Fixes:
rust.x86_64: E: shlib-policy-name-error (Badness: 10000) libLLVM-11-rust-1_47_0-stable
Your package contains a single shared library but is not named after its SONAME.
- Make all shared libraries in %{common_libdir} executable; otherwise
the %{fdupes} macro will not find any duplicates in %{rustlibdir}.
#2: Files which only differ in their protection bits (i.e. execution bit in this case) will not be replaced by a hard link using the %{fdupes} call. This patch fixes:
rust.x86_64: E: files-duplicated-waste (Badness: 100) 4349464
Your package contains duplicated files that are not hard- or symlinks. You
should use the %fdupes macro to link the files to one.
Files in question are from /usr/lib/ and /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/
OBS-URL: https://build.opensuse.org/request/show/849719
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=269
- Update to version 1.47.0
+ Language
- [Closures will now warn when not used.][74869]
+ Compiler
- [Stabilized the `-C control-flow-guard` codegen option][73893], which enables
[Control Flow Guard][1.47.0-cfg] for Windows platforms, and is ignored on other
platforms.
- [Upgraded to LLVM 11.][73526]
- [Added tier 3\* support for the `thumbv4t-none-eabi` target.][74419]
- [Upgrade the FreeBSD toolchain to version 11.4][75204]
- [`RUST_BACKTRACE`'s output is now more compact.][75048]
\* Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.
+ Libraries
- [`CStr` now implements `Index<RangeFrom<usize>>`.][74021]
- [Traits in `std`/`core` are now implemented for arrays of any length, not just
those of length less than 33.][74060]
- [`ops::RangeFull` and `ops::Range` now implement Default.][73197]
- [`panic::Location` now implements `Copy`, `Clone`, `Eq`, `Hash`, `Ord`,
`PartialEq`, and `PartialOrd`.][73583]
+ Stabilized APIs
- [`Ident::new_raw`]
- [`Range::is_empty`]
- [`RangeInclusive::is_empty`]
- [`Result::as_deref`]
- [`Result::as_deref_mut`]
- [`Vec::leak`]
- [`pointer::offset_from`]
- [`f32::TAU`]
- [`f64::TAU`]
OBS-URL: https://build.opensuse.org/request/show/841108
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=267
- Update to version 1.46.0
+ Language
- [`if`, `match`, and `loop` expressions can now be used in const functions.][72437]
- [Additionally you are now also able to coerce and cast to slices (`&[T]`) in
const functions.][73862]
- [The `#[track_caller]` attribute can now be added to functions to use the
function's caller's location information for panic messages.][72445]
- [Recursively indexing into tuples no longer needs parentheses.][71322] E.g.
`x.0.0` over `(x.0).0`.
- [`mem::transmute` can now be used in statics and constants.][72920] **Note**
You currently can't use `mem::transmute` in constant functions.
+ Compiler
- [You can now use the `cdylib` target on Apple iOS and tvOS platforms.][73516]
- [Enabled static "Position Independent Executables" by default
for `x86_64-unknown-linux-musl`.][70740]
+ Libraries
- [`mem::forget` is now a `const fn`.][73887]
- [`String` now implements `From<char>`.][73466]
- [The `leading_ones`, and `trailing_ones` methods have been stabilised for all
integer types.][73032]
- [`vec::IntoIter<T>` now implements `AsRef<[T]>`.][72583]
- [All non-zero integer types (`NonZeroU8`) now implement `TryFrom` for their
zero-able equivalent (e.g. `TryFrom<u8>`).][72717]
- [`&[T]` and `&mut [T]` now implement `PartialEq<Vec<T>>`.][71660]
- [`(String, u16)` now implements `ToSocketAddrs`.][73007]
- [`vec::Drain<'_, T>` now implements `AsRef<[T]>`.][72584]
+ Stabilized APIs
- [`Option::zip`]
- [`vec::Drain::as_slice`]
+ Cargo
OBS-URL: https://build.opensuse.org/request/show/840500
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=265
NOTE: The reason I made an update to 1.44.x instead od 1.45.x is that it's impossible to build 1.45.x with 1.43.x. We will be able to update to 1.45.x after we have 1.44.x compilers reeady.
- Update to version 1.44.1
* rustfmt accepts rustfmt_skip in cfg_attr again.
* Don't hash executable filenames on apple platforms, fixing backtraces.
* Fix crashes when finding backtrace on macOS.
* Clippy applies lint levels into different files.
- Update to version 1.44.0
+ Language
- You can now use `async/.await` with `#[no_std]` enabled.
- Added the `unused_braces` lint.
- Expansion-driven outline module parsing
+ Compiler
- Rustc now respects the `-C codegen-units` flag in incremental mode.
Additionally when in incremental mode rustc defaults to 256 codegen units.
- Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and
a panic is thrown.
- Added tier 3\* support for the `aarch64-unknown-none` and
`aarch64-unknown-none-softfloat` targets.
- Added tier 3 support for `arm64-apple-tvos` and
`x86_64-apple-tvos` targets.
+ Libraries
- Special cased `vec![]` to map directly to `Vec::new()`. This allows
`vec![]` to be able to be used in `const` contexts.
- `convert::Infallible` now implements `Hash`.
- `OsString` now implements `DerefMut` and `IndexMut` returning
a `&mut OsStr`.
- Unicode 13 is now supported.
- `String` now implements `From<&mut str>`.
- `IoSlice` now implements `Copy`.
- `Vec<T>` now implements `From<[T; N]>`. Where `N` is at most 32.
- `proc_macro::LexError` now implements `fmt::Display` and `Error`.
OBS-URL: https://build.opensuse.org/request/show/824719
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=254
- Update to version 1.41.1:
- Always check types of static items
- Always check lifetime bounds of `Copy` impls
- Fix miscompilation in callers of `Layout::repeat`
- Update to version 1.41.0:
+ Language
- You can now pass type parameters to foreign items when implementing
traits. E.g. You can now write `impl<T> From<Foo> for Vec<T> {}`.
- You can now arbitrarily nest receiver types in the `self` position. E.g. you can
now write `fn foo(self: Box<Box<Self>>) {}`. Previously only `Self`, `&Self`,
`&mut Self`, `Arc<Self>`, `Rc<Self>`, and `Box<Self>` were allowed.
- You can now use any valid identifier in a `format_args` macro.
Previously identifiers starting with an underscore were not allowed.
- Visibility modifiers (e.g. `pub`) are now syntactically allowed on trait items and
enum variants. These are still rejected semantically, but
can be seen and parsed by procedural macros and conditional compilation.
+ Compiler
- Rustc will now warn if you have unused loop `'label`s.
- Removed support for the `i686-unknown-dragonfly` target.
- Added tier 3 support\* for the `riscv64gc-unknown-linux-gnu` target.
- You can now pass an arguments file passing the `@path` syntax
to rustc. Note that the format differs somewhat from what is
found in other tooling; please see the documentation for
more information.
- You can now provide `--extern` flag without a path, indicating that it is
available from the search path or specified with an `-L` flag.
Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.
+ Libraries
- The `core::panic` module is now stable. It was already stable
through `std`.
- `NonZero*` numerics now implement `From<NonZero*>` if it's a smaller integer
width. E.g. `NonZeroU16` now implements `From<NonZeroU8>`.
- `MaybeUninit<T>` now implements `fmt::Debug`.
+ Stabilized APIs
- `Result::map_or`
- `Result::map_or_else`
- `std::rc::Weak::weak_count`
- `std::rc::Weak::strong_count`
- `std::sync::Weak::weak_count`
- `std::sync::Weak::strong_count`
+ Cargo
- Cargo will now document all the private items for binary crates
by default.
- `cargo-install` will now reinstall the package if it detects that it is out
of date.
- Cargo.lock now uses a more git friendly format that should help to reduce
merge conflicts.
- You can now override specific dependencies's build settings. E.g.
`[profile.dev.package.image] opt-level = 2` sets the `image` crate's
optimisation level to `2` for debug builds. You can also use
`[profile.<profile>.build-override]` to override build scripts and
their dependencies.
+ Misc
- You can now specify `edition` in documentation code blocks to compile the block
for that edition. E.g. `edition2018` tells rustdoc that the code sample
should be compiled the 2018 edition of Rust.
- You can now provide custom themes to rustdoc with `--theme`, and check the
current theme with `--check-theme`.
- You can use `#[cfg(doc)]` to compile an item when building documentation.
+ Compatibility Notes
- As previously announced 1.41.0 will be the last tier 1 release for 32-bit
Apple targets. This means that the source code is still
available to build, but the targets are no longer being tested and release
binaries for those platforms will no longer be distributed by the Rust project.
Please refer to the linked blog post for more information.
OBS-URL: https://build.opensuse.org/request/show/787613
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=243
- Add hopefully-fix-rustdoc-build.patch to fix rustdoc compilation
- Update to version 1.39.0
+ Language
- You can now create async functions and blocks with async fn,
async move {}, and async {} respectively, and you can now call
.await on async expressions.
- You can now use certain attributes on function, closure, and
function pointer parameters.
- You can now take shared references to bind-by-move patterns in
the if guards of match arms.
+ Compiler
- Added tier 3 support for the i686-unknown-uefi target.
- Added tier 3 support for the sparc64-unknown-openbsd target.
- rustc will now trim code snippets in diagnostics to fit in your
terminal.
- You can now pass --show-output argument to test binaries to
print the output of successful tests.
+ For more details:
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1390-2019-11-07
- Drop patches already merged in upstream:
+ rust-61206-assume-tarball-llvm-is-fresh.patch
+ add-option-to-allow-warnings.patch
OBS-URL: https://build.opensuse.org/request/show/746768
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=233
- Add patch add-option-to-allow-warnings.patch to add a config option
which allows warnings and so enables v1.38 to bootstrap itself.
- Update to version 1.38.0
+ Language
- The `#[global_allocator]` attribute can now be used in submodules.
- The `#[deprecated]` attribute can now be used on macros.
+ Compiler
- Added pipelined compilation support to `rustc`. This will
improve compilation times in some cases.
+ Libraries
- `ascii::EscapeDefault` now implements `Clone` and `Display`.
- Derive macros for prelude traits (e.g. `Clone`, `Debug`, `Hash`) are now
available at the same path as the trait. (e.g. The `Clone` derive macro
is available at `std::clone::Clone`). This also makes all built-in macros
available in `std`/`core` root. e.g. `std::include_bytes!`.
- `str::Chars` now implements `Debug`.
- `slice::{concat, connect, join}` now accepts `&[T]` in addition to `&T`.
- `*const T` and `*mut T` now implement `marker::Unpin`.
- `Arc<[T]>` and `Rc<[T]>` now implement `FromIterator<T>`.
- Added euclidean remainder and division operations (`div_euclid`,
`rem_euclid`) to all numeric primitives. Additionally `checked`,
`overflowing`, and `wrapping` versions are available for all
integer primitives.
- `thread::AccessError` now implements `Clone`, `Copy`, `Eq`, `Error`, and
`PartialEq`.
- `iter::{StepBy, Peekable, Take}` now implement `DoubleEndedIterator`.
+ Stabilized APIs
- `<*const T>::cast`
- `<*mut T>::cast`
- `Duration::as_secs_f32`
- `Duration::as_secs_f64`
- `Duration::div_f32`
- `Duration::div_f64`
- `Duration::from_secs_f32`
- `Duration::from_secs_f64`
- `Duration::mul_f32`
- `Duration::mul_f64`
- `any::type_name`
+ Cargo
- Added pipelined compilation support to `cargo`.
- You can now pass the `--features` option multiple times to enable
multiple features.
+ Misc
- `rustc` will now warn about some incorrect uses of
`mem::{uninitialized, zeroed}` that are known to cause undefined behaviour.
OBS-URL: https://build.opensuse.org/request/show/734169
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=229
- Update to version 1.34.0
+ Language
- You can now use `#[deprecated = "reason"]` as a shorthand for
`#[deprecated(note = "reason")]`. This was previously allowed
by mistake but had no effect.
- You can now accept token streams in `#[attr()]`,`#[attr[]]`, and
`#[attr{}]` procedural macros.
- You can now write `extern crate self as foo;` to import your
crate's root into the extern prelude.
+ Compiler
- You can now target `riscv64imac-unknown-none-elf` and
`riscv64gc-unknown-none-elf`.
- You can now enable linker plugin LTO optimisations with
`-C linker-plugin-lto`. This allows rustc to compile your Rust
code into LLVM bitcode allowing LLVM to perform LTO optimisations
across C/C++ FFI boundaries.
- You can now target `powerpc64-unknown-freebsd`.
+ Libraries
- The trait bounds have been removed on some of `HashMap<K, V, S>`'s
and `HashSet<T, S>`'s basic methods. Most notably you no longer
require the `Hash` trait to create an iterator.
- The `Ord` trait bounds have been removed on some of
`BinaryHeap<T>`'s basic methods. Most notably you no longer require
the `Ord` trait to create an iterator.
- The methods `overflowing_neg` and `wrapping_neg` are now `const`
functions for all numeric types.
- Indexing a `str` is now generic over all types that
implement `SliceIndex<str>`.
- `str::trim`, `str::trim_matches`, `str::trim_{start, end}`, and
`str::trim_{start, end}_matches` are now `#[must_use]` and will
produce a warning if their returning type is unused.
- The methods `checked_pow`, `saturating_pow`, `wrapping_pow`, and
`overflowing_pow` are now available for all numeric types. These are
equivalvent to methods such as `wrapping_add` for the `pow` operation.
+ Stabilized APIs
- std & core
+ Any::type_id
+ Error::type_id
+ atomic::AtomicI16
+ atomic::AtomicI32
+ atomic::AtomicI64
+ atomic::AtomicI8
+ atomic::AtomicU16
+ atomic::AtomicU32
+ atomic::AtomicU64
+ atomic::AtomicU8
+ convert::Infallible
+ convert::TryFrom
+ convert::TryInto
+ iter::from_fn
+ iter::successors
+ num::NonZeroI128
+ num::NonZeroI16
+ num::NonZeroI32
+ num::NonZeroI64
+ num::NonZeroI8
+ num::NonZeroIsize
+ slice::sort_by_cached_key
+ str::escape_debug
+ str::escape_default
+ str::escape_unicode
+ str::split_ascii_whitespace
- std
+ Instant::checked_add
+ Instant::checked_sub
+ SystemTime::checked_add
+ SystemTime::checked_sub
+ Cargo
- You can now use alternative registries to crates.io.
+ Misc
- You can now use the `?` operator in your documentation
tests without manually adding `fn main() -> Result<(), _> {}`.
+ Compatibility Notes
- `Command::before_exec` is now deprecated in favor of the
unsafe method `Command::pre_exec`.
- Use of `ATOMIC_{BOOL, ISIZE, USIZE}_INIT` is now deprecated.
As you can now use `const` functions in `static` variables.
- Remove depreciated-trim_left_matches.patch.
- Rustfmt version bumped to 1.0.3
+ Change description not provided.
- rls version now in sync with rustc.
- Misc fixes to rust.spec
OBS-URL: https://build.opensuse.org/request/show/694642
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=213
- Use the system's LLVM in SLE15-SP1. That distribution has LLVM7,
and we need to use it there, instead of any other version.
- Prevent auto-provides from being created for things under
rustlibdir, so the RPM does not inadvertently have a Provides for a
bundled LLVM and the Rust library files.
- Sync changes files between SLE and openSUSE, for ease of maintenance.
OBS-URL: https://build.opensuse.org/request/show/688403
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=209
- 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
OBS-URL: https://build.opensuse.org/request/show/686253
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=202