Accepting request 688403 from home:federico-mena:branches:devel:languages:rust

- 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
This commit is contained in:
Luke Jones 2019-03-25 20:52:49 +00:00 committed by Git OBS Bridge
parent 9dca7ce326
commit 5853a824ca
2 changed files with 62 additions and 30 deletions

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Mon Mar 25 16:09:44 UTC 2019 - Federico Mena Quintero <federico@suse.com>
- 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.
-------------------------------------------------------------------
Fri Mar 22 00:02:26 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
@ -43,17 +53,17 @@ Sat Mar 2 05:17:36 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
expression. E.g.
```
enum Creature {
Crab(String),
Lobster(String),
Person(String),
Crab(String),
Lobster(String),
Person(String),
}
fn main() {
let state = Creature::Crab("Ferris");
let state = Creature::Crab("Ferris");
if let Creature::Crab(name) | Creature::Person(name) = state {
println!("This creature's name is: {}", name);
}
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
@ -65,7 +75,7 @@ Sat Mar 2 05:17:36 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
```
const unsafe fn foo() -> i32 { 5 }
const fn bar() -> i32 {
unsafe { foo() }
unsafe { foo() }
}
```
- You can now specify multiple attributes in a `cfg_attr` attribute.
@ -183,6 +193,14 @@ Sat Feb 23 01:58:47 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
prevent building everything twice (second time without correct
flags).
-------------------------------------------------------------------
Tue Jan 22 18:19:47 UTC 2019 - federico@suse.com
- Remove
CVE-2018-1000622-prevent-rustdoc-loads-uncontrolled-plugins-path.patch,
since rustdoc plugins are fixed since version 1.27.1 (bsc#1100691,
CVE-2018-1000622).
-------------------------------------------------------------------
Thu Jan 17 21:22:11 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
@ -207,24 +225,24 @@ Thu Jan 17 21:22:11 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
struct Point(i32, i32);
impl Point {
pub fn new(x: i32, y: i32) -> Self {
Self(x, y)
}
pub fn new(x: i32, y: i32) -> Self {
Self(x, y)
}
pub fn is_origin(&self) -> bool {
match self {
Self(0, 0) => true,
_ => false,
}
}
pub fn is_origin(&self) -> bool {
match self {
Self(0, 0) => true,
_ => false,
}
}
}
- Self can also now be used in type definitions. E.g.
enum List<T>
where
Self: PartialOrd<Self> // can write `Self` instead of `List<T>`
Self: PartialOrd<Self> // can write `Self` instead of `List<T>`
{
Nil,
Cons(T, Box<Self>) // likewise here
Nil,
Cons(T, Box<Self>) // likewise here
}
- You can now mark traits with `#[must_use]`. This provides a warning if
a `impl Trait` or `dyn Trait` is returned and unused in the program.
@ -671,11 +689,11 @@ Update to version 1.30.0 (2018-10-25)
trait Trait {}
impl Trait + Send {
fn test(&self) { println!("one"); } //~ ERROR duplicate definitions with name `test`
fn test(&self) { println!("one"); } //~ ERROR duplicate definitions with name `test`
}
impl Trait + Send + Send {
fn test(&self) { println!("two"); }
fn test(&self) { println!("two"); }
}
- Update to version 1.27.2:
+ Compatibility Notes
@ -774,6 +792,22 @@ Update to version 1.30.0 (2018-10-25)
+ Misc
- Added “The Rustc book” into the official documentation.
-------------------------------------------------------------------
Thu Oct 11 10:00:22 UTC 2018 - qkzhu@suse.com
- Add CVE-2018-1000622-prevent-rustdoc-loads-uncontrolled-plugins-path.patch:
+ This patch consists of requiring `--plugin-path` to be passed
whenever `--plugin` is passed
+ rustdoc plugins will be removed entirely on 1.28.0, we should
drop this patch after 1.28.0(bsc#1100691, CVE-2018-1000622).
-------------------------------------------------------------------
Thu Aug 9 10:18:06 UTC 2018 - mschnitzer@suse.com
- Ship rust-std on SLE-15 (bsc#1096945)
No new changes came with this update of rust.
-------------------------------------------------------------------
Wed Jun 6 10:37:27 UTC 2018 - mmanu84@outlook.de
@ -1933,4 +1967,3 @@ Wed Apr 29 13:07:54 UTC 2015 - opensuse-packaging@opensuse.org
Wed Apr 29 12:56:15 UTC 2015 - kgronlund@suse.com
- Version 1.0.0-beta3.

View File

@ -13,7 +13,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@ -57,12 +57,8 @@
# Will build with distro LLVM by default, but the following
# versions do not have a version new enough, >= 6.0
# add --without bundled_llvm option, i.e. enable bundled_llvm by default
# Leap 15.0, SLE 15
%if 0%{?sle_version} == 150000
%bcond_without bundled_llvm
%endif
# Leap 42 to 42.3, SLE12 SP1 to SLE12 SP3
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120400
# Leap 42 to 42.3, SLE12 SP1 to SLE12 SP3, Leap 15.0, SLE15 SP0
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150000
%bcond_without bundled_llvm
%endif
@ -80,6 +76,9 @@
# Use hardening ldflags.
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
# Exclude implicitly-scanned Provides, especially the libLLVM.so ones:
%global __provides_exclude_from ^%{rustlibdir}/.*$
Name: rust
Version: %{version_current}
Release: 0