Accepting request 648255 from devel:languages:rust
OBS-URL: https://build.opensuse.org/request/show/648255 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rust?expand=0&rev=30
This commit is contained in:
commit
f39150ce74
37
_constraints
37
_constraints
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<processors>8</processors>
|
||||
<processors>4</processors>
|
||||
<memory>
|
||||
<size unit="G">8</size>
|
||||
</memory>
|
||||
@ -11,14 +11,41 @@
|
||||
</hardware>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="M">768</size>
|
||||
</memory>
|
||||
<processors>2</processors>
|
||||
<physicalmemory>
|
||||
<size unit="G">4</size>
|
||||
</physicalmemory>
|
||||
<disk>
|
||||
<size unit="G">15</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">8</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">8</size>
|
||||
</physicalmemory>
|
||||
<disk>
|
||||
<size unit="G">10</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f4ea629da354cc5f5136c8d013ac36e2f342c522150b1dd9ced57b3c42c26e40
|
||||
size 5099302
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:877f140f58e362f3d47806d9671e3904b7c135c76075d00213efa87cbf6008d7
|
||||
size 5991048
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c95455fd5006667865b7b6c677102fea1378b3facaf3bf6a6d94e8233bae926e
|
||||
size 5835402
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:503a7f8a5e9283df33e7d86aa401dca1744abeea67a0ccbb62b2724a63dcd5fc
|
||||
size 6353885
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e7ebf34c9278d375ac323d22a1a5404f2e8fba4db99d7f7f4e0a64b24d90ddd0
|
||||
size 5968362
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8d1ed2baf81a933187ef62ef5273b54c055e816922f607411273ed662e45016b
|
||||
size 5894524
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:917faaf071aa8c84c9160d786bab00a48cd8309d9ca26ac4b8f17f5137590dc6
|
||||
size 5289607
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f50b64a7610401f4c1afe21de238663f33c621b7fc42c51401090ebd48e69fec
|
||||
size 6278605
|
246
config.toml
246
config.toml
@ -1,246 +0,0 @@
|
||||
# default options are commented out
|
||||
# =============================================================================
|
||||
# Tweaking how LLVM is compiled
|
||||
# =============================================================================
|
||||
[llvm]
|
||||
|
||||
# Indicates whether rustc will support compilation with LLVM
|
||||
# note: rustc does not compile without LLVM at the moment
|
||||
#enabled = true
|
||||
|
||||
# Indicates whether the LLVM build is a Release or Debug build
|
||||
#optimize = true
|
||||
|
||||
# Indicates whether an LLVM Release build should include debug info
|
||||
#release-debuginfo = false
|
||||
|
||||
# Indicates whether the LLVM assertions are enabled or not
|
||||
#assertions = false
|
||||
|
||||
# Indicates whether ccache is used when building LLVM
|
||||
ccache = true
|
||||
|
||||
# If an external LLVM root is specified, we automatically check the version by
|
||||
# default to make sure it's within the range that we're expecting, but setting
|
||||
# this flag will indicate that this version check should not be done.
|
||||
#version-check = false
|
||||
|
||||
# Link libstdc++ statically into the librustc_llvm instead of relying on a
|
||||
# dynamic version to be available.
|
||||
#static-libstdcpp = false
|
||||
|
||||
# Tell the LLVM build system to use Ninja instead of the platform default for
|
||||
# the generated build system. This can sometimes be faster than make, for
|
||||
# example.
|
||||
ninja = true
|
||||
|
||||
# LLVM targets to build support for.
|
||||
# Note: this is NOT related to Rust compilation targets. However, as Rust is
|
||||
# dependent on LLVM for code generation, turning targets off here WILL lead to
|
||||
# the resulting rustc being unable to compile for the disabled architectures.
|
||||
# Also worth pointing out is that, in case support for new targets are added to
|
||||
# LLVM, enabling them here doesn't mean Rust is automatically gaining said
|
||||
# support. You'll need to write a target specification at least, and most
|
||||
# likely, teach rustc about the C ABI of the target. Get in touch with the
|
||||
# Rust team and file an issue if you need assistance in porting!
|
||||
#targets = "X86;ARM;AArch64;Mips;PowerPC;SystemZ;JSBackend;MSP430;Sparc;NVPTX;Hexagon"
|
||||
|
||||
# LLVM experimental targets to build support for. These targets are specified in
|
||||
# the same format as above, but since these targets are experimental, they are
|
||||
# not built by default and the experimental Rust compilation targets that depend
|
||||
# on them will not work unless the user opts in to building them. Possible
|
||||
# experimental LLVM targets include WebAssembly for the
|
||||
# wasm32-experimental-emscripten Rust target.
|
||||
#experimental-targets = ""
|
||||
|
||||
# Cap the number of parallel linker invocations when compiling LLVM.
|
||||
# This can be useful when building LLVM with debug info, which significantly
|
||||
# increases the size of binaries and consequently the memory required by
|
||||
# each linker process.
|
||||
# If absent or 0, linker invocations are treated like any other job and
|
||||
# controlled by rustbuild's -j parameter.
|
||||
#link-jobs = 0
|
||||
|
||||
# When invoking `llvm-config` this configures whether the `--shared` argument is
|
||||
# passed to prefer linking to shared libraries.
|
||||
#link-shared = false
|
||||
|
||||
# =============================================================================
|
||||
# General build configuration options
|
||||
# =============================================================================
|
||||
[build]
|
||||
build = "<rust-triple>"
|
||||
host = ["<rust-triple>"]
|
||||
target = ["<rust-triple>"]
|
||||
|
||||
cargo = "<cargo-bin>"
|
||||
rustc = "/usr/bin/rustc"
|
||||
|
||||
# Flag to specify whether any documentation is built. If false, rustdoc and
|
||||
# friends will still be compiled but they will not be used to generate any
|
||||
# documentation.
|
||||
#docs = true
|
||||
|
||||
# Indicate whether the compiler should be documented in addition to the standard
|
||||
# library and facade crates.
|
||||
#compiler-docs = false
|
||||
|
||||
# Indicate whether submodules are managed and updated automatically.
|
||||
#submodules = true
|
||||
|
||||
# The path to (or name of) the GDB executable to use. This is only used for
|
||||
# executing the debuginfo test suite.
|
||||
#gdb = "gdb"
|
||||
|
||||
# The node.js executable to use. Note that this is only used for the emscripten
|
||||
# target when running tests, otherwise this can be omitted.
|
||||
#nodejs = "node"
|
||||
|
||||
# Python interpreter to use for various tasks throughout the build, notably
|
||||
# rustdoc tests, the lldb python interpreter, and some dist bits and pieces.
|
||||
# Note that Python 2 is currently required.
|
||||
#python = "python2.7"
|
||||
|
||||
# Force Cargo to check that Cargo.lock describes the precise dependency
|
||||
# set that all the Cargo.toml files create, instead of updating it.
|
||||
#locked-deps = false
|
||||
|
||||
# Indicate whether the vendored sources are used for Rust dependencies or not
|
||||
vendor = true
|
||||
|
||||
# Typically the build system will build the rust compiler twice. The second
|
||||
# compiler, however, will simply use its own libraries to link against. If you
|
||||
# would rather to perform a full bootstrap, compiling the compiler three times,
|
||||
# then you can set this option to true. You shouldn't ever need to set this
|
||||
# option to true.
|
||||
full-bootstrap = true
|
||||
|
||||
# Enable a build of the extended rust tool set which is not only the compiler
|
||||
# but also tools such as Cargo. This will also produce "combined installers"
|
||||
# which are used to install Rust and Cargo together. This is disabled by
|
||||
# default.
|
||||
#extended = false
|
||||
|
||||
# Verbosity level: 0 == not verbose, 1 == verbose, 2 == very verbose
|
||||
verbose = 1
|
||||
|
||||
# Build the sanitizer runtimes
|
||||
#sanitizers = false
|
||||
|
||||
# Build the profiler runtime
|
||||
#profiler = false
|
||||
|
||||
# Indicates whether the OpenSSL linked into Cargo will be statically linked or
|
||||
# not. If static linkage is specified then the build system will download a
|
||||
# known-good version of OpenSSL, compile it, and link it to Cargo.
|
||||
#openssl-static = false
|
||||
|
||||
# Run the build with low priority, by setting the process group's "nice" value
|
||||
# to +10 on Unix platforms, and by using a "low priority" job object on Windows.
|
||||
#low-priority = false
|
||||
|
||||
# Arguments passed to the `./configure` script, used during distcheck. You
|
||||
# probably won't fill this in but rather it's filled in by the `./configure`
|
||||
# script.
|
||||
#configure-args = []
|
||||
|
||||
# Indicates that a local rebuild is occurring instead of a full bootstrap,
|
||||
# essentially skipping stage0 as the local compiler is recompiling itself again.
|
||||
#local-rebuild = false
|
||||
|
||||
# =============================================================================
|
||||
# General install configuration options
|
||||
# =============================================================================
|
||||
[install]
|
||||
prefix = "<prefix>"
|
||||
sysconfdir = "/etc"
|
||||
bindir = "<bindir>"
|
||||
libdir = "<libdir>"
|
||||
mandir = "<mandir>"
|
||||
docdir = "<docdir>"
|
||||
|
||||
# =============================================================================
|
||||
# Options for compiling Rust code itself
|
||||
# =============================================================================
|
||||
[rust]
|
||||
# Indicates that the build should be optimized for debugging Rust. Note that
|
||||
# this is typically not what you want as it takes an incredibly large amount of
|
||||
# time to have a debug-mode rustc compile any code (notably libstd). If this
|
||||
# value is set to `true` it will affect a number of configuration options below
|
||||
# as well, if unconfigured.
|
||||
#debug = false
|
||||
|
||||
# Whether or not to optimize the compiler and standard library
|
||||
# Note: the slowness of the non optimized compiler compiling itself usually
|
||||
# outweighs the time gains in not doing optimizations, therefore a
|
||||
# full bootstrap takes much more time with optimize set to false.
|
||||
#optimize = true
|
||||
|
||||
# Number of codegen units to use for each compiler invocation. A value of 0
|
||||
# means "the number of cores on this machine", and 1+ is passed through to the
|
||||
# compiler.
|
||||
codegen-units = 0
|
||||
|
||||
# Whether or not debug assertions are enabled for the compiler and standard
|
||||
# library. Also enables compilation of debug! and trace! logging macros.
|
||||
#debug-assertions = false
|
||||
|
||||
# Whether or not debuginfo is emitted
|
||||
debuginfo = true
|
||||
|
||||
# Whether or not line number debug information is emitted
|
||||
#debuginfo-lines = false
|
||||
|
||||
# Whether or not to only build debuginfo for the standard library if enabled.
|
||||
# If enabled, this will not compile the compiler with debuginfo, just the
|
||||
# standard library.
|
||||
#debuginfo-only-std = false
|
||||
|
||||
# Whether or not jemalloc is built and enabled
|
||||
use-jemalloc = false
|
||||
debug-jemalloc = false
|
||||
|
||||
# Whether or not `panic!`s generate backtraces (RUST_BACKTRACE)
|
||||
#backtrace = true
|
||||
|
||||
# The default linker that will be hard-coded into the generated compiler for
|
||||
# targets that don't specify linker explicitly in their target specifications.
|
||||
# Note that this is not the linker used to link said compiler.
|
||||
#default-linker = "cc"
|
||||
|
||||
# The "channel" for the Rust build to produce. The stable/beta channels only
|
||||
# allow using stable features, whereas the nightly and dev channels allow using
|
||||
# nightly features
|
||||
channel = "stable"
|
||||
|
||||
# By default the `rustc` executable is built with `-Wl,-rpath` flags on Unix
|
||||
# platforms to ensure that the compiler is usable by default from the build
|
||||
# directory (as it links to a number of dynamic libraries). This may not be
|
||||
# desired in distributions, for example.
|
||||
rpath = false
|
||||
|
||||
# Suppresses extraneous output from tests to ensure the output of the test
|
||||
# harness is relatively clean.
|
||||
#quiet-tests = false
|
||||
|
||||
# Flag indicating whether tests are compiled with optimizations (the -O flag) or
|
||||
# with debuginfo (the -g flag)
|
||||
#optimize-tests = true
|
||||
#debuginfo-tests = true
|
||||
|
||||
# Flag indicating whether codegen tests will be run or not. If you get an error
|
||||
# saying that the FileCheck executable is missing, you may want to disable this.
|
||||
codegen-tests = false
|
||||
|
||||
# Flag indicating whether git info will be retrieved from .git automatically.
|
||||
# Having the git information can cause a lot of rebuilds during development.
|
||||
# Note: If this attribute is not explicity set (e.g. if left commented out) it
|
||||
# will default to true if channel = "dev", but will default to false otherwise.
|
||||
#ignore-git = true
|
||||
|
||||
# When creating source tarballs whether or not to create a source tarball.
|
||||
#dist-src = false
|
||||
|
||||
# Whether to also run the Miri tests suite when running tests.
|
||||
# As a side-effect also generates MIR for all libraries.
|
||||
#test-miri = false
|
17
ignore-Wstring-conversion.patch
Normal file
17
ignore-Wstring-conversion.patch
Normal file
@ -0,0 +1,17 @@
|
||||
*** rustc-1.30.0-src/src/librustc_llvm/build.rs 2018-10-25 09:00:01.000000000 +1300
|
||||
--- rust-patch/src/librustc_llvm/build.rs 2018-11-05 07:31:35.672765505 +1300
|
||||
***************
|
||||
*** 147,152 ****
|
||||
--- 147,158 ----
|
||||
continue;
|
||||
}
|
||||
|
||||
+ // hack to avoid flag on openSUSE which is incompatible with GCC
|
||||
+ if flag.starts_with("-W") && flag.contains("string-conversion") {
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
cfg.flag(flag);
|
||||
}
|
||||
|
3
rust-1.29.2-aarch64-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-aarch64-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:63ef07abc851889ec8d0df4333b581c8767cb50f3e7c343ce08f5e96b82015a3
|
||||
size 99702524
|
3
rust-1.29.2-arm-unknown-linux-gnueabihf.tar.xz
Normal file
3
rust-1.29.2-arm-unknown-linux-gnueabihf.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:62712e24a785e8afcc65c07343508c2518eac7815b1f20cb9c095d47ddcf3146
|
||||
size 105657004
|
3
rust-1.29.2-armv7-unknown-linux-gnueabihf.tar.xz
Normal file
3
rust-1.29.2-armv7-unknown-linux-gnueabihf.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1c6bc61992a4e1fd5d098739142bad5204cfcd4f5489f87e7d972d5bd7e65ec9
|
||||
size 105958932
|
3
rust-1.29.2-i686-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-i686-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2e9cfba714309f1f19fe9550b693d9c1f35e95ae25049851abab3af94f446510
|
||||
size 150567444
|
3
rust-1.29.2-powerpc64-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-powerpc64-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7d6db7c98caad76015bea002e7e61bba43e1ff4fcdf76f905ad6c378e4caaac9
|
||||
size 103432092
|
3
rust-1.29.2-powerpc64le-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-powerpc64le-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:27714e2abde3d89f5947371ec144f4386639b037aa214e5571508faff2d0c66f
|
||||
size 106607384
|
3
rust-1.29.2-s390x-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-s390x-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:48f1a492d12e8441549e8229ee0bddab4f3634c0a6ebeb2b10d36dc89332401a
|
||||
size 99114900
|
3
rust-1.29.2-x86_64-unknown-linux-gnu.tar.xz
Normal file
3
rust-1.29.2-x86_64-unknown-linux-gnu.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b27b4da8e7a85c07dc546cb26682cf0fc74cb4c183dce44f9014c2dd9265931f
|
||||
size 148275708
|
@ -1,8 +1,8 @@
|
||||
# filters for rust-src
|
||||
addFilter("devel-dependency rust-std-static")
|
||||
addFilter("devel-file-in-non-devel-package.*/usr/lib/rustlib/src/.*")
|
||||
addFilter("non-executable-script*./usr/lib/rustlib/src/.*")
|
||||
# filters for rust-std
|
||||
# rlib not in elf format
|
||||
addFilter("binaryinfo-readelf-failed*./usr/lib/rustlib/*.rlib")
|
||||
# rust has no stable ABI as of yet, soname is of no use yet
|
||||
addFilter("no-soname.*/usr/lib/lib.*")
|
||||
addFilter("no-soname.*/usr/lib/rustlib/.*")
|
||||
|
367
rust.changes
367
rust.changes
@ -1,3 +1,370 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 11 19:43:09 UTC 2018 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 9 06:42:47 UTC 2018 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- Add Provides/Obsoletes/Conflicts to rust-std-static and cargo
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 8 01:17:22 UTC 2018 - Neal Gompa <ngompa13@gmail.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 6 12:32:37 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Fix second-person language and spellos.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 4 22:12:42 UTC 2018 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- Add ignore-Wstring-conversion.patch: we 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 3 23:03:53 UTC 2018 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 3 07:12:01 UTC 2018 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 6 10:37:27 UTC 2018 - mmanu84@outlook.de
|
||||
|
||||
|
420
rust.spec
420
rust.spec
@ -2,7 +2,7 @@
|
||||
# spec file for package rust
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 Luke Jones, luke.nukem.jones@gmail.com
|
||||
# Copyright (c) 2018 Luke Jones, jones_ld@protonmail.com
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -13,12 +13,17 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%global prev_rust 1.25.0
|
||||
%global cargo_version 0.27.0
|
||||
%global prev_rust 1.29.2
|
||||
# some sub-packages are versioned independantly
|
||||
%global rustfmt_version 0.99.4
|
||||
%global rls_version 0.130.5
|
||||
%global clippy_version 0.0.212
|
||||
# Build the rust target triple.
|
||||
# Some rust arches don't match what SUSE labels them.
|
||||
%global rust_arch %{_arch}
|
||||
%global abi gnu
|
||||
%ifarch armv7hl
|
||||
@ -40,41 +45,60 @@
|
||||
%global rust_arch i686
|
||||
%endif
|
||||
%global rust_triple %{rust_arch}-unknown-linux-%{abi}
|
||||
# All sources and bootstraps are fetched form here
|
||||
%global dl_url https://static.rust-lang.org/dist
|
||||
# Rust doesn't function well when put in /usr/lib64
|
||||
%global common_libdir %{_prefix}/lib
|
||||
%global rustlibdir %{common_libdir}/rustlib
|
||||
%bcond_with rust_bootstrap
|
||||
# Use hardening ldflags.
|
||||
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
|
||||
# We occasionally need to bootstrap builds due to breakage etc. Rust only guarantees
|
||||
# v-1 will build v
|
||||
# %bcond_with rust_bootstrap
|
||||
# Temporarily set the bootstrap flag in the spec so rings will build without intervention
|
||||
%bcond_without rust_bootstrap
|
||||
# Distro LLVM should be sufficient, this also cuts compile times byu almost half
|
||||
%if 0%{?suse_version} <= 1315
|
||||
%bcond_without bundled_llvm
|
||||
%else
|
||||
%bcond_with bundled_llvm
|
||||
%endif
|
||||
Name: rust
|
||||
Version: 1.26.2
|
||||
Version: 1.30.0
|
||||
Release: 0
|
||||
Summary: A systems programming language
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Other
|
||||
Group: Development/Languages/Rust
|
||||
URL: https://www.rust-lang.org
|
||||
Source0: %{dl_url}/rustc-%{version}-src.tar.gz
|
||||
Source1: config.toml
|
||||
Source0: %{dl_url}/rustc-%{version}-src.tar.xz
|
||||
Source99: %{name}-rpmlintrc
|
||||
Source100: cargo-%{cargo_version}-x86_64-unknown-linux-gnu.tar.gz
|
||||
Source101: cargo-%{cargo_version}-i686-unknown-linux-gnu.tar.gz
|
||||
Source102: cargo-%{cargo_version}-aarch64-unknown-linux-gnu.tar.gz
|
||||
Source103: cargo-%{cargo_version}-armv7-unknown-linux-gnueabihf.tar.gz
|
||||
Source104: cargo-%{cargo_version}-arm-unknown-linux-gnueabihf.tar.gz
|
||||
Source105: cargo-%{cargo_version}-powerpc64-unknown-linux-gnu.tar.gz
|
||||
Source106: cargo-%{cargo_version}-powerpc64le-unknown-linux-gnu.tar.gz
|
||||
Source107: cargo-%{cargo_version}-s390x-unknown-linux-gnu.tar.gz
|
||||
Patch0: update-config-guess.patch
|
||||
# PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs
|
||||
BuildRequires: ccache
|
||||
BuildRequires: cmake >= 3.4.3
|
||||
Source100: %{dl_url}/rust-%{prev_rust}-x86_64-unknown-linux-gnu.tar.xz
|
||||
Source101: %{dl_url}/rust-%{prev_rust}-i686-unknown-linux-gnu.tar.xz
|
||||
Source102: %{dl_url}/rust-%{prev_rust}-aarch64-unknown-linux-gnu.tar.xz
|
||||
Source103: %{dl_url}/rust-%{prev_rust}-armv7-unknown-linux-gnueabihf.tar.xz
|
||||
Source104: %{dl_url}/rust-%{prev_rust}-arm-unknown-linux-gnueabihf.tar.xz
|
||||
Source105: %{dl_url}/rust-%{prev_rust}-powerpc64-unknown-linux-gnu.tar.xz
|
||||
Source106: %{dl_url}/rust-%{prev_rust}-powerpc64le-unknown-linux-gnu.tar.xz
|
||||
Source107: %{dl_url}/rust-%{prev_rust}-s390x-unknown-linux-gnu.tar.xz
|
||||
# PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag
|
||||
Patch0: ignore-Wstring-conversion.patch
|
||||
BuildRequires: cmake
|
||||
BuildRequires: curl
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: llvm-devel
|
||||
BuildRequires: ninja
|
||||
BuildRequires: git
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: procps
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: pkgconfig(libgit2) >= 0.23
|
||||
BuildRequires: pkgconfig(libssh2) >= 1.4.3
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
# The compiler is not generally useful without the std library installed
|
||||
# And the std library is exactly specific to the version of the compiler
|
||||
Requires: %{name}-std-static = %{version}
|
||||
Recommends: %{name}-doc
|
||||
Recommends: %{name}-std
|
||||
Recommends: cargo
|
||||
Conflicts: rust
|
||||
Conflicts: rustc-bootstrap
|
||||
@ -82,16 +106,22 @@ Conflicts: rustc-bootstrap
|
||||
# bootstrapped before we can build the n+1 release
|
||||
ExclusiveArch: x86_64 %{arm} aarch64 ppc64 ppc64le s390x %{ix86}
|
||||
%ifarch %{ix86}
|
||||
BuildArch: i686
|
||||
ExclusiveArch: i686
|
||||
%endif
|
||||
%if %{with rust_bootstrap}
|
||||
BuildRequires: rust-std-bootstrap = %{prev_rust}
|
||||
BuildRequires: rustc-bootstrap = %{prev_rust}
|
||||
%else
|
||||
%if %{without bundled_llvm}
|
||||
# LLVM gives incorrect C++ flags for GCC
|
||||
BuildRequires: llvm-devel >= 5.0
|
||||
%endif
|
||||
%if %{without rust_bootstrap}
|
||||
# We will now package cargo using the version number of rustc since
|
||||
# it is being built from rust sources. Old cargo packages have a 0.x number
|
||||
BuildRequires: cargo <= %{version}
|
||||
BuildRequires: cargo >= %{prev_rust}
|
||||
BuildRequires: rust <= %{version}
|
||||
BuildRequires: rust >= %{prev_rust}
|
||||
BuildRequires: rust-std <= %{version}
|
||||
BuildRequires: rust-std >= %{prev_rust}
|
||||
# This must be bumped to rust-std-static after 1.27.2 is in mainstream
|
||||
BuildRequires: rust-std-static <= %{version}
|
||||
BuildRequires: rust-std-static >= %{prev_rust}
|
||||
%endif
|
||||
|
||||
%description
|
||||
@ -109,32 +139,41 @@ even though some of these abstractions feel like those of a
|
||||
high-level language. Even then, Rust still allows precise
|
||||
control like a low-level language would.
|
||||
|
||||
%package -n rust-std
|
||||
%package -n rust-std-static
|
||||
Summary: Standard library for Rust
|
||||
Group: Development/Languages/Other
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
Conflicts: rust-std
|
||||
Obsoletes: rust-std < %{version}
|
||||
Conflicts: rust-std < %{version}
|
||||
Provides: rust-std = %{version}
|
||||
|
||||
%description -n rust-std
|
||||
%description -n rust-std-static
|
||||
This package includes the standard libraries for building
|
||||
applications written in Rust.
|
||||
|
||||
%package -n rust-doc
|
||||
Summary: Rust documentation
|
||||
Group: Development/Languages/Other
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
Conflicts: rust-doc
|
||||
|
||||
%description -n rust-doc
|
||||
Documentation for the Rust language.
|
||||
|
||||
%package -n rust-gdb
|
||||
Summary: Gdb integration for rust binaries
|
||||
Group: Development/Languages/Other
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
# Legacy SUSE-only form
|
||||
Supplements: packageand(%{name}:gdb)
|
||||
Conflicts: rust-gdb
|
||||
Provides: rustc:%{_bindir}/rust-gdb
|
||||
%else
|
||||
# Standard form
|
||||
Supplements: (%{name} and gdb)
|
||||
%endif
|
||||
Provides: rust-gdb = %{version}
|
||||
|
||||
%description -n rust-gdb
|
||||
This subpackage provides pretty printers and a wrapper script for
|
||||
@ -142,7 +181,8 @@ invoking gdb on rust binaries.
|
||||
|
||||
%package -n rust-src
|
||||
Summary: Sources for the Rust standard library
|
||||
Group: Development/Languages/Other
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
@ -151,53 +191,207 @@ This package includes source files for the Rust standard library. This
|
||||
is commonly used for function detail lookups in helper programs such
|
||||
as RLS or racer.
|
||||
|
||||
%package -n rls
|
||||
Summary: Language server for Rust lang
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
Provides: rls = %{rls_version}
|
||||
|
||||
%description -n rls
|
||||
The RLS provides a server that runs in the background, providing IDEs,
|
||||
editors, and other tools with information about Rust programs. It
|
||||
supports functionality such as 'goto definition', symbol search,
|
||||
reformatting, and code completion, and enables renaming and refactorings.
|
||||
It can be used with an IDE such as Gnome-Builder.
|
||||
|
||||
%package -n rust-analysis
|
||||
Summary: Compiler analysis data for the Rust standard library
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: rust-std-static = %{version}
|
||||
|
||||
%description -n rust-analysis
|
||||
This package contains analysis data files produced with rustc's -Zsave-analysis
|
||||
feature for the Rust standard library. The RLS (Rust Language Server) uses this
|
||||
data to provide information about the Rust standard library.
|
||||
|
||||
%package -n rustfmt
|
||||
Summary: Code formatting tool for Rust lang
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
# Legacy SUSE-only form
|
||||
Supplements: packageand(%{name}:cargo)
|
||||
%else
|
||||
# Standard form
|
||||
Supplements: (%{name} and cargo)
|
||||
%endif
|
||||
Provides: cargo-fmt = %{rustfmt_version}
|
||||
Provides: rustfmt = %{rustfmt_version}
|
||||
|
||||
%description -n rustfmt
|
||||
A tool for formatting Rust code according to style guidelines.
|
||||
|
||||
%package -n clippy
|
||||
Summary: Lints to catch common mistakes and improve Rust code
|
||||
# /usr/bin/clippy-driver is dynamically linked against internal rustc libs
|
||||
License: MPL-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
Requires: cargo
|
||||
Provides: clippy = %{clippy_version}
|
||||
|
||||
%description -n clippy
|
||||
A collection of lints to catch common mistakes and improve Rust code.
|
||||
|
||||
%package -n cargo
|
||||
Summary: The Rust package manager
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: cargo < %{version}
|
||||
Conflicts: cargo < %{version}
|
||||
Provides: rustc:%{_bindir}/cargo = %{version}
|
||||
|
||||
%description -n cargo
|
||||
Cargo downloads dependencies of Rust projects and compiles it.
|
||||
|
||||
%package -n cargo-doc
|
||||
Version: %{version}
|
||||
Release: 0
|
||||
Summary: Documentation for Cargo
|
||||
# Cargo no longer builds its own documentation
|
||||
# https://github.com/rust-lang/cargo/pull/4904
|
||||
License: MIT OR Apache-2.0
|
||||
Group: Development/Languages/Rust
|
||||
Requires: rust-doc = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n cargo-doc
|
||||
This package includes HTML documentation for Cargo.
|
||||
|
||||
%prep
|
||||
%if %{with rust_bootstrap}
|
||||
%ifarch x86_64
|
||||
%setup -q -T -b 100 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 100 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch %{ix86}
|
||||
%setup -q -T -b 101 -n cargo-%{cargo_version}-i686-unknown-linux-%{abi}
|
||||
%setup -q -T -b 101 -n rust-%{prev_rust}-i686-unknown-linux-%{abi}
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
%setup -q -T -b 102 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 102 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch armv7hl
|
||||
%setup -q -T -b 103 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 103 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch armv6hl
|
||||
%setup -q -T -b 104 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 104 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch ppc64
|
||||
%setup -q -T -b 105 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 105 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
%setup -q -T -b 106 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 106 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%ifarch s390x
|
||||
%setup -q -T -b 107 -n cargo-%{cargo_version}-%{rust_triple}
|
||||
%setup -q -T -b 107 -n rust-%{prev_rust}-%{rust_triple}
|
||||
%endif
|
||||
%endif
|
||||
./install.sh --components=cargo,rustc,rust-std-%{rust_triple} --prefix=.%{_prefix} --disable-ldconfig
|
||||
|
||||
%if %{with rust_bootstrap}
|
||||
%global rust_root %{_builddir}/rust-%{prev_rust}-%{rust_triple}%{_prefix}
|
||||
%else
|
||||
%global rust_root %{_prefix}
|
||||
%endif
|
||||
|
||||
# The cargo binary is only used to build rust and is not shipped
|
||||
%global cargo_bin %{_builddir}/cargo-%{cargo_version}-%{rust_triple}/cargo/bin/cargo
|
||||
|
||||
%setup -q -n rustc-%{version}-src
|
||||
# %patch0 -p1
|
||||
sed -e 's:<cargo-bin>:%{cargo_bin}:g' \
|
||||
-e 's:<rust-triple>:%{rust_triple}:g' \
|
||||
-e 's:<prefix>:%{_prefix}:g' \
|
||||
-e 's:<bindir>:%{_prefix}/bin:g' \
|
||||
-e 's:<libdir>:%{common_libdir}:g' \
|
||||
-e 's:<mandir>:%{_mandir}:g' \
|
||||
-e 's:<docdir>:%{_docdir}/%{name}:g' \
|
||||
%{SOURCE1} > config.toml
|
||||
|
||||
%patch0 -p1
|
||||
|
||||
# use python3
|
||||
sed -i -e "1s|#!.*|#!/usr/bin/python3|" x.py
|
||||
sed -i -e "1s|#!.*|#!%{_bindir}/python3|" x.py
|
||||
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
|
||||
|
||||
# We never enable emscripten.
|
||||
rm -rf src/llvm-emscripten/
|
||||
# We never enable other LLVM tools.
|
||||
rm -rf src/tools/clang
|
||||
rm -rf src/tools/lld
|
||||
rm -rf src/tools/lldb
|
||||
|
||||
%if %without bundled_llvm
|
||||
rm -rf src/llvm/
|
||||
%endif
|
||||
|
||||
# extract bundled licenses for packaging
|
||||
sed -e '/*\//q' src/libbacktrace/backtrace.h \
|
||||
>src/libbacktrace/LICENSE-libbacktrace
|
||||
|
||||
# The configure macro will modify some autoconf-related files, which upsets
|
||||
# cargo when it tries to verify checksums in those files. If we just truncate
|
||||
# that file list, cargo won't have anything to complain about.
|
||||
find src/vendor -name .cargo-checksum.json \
|
||||
-exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+'
|
||||
|
||||
# Fix rpmlint error "This script uses 'env' as an interpreter"
|
||||
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/jemalloc/scripts/gen_travis.py
|
||||
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/unicode.py
|
||||
sed -i '1s|#!%{_bindir}/env bash|#!%{_bindir}/bash|' src/liblibc/ci/emscripten-entry.sh
|
||||
find src/libcompiler_builtins/compiler-rt/lib/ -name '*.py' \
|
||||
-exec sed -i -e '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' '{}' '+'
|
||||
|
||||
# Fix rpmlint warnings about these shell scripts not having a shebang
|
||||
sed -i '1s|^|#!/bin/bash\n|' src/libbacktrace/ltmain.sh
|
||||
sed -i '1s|^|#!/bin/bash\n|' src/libcompiler_builtins/ci/run.sh
|
||||
sed -i '1s|^|#!/bin/bash\n|' src/liblibc/ci/run-docker.sh
|
||||
sed -i '1s|^|#!/bin/bash\n|' src/stdsimd/ci/run-docker.sh
|
||||
|
||||
%build
|
||||
# This should eventually migrate to distro policy
|
||||
# Enable optimization, debuginfo, and link hardening.
|
||||
export RUSTFLAGS="%{rustflags}"
|
||||
# Cargo use system libs
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG=1
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG=1
|
||||
|
||||
# Debuginfo can exhaust memory on these architecture workers
|
||||
%ifarch %{arm} %{ix86}
|
||||
%define codegen_units --set codegen-units=4
|
||||
%define debug_info --disable-debuginfo --enable-debuginfo-only-std --disable-debuginfo-tools --disable-debuginfo-lines
|
||||
%else
|
||||
%define debug_info --enable-debuginfo --disable-debuginfo-only-std --enable-debuginfo-tools --disable-debuginfo-lines
|
||||
%endif
|
||||
|
||||
%configure \
|
||||
--disable-option-checking \
|
||||
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
|
||||
--local-rust-root=%{rust_root} \
|
||||
--libdir=%{common_libdir} \
|
||||
--docdir=%{_docdir}/%{name} \
|
||||
%{!?with_bundled_llvm: --llvm-root=%{_prefix} --enable-llvm-link-shared} \
|
||||
--disable-codegen-tests \
|
||||
--enable-docs \
|
||||
--enable-verbose-tests \
|
||||
--disable-jemalloc \
|
||||
--disable-rpath \
|
||||
%{debug_info} \
|
||||
--enable-extended \
|
||||
--enable-vendor \
|
||||
--release-channel="stable"
|
||||
|
||||
export CPPFLAGS="%{optflags}" # eliminate complain from RPMlint
|
||||
RUST_BACKTRACE=1 python3 ./x.py build --config config.toml
|
||||
python3 ./x.py doc --config config.toml
|
||||
|
||||
# We need less codegen units for these arches since the workers are running out of memory
|
||||
# This means we must apply a minimum of 2 CPUs to a worker in constraints.
|
||||
%ifarch %{arm} %{ix86}
|
||||
sed -i -e "s|#codegen-units = 1|codegen-units = 2|" config.toml
|
||||
%endif
|
||||
|
||||
./x.py build
|
||||
./x.py doc
|
||||
|
||||
%install
|
||||
DESTDIR=%{buildroot} python3 ./x.py install
|
||||
@ -214,26 +408,39 @@ rm %{buildroot}%{_docdir}/%{name}/html/.lock
|
||||
find %{buildroot}%{_docdir}/%{name}/html -empty -delete
|
||||
find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+'
|
||||
|
||||
# Remove surplus files
|
||||
rm %{buildroot}%{rustlibdir}/components
|
||||
rm %{buildroot}%{rustlibdir}/manifest-rust*
|
||||
rm %{buildroot}%{rustlibdir}/install.log
|
||||
rm %{buildroot}%{rustlibdir}/uninstall.sh
|
||||
rm %{buildroot}%{rustlibdir}/rust-installer-version
|
||||
# Remove the license files from _docdir: make install put duplicates there
|
||||
rm %{buildroot}%{_docdir}/%{name}/{README.md,COPYRIGHT,LICENSE*}
|
||||
rm %{buildroot}%{_docdir}/%{name}/*.old
|
||||
|
||||
# Remove installer artifacts (manifests, uninstall scripts, etc.)
|
||||
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+'
|
||||
|
||||
# Remove hidden files from source
|
||||
find %{buildroot}%{rustlibdir} -type f -name '.appveyor.yml -exec rm -v '{}' '+'
|
||||
find %{buildroot}%{rustlibdir} -type f -name '.travis.yml -exec rm -v '{}' '+'
|
||||
|
||||
# The shared libraries should be executable for debuginfo extraction.
|
||||
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
|
||||
|
||||
# extract bundled licenses for packaging - From fedora spec
|
||||
sed -e '/*\//q' src/libbacktrace/backtrace.h > src/libbacktrace/LICENSE-libbacktrace
|
||||
|
||||
# Remove the license files from _docdir: make install put duplicates there
|
||||
rm %{buildroot}%{_docdir}/%{name}/{README.md,COPYRIGHT,LICENSE-APACHE,LICENSE-MIT}
|
||||
# The html docs for x86 and x86_64 are the same in most places
|
||||
%fdupes %{buildroot}%{_docdir}/%{name}/html
|
||||
# We don't want to run fdupes over much else (like src) or it may cause weirdness.
|
||||
|
||||
%fdupes %{buildroot}%{_prefix}
|
||||
# Create the path for crate-devel packages
|
||||
mkdir -p %{buildroot}%{_datadir}/cargo/registry
|
||||
|
||||
# Cargo no longer builds its own documentation
|
||||
# https://github.com/rust-lang/cargo/pull/4904
|
||||
mkdir -p %{buildroot}%{_docdir}/cargo
|
||||
ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
|
||||
|
||||
# Move the bash-completition to correct directory for openSUSE
|
||||
install -D %{buildroot}%{_sysconfdir}/bash_completion.d/cargo %{buildroot}%{_datadir}/bash-completion/completions/cargo
|
||||
# There should be nothing here at all
|
||||
rm -rf %{buildroot}%{_sysconfdir}
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
@ -250,20 +457,22 @@ rm %{buildroot}%{_docdir}/%{name}/{README.md,COPYRIGHT,LICENSE-APACHE,LICENSE-MI
|
||||
%{_bindir}/rustc
|
||||
%{_bindir}/rustdoc
|
||||
%{_bindir}/rust-lldb
|
||||
%{_mandir}/man1/rustc.1*
|
||||
%{_mandir}/man1/rustdoc.1*
|
||||
%{_mandir}/man1/rustc.1%{?ext_man}
|
||||
%{_mandir}/man1/rustdoc.1%{?ext_man}
|
||||
%{_prefix}/lib/lib*.so
|
||||
%dir %{rustlibdir}
|
||||
%dir %{rustlibdir}/%{rust_triple}
|
||||
%dir %{rustlibdir}/%{rust_triple}/lib
|
||||
%{rustlibdir}/%{rust_triple}/lib/*.so
|
||||
%{rustlibdir}/%{rust_triple}/codegen-backends/
|
||||
%exclude %{_docdir}/%{name}/html
|
||||
%exclude %{rustlibdir}/src
|
||||
|
||||
%files -n rust-std
|
||||
%files -n rust-std-static
|
||||
%dir %{rustlibdir}
|
||||
%dir %{rustlibdir}/%{rust_triple}
|
||||
%dir %{rustlibdir}/%{rust_triple}/codegen-backends
|
||||
%dir %{rustlibdir}/%{rust_triple}/lib
|
||||
%{rustlibdir}/%{rust_triple}/codegen-backends/librustc_trans-llvm.so
|
||||
%{rustlibdir}/%{rust_triple}/lib/*.rlib
|
||||
%{rustlibdir}/%{rust_triple}/lib/*.so
|
||||
|
||||
%files -n rust-gdb
|
||||
%{_bindir}/rust-gdb
|
||||
@ -283,4 +492,57 @@ rm %{buildroot}%{_docdir}/%{name}/{README.md,COPYRIGHT,LICENSE-APACHE,LICENSE-MI
|
||||
%dir %{rustlibdir}
|
||||
%{rustlibdir}/src
|
||||
|
||||
%files -n rls
|
||||
%if 0%{?suse_version} == 1315
|
||||
%doc src/tools/rls/LICENSE-{APACHE,MIT}
|
||||
%else
|
||||
%license src/tools/rls/LICENSE-{APACHE,MIT}
|
||||
%endif
|
||||
%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md}
|
||||
%{_bindir}/rls
|
||||
|
||||
%files analysis
|
||||
%{rustlibdir}/%{rust_triple}/analysis/
|
||||
|
||||
%files -n rustfmt
|
||||
%if 0%{?suse_version} == 1315
|
||||
%doc src/tools/rustfmt/LICENSE-{APACHE,MIT}
|
||||
%else
|
||||
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
|
||||
%endif
|
||||
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
|
||||
%{_bindir}/cargo-fmt
|
||||
%{_bindir}/rustfmt
|
||||
|
||||
%files -n clippy
|
||||
%if 0%{?suse_version} == 1315
|
||||
%doc src/tools/clippy/LICENSE
|
||||
%else
|
||||
%license src/tools/clippy/LICENSE
|
||||
%endif
|
||||
%doc src/tools/clippy/{README.md,CHANGELOG.md}
|
||||
%{_bindir}/cargo-clippy
|
||||
%{_bindir}/clippy-driver
|
||||
|
||||
%files -n cargo
|
||||
%if 0%{?suse_version} == 1315
|
||||
%doc src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
|
||||
%else
|
||||
%license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY}
|
||||
%endif
|
||||
%{_bindir}/cargo
|
||||
%{_mandir}/man1/cargo*.1%{?ext_man}
|
||||
%dir %{_datadir}/bash-completion
|
||||
%dir %{_datadir}/bash-completion/completions
|
||||
%{_datadir}/bash-completion/completions/cargo
|
||||
%dir %{_datadir}/zsh
|
||||
%dir %{_datadir}/zsh/site-functions
|
||||
%{_datadir}/zsh/site-functions/_cargo
|
||||
%dir %{_datadir}/cargo
|
||||
%dir %{_datadir}/cargo/registry
|
||||
|
||||
%files -n cargo-doc
|
||||
%dir %{_docdir}/cargo
|
||||
%{_docdir}/cargo/html
|
||||
|
||||
%changelog
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fb9ecf304488c9b56600ab20cfd1937482057f7e5db7899fddb86e0774548700
|
||||
size 95312651
|
3
rustc-1.30.0-src.tar.xz
Normal file
3
rustc-1.30.0-src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9fc7304fd48d6d6a23fa4565d94353c7cc2659db452f34d69fbc01c4f67021d
|
||||
size 96083280
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user