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
# Automatic updating via _service Edit the spec file, and update the variables related with the version (in format X.YY.Z): - *version_current*: for the new version of Rust - *version_previous*: for the previous version of Rust - *version_bootstrap*: for the version used to compile Rust, it recommended to use the same version that *version_previous* - *rustfmt_version*: for the version of rustfmt cli, check the tarball to find the correct version - *clippy_version*: for the version of clippy, check the tarball to find the correct version After that, we can execute the service file: osc service disabledrun If `osc` complains about a missing service component, double check that the components are installed. For example, for Tumbleweed: zypper in obs-service-download_files obs-service-refresh_patches Finally, update the changelog based on the releases notes: https://github.com/rust-lang/rust/blob/master/RELEASES.md # Updating to a new version from upstream (Original link: https://en.opensuse.org/Rust) Branch the rust package in the devel:languages:rust project. You'll need to download precompiled binaries for the compiler used for bootstrapping, and the actual source code for the compiler. In the "Other Installation Methods" page listed below, note that it shows links to .tar.gz packages and their .tar.gz.asc GPG signatures, but .tar.xz versions are also available. *Binaries for bootstrapping* - Go to the "Other Installation Methods" page from rust-lang.org and scroll down to the "Standalone installers" section. Download the following: - rust-<version>-aarch64-unknown-linux-gnu.tar.xz - rust-<version>-armv7-unknown-linux-gnueabihf.tar.xz - rust-<version>-i686-unknown-linux-gnu.tar.xz - rust-<version>-powerpc64le-unknown-linux-gnu.tar.xz - rust-<version>-powerpc64-unknown-linux-gnu.tar.xz - rust-<version>-s390x-unknown-linux-gnu.tar.xz - rust-<version>-x86_64-unknown-linux-gnu.tar.xz *Compiler source code* - From the same page, but now in the "Source code" section, download this: rustc-<version>-src.tar.xz Update those files in the source RPM. Check that all the patches still apply. Update the version number in rust.spec. Add the release notes to rust.changes.
Description
Languages
RPM Spec
100%