Commit Graph

180 Commits

Author SHA256 Message Date
Luke Jones
5853a824ca 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
2019-03-25 20:52:49 +00:00
Luke Jones
9dca7ce326 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=208 2019-03-23 10:30:57 +00:00
Luke Jones
5fd278d08a Accepting request 687571 from home:luke_nukem:branches:devel:languages:rust
Correct lack of bash completion

OBS-URL: https://build.opensuse.org/request/show/687571
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=207
2019-03-22 10:36:36 +00:00
Luke Jones
2bda63b681 Accepting request 687478 from home:luke_nukem:branches:devel:languages:rust
- Explicitly build only a subset of tools

OBS-URL: https://build.opensuse.org/request/show/687478
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=206
2019-03-22 00:05:38 +00:00
Luke Jones
499261084d OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=205 2019-03-19 20:36:34 +00:00
Luke Jones
b7b40c9b10 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=204 2019-03-19 04:26:22 +00:00
Luke Jones
d66cfe6b03 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=203 2019-03-19 04:19:54 +00:00
Luke Jones
a96ee8dda3 Accepting request 686253 from home:luke_nukem:branches:devel:languages:rust
- 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
2019-03-19 04:04:52 +00:00
Luke Jones
3dbbcc65f4 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=201 2019-03-10 03:05:45 +00:00
Luke Jones
2d62c78c64 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=200 2019-03-07 00:04:55 +00:00
Luke Jones
fe6a19e7a1 Accepting request 682056 from home:luke_nukem:branches:devel:languages:rust
- Separate the bootstrap version from the minimum required system
  version for package builds.

OBS-URL: https://build.opensuse.org/request/show/682056
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=199
2019-03-06 20:31:21 +00:00
Luke Jones
5f1b3154bd Accepting request 681589 from home:luke_nukem:branches:devel:languages:rust
- add depreciated-trim_left_matches.patch: replaces depreciated
  function call in src/tools/tidy with trim_start_matches to fix
  error when bootstrapping with system 1.33.0

OBS-URL: https://build.opensuse.org/request/show/681589
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=197
2019-03-05 04:37:49 +00:00
Luke Jones
ea59478644 Accepting request 681133 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.33.0
  + Language
    - You can now use the `cfg(target_vendor)` attribute. E.g.
      `#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }`
    - Integer patterns such as in a match expression can now be exhaustive.
      E.g. You can have match statement on a `u8` that covers `0..=255` and
      you would no longer be required to have a `_ => unreachable!()` case. 
    - You can now have multiple patterns in `if let` and `while let`
      expressions. You can do this with the same syntax as a `match`
      expression. E.g.
      ```
      enum Creature {
                  Crab(String),
                  Lobster(String),
                  Person(String),
      }
      fn main() {
                  let state = Creature::Crab("Ferris");
                  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
      this feature will by default produce a warning as this behaviour can be
      unintuitive. E.g. `if let _ = 5 {}`
    - You can now use `let` bindings, assignments, expression statements,
      and irrefutable pattern destructuring in const functions.
    - You can now call unsafe const functions. E.g.
      ```
      const unsafe fn foo() -> i32 { 5 }
      const fn bar() -> i32 {
                  unsafe { foo() }
      }
      ```
    - You can now specify multiple attributes in a `cfg_attr` attribute.
      E.g. `#[cfg_attr(all(), must_use, optimize)]`
    - You can now specify a specific alignment with the `#[repr(packed)]`
      attribute. E.g. `#[repr(packed(2))] struct Foo(i16, i32);` is a struct
      with an alignment of 2 bytes and a size of 6 bytes.
    - You can now import an item from a module as an `_`. This allows you to
      import a trait's impls, and not have the name in the namespace. E.g.
      ```
      use std::io::Read as _;
      // Allowed as there is only one `Read` in the module.
      pub trait Read {}
      ```
    - extern` functions will now abort by default when panicking.
      This was previously undefined behaviour.
  + Compiler
    - You can now set a linker flavor for `rustc` with the `-Clinker-flavor`
      command line argument.
    - The mininum required LLVM version has been bumped to 6.0.
    - Added support for the PowerPC64 architecture on FreeBSD.
    - The `x86_64-fortanix-unknown-sgx` target support has been upgraded to
      tier 2 support. Visit the [platform support][platform-support] page for
      information on Rust's platform support.
    - Added support for the `thumbv7neon-linux-androideabi` and
      `thumbv7neon-unknown-linux-gnueabihf` targets.
    - Added support for the `x86_64-unknown-uefi` target.
  + Libraries
    - The methods `overflowing_{add, sub, mul, shl, shr}` are now `const`
      functions for all numeric types.
    - The methods `rotate_left`, `rotate_right`, and `wrapping_{add, sub, mul, shl, shr}`
      are now `const` functions for all numeric types.
    - The methods `is_positive` and `is_negative` are now `const` functions for
      all signed numeric types.
    - The `get` method for all `NonZero` types is now `const`.
    - The methods `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`,
      `swap_bytes`, `from_be`, `from_le`, `to_be`, `to_le` are now `const` for all
      numeric types.
    - Ipv4Addr::new` is now a `const` function
  + Stabilized APIs
    - unix::FileExt::read_exact_at
    - unix::FileExt::write_all_at
    - Option::transpose
    - Result::transpose
    - convert::identity
    - pin::Pin
    - marker::Unpin
    - marker::PhantomPinned
    - Vec::resize_with
    - VecDeque::resize_with
    - Duration::as_millis
    - Duration::as_micros
    - Duration::as_nanos
  + Cargo
    - Cargo should now rebuild a crate if a file was modified during the initial
      build.][cargo/6484]
  + Compatibility Notes
    - The methods `str::{trim_left, trim_right, trim_left_matches, trim_right_matches}`
      are now deprecated in the standard library, and their usage will now produce a warning.
      Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}`
      methods instead.

OBS-URL: https://build.opensuse.org/request/show/681133
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=196
2019-03-03 20:22:02 +00:00
Luke Jones
4dcd467b91 Accepting request 680354 from home:luke_nukem:branches:devel:languages:rust
- Bump minimum LLVM to 7.0
- Add conditions to build SLE versions with bundled libgit2 and
  libssh2

OBS-URL: https://build.opensuse.org/request/show/680354
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=195
2019-03-01 07:54:42 +00:00
Luke Jones
ba566002c0 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=194 2019-02-28 20:27:47 +00:00
Luke Jones
54534c90f2 Accepting request 680182 from home:federico-mena:branches:devel:languages:rust
- Use cmake3, not cmake, in SLE-12 SP2 and earlier.  The stock cmake
  package there was 2.x, and building llvm requires cmake 3.5.

OBS-URL: https://build.opensuse.org/request/show/680182
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=193
2019-02-28 20:04:41 +00:00
Luke Jones
1855fcb516 Accepting request 679979 from home:luke_nukem:branches:devel:languages:rust
- Use same version bootstrap as package source
- Fixes to build with correct LLVM for SLE and Leap releases
- Move export vars directly to where used.

OBS-URL: https://build.opensuse.org/request/show/679979
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=192
2019-02-27 22:32:57 +00:00
Luke Jones
88a25a2cd1 Accepting request 679674 from home:luke_nukem:branches:devel:languages:rust
- Move export vars directly to where used.
- Change codegen units to 2 for Arm and x86 builds in attempt to
  reduce memory use by LLVM.

OBS-URL: https://build.opensuse.org/request/show/679674
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=191
2019-02-27 03:18:31 +00:00
Luke Jones
2292765355 Accepting request 679672 from home:federico-mena:branches:devel:languages:rust
- Put each exported environment variable in a separate line so the
  specfile will work on SLE SP0/SP1/SP2.

OBS-URL: https://build.opensuse.org/request/show/679672
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=190
2019-02-27 02:30:38 +00:00
Luke Jones
7f0bc74e16 Accepting request 679667 from home:luke_nukem:branches:devel:languages:rust
Fix libgit requirement during bootstrap.
Revert back to system LLVM (removes bcond)

OBS-URL: https://build.opensuse.org/request/show/679667
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=189
2019-02-27 01:11:08 +00:00
Luke Jones
5507ae4e89 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=188 2019-02-26 23:15:28 +00:00
Luke Jones
83882375e5 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=187 2019-02-26 21:44:34 +00:00
Luke Jones
b07b8d76a3 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=186 2019-02-25 22:10:40 +00:00
Luke Jones
961c87b31c Accepting request 678521 from home:jengelh:branches:devel:languages:rust
- Avoid bash-specific syntax in "test" call.

OBS-URL: https://build.opensuse.org/request/show/678521
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=185
2019-02-24 10:00:17 +00:00
Luke Jones
67bd434ec1 Accepting request 678457 from home:luke_nukem:branches:devel:languages:rust
Explicitly set bcond_without for certain versions

OBS-URL: https://build.opensuse.org/request/show/678457
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=184
2019-02-24 05:52:31 +00:00
Luke Jones
d2072c0576 Accepting request 678449 from home:luke_nukem:branches:devel:languages:rust
Correction to enable Leap 15 build

OBS-URL: https://build.opensuse.org/request/show/678449
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=183
2019-02-24 04:31:44 +00:00
Luke Jones
816482df4b Accepting request 678447 from home:luke_nukem:branches:devel:languages:rust
- Fix bootstrap conditionals
- Fix bundled_llvm conditionals
- Don't build stage0 if compiler used to build package is the
  same version as package

OBS-URL: https://build.opensuse.org/request/show/678447
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=182
2019-02-24 04:06:19 +00:00
Luke Jones
555d2841ad Accepting request 678326 from home:luke_nukem:branches:devel:languages:rust
Better way to use exported vars

OBS-URL: https://build.opensuse.org/request/show/678326
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=181
2019-02-23 05:58:34 +00:00
Luke Jones
b363312045 Accepting request 678319 from home:luke_nukem:branches:devel:languages:rust
- Ensure install environment is the same as build environment to
  prevent building everything twice (second time without correct
  flags).

OBS-URL: https://build.opensuse.org/request/show/678319
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=180
2019-02-23 02:08:42 +00:00
Luke Jones
c5c57d02d8 Accepting request 667330 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.32.0
- Language
  + 2018 edition
    - You can now use the `?` operator in macro definitions. The `?`
      operator allows you to specify zero or one repetitions similar to the `*` and
      `+` operators.
    - Module paths with no leading keyword like `super`, `self`, or `crate`, will
      now always resolve to the item (`enum`, `struct`, etc.) available in the
      module if present, before resolving to a external crate or an item the prelude.
      E.g.
      enum Color { Red, Green, Blue }
      use Color::*;
  + All editions
    - You can now match against `PhantomData<T>` types.
    - You can now match against literals in macros with the `literal`
      specifier. This will match against a literal of any type.
      E.g. `1`, `'A'`, `"Hello World"`
    - Self can now be used as a constructor and pattern for unit and tuple structs. E.g.
      struct Point(i32, i32);
      impl Point {
          pub fn new(x: i32, y: i32) -> Self {
              Self(x, y)
          }
          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>`
      {
          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.
- Compiler
  + The default allocator has changed from jemalloc to the default allocator on
    your system. The compiler itself on Linux & macOS will still use
    jemalloc, but programs compiled with it will use the system allocator.
  + Added the `aarch64-pc-windows-msvc` target.
- Libraries
  + `PathBuf` now implements `FromStr`.
  - `Box<[T]>` now implements `FromIterator<T>`.
  - The `dbg!` macro has been stabilized. This macro enables you to
    easily debug expressions in your rust program. E.g.
    let a = 2;
    let b = dbg!(a * 2) + 1;
    //      ^-- prints: [src/main.rs:4] a * 2 = 4
    assert_eq!(b, 5);
  + The following APIs are now `const` functions and can be used in a
    `const` context.
    - `Cell::as_ptr`
    - `UnsafeCell::get`
    - `char::is_ascii`
    - `iter::empty`
    - `ManuallyDrop::new`
    - `ManuallyDrop::into_inner`
    - `RangeInclusive::start`
    - `RangeInclusive::end`
    - `NonNull::as_ptr`
    - `slice::as_ptr`
    - `str::as_ptr`
    - `Duration::as_secs`
    - `Duration::subsec_millis`
    - `Duration::subsec_micros`
    - `Duration::subsec_nanos`
    - `CStr::as_ptr`
    - `Ipv4Addr::is_unspecified`
    - `Ipv6Addr::new`
    - `Ipv6Addr::octets`
- Stabilized APIs
  + `i8::to_be_bytes`
  + `i8::to_le_bytes`
  + `i8::to_ne_bytes`
  + `i8::from_be_bytes`
  + `i8::from_le_bytes`
  + `i8::from_ne_bytes`
  + `i16::to_be_bytes`
  + `i16::to_le_bytes`
  + `i16::to_ne_bytes`
  + `i16::from_be_bytes`
  + `i16::from_le_bytes`
  + `i16::from_ne_bytes`
  + `i32::to_be_bytes`
  + `i32::to_le_bytes`
  + `i32::to_ne_bytes`
  + `i32::from_be_bytes`
  + `i32::from_le_bytes`
  + `i32::from_ne_bytes`
  + `i64::to_be_bytes`
  + `i64::to_le_bytes`
  + `i64::to_ne_bytes`
  + `i64::from_be_bytes`
  + `i64::from_le_bytes`
  + `i64::from_ne_bytes`
  + `i128::to_be_bytes`
  + `i128::to_le_bytes`
  + `i128::to_ne_bytes`
  + `i128::from_be_bytes`
  + `i128::from_le_bytes`
  + `i128::from_ne_bytes`
  + `isize::to_be_bytes`
  + `isize::to_le_bytes`
  + `isize::to_ne_bytes`
  + `isize::from_be_bytes`
  + `isize::from_le_bytes`
  + `isize::from_ne_bytes`
  + `u8::to_be_bytes`
  + `u8::to_le_bytes`
  + `u8::to_ne_bytes`
  + `u8::from_be_bytes`
  + `u8::from_le_bytes`
  + `u8::from_ne_bytes`
  + `u16::to_be_bytes`
  + `u16::to_le_bytes`
  + `u16::to_ne_bytes`
  + `u16::from_be_bytes`
  + `u16::from_le_bytes`
  + `u16::from_ne_bytes`
  + `u32::to_be_bytes`
  + `u32::to_le_bytes`
  + `u32::to_ne_bytes`
  + `u32::from_be_bytes`
  + `u32::from_le_bytes`
  + `u32::from_ne_bytes`
  + `u64::to_be_bytes`
  + `u64::to_le_bytes`
  + `u64::to_ne_bytes`
  + `u64::from_be_bytes`
  + `u64::from_le_bytes`
  + `u64::from_ne_bytes`
  + `u128::to_be_bytes`
  + `u128::to_le_bytes`
  + `u128::to_ne_bytes`
  + `u128::from_be_bytes`
  + `u128::from_le_bytes`
  + `u128::from_ne_bytes`
  + `usize::to_be_bytes`
  + `usize::to_le_bytes`
  + `usize::to_ne_bytes`
  + `usize::from_be_bytes`
  + `usize::from_le_bytes`
  + `usize::from_ne_bytes`
- Cargo
  + You can now run `cargo c` as an alias for `cargo check`.][cargo/6218]
  + Usernames are now allowed in alt registry URLs.][cargo/6242]
- Misc
  + `libproc_macro` has been added to the `rust-src` distribution.
- Compatibility Notes
  + The argument types for AVX's
  `_mm256_stream_si256`, `_mm256_stream_pd`, `_mm256_stream_ps` have
  been changed from `*const` to `*mut` as the previous implementation
  was unsound.

OBS-URL: https://build.opensuse.org/request/show/667330
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=179
2019-01-22 01:49:01 +00:00
Luke Jones
d7a6a69b7d Accepting request 663020 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.31.1
  + Fix Rust failing to build on `powerpc-unknown-netbsd`
  + Fix broken go-to-definition in RLS
  + Fix infinite loop on hover in RLS

OBS-URL: https://build.opensuse.org/request/show/663020
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=177
2019-01-05 21:04:42 +00:00
Luke Jones
d17b8b4e12 Accepting request 657399 from home:luke_nukem:branches:devel:languages:rust
install.sh was in wrong place for non-bootstrap builds

OBS-URL: https://build.opensuse.org/request/show/657399
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=175
2018-12-12 07:15:15 +00:00
Luke Jones
415db1d25a Accepting request 656172 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.31.0
  + Language
    - This version marks the release of the 2018 edition of Rust.
    - New lifetime elision rules now allow for eliding lifetimes in functions and
  impl headers. E.g. `impl<'a> Reader for BufReader<'a> {}` can now be
  `impl Reader for BufReader<'_> {}`. Lifetimes are still required to be defined
  in structs.
    - You can now define and use `const` functions. These are currently
  a strict minimal subset of the const fn RFC. Refer to the
  [language reference][const-reference] for what exactly is available.
    - You can now use tool lints, which allow you to scope lints from external
  tools using attributes. E.g. `#[allow(clippy::filter_map)]`.
    - `#[no_mangle]` and `#[export_name]` attributes can now be located anywhere in
  a crate, not just in exported functions.
    - You can now use parentheses in pattern matches.
  + Compiler
    - Updated musl to 1.1.20
  + Libraries
    - You can now convert `num::NonZero*` types to their raw equivalvents using the
  `From` trait. E.g. `u8` now implements `From<NonZeroU8>`.
    - You can now convert a `&Option<T>` into `Option<&T>` and `&mut Option<T>`
  into `Option<&mut T>` using the `From` trait.
    - You can now multiply (`*`) a `time::Duration` by a `u32`.
  + Stabilized APIs
    - `slice::align_to`
    - `slice::align_to_mut`
    - `slice::chunks_exact`
    - `slice::chunks_exact_mut`
    - `slice::rchunks`
    - `slice::rchunks_mut`
    - `slice::rchunks_exact`
    - `slice::rchunks_exact_mut`
    - `Option::replace`
  + Cargo
    - Cargo will now download crates in parallel using HTTP/2.
    - You can now rename packages in your Cargo.toml We have a guide
  on how to use the `package` key in your dependencies.

OBS-URL: https://build.opensuse.org/request/show/656172
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=174
2018-12-10 22:23:11 +00:00
Luke Jones
7ead920628 Accepting request 648802 from home:luke_nukem:branches:devel:languages:rust
- Add additional Requires to rls:
  + Requires rust-src
  + Requires rust-analysis
- Add additional Requires to rustfmt:
  + Requires cargo
- Fix rust-src requiring /usr/bin/bash; a script was incorrectly
  edited at build time.

OBS-URL: https://build.opensuse.org/request/show/648802
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=172
2018-11-14 04:10:24 +00:00
Luke Jones
8d8cfac8a0 Accepting request 648254 from home:luke_nukem:branches:devel:languages:rust
- Set the bootstrap flag in the spec file temporarily so that rings
  will build rust without intervention. Must be reverted once all
  releases are successful.

OBS-URL: https://build.opensuse.org/request/show/648254
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=170
2018-11-11 19:45:31 +00:00
Luke Jones
39ee97f5ef Accepting request 647670 from home:luke_nukem:branches:devel:languages:rust
- Add Provides/Obsoletes/Conflicts to rust-std-static and cargo

OBS-URL: https://build.opensuse.org/request/show/647670
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=169
2018-11-10 20:08:32 +00:00
5ba900c64b - Strengthen the dependency on rust-std-static to Requires
to fix crate package builds in OBS
- Use standard form rich dependencies for SUSE Linux 15 and newer

OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=168
2018-11-08 01:20:39 +00:00
Luke Jones
e95f63d9ab Accepting request 646674 from home:luke_nukem:branches:devel:languages:rust
More lenient constraints should help with selecting build workers.

OBS-URL: https://build.opensuse.org/request/show/646674
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=167
2018-11-06 14:30:18 +00:00
b397e49d78 Accepting request 646646 from home:jengelh:branches:devel:languages:rust
- Fix second-person language and spellos.

OBS-URL: https://build.opensuse.org/request/show/646646
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=166
2018-11-06 13:16:32 +00:00
Luke Jones
80a43db8cf OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=165 2018-11-05 19:23:13 +00:00
Luke Jones
247b4de140 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=164 2018-11-05 19:21:27 +00:00
Luke Jones
a6a9ba3876 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=163 2018-11-05 14:17:50 +00:00
Luke Jones
ccd5187a84 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=162 2018-11-05 08:37:54 +00:00
Luke Jones
49905303e7 Accepting request 646330 from home:luke_nukem:branches:devel:languages:rust
- Patch: require patching of src/librustc_llvm/build.rs to ignore
  a flag that llvm-config --cxxflags outputs which GCC doesn't
  recognise.
- Default to building using the distro LLVM where the version is
  >= 5.0, instead of the Rust bundled LLVM which requires
  compilation. This should decrease build times. SLE LLVM is too old.
- Fixing various rpmlint warnings and errors:
  + ExclusiveArch instead of BuildArch for i686
  + Remove conflicts with same package name
  + Remove a few hidden files during prep, does not touch '.clang-format'
  + Remove old patch macro in comment
  + Fix lint warning about bash and zsh completition files
  + Fix various script shebang warnings (incorrect or missing)
  + Adjust rpmlintrc to mask some 'invalid' warnings
- Move Rust and its tools in to their own category under:
  + Development/Languages/Rust
- Jump from version 1.26.2 to 1.30.0 due to a build issue with using 1.26.x to
  compile 1.27.x. This package release requires %{rust_bootstrap} to be set.
- Enable extra rust tools to be built (cargo, rls, rustfmt, analysis)
    + cargo is now packaged with the same version number as the rust release, this
      may break any packages that relied on a cargo version number.
- Remove ccache and ninja from BuildRequires.
- Switch build configuration to use configure script, remove config.toml.
- Include all bootstraps in source rpm to make bootstrapping easier to manage
  within OBS.
- Remove unused patch: update-config-guess.patch
Update to version 1.30.0 (2018-10-25)
  + Language
    - Procedural macros are now available.-  These kinds of macros allow for
      more powerful code generation. There is a new chapter available
      in the Rust Programming Language book that goes further in depth.
    - You can now use keywords as identifiers using the raw identifiers
      syntax (`r#`),-  e.g. `let r#for = true;`
    - Using anonymous parameters in traits is now deprecated with a warning and
      will be a hard error in the 2018 edition.- 
    - You can now use `crate` in paths.-  This allows you to refer to the
      crate root in the path, e.g. `use crate::foo;` refers to `foo` in `src/lib.rs`.
    - Using a external crate no longer requires being prefixed with `::`.- 
      Previously, using a external crate in a module without a use statement
      required `let json = ::serde_json::from_str(foo);` but can now be written
      as `let json = serde_json::from_str(foo);`.
    - You can now apply the `#[used]` attribute to static items to prevent the
      compiler from optimising them away, even if they appear to be unused,- 
      e.g. `#[used] static FOO: u32 = 1;`
    - You can now import and reexport macros from other crates with the `use`
      syntax.-  Macros exported with `#[macro_export]` are now placed into
      the root module of the crate. If your macro relies on calling other local
      macros, it is recommended to export with the
      `#[macro_export(local_inner_macros)]` attribute so users won't have to import
      those macros.
    - You can now catch visibility keywords (e.g. `pub`, `pub(crate)`) in macros
      using the `vis` specifier.- 
    - Non-macro attributes now allow all forms of literals, not just
      strings.-  Previously, you would write `#[attr("true")]`, and you can now
      write `#[attr(true)]`.
    - You can now specify a function to handle a panic in the Rust runtime with the
      `#[panic_handler]` attribute.- 
  + Compiler
    - Added the `riscv32imc-unknown-none-elf` target.- 
    - Added the `aarch64-unknown-netbsd` target- 
  + Libraries
    - `ManuallyDrop` now allows the inner type to be unsized.- 
  + Stabilized APIs
    - `Ipv4Addr::BROADCAST`
    - `Ipv4Addr::LOCALHOST`
    - `Ipv4Addr::UNSPECIFIED`
    - `Ipv6Addr::LOCALHOST`
    - `Ipv6Addr::UNSPECIFIED`
    - `Iterator::find_map`
    - The following methods are replacement methods for `trim_left`, `trim_right`,
      `trim_left_matches`, and `trim_right_matches`, which will be deprecated
      in 1.33.0:
      + `str::trim_end_matches`
      + `str::trim_end`
      + `str::trim_start_matches`
      + `str::trim_start`
  + Cargo
    - `cargo run` doesn't require specifying a package in workspaces.][cargo/5877]
    - `cargo doc` now supports `--message-format=json`.][cargo/5878] This is
      equivalent to calling `rustdoc --error-format=json`.
    - Cargo will now provide a progress bar for builds.][cargo/5995]
  + Misc
    - `rustdoc` allows you to specify what edition to treat your code as with the
      `--edition` option.- 
    - `rustdoc` now has the `--color` (specify whether to output color) and
      `--error-format` (specify error format, e.g. `json`) options.- 
    - We now distribute a `rust-gdbgui` script that invokes `gdbgui` with Rust
      debug symbols.- 
    - Attributes from Rust tools such as `rustfmt` or `clippy` are now
      available,-  e.g. `#[rustfmt::skip]` will skip formatting the next item.
- Update to version 1.29.2 (2018-10-11)
  + Workaround for an aliasing-related LLVM bug, which caused miscompilation.
  + The `rls-preview` component on the windows-gnu targets has been restored.
- Update to version 1.29.1 (2018-09-25)
  + Security Notes
    - The standard library's `str::repeat` function contained an out of bounds write
      caused by an integer overflow. This has been fixed by deterministically
      panicking when an overflow happens.
- Update to version 1.29.0 (2018-09-13)
  + Compiler
    - Bumped minimum LLVM version to 5.0.
    - Added `powerpc64le-unknown-linux-musl` target.
    - Added `aarch64-unknown-hermit` and `x86_64-unknown-hermit` targets.
  + Libraries
    - `Once::call_once` no longer requires `Once` to be `'static`.
    - `BuildHasherDefault` now implements `PartialEq` and `Eq`.
    - `Box<CStr>`, `Box<OsStr>`, and `Box<Path>` now implement `Clone`.
    - Implemented `PartialEq<&str>` for `OsString` and `PartialEq<OsString>`
      for `&str`.
    - `Cell<T>` now allows `T` to be unsized.
    - `SocketAddr` is now stable on Redox.
  + Stabilized APIs
    - `Arc::downcast`
    - `Iterator::flatten`
    - `Rc::downcast`
  + Cargo
    - Cargo can silently fix some bad lockfiles.][cargo/5831] You can use
      `--locked` to disable this behavior.
    - `cargo-install` will now allow you to cross compile an install
      using `--target`.][cargo/5614]
    - Added the `cargo-fix` subcommand to automatically move project code from
      2015 edition to 2018.][cargo/5723]
    - `cargo doc` can now optionally document private types using the
      `--document-private-items` flag.][cargo/5543]
  + Misc
    - `rustdoc` now has the `--cap-lints` option which demotes all lints above
      the specified level to that level. For example `--cap-lints warn`
      will demote `deny` and `forbid` lints to `warn`.
    - `rustc` and `rustdoc` will now have the exit code of `1` if compilation
      fails and `101` if there is a panic.
    - A preview of clippy has been made available through rustup.
      You can install the preview with `rustup component add clippy-preview`.
  + Compatibility Notes
    - `str::{slice_unchecked, slice_unchecked_mut}` are now deprecated.
      Use `str::get_unchecked(begin..end)` instead.
    - `std::env::home_dir` is now deprecated for its unintuitive behavior.
      Consider using the `home_dir` function from
      https://crates.io/crates/dirs instead.
    - `rustc` will no longer silently ignore invalid data in target spec.
    - `cfg` attributes and `--cfg` command line flags are now more
      strictly validated.
- Update to version 1.28.0
  + Language
    - The `#[repr(transparent)]` attribute is now stable.-  This attribute
      allows a Rust newtype wrapper (`struct NewType<T>(T);`) to be represented as
      the inner type across Foreign Function Interface (FFI) boundaries.
    - The keywords `pure`, `sizeof`, `alignof`, and `offsetof` have been unreserved
      and can now be used as identifiers.- 
    - The `GlobalAlloc` trait and `#[global_allocator]` attribute are now
      stable.-  This will allow users to specify a global allocator for
      their program.
    - Unit test functions marked with the `#[test]` attribute can now return
      `Result<(), E: Debug>` in addition to `()`.- 
    - The `lifetime` specifier for `macro_rules!` is now stable.-  This
      allows macros to easily target lifetimes.
  + Compiler
    - The `s` and `z` optimisation levels are now stable.-  These optimisations
      prioritise making smaller binary sizes. `z` is the same as `s` with the
      exception that it does not vectorise loops, which typically results in an even
      smaller binary.
    - The short error format is now stable.-  Specified with
      `--error-format=short` this option will provide a more compressed output of
      rust error messages.
    - Added a lint warning when you have duplicated `macro_export`s.- 
    - Reduced the number of allocations in the macro parser.-  This can
      improve compile times of macro heavy crates on average by 5%.
  + Libraries
    - Implemented `Default` for `&mut str`.- 
    - Implemented `From<bool>` for all integer and unsigned number types.- 
    - Implemented `Extend` for `()`.- 
    - The `Debug` implementation of `time::Duration` should now be more easily
      human readable.-  Previously a `Duration` of one second would printed as
      `Duration { secs: 1, nanos: 0 }` and will now be printed as `1s`.
    - Implemented `From<&String>` for `Cow<str>`, `From<&Vec<T>>` for `Cow<[T]>`,
      `From<Cow<CStr>>` for `CString`, `From<CString>, From<CStr>, From<&CString>`
      for `Cow<CStr>`, `From<OsString>, From<OsStr>, From<&OsString>` for
      `Cow<OsStr>`, `From<&PathBuf>` for `Cow<Path>`, and `From<Cow<Path>>`
      for `PathBuf`.- 
    - Implemented `Shl` and `Shr` for `Wrapping<u128>`
      and `Wrapping<i128>`.- 
    - `DirEntry::metadata` now uses `fstatat` instead of `lstat` when
      possible.-  This can provide up to a 40% speed increase.
    - Improved error messages when using `format!`.- 
  + Stabilized APIs
    - `Iterator::step_by`
    - `Path::ancestors`
    - `SystemTime::UNIX_EPOCH`
    - `alloc::GlobalAlloc`
    - `alloc::Layout`
    - `alloc::LayoutErr`
    - `alloc::System`
    - `alloc::alloc`
    - `alloc::alloc_zeroed`
    - `alloc::dealloc`
    - `alloc::realloc`
    - `alloc::handle_alloc_error`
    - `btree_map::Entry::or_default`
    - `fmt::Alignment`
    - `hash_map::Entry::or_default`
    - `iter::repeat_with`
    - `num::NonZeroUsize`
    - `num::NonZeroU128`
    - `num::NonZeroU16`
    - `num::NonZeroU32`
    - `num::NonZeroU64`
    - `num::NonZeroU8`
    - `ops::RangeBounds`
    - `slice::SliceIndex`
    - `slice::from_mut`
    - `slice::from_ref`
    - `{Any + Send + Sync}::downcast_mut`
    - `{Any + Send + Sync}::downcast_ref`
    - `{Any + Send + Sync}::is`
  + Cargo
    - Cargo will now no longer allow you to publish crates with build scripts that
      modify the `src` directory.][cargo/5584] The `src` directory in a crate should be
      considered to be immutable.
  + Misc
    - The `suggestion_applicability` field in `rustc`'s json output is now
      stable.-  This will allow dev tools to check whether a code suggestion
      would apply to them.
  + Compatibility Notes
    - Rust will consider trait objects with duplicated constraints to be the same
      type as without the duplicated constraint.-  For example the below code will
      now fail to compile.
      ```rust
      trait Trait {}
      impl Trait + Send {
          fn test(&self) { println!("one"); } //~ ERROR duplicate definitions with name `test`
      }
      impl Trait + Send + Send {
          fn test(&self) { println!("two"); }
      }
- Update to version 1.27.2:
  + Compatibility Notes
    - The borrow checker was fixed to avoid an additional potential unsoundness when using
      match ergonomics
- Update to version 1.27.1:
  + Security Notes
    - rustdoc would execute plugins in the /tmp/rustdoc/plugins directory
      when running, which enabled executing code as some other user on a
      given machine. This release fixes that vulnerability; you can read
      more about this on the blog. The associated CVE is [CVE-2018-1000622].
      Thank you to Red Hat for responsibily disclosing this vulnerability to us.
  + Compatibility Notes
    - The borrow checker was fixed to avoid an additional potential unsoundness when using
      match ergonomics
- Update to version 1.27.0:
  + Language
    - Removed 'proc' from the reserved keywords list. This allows `proc` to
      be used as an identifier.
    - The dyn syntax is now available. This syntax is equivalent to the
      bare `Trait` syntax, and should make it clearer when being used in tandem with
      `impl Trait` because it is equivalent to the following syntax:
      `&Trait == &dyn Trait`, `&mut Trait == &mut dyn Trait`, and
      `Box<Trait> == Box<dyn Trait>`.
    - Attributes on generic parameters such as types and lifetimes are
      now stable. e.g.
      `fn foo<#[lifetime_attr] 'a, #[type_attr] T: 'a>() {}`
    - The `#[must_use]` attribute can now also be used on functions as well as
      types. It provides a lint that by default warns users when the
      value returned by a function has not been used.
  + Compiler
    - Added the `armvte-unknown-linux-musleabi` target.
  + Libraries
    - SIMD (Single Instruction Multiple Data) on x/x_ is now stable.
      This includes arch::x & arch::x_ modules which contain
      SIMD intrinsics, a new macro called `is_x_feature_detected!`, the
      `#[target_feature(enable="")]` attribute, and adding `target_feature = ""` to
      the `cfg` attribute.
    - A lot of methods for `[u]`, `f`, and `f` previously only available in
      std are now available in core.
    - The generic `Rhs` type parameter on `ops::{Shl, ShlAssign, Shr}` now defaults
      to `Self`.
    - std::str::replace` now has the `#[must_use]` attribute to clarify
      that the operation isn't done in place.
    - Clone::clone`, `Iterator::collect`, and `ToOwned::to_owned` now have
      the `#[must_use]` attribute] to warn about unused potentially
      expensive allocations.
  + Stabilized APIs
    - DoubleEndedIterator::rfind
    - DoubleEndedIterator::rfold
    - DoubleEndedIterator::try_rfold
    - Duration::from_micros
    - Duration::from_nanos
    - Duration::subsec_micros
    - Duration::subsec_millis
    - HashMap::remove_entry
    - Iterator::try_fold
    - Iterator::try_for_each
    - NonNull::cast
    - Option::filter
    - String::replace_range
    - Take::set_limit
    - hint::unreachable_unchecked
    - os::unix::process::parent_id
    - ptr::swap_nonoverlapping
    - slice::rsplit_mut
    - slice::rsplit
    - slice::swap_with_slice
  + Cargo
    - `cargo-metadata` now includes `authors`, `categories`, `keywords`,
      `readme`, and `repository` fields.
    - `cargo-metadata` now includes a package's `metadata` table.
    - Added the `--target-dir` optional argument. This allows you to specify
      a different directory than `target` for placing compilation artifacts.
    - Cargo will be adding automatic target inference for binaries, benchmarks,
      examples, and tests in the Rust 2018 edition. If your project specifies
      specific targets, e.g. using `[[bin]]`, and have other binaries in locations
      where cargo would infer a binary, Cargo will produce a warning. You can
      disable this feature ahead of time by setting any of the following to false:
      `autobins`, `autobenches`, `autoexamples`, `autotests`.
    - Cargo will now cache compiler information. This can be disabled by
      setting `CARGO_CACHE_RUSTC_INFO=0` in your environment.
  + Compatibility Notes
    - Calling a `CharExt` or `StrExt` method directly on core will no longer
      work. e.g. `::core::prelude::v1::StrExt::is_empty("")` will not
      compile, `"".is_empty()` will still compile.
    - `Debug` output on `atomic::{AtomicBool, AtomicIsize, AtomicPtr, AtomicUsize}`
      will only print the inner type. E.g.
      `print!("{:?}", AtomicBool::new(true))` will print `true`,
      not `AtomicBool(true)`.
    - The maximum number for `repr(align(N))` is now 2²⁹. Previously you
      could enter higher numbers but they were not supported by LLVM. Up to 512MB
      alignment should cover all use cases.
    - The `.description()` method on the `std::error::Error` trait
      has been soft-deprecated. It is no longer required to implement it.
  + Misc
    - Added “The Rustc book” into the official documentation.

OBS-URL: https://build.opensuse.org/request/show/646330
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=161
2018-11-05 08:18:23 +00:00
44fee7379e Accepting request 615064 from home:mmanu84:rust
- Update to version 1.26.2:
  + Compatibility Notes
    - The borrow checker was fixed to avoid unsoundness when using match ergonomics
- Update to version 1.26.1:
  + Tools
    - RLS now works on Windows
    - Rustfmt stopped badly formatting text in some cases
  + Compatibility Notes
    - `fn main() -> impl Trait` no longer works for non-Termination trait
      This reverts an accidental stabilization
    - `NaN > NaN` no longer returns true in const-fn contexts
    - Prohibit using turbofish for `impl Trait` in method arguments

OBS-URL: https://build.opensuse.org/request/show/615064
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=159
2018-06-08 01:24:48 +00:00
ee99c69dc3 Accepting request 606817 from home:luc14n0:branches:devel:languages:rust
Update to version 1.26.0

OBS-URL: https://build.opensuse.org/request/show/606817
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=157
2018-05-13 15:55:39 +00:00
Luke Jones
012930143c Accepting request 605639 from home:mmanu84:rust
- Patch disabled
  * update-config-guess.patch
- Update to 1.25.0
- Language changes:
  + Stabilised `#[repr(align(x))]`.[47006] [RFC 1358]
  + You can now use nested groups of imports.[47948]
    e.g. `use std::{fs::File, io::Read, path::{Path, PathBuf}};`
  + You can now have `|` at the start of a match arm.[47947] e.g.
- Compiler changes:
  + Upgraded to LLVM 6.[47828]
  + Added `-C lto=val` option.[47521]
  + Added `i586-unknown-linux-musl` target[47282]
- Library changes:
  + Impl Send for `process::Command` on Unix.[47760]
  + Impl PartialEq and Eq for `ParseCharError`.[47790]
  + `UnsafeCell::into_inner` is now safe.[47204]
  + Implement libstd for CloudABI.[47268]
  + `Float::{from_bits, to_bits}` is now available in libcore.[46931]
  + Implement `AsRef<Path>` for Component[46985]
  + Implemented `Write` for `Cursor<&mut Vec<u8>>`[46830]
  + Moved `Duration` to libcore.[46666]
- Stabilized APIs
  + `Location::column`
  + `ptr::NonNull`
- Misc
  + Rust by example is now shipped with new releases[46196]
- Compatibility Notes:
  + Deprecated `net::lookup_host`.[47510]
  + `rustdoc` has switched to pulldown as the default markdown renderer.[47398]
  + The borrow checker was sometimes incorrectly permitting overlapping borrows
    around indexing operations (see [#47349][47349]). This has been fixed (which also
    enabled some correct code that used to cause errors (e.g. [#33903][33903] and [#46095][46095]).
  + Removed deprecated unstable attribute `#[simd]`.[47251]

OBS-URL: https://build.opensuse.org/request/show/605639
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=155
2018-05-11 02:31:09 +00:00
Manu Maier
812043155b OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=154 2018-03-29 17:29:38 +00:00
Manu Maier
3c1324fff8 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=153 2018-03-29 17:29:18 +00:00
368726c495 Accepting request 590331 from home:mmanu84:rust
- Update to 1.24.1
  + Do not abort when unwinding through FFI
  + Make the error index generator work again
- Update Cargo to v0.25.0

OBS-URL: https://build.opensuse.org/request/show/590331
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=151
2018-03-23 02:17:10 +00:00