From 2c12758fc11f0acffc29762ecda553a896cdb2abd12b05471942eaebbe0b7f9b Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Wed, 22 Mar 2017 03:21:12 +0000 Subject: [PATCH 01/26] Accepting request 481900 from home:luke_nukem:branches:devel:languages:rust OBS-URL: https://build.opensuse.org/request/show/481900 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=82 --- _constraints | 2 +- config.toml | 191 +++++++++------------------------------------------ rust.changes | 8 +++ rust.spec | 68 ++++++++---------- 4 files changed, 69 insertions(+), 200 deletions(-) diff --git a/_constraints b/_constraints index a42ffec..351ff62 100644 --- a/_constraints +++ b/_constraints @@ -3,7 +3,7 @@ 8 - 4 + 8 20 diff --git a/config.toml b/config.toml index 5e6b889..c3d702c 100644 --- a/config.toml +++ b/config.toml @@ -1,203 +1,76 @@ -# Sample TOML configuration file for building Rust. -# -# To configure rustbuild, copy this file to the directory from which you will be -# running the build, and name it config.toml. -# -# All options are commented out by default in this file, and they're commented -# out with their default values. The build system by default looks for -# `config.toml` in the current directory of a build for build configuration, but -# a custom configuration file can also be specified with `--config` to the build -# system. - # ============================================================================= # Tweaking how LLVM is compiled # ============================================================================= [llvm] - -# 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 = false -# or alternatively ... -#ccache = "/path/to/ccache" - -# 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. +ccache = true #version-check = false - -# Link libstdc++ statically into the librustc_llvm instead of relying on a -# dynamic version to be available. static-libstdcpp = false +ninja = true -# 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 = false +targets = "X86;ARM;AArch64;Mips;PowerPC;SystemZ;JSBackend;MSP430;Sparc;NVPTX" # ============================================================================= # General build configuration options # ============================================================================= [build] +build = "" +host = [""] +target = [""] -# Build triple for the original snapshot compiler. This must be a compiler that -# nightlies are already produced for. The current platform must be able to run -# binaries of this build triple and the nightly will be used to bootstrap the -# first compiler. -#build = "x86_64-unknown-linux-gnu" # defaults to your host platform - -# In addition to the build triple, other triples to produce full compiler -# toolchains for. Each of these triples will be bootstrapped from the build -# triple and then will continue to bootstrap themselves. This platform must -# currently be able to run all of the triples provided here. -#host = ["x86_64-unknown-linux-gnu"] # defaults to just the build triple - -# In addition to all host triples, other triples to produce the standard library -# for. Each host triple will be used to produce a copy of the standard library -# for each target triple. -#target = ["x86_64-unknown-linux-gnu"] # defaults to just the build triple - -# Instead of downloading the src/nightlies.txt version of Cargo specified, use -# this Cargo binary instead to build all Rust code cargo = "/usr/bin/cargo" - -# Instead of downloading the src/nightlies.txt version of the compiler -# specified, use this rustc binary instead as the stage0 snapshot compiler. 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 +compiler-docs = true # Indicate whether submodules are managed and updated automatically. submodules = false - -# 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" -# Indicate whether the vendored sources are used for Rust dependencies or not -vendor = true +vendor = true # + +#full-bootstrap = false + +# Enable a build of the and extended rust tool set which is not only the +# compiler but also tools such as Cargo. Requires cloning git repo of cargo +extended = false + +# ============================================================================= +# General install configuration options +# ============================================================================= +[install] +prefix = "" +libdir = "" +mandir = "" +docdir = "" # ============================================================================= # Options for compiling Rust code itself # ============================================================================= [rust] - -# Whether or not to optimize the compiler and standard library optimize = true +codegen-units = 0 # 0 = core-count -# 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 -#debug-assertions = false - -# Whether or not debuginfo is emitted +debug-assertions = false 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 = true +use-jemalloc = false +debug-jemalloc = false -# Whether or not jemalloc is built with its debug option set -#debug-jemalloc = false - -# Whether or not `panic!`s generate backtraces (RUST_BACKTRACE) -#backtrace = true - -# The default linker that will be used by the generated compiler. Note that this -# is not the linker used to link said compiler. +backtrace = true #default-linker = "cc" - -# The default ar utility that will be used by the generated compiler if LLVM -# cannot be used. Note that this is not used to assemble said compiler. #default-ar = "ar" -# 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 = true - -# 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 = true - -# ============================================================================= -# Options for specific targets -# -# Each of the following options is scoped to the specific target triple in -# question and is used for determining how to compile each target. -# ============================================================================= -[target.x86_64-unknown-linux-gnu] - -# C compiler to be used to compiler C code and link Rust code. Note that the -# default value is platform specific, and if not specified it may also depend on -# what platform is crossing to what platform. -#cc = "cc" - -# C++ compiler to be used to compiler C++ code (e.g. LLVM and our LLVM shims). -# This is only used for host targets. -#cxx = "c++" - -# Path to the `llvm-config` binary of the installation of a custom LLVM to link -# against. Note that if this is specifed we don't compile LLVM at all for this -# target. -#llvm-config = "../path/to/llvm/root/bin/llvm-config" - -# Path to the custom jemalloc static library to link into the standard library -# by default. This is only used if jemalloc is still enabled above -#jemalloc = "/path/to/jemalloc/libjemalloc_pic.a" - -# If this target is for Android, this option will be required to specify where -# the NDK for the target lives. This is used to find the C compiler to link and -# build native code. -#android-ndk = "/path/to/ndk" - -# The root location of the MUSL installation directory. The library directory -# will also need to contain libunwind.a for an unwinding implementation. Note -# that this option only makes sense for MUSL targets that produce statically -# linked binaries -#musl-root = "..." +rpath = false +optimize-tests = true +debuginfo-tests = true +codegen-tests = false diff --git a/rust.changes b/rust.changes index 2229809..b52bdb0 100644 --- a/rust.changes +++ b/rust.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Mar 22 01:43:22 UTC 2017 - luke.nukem.jones@gmail.com + +- Switch .spec to use rust-build compilation system +- Update config.toml to reflect rust-build changes +- Strict versioning for compilation so rustc always use previous + stable compiler + ------------------------------------------------------------------- Fri Mar 17 05:59:18 UTC 2017 - luke.nukem.jones@gmail.com diff --git a/rust.spec b/rust.spec index 49350a3..2c47ba9 100644 --- a/rust.spec +++ b/rust.spec @@ -17,7 +17,8 @@ # -%global prev_version 1.15.0 +%global prev_rust 1.15.1 +%global prev_cargo 0.16.0 %global abi gnu %ifarch s390x %global _arch s390x @@ -39,7 +40,7 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} -%bcond_with bootstrap +%bcond_with rust_bootstrap Name: rust Version: 1.16.0 Release: 0 @@ -52,10 +53,13 @@ Source1: config.toml Source100: %{name}-rpmlintrc # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch +BuildRequires: ccache +BuildRequires: chrpath BuildRequires: cmake BuildRequires: curl BuildRequires: gcc-c++ BuildRequires: llvm-devel +BuildRequires: ninja BuildRequires: procps BuildRequires: python Recommends: cargo @@ -75,12 +79,15 @@ BuildRequires: fdupes # There are no successful builds for less than TW or Leap 42.2, so bootstrap # until such time that there is. -%if %{with bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100) -BuildRequires: cargo-bootstrap -BuildRequires: rustc-bootstrap >= %{prev_version} +%if %{with rust_bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100) +BuildRequires: cargo-bootstrap >= %{prev_cargo} +BuildRequires: rust-std-bootstrap == %{prev_rust} +BuildRequires: rustc-bootstrap == %{prev_rust} %else -BuildRequires: cargo -BuildRequires: rust >= %{prev_version} +# Require exact versions to help prevent OBS build loops +BuildRequires: cargo == %{prev_cargo} +BuildRequires: rust == %{prev_rust} +BuildRequires: rust-std == %{prev_rust} %endif %description @@ -129,24 +136,19 @@ invoking gdb on rust binaries. %build export CPPFLAGS="%{optflags}" # eliminate complain from RPMlint -%configure --disable-option-checking \ - --build=%{rust_triple} \ - --host=%{rust_triple} \ - --target=%{rust_triple} \ - --enable-local-rust \ - --local-rust-root=%{_prefix} \ - --prefix=%{_prefix} \ - --libdir=%{_prefix}/lib \ - --docdir=%{_docdir}/%{name} \ - --disable-rpath \ - --disable-codegen-tests \ - --disable-rustbuild \ - --enable-vendor \ - --release-channel=stable -make %{?_smp_mflags} +sed -e 's::%{rust_triple}:g' \ + -e 's::%{buildroot}%{_prefix}:g' \ + -e 's::%{buildroot}%{_prefix}/lib:g' \ + -e 's::%{buildroot}%{_mandir}:g' \ + -e 's::%{buildroot}%{_docdir}/%{name}:g' \ + %{SOURCE1} > config.toml +./x.py build -v +./x.py doc -v %install -%make_install +./x.py dist --install +# Fix any rpaths if needed +chrpath -d %{buildroot}%{_prefix}/lib/lib*.so # Remove executable permission from HTML documentation # to prevent RPMLINT errors. @@ -187,6 +189,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %doc README.md %{_bindir}/rustc %{_bindir}/rustdoc +%{_bindir}/rust-lldb %{_mandir}/man1/rustc.1* %{_mandir}/man1/rustdoc.1* %{_prefix}/lib/lib*.so @@ -208,6 +211,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/etc/debugger_pretty_printers_common.py %{_prefix}/lib/rustlib/etc/gdb_load_rust_pretty_printers.py %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py +%{_prefix}/lib/rustlib/etc/lldb_rust_formatters.py %files doc %defattr(-,root,root) @@ -219,22 +223,6 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %license %{_docdir}/%{name}/html/SourceSerifPro-LICENSE.txt %dir %{_docdir}/%{name} %dir %{_docdir}/%{name}/html -%doc %{_docdir}/%{name}/html/alloc -%doc %{_docdir}/%{name}/html/book -%doc %{_docdir}/%{name}/html/collections -%doc %{_docdir}/%{name}/html/core -%doc %{_docdir}/%{name}/html/extra -%doc %{_docdir}/%{name}/html/implementors -%doc %{_docdir}/%{name}/html/libc -%doc %{_docdir}/%{name}/html/nomicon -%doc %{_docdir}/%{name}/html/src -%doc %{_docdir}/%{name}/html/std -%doc %{_docdir}/%{name}/html/std_unicode -%doc %{_docdir}/%{name}/html/COPYRIGHT.txt -%doc %{_docdir}/%{name}/html/*.html -%doc %{_docdir}/%{name}/html/*.inc -%doc %{_docdir}/%{name}/html/*.woff -%doc %{_docdir}/%{name}/html/*.js -%doc %{_docdir}/%{name}/html/*.css +%doc %{_docdir}/%{name}/html/* %changelog From c95311bf323158e661eba689823e7b9043bc349055bdd75565b53653b225f580 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Wed, 22 Mar 2017 05:18:22 +0000 Subject: [PATCH 02/26] Accepting request 481904 from home:luke_nukem:branches:devel:languages:rust OBS-URL: https://build.opensuse.org/request/show/481904 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=83 --- rust.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/rust.spec b/rust.spec index 2c47ba9..b4dc7d2 100644 --- a/rust.spec +++ b/rust.spec @@ -133,19 +133,25 @@ invoking gdb on rust binaries. %prep %setup -q -n rustc-%{version}-src %patch1 -p1 +sed -e 's::%{rust_triple}:g' \ + -e 's::%{_prefix}:g' \ + -e 's::%{_prefix}/lib:g' \ + -e 's::%{_mandir}:g' \ + -e 's::%{_docdir}/%{name}:g' \ + %{SOURCE1} > config.toml %build export CPPFLAGS="%{optflags}" # eliminate complain from RPMlint +./x.py build -v +./x.py doc -v + +%install sed -e 's::%{rust_triple}:g' \ -e 's::%{buildroot}%{_prefix}:g' \ -e 's::%{buildroot}%{_prefix}/lib:g' \ -e 's::%{buildroot}%{_mandir}:g' \ -e 's::%{buildroot}%{_docdir}/%{name}:g' \ %{SOURCE1} > config.toml -./x.py build -v -./x.py doc -v - -%install ./x.py dist --install # Fix any rpaths if needed chrpath -d %{buildroot}%{_prefix}/lib/lib*.so From 7c2e5178f9dc779bbd55b75e2435ac55bc8fe3693956b072e84e1fc7213eec18 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Wed, 22 Mar 2017 05:40:48 +0000 Subject: [PATCH 03/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=84 --- rust.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/rust.spec b/rust.spec index b4dc7d2..df845b9 100644 --- a/rust.spec +++ b/rust.spec @@ -66,6 +66,7 @@ Recommends: cargo Recommends: %{name}-doc Recommends: %{name}-std Conflicts: rustc-bootstrap +Conflicts: rust < %{version} Provides: rustc = %{version} Provides: rustc-stable = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build From 00a579d8ce31f31bfbeaf65b23537c7201d98b4598fe6de60c185469b6abaf6b Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 08:36:45 +0000 Subject: [PATCH 04/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=85 --- rust.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/rust.spec b/rust.spec index df845b9..10e7383 100644 --- a/rust.spec +++ b/rust.spec @@ -41,7 +41,7 @@ %endif %global rust_triple %{_arch}-unknown-linux-%{abi} %bcond_with rust_bootstrap -Name: rust +Name: rust-%{version} Version: 1.16.0 Release: 0 Summary: A systems programming language @@ -65,10 +65,13 @@ BuildRequires: python Recommends: cargo Recommends: %{name}-doc Recommends: %{name}-std -Conflicts: rustc-bootstrap -Conflicts: rust < %{version} -Provides: rustc = %{version} -Provides: rustc-stable = %{version} + +Provides: rust = %{version} +Conflicts: rust <= %{version} +Conflicts: rust >= %{version} +Conflicts: rustc-bootstrap <= %{version} +Conflicts: rustc-bootstrap >= %{version} + BuildRoot: %{_tmppath}/%{name}-%{version}-build # Restrict the architectures as building rust relies on being initially # bootstrapped before we can build the n+1 release From c3624e9af962ad7fb93aa316cd0f31299299e29812354d2d0e8f3eeaab6dc042 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:01:23 +0000 Subject: [PATCH 05/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=86 --- rust.spec | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/rust.spec b/rust.spec index 10e7383..3fc9cbf 100644 --- a/rust.spec +++ b/rust.spec @@ -109,28 +109,34 @@ 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 std +%package -n rust-std-%{version} Summary: Standard library for Rust Group: Development/Languages/Other +Provides: rust-std = %{version} +Conflicts: rust-std <= %{version} +Conflicts: rust-std >= %{version} -%description std +%description rust-std-%{version} This package includes the standard libraries for building applications written in Rust. -%package doc +%package -n rust-doc-%{version} Summary: Rust documentation Group: Development/Languages/Other +Provides: rust-doc = %{version} +Conflicts: rust <= %{version} +Conflicts: rust >= %{version} -%description doc +%description rust-doc-%{version} Documentation for the Rust language. -%package gdb +%package -n rust-gdb-%{version} Summary: Gdb integration for rust binaries Group: Development/Languages/Other Supplements: packageand(%{name}:gdb) Provides: rustc:%{_bindir}/rust-gdb -%description gdb +%description rust-gdb-%{version} This subpackage provides pretty printers and a wrapper script for invoking gdb on rust binaries. @@ -205,7 +211,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/lib*.so %exclude %{_docdir}/%{name}/html -%files std +%files rust-std-%{version} %defattr(-,root,root) %dir %{_prefix}/lib/rustlib %dir %{_prefix}/lib/rustlib/%{rust_triple} @@ -213,7 +219,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.rlib %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.so -%files gdb +%files rust-gdb-%{version} %defattr(-,root,root,-) %{_bindir}/rust-gdb %dir %{_prefix}/lib/rustlib @@ -223,7 +229,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py %{_prefix}/lib/rustlib/etc/lldb_rust_formatters.py -%files doc +%files rust-doc-%{version} %defattr(-,root,root) %license %{_docdir}/%{name}/html/FiraSans-LICENSE.txt %license %{_docdir}/%{name}/html/Heuristica-LICENSE.txt From 34e858afb3086264ef54dda4d2a12a6868f184be7beba3279cdab61576b1292a Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:04:30 +0000 Subject: [PATCH 06/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=87 --- rust.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rust.spec b/rust.spec index 3fc9cbf..0b335ce 100644 --- a/rust.spec +++ b/rust.spec @@ -124,8 +124,8 @@ applications written in Rust. Summary: Rust documentation Group: Development/Languages/Other Provides: rust-doc = %{version} -Conflicts: rust <= %{version} -Conflicts: rust >= %{version} +Conflicts: rust-doc <= %{version} +Conflicts: rust-doc >= %{version} %description rust-doc-%{version} Documentation for the Rust language. @@ -135,6 +135,9 @@ Summary: Gdb integration for rust binaries Group: Development/Languages/Other Supplements: packageand(%{name}:gdb) Provides: rustc:%{_bindir}/rust-gdb +Provides: rust-gdb = %{version} +Conflicts: rust-gdb <= %{version} +Conflicts: rust-gdb >= %{version} %description rust-gdb-%{version} This subpackage provides pretty printers and a wrapper script for From 1016505245341207da84203f05f77246d47733e4e105a329297a05dadbeb30e0 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:24:19 +0000 Subject: [PATCH 07/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=88 --- rust.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rust.spec b/rust.spec index 0b335ce..e9eaa48 100644 --- a/rust.spec +++ b/rust.spec @@ -40,9 +40,10 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} -%bcond_with rust_bootstrap -Name: rust-%{version} -Version: 1.16.0 +%global rust_version 1.15.1 +%bcond_without bootstrap +Name: rust-%{rust_version} +Version: %{rust_version} Release: 0 Summary: A systems programming language License: MIT or Apache-2.0 From 3c95aaa3edf3de4b0b18702ae50991e7b119806fa1460ea5e6a9038c2edf81b2 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:24:40 +0000 Subject: [PATCH 08/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=89 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index e9eaa48..191c299 100644 --- a/rust.spec +++ b/rust.spec @@ -40,7 +40,7 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} -%global rust_version 1.15.1 +%global rust_version 1.16.0 %bcond_without bootstrap Name: rust-%{rust_version} Version: %{rust_version} From 1969f62690fa9d0e4c4bf868cb17cf477fbeb718a6ac8a77eec54b2013b12827 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:26:48 +0000 Subject: [PATCH 09/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=90 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index 191c299..e42e8cc 100644 --- a/rust.spec +++ b/rust.spec @@ -19,6 +19,7 @@ %global prev_rust 1.15.1 %global prev_cargo 0.16.0 +%global rust_version 1.16.0 %global abi gnu %ifarch s390x %global _arch s390x @@ -40,7 +41,6 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} -%global rust_version 1.16.0 %bcond_without bootstrap Name: rust-%{rust_version} Version: %{rust_version} From bf55a8ce19116b9f97c19740d47e81a4c18ff575e0bbe262520b3e31b81a3c90 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 09:31:00 +0000 Subject: [PATCH 10/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=91 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index e42e8cc..aeafe8f 100644 --- a/rust.spec +++ b/rust.spec @@ -41,7 +41,7 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} -%bcond_without bootstrap +%bcond_with bootstrap Name: rust-%{rust_version} Version: %{rust_version} Release: 0 From 56a186d5a8e03ee9e6aaaefcdc0d688cb7b029d13e1f602be7038b1f1b85b7d1 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 19:53:08 +0000 Subject: [PATCH 11/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=92 --- rust.spec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rust.spec b/rust.spec index aeafe8f..ababe0f 100644 --- a/rust.spec +++ b/rust.spec @@ -68,10 +68,9 @@ Recommends: %{name}-doc Recommends: %{name}-std Provides: rust = %{version} -Conflicts: rust <= %{version} -Conflicts: rust >= %{version} -Conflicts: rustc-bootstrap <= %{version} -Conflicts: rustc-bootstrap >= %{version} +Conflicts: rust < %{version} +Conflicts: rust > %{version} +Conflicts: rustc-bootstrap BuildRoot: %{_tmppath}/%{name}-%{version}-build # Restrict the architectures as building rust relies on being initially From bcd4a406a1de5d270a61e381e41bbf440ed4acd91e4615e3cf7453be83b5413e Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 19:57:20 +0000 Subject: [PATCH 12/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=93 --- rust.spec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rust.spec b/rust.spec index ababe0f..684de64 100644 --- a/rust.spec +++ b/rust.spec @@ -19,7 +19,6 @@ %global prev_rust 1.15.1 %global prev_cargo 0.16.0 -%global rust_version 1.16.0 %global abi gnu %ifarch s390x %global _arch s390x @@ -42,8 +41,8 @@ %endif %global rust_triple %{_arch}-unknown-linux-%{abi} %bcond_with bootstrap -Name: rust-%{rust_version} -Version: %{rust_version} +Name: rust +Version: 1.16.0 Release: 0 Summary: A systems programming language License: MIT or Apache-2.0 @@ -51,7 +50,7 @@ Group: Development/Languages/Other Url: http://www.rust-lang.org Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.gz Source1: config.toml -Source100: %{name}-rpmlintrc +Source100: %{name}-%{version}-rpmlintrc # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch BuildRequires: ccache From 8d3ab4be55564547c666fe137ecc1431873eb07edb494c5f13dd60447c290bcc Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 21:50:49 +0000 Subject: [PATCH 13/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=94 --- rust.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rust.spec b/rust.spec index 684de64..08ff380 100644 --- a/rust.spec +++ b/rust.spec @@ -115,7 +115,7 @@ Provides: rust-std = %{version} Conflicts: rust-std <= %{version} Conflicts: rust-std >= %{version} -%description rust-std-%{version} +%description -n rust-std-%{version} This package includes the standard libraries for building applications written in Rust. @@ -126,7 +126,7 @@ Provides: rust-doc = %{version} Conflicts: rust-doc <= %{version} Conflicts: rust-doc >= %{version} -%description rust-doc-%{version} +%description -n rust-doc-%{version} Documentation for the Rust language. %package -n rust-gdb-%{version} @@ -138,7 +138,7 @@ Provides: rust-gdb = %{version} Conflicts: rust-gdb <= %{version} Conflicts: rust-gdb >= %{version} -%description rust-gdb-%{version} +%description -n rust-gdb-%{version} This subpackage provides pretty printers and a wrapper script for invoking gdb on rust binaries. @@ -213,7 +213,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/lib*.so %exclude %{_docdir}/%{name}/html -%files rust-std-%{version} +%files -n rust-std-%{version} %defattr(-,root,root) %dir %{_prefix}/lib/rustlib %dir %{_prefix}/lib/rustlib/%{rust_triple} @@ -221,7 +221,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.rlib %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.so -%files rust-gdb-%{version} +%files -n rust-gdb-%{version} %defattr(-,root,root,-) %{_bindir}/rust-gdb %dir %{_prefix}/lib/rustlib @@ -231,7 +231,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py %{_prefix}/lib/rustlib/etc/lldb_rust_formatters.py -%files rust-doc-%{version} +%files -n rust-doc-%{version} %defattr(-,root,root) %license %{_docdir}/%{name}/html/FiraSans-LICENSE.txt %license %{_docdir}/%{name}/html/Heuristica-LICENSE.txt From 709f02695726adfdf9f28671832b8408857a829339a1c3087143939bf4d5a85c Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Thu, 23 Mar 2017 21:51:29 +0000 Subject: [PATCH 14/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=95 --- rust.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rust.spec b/rust.spec index 08ff380..a5105ef 100644 --- a/rust.spec +++ b/rust.spec @@ -112,8 +112,8 @@ control like a low-level language would. Summary: Standard library for Rust Group: Development/Languages/Other Provides: rust-std = %{version} -Conflicts: rust-std <= %{version} -Conflicts: rust-std >= %{version} +Conflicts: rust-std < %{version} +Conflicts: rust-std > %{version} %description -n rust-std-%{version} This package includes the standard libraries for building @@ -123,8 +123,8 @@ applications written in Rust. Summary: Rust documentation Group: Development/Languages/Other Provides: rust-doc = %{version} -Conflicts: rust-doc <= %{version} -Conflicts: rust-doc >= %{version} +Conflicts: rust-doc < %{version} +Conflicts: rust-doc > %{version} %description -n rust-doc-%{version} Documentation for the Rust language. @@ -135,8 +135,8 @@ Group: Development/Languages/Other Supplements: packageand(%{name}:gdb) Provides: rustc:%{_bindir}/rust-gdb Provides: rust-gdb = %{version} -Conflicts: rust-gdb <= %{version} -Conflicts: rust-gdb >= %{version} +Conflicts: rust-gdb < %{version} +Conflicts: rust-gdb > %{version} %description -n rust-gdb-%{version} This subpackage provides pretty printers and a wrapper script for From 39b50ef005018f2fb467df17ef27fee29c7d8abeb35b531c207b6548ccfcb4be Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 24 Mar 2017 01:57:20 +0000 Subject: [PATCH 15/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=96 --- rust.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rust.spec b/rust.spec index a5105ef..0f0390d 100644 --- a/rust.spec +++ b/rust.spec @@ -67,8 +67,7 @@ Recommends: %{name}-doc Recommends: %{name}-std Provides: rust = %{version} -Conflicts: rust < %{version} -Conflicts: rust > %{version} +Conflicts: otherproviders(rust) Conflicts: rustc-bootstrap BuildRoot: %{_tmppath}/%{name}-%{version}-build From 78cb4d9c91304a336c0b3d3ad9b5b226a86c6351b7944614044a6f0aa355e58e Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 24 Mar 2017 02:54:22 +0000 Subject: [PATCH 16/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=97 --- rust.spec | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/rust.spec b/rust.spec index 0f0390d..8ac5f9e 100644 --- a/rust.spec +++ b/rust.spec @@ -19,6 +19,7 @@ %global prev_rust 1.15.1 %global prev_cargo 0.16.0 +%global _version 1_16 %global abi gnu %ifarch s390x %global _arch s390x @@ -41,7 +42,7 @@ %endif %global rust_triple %{_arch}-unknown-linux-%{abi} %bcond_with bootstrap -Name: rust +Name: rust-%{_version} Version: 1.16.0 Release: 0 Summary: A systems programming language @@ -107,28 +108,28 @@ 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-%{version} +%package -n rust-std-%{_version} Summary: Standard library for Rust Group: Development/Languages/Other Provides: rust-std = %{version} Conflicts: rust-std < %{version} Conflicts: rust-std > %{version} -%description -n rust-std-%{version} +%description -n rust-std-%{_version} This package includes the standard libraries for building applications written in Rust. -%package -n rust-doc-%{version} +%package -n rust-doc-%{_version} Summary: Rust documentation Group: Development/Languages/Other Provides: rust-doc = %{version} Conflicts: rust-doc < %{version} Conflicts: rust-doc > %{version} -%description -n rust-doc-%{version} +%description -n rust-doc-%{_version} Documentation for the Rust language. -%package -n rust-gdb-%{version} +%package -n rust-gdb-%{_version} Summary: Gdb integration for rust binaries Group: Development/Languages/Other Supplements: packageand(%{name}:gdb) @@ -137,7 +138,7 @@ Provides: rust-gdb = %{version} Conflicts: rust-gdb < %{version} Conflicts: rust-gdb > %{version} -%description -n rust-gdb-%{version} +%description -n rust-gdb-%{_version} This subpackage provides pretty printers and a wrapper script for invoking gdb on rust binaries. @@ -212,7 +213,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/lib*.so %exclude %{_docdir}/%{name}/html -%files -n rust-std-%{version} +%files -n rust-std-%{_version} %defattr(-,root,root) %dir %{_prefix}/lib/rustlib %dir %{_prefix}/lib/rustlib/%{rust_triple} @@ -220,7 +221,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.rlib %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.so -%files -n rust-gdb-%{version} +%files -n rust-gdb-%{_version} %defattr(-,root,root,-) %{_bindir}/rust-gdb %dir %{_prefix}/lib/rustlib @@ -230,7 +231,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py %{_prefix}/lib/rustlib/etc/lldb_rust_formatters.py -%files -n rust-doc-%{version} +%files -n rust-doc-%{_version} %defattr(-,root,root) %license %{_docdir}/%{name}/html/FiraSans-LICENSE.txt %license %{_docdir}/%{name}/html/Heuristica-LICENSE.txt From 6c6b9c9ffa88c0c45349106e4db04fb2a8452a2969a8e847741727fdcffe9fc7 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Sat, 25 Mar 2017 19:24:18 +0000 Subject: [PATCH 17/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=98 --- rust.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/rust.spec b/rust.spec index 8ac5f9e..bcfa3d6 100644 --- a/rust.spec +++ b/rust.spec @@ -51,7 +51,6 @@ Group: Development/Languages/Other Url: http://www.rust-lang.org Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.gz Source1: config.toml -Source100: %{name}-%{version}-rpmlintrc # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch BuildRequires: ccache From 616756598785de5ee7b94345a91dde562510e413d48281666083b248c791dac4 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Tue, 28 Mar 2017 02:38:57 +0000 Subject: [PATCH 18/26] Rework of the spec for building. - Restricts version required for compilation - Uses rust-build OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=99 --- rust.spec | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/rust.spec b/rust.spec index bcfa3d6..ac3d744 100644 --- a/rust.spec +++ b/rust.spec @@ -19,7 +19,6 @@ %global prev_rust 1.15.1 %global prev_cargo 0.16.0 -%global _version 1_16 %global abi gnu %ifarch s390x %global _arch s390x @@ -42,7 +41,7 @@ %endif %global rust_triple %{_arch}-unknown-linux-%{abi} %bcond_with bootstrap -Name: rust-%{_version} +Name: rust Version: 1.16.0 Release: 0 Summary: A systems programming language @@ -68,7 +67,7 @@ Recommends: %{name}-std Provides: rust = %{version} Conflicts: otherproviders(rust) -Conflicts: rustc-bootstrap +Conflicts: rustc-bootstrap BuildRoot: %{_tmppath}/%{name}-%{version}-build # Restrict the architectures as building rust relies on being initially @@ -107,37 +106,34 @@ 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-%{_version} +%package -n rust-std Summary: Standard library for Rust Group: Development/Languages/Other Provides: rust-std = %{version} -Conflicts: rust-std < %{version} -Conflicts: rust-std > %{version} +Conflicts: otherproviders(rust-std) -%description -n rust-std-%{_version} +%description -n rust-std This package includes the standard libraries for building applications written in Rust. -%package -n rust-doc-%{_version} +%package -n rust-doc Summary: Rust documentation Group: Development/Languages/Other Provides: rust-doc = %{version} -Conflicts: rust-doc < %{version} -Conflicts: rust-doc > %{version} +Conflicts: otherproviders(rust-doc) -%description -n rust-doc-%{_version} +%description -n rust-doc Documentation for the Rust language. -%package -n rust-gdb-%{_version} +%package -n rust-gdb Summary: Gdb integration for rust binaries Group: Development/Languages/Other Supplements: packageand(%{name}:gdb) -Provides: rustc:%{_bindir}/rust-gdb Provides: rust-gdb = %{version} -Conflicts: rust-gdb < %{version} -Conflicts: rust-gdb > %{version} +Provides: rustc:%{_bindir}/rust-gdb +Conflicts: otherproviders(rust-gdb) -%description -n rust-gdb-%{_version} +%description -n rust-gdb This subpackage provides pretty printers and a wrapper script for invoking gdb on rust binaries. @@ -212,7 +208,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/lib*.so %exclude %{_docdir}/%{name}/html -%files -n rust-std-%{_version} +%files -n rust-std %defattr(-,root,root) %dir %{_prefix}/lib/rustlib %dir %{_prefix}/lib/rustlib/%{rust_triple} @@ -220,7 +216,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.rlib %{_prefix}/lib/rustlib/%{rust_triple}/lib/*.so -%files -n rust-gdb-%{_version} +%files -n rust-gdb %defattr(-,root,root,-) %{_bindir}/rust-gdb %dir %{_prefix}/lib/rustlib @@ -230,7 +226,7 @@ rm %{buildroot}%{_defaultdocdir}/%{name}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT} %{_prefix}/lib/rustlib/etc/gdb_rust_pretty_printing.py %{_prefix}/lib/rustlib/etc/lldb_rust_formatters.py -%files -n rust-doc-%{_version} +%files -n rust-doc %defattr(-,root,root) %license %{_docdir}/%{name}/html/FiraSans-LICENSE.txt %license %{_docdir}/%{name}/html/Heuristica-LICENSE.txt From 302db12c5c834d1be3ab5cc2842b5666adbb3fb4c567cb6195af67a353c8f033 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Tue, 28 Mar 2017 09:12:48 +0000 Subject: [PATCH 19/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=100 --- rust-rpmlintrc | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 rust-rpmlintrc diff --git a/rust-rpmlintrc b/rust-rpmlintrc deleted file mode 100644 index 135cc61..0000000 --- a/rust-rpmlintrc +++ /dev/null @@ -1,5 +0,0 @@ -addFilter("devel-file-in-non-devel-package .*/lib/rustlib/.*-unknown-linux-gnu/lib/libcompiler-rt.a") -addFilter("no-soname .*/lib/rustlib/.*.so") -addFilter("no-soname .*/lib/lib.*-.*.so") -addFilter("binaryinfo-readelf-failed .*/lib/rustlib/.*-unknown-linux-gnu/lib/.*.rlib") -addFilter("zero-length .*/doc/rust/html/.*.html") From d41ed167f232de2a5883e802952e4de8b2b36acac3591550d1d5164d00085273 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 28 Apr 2017 03:15:42 +0000 Subject: [PATCH 20/26] Accepting request 491720 from home:luke_nukem:branches:devel:languages:rust OBS-URL: https://build.opensuse.org/request/show/491720 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=101 --- rust.changes | 109 ++++++++++++++++++++++++++++++++++++++++ rust.spec | 15 +++--- rustc-1.16.0-src.tar.gz | 3 -- rustc-1.17.0-src.tar.gz | 3 ++ 4 files changed, 121 insertions(+), 9 deletions(-) delete mode 100644 rustc-1.16.0-src.tar.gz create mode 100644 rustc-1.17.0-src.tar.gz diff --git a/rust.changes b/rust.changes index b52bdb0..4e7b558 100644 --- a/rust.changes +++ b/rust.changes @@ -1,3 +1,112 @@ +------------------------------------------------------------------- +Fri Apr 28 01:24:18 UTC 2017 - luke.nukem.jones@gmail.com + +- Revert restriction of x86 arch to i586 for the interim. + +------------------------------------------------------------------- +Fri Apr 28 01:04:09 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.17.0 +- Language updates + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * [Clean up semantics of `self` in an import list][38313] + * [`Self` may appear in `impl` headers][38920] + * [`Self` may appear in struct expressions][39282] + +- Compiler updates + * [`rustc` now supports `--emit=metadata`, which causes rustc to emit + a `.rmeta` file containing only crate metadata][38571]. This can be + used by tools like the Rust Language Service to perform + metadata-only builds. + * [Levenshtein based typo suggestions now work in most places, while + previously they worked only for fields and sometimes for local + variables][38927]. Together with the overhaul of "no + resolution"/"unexpected resolution" errors (#[38154]) they result in + large and systematic improvement in resolution diagnostics. + * [Fix `transmute::` where `T` requires a bigger alignment than + `U`][38670] + * [rustc: use -Xlinker when specifying an rpath with ',' in it][38798] + * [`rustc` no longer attempts to provide "consider using an explicit + lifetime" suggestions][37057]. They were inaccurate. + +- Stabilized APIs + * [`VecDeque::truncate`] + * [`VecDeque::resize`] + * [`String::insert_str`] + * [`Duration::checked_add`] + * [`Duration::checked_sub`] + * [`Duration::checked_div`] + * [`Duration::checked_mul`] + * [`str::replacen`] + * [`str::repeat`] + * [`SocketAddr::is_ipv4`] + * [`SocketAddr::is_ipv6`] + * [`IpAddr::is_ipv4`] + * [`IpAddr::is_ipv6`] + * [`Vec::dedup_by`] + * [`Vec::dedup_by_key`] + * [`Result::unwrap_or_default`] + * [`<*const T>::wrapping_offset`] + * [`<*mut T>::wrapping_offset`] + * `CommandExt::creation_flags` + * [`File::set_permissions`] + * [`String::split_off`] + +- Updates to libraries + * [`[T]::binary_search` and `[T]::binary_search_by_key` now take + their argument by `Borrow` parameter][37761] + * [All public types in std implement `Debug`][38006] + * [`IpAddr` implements `From` and `From`][38327] + * [`Ipv6Addr` implements `From<[u16; 8]>`][38131] + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [std: Fix partial writes in `LineWriter`][38062] + * [std: Clamp max read/write sizes on Unix][38062] + * [Use more specific panic message for `&str` slicing errors][38066] + * [`TcpListener::set_only_v6` is deprecated][38304]. This + functionality cannot be achieved in std currently. + * [`writeln!`, like `println!`, now accepts a form with no string + or formatting arguments, to just print a newline][38469] + * [Implement `iter::Sum` and `iter::Product` for `Result`][38580] + * [Reduce the size of static data in `std_unicode::tables`][38781] + * [`char::EscapeDebug`, `EscapeDefault`, `EscapeUnicode`, + `CaseMappingIter`, `ToLowercase`, `ToUppercase`, implement + `Display`][38909] + * [`Duration` implements `Sum`][38712] + * [`String` implements `ToSocketAddrs`][39048] + +- Misc + * [`rustdoc` has a `--sysroot` argument that, like `rustc`, specifies + the path to the Rust implementation][38589] + * [The `armv7-linux-androideabi` target no longer enables NEON + extensions, per Google's ABI guide][38413] + * [The stock standard library can be compiled for Redox OS][38401] + * [Rust has initial SPARC support][38726]. Tier 3. No builds + available. + * [Rust has experimental support for Nvidia PTX][38559]. Tier 3. No + builds available. + * [Fix backtraces on i686-pc-windows-gnu by disabling FPO][39379] + +- Compatibility Notes + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * In this release, references to uninhabited types can not be + pattern-matched. This was accidentally allowed in 1.15. + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [Clean up semantics of `self` in an import list][38313] + +- Restrict x86 builds to i686 only. +- Revert restriction on previous rust versions used for building + +------------------------------------------------------------------- +Sat Apr 22 02:06:47 UTC 2017 - luke.nukem.jones@gmail.com + +- Change x86 build target from i586 to i686 + ------------------------------------------------------------------- Wed Mar 22 01:43:22 UTC 2017 - luke.nukem.jones@gmail.com diff --git a/rust.spec b/rust.spec index ac3d744..91f9cee 100644 --- a/rust.spec +++ b/rust.spec @@ -17,7 +17,7 @@ # -%global prev_rust 1.15.1 +%global prev_rust 1.16.0 %global prev_cargo 0.16.0 %global abi gnu %ifarch s390x @@ -40,15 +40,16 @@ %global _arch i586 %endif %global rust_triple %{_arch}-unknown-linux-%{abi} +%global dl_url https://static.rust-lang.org/dist %bcond_with bootstrap Name: rust -Version: 1.16.0 +Version: 1.17.0 Release: 0 Summary: A systems programming language License: MIT or Apache-2.0 Group: Development/Languages/Other Url: http://www.rust-lang.org -Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.gz +Source0: %{dl_url}//rustc-%{version}-src.tar.gz Source1: config.toml # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch @@ -72,7 +73,7 @@ Conflicts: rustc-bootstrap BuildRoot: %{_tmppath}/%{name}-%{version}-build # Restrict the architectures as building rust relies on being initially # bootstrapped before we can build the n+1 release -ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64 ppc64le s390x +ExclusiveArch: %{ix86} x86_64 armv7 aarch64 ppc64 ppc64le s390x %if 0%{?suse_version} BuildRequires: fdupes @@ -87,8 +88,10 @@ BuildRequires: rustc-bootstrap == %{prev_rust} %else # Require exact versions to help prevent OBS build loops BuildRequires: cargo == %{prev_cargo} -BuildRequires: rust == %{prev_rust} -BuildRequires: rust-std == %{prev_rust} +BuildRequires: rust <= %{version} +BuildRequires: rust >= %{prev_rust} +BuildRequires: rust-std <= %{version} +BuildRequires: rust-std >= %{prev_rust} %endif %description diff --git a/rustc-1.16.0-src.tar.gz b/rustc-1.16.0-src.tar.gz deleted file mode 100644 index 6b51559..0000000 --- a/rustc-1.16.0-src.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f966b31eb1cd9bd2df817c391a338eeb5b9253ae0a19bf8a11960c560f96e8b4 -size 28470372 diff --git a/rustc-1.17.0-src.tar.gz b/rustc-1.17.0-src.tar.gz new file mode 100644 index 0000000..5bb97fe --- /dev/null +++ b/rustc-1.17.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4baba3895b75f2492df6ce5a28a916307ecd1c088dc1fd02dbfa8a8e86174f87 +size 31570599 From 8abbd328cc111f131c5cdc6b9a047270dea2b2b58c65b0cfffc11d970bf4693d Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 28 Apr 2017 03:42:51 +0000 Subject: [PATCH 21/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=102 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index 91f9cee..a50c8de 100644 --- a/rust.spec +++ b/rust.spec @@ -49,7 +49,7 @@ Summary: A systems programming language License: MIT or Apache-2.0 Group: Development/Languages/Other Url: http://www.rust-lang.org -Source0: %{dl_url}//rustc-%{version}-src.tar.gz +Source0: %{dl_url}/rustc-%{version}-src.tar.gz Source1: config.toml # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch From 445e4444f74463083e1b5a64be6d5fb768eba0c74c85f6bd2beb09f3fa2e6b19 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 28 Apr 2017 11:14:03 +0000 Subject: [PATCH 22/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=103 --- rust.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rust.spec b/rust.spec index a50c8de..ee99da6 100644 --- a/rust.spec +++ b/rust.spec @@ -18,7 +18,8 @@ %global prev_rust 1.16.0 -%global prev_cargo 0.16.0 +%global prev_cargo 0.17.0 +%global curr_cargo 0.18.0 %global abi gnu %ifarch s390x %global _arch s390x @@ -82,12 +83,13 @@ BuildRequires: fdupes # There are no successful builds for less than TW or Leap 42.2, so bootstrap # until such time that there is. %if %{with rust_bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100) -BuildRequires: cargo-bootstrap >= %{prev_cargo} +BuildRequires: cargo-bootstrap == %{prev_cargo} BuildRequires: rust-std-bootstrap == %{prev_rust} BuildRequires: rustc-bootstrap == %{prev_rust} %else -# Require exact versions to help prevent OBS build loops -BuildRequires: cargo == %{prev_cargo} +# Building with either current of previous version depending on which is available +BuildRequires: cargo <= %{curr_cargo} +BuildRequires: cargo >= %{prev_cargo} BuildRequires: rust <= %{version} BuildRequires: rust >= %{prev_rust} BuildRequires: rust-std <= %{version} From 8e933b876163d8a9ff1499196ef16b434e380a0a9a2744ebc6ca4e4eb9438104 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Fri, 28 Apr 2017 21:36:38 +0000 Subject: [PATCH 23/26] OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=104 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index ee99da6..6cf3370 100644 --- a/rust.spec +++ b/rust.spec @@ -74,7 +74,7 @@ Conflicts: rustc-bootstrap BuildRoot: %{_tmppath}/%{name}-%{version}-build # Restrict the architectures as building rust relies on being initially # bootstrapped before we can build the n+1 release -ExclusiveArch: %{ix86} x86_64 armv7 aarch64 ppc64 ppc64le s390x +ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64 ppc64le s390x %if 0%{?suse_version} BuildRequires: fdupes From d9ef151cf563ab959e36c6640c45b31cbca966f90ba589a1eb965db4b7bc7fc0 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Sun, 30 Apr 2017 06:28:06 +0000 Subject: [PATCH 24/26] Accepting request 492185 from home:luke_nukem:branches:devel:languages:rust Attempt to fix build loop rust<->cargo by including cargo binaries for each arch OBS-URL: https://build.opensuse.org/request/show/492185 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=105 --- cargo-0.18.0-aarch64-unknown-linux-gnu.tar.gz | 3 + ....18.0-armv7-unknown-linux-gnueabihf.tar.gz | 3 + cargo-0.18.0-i686-unknown-linux-gnu.tar.gz | 3 + ...-0.18.0-powerpc64-unknown-linux-gnu.tar.gz | 3 + ....18.0-powerpc64le-unknown-linux-gnu.tar.gz | 3 + cargo-0.18.0-s390x-unknown-linux-gnu.tar.gz | 3 + cargo-0.18.0-x86_64-unknown-linux-gnu.tar.gz | 3 + config.toml | 2 +- rust.changes | 6 ++ rust.spec | 59 +++++++++++++++---- 10 files changed, 75 insertions(+), 13 deletions(-) create mode 100644 cargo-0.18.0-aarch64-unknown-linux-gnu.tar.gz create mode 100644 cargo-0.18.0-armv7-unknown-linux-gnueabihf.tar.gz create mode 100644 cargo-0.18.0-i686-unknown-linux-gnu.tar.gz create mode 100644 cargo-0.18.0-powerpc64-unknown-linux-gnu.tar.gz create mode 100644 cargo-0.18.0-powerpc64le-unknown-linux-gnu.tar.gz create mode 100644 cargo-0.18.0-s390x-unknown-linux-gnu.tar.gz create mode 100644 cargo-0.18.0-x86_64-unknown-linux-gnu.tar.gz diff --git a/cargo-0.18.0-aarch64-unknown-linux-gnu.tar.gz b/cargo-0.18.0-aarch64-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..16fc1c0 --- /dev/null +++ b/cargo-0.18.0-aarch64-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ed71b6d89359db8fba738039f8ba201542240c7396d9599fc3d51f49727ca36 +size 4039839 diff --git a/cargo-0.18.0-armv7-unknown-linux-gnueabihf.tar.gz b/cargo-0.18.0-armv7-unknown-linux-gnueabihf.tar.gz new file mode 100644 index 0000000..e44bb4f --- /dev/null +++ b/cargo-0.18.0-armv7-unknown-linux-gnueabihf.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91abd44766a5169f5391c607b64fb47aca822ecfa953559a36d041b01ae3aeaa +size 4578488 diff --git a/cargo-0.18.0-i686-unknown-linux-gnu.tar.gz b/cargo-0.18.0-i686-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..4ffc94b --- /dev/null +++ b/cargo-0.18.0-i686-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbc5a0614345dfb2b41e133bd821257906a839753a9aa4c4590cc9d658164e58 +size 4940463 diff --git a/cargo-0.18.0-powerpc64-unknown-linux-gnu.tar.gz b/cargo-0.18.0-powerpc64-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..c8ec8b3 --- /dev/null +++ b/cargo-0.18.0-powerpc64-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15e79c1e1a9b7e620fe3d88d3b2e5429c8a95b025b2b03a5de4a1d71956fe648 +size 4674070 diff --git a/cargo-0.18.0-powerpc64le-unknown-linux-gnu.tar.gz b/cargo-0.18.0-powerpc64le-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..f73ded5 --- /dev/null +++ b/cargo-0.18.0-powerpc64le-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5586f28298f88614023534d290525e45e31633450672b33197a92ac36459994 +size 4563666 diff --git a/cargo-0.18.0-s390x-unknown-linux-gnu.tar.gz b/cargo-0.18.0-s390x-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..9bf66e9 --- /dev/null +++ b/cargo-0.18.0-s390x-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8de0b700e766e574e855d5f90fc4da37a4939caf71b2c28bd30cf70a8750b20c +size 4197244 diff --git a/cargo-0.18.0-x86_64-unknown-linux-gnu.tar.gz b/cargo-0.18.0-x86_64-unknown-linux-gnu.tar.gz new file mode 100644 index 0000000..60a43da --- /dev/null +++ b/cargo-0.18.0-x86_64-unknown-linux-gnu.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3601e95c968850230b137b849ff08a507e50d77ab584c779143a100f1843d8dd +size 4996337 diff --git a/config.toml b/config.toml index c3d702c..fb76f3a 100644 --- a/config.toml +++ b/config.toml @@ -20,7 +20,7 @@ build = "" host = [""] target = [""] -cargo = "/usr/bin/cargo" +cargo = "" rustc = "/usr/bin/rustc" docs = true diff --git a/rust.changes b/rust.changes index 4e7b558..1eebcf5 100644 --- a/rust.changes +++ b/rust.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Apr 30 04:48:19 UTC 2017 - luke.nukem.jones@gmail.com + +- Add the cargo binaries for each arch, used for building rust only + these are not shipped, and don't factor in to the final product. + ------------------------------------------------------------------- Fri Apr 28 01:24:18 UTC 2017 - luke.nukem.jones@gmail.com diff --git a/rust.spec b/rust.spec index 6cf3370..c9b3260 100644 --- a/rust.spec +++ b/rust.spec @@ -18,8 +18,7 @@ %global prev_rust 1.16.0 -%global prev_cargo 0.17.0 -%global curr_cargo 0.18.0 +%global cargo_version 0.18.0 %global abi gnu %ifarch s390x %global _arch s390x @@ -28,6 +27,9 @@ %global _arch armv7 %global abi gnueabihf %endif +%ifarch aarch64 +%global _arch aarch64 +%endif %ifarch ppc64 %global _arch powerpc64 %endif @@ -52,6 +54,13 @@ Group: Development/Languages/Other Url: http://www.rust-lang.org Source0: %{dl_url}/rustc-%{version}-src.tar.gz Source1: config.toml +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}-powerpc64-unknown-linux-gnu.tar.gz +Source105: cargo-%{cargo_version}-powerpc64le-unknown-linux-gnu.tar.gz +Source106: cargo-%{cargo_version}-s390x-unknown-linux-gnu.tar.gz # PATCH-FIX-OPENSUSE: Set DT_SONAME when building dylibs Patch1: add-soname.patch BuildRequires: ccache @@ -83,17 +92,11 @@ BuildRequires: fdupes # There are no successful builds for less than TW or Leap 42.2, so bootstrap # until such time that there is. %if %{with rust_bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100) -BuildRequires: cargo-bootstrap == %{prev_cargo} BuildRequires: rust-std-bootstrap == %{prev_rust} BuildRequires: rustc-bootstrap == %{prev_rust} %else -# Building with either current of previous version depending on which is available -BuildRequires: cargo <= %{curr_cargo} -BuildRequires: cargo >= %{prev_cargo} -BuildRequires: rust <= %{version} -BuildRequires: rust >= %{prev_rust} -BuildRequires: rust-std <= %{version} -BuildRequires: rust-std >= %{prev_rust} +BuildRequires: rust == %{prev_rust} +BuildRequires: rust-std == %{prev_rust} %endif %description @@ -143,9 +146,40 @@ This subpackage provides pretty printers and a wrapper script for invoking gdb on rust binaries. %prep +%ifarch x86_64 +%setup -q -T -b 100 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} +%endif +%ifarch %ix86 +%setup -q -T -b 101 -n cargo-%{cargo_version}-i686-unknown-linux-%{abi} +%endif +%ifarch aarch64 +%setup -q -T -b 102 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} +%endif +%ifarch armv7hl +%setup -q -T -b 103 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} +%endif +%ifarch ppc64 +%setup -q -T -b 104 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} +%endif +%ifarch ppc64le +%setup -q -T -b 105 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} +%endif +%ifarch s390x +%setup -q -T -b 106 -n cargo-%{cargo_version}z-%{_arch}-unknown-linux-%{abi} +%endif + +# The cargo binary is only used to build rust and is not shipped +# Using i686 for i586 seems to be okay for now but may cause issues in future +%ifarch %ix86 +%global cargo_bin %{_builddir}/cargo-%{cargo_version}-i686-unknown-linux-%{abi}/cargo/bin/cargo +%else +%global cargo_bin %{_builddir}/cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi}/cargo/bin/cargo +%endif + %setup -q -n rustc-%{version}-src %patch1 -p1 -sed -e 's::%{rust_triple}:g' \ +sed -e 's::%{cargo_bin}:g' \ + -e 's::%{rust_triple}:g' \ -e 's::%{_prefix}:g' \ -e 's::%{_prefix}/lib:g' \ -e 's::%{_mandir}:g' \ @@ -158,7 +192,8 @@ export CPPFLAGS="%{optflags}" # eliminate complain from RPMlint ./x.py doc -v %install -sed -e 's::%{rust_triple}:g' \ +sed -e 's::%{cargo_bin}:g' \ + -e 's::%{rust_triple}:g' \ -e 's::%{buildroot}%{_prefix}:g' \ -e 's::%{buildroot}%{_prefix}/lib:g' \ -e 's::%{buildroot}%{_mandir}:g' \ From 097b4d287ed29ce181bc8255ce019e836f54e7526d3a83cf1cce659bc9a924f6 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Sun, 30 Apr 2017 06:59:06 +0000 Subject: [PATCH 25/26] Accepting request 492208 from home:luke_nukem:branches:devel:languages:rust Fix silly error (misplaced 'z') OBS-URL: https://build.opensuse.org/request/show/492208 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=106 --- rust.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust.spec b/rust.spec index c9b3260..911fff4 100644 --- a/rust.spec +++ b/rust.spec @@ -165,7 +165,7 @@ invoking gdb on rust binaries. %setup -q -T -b 105 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} %endif %ifarch s390x -%setup -q -T -b 106 -n cargo-%{cargo_version}z-%{_arch}-unknown-linux-%{abi} +%setup -q -T -b 106 -n cargo-%{cargo_version}-%{_arch}-unknown-linux-%{abi} %endif # The cargo binary is only used to build rust and is not shipped From 2c0d88b8e467b0eda82fec145497e0446c89982a7613598693bb7fcd56ba7e05 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Wed, 10 May 2017 07:11:46 +0000 Subject: [PATCH 26/26] Accepting request 494000 from home:luke_nukem:branches:devel:languages:rust Fix dependencies OBS-URL: https://build.opensuse.org/request/show/494000 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=107 --- rust.changes | 6 ++++++ rust.spec | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/rust.changes b/rust.changes index 1eebcf5..ef239b5 100644 --- a/rust.changes +++ b/rust.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed May 10 07:09:13 UTC 2017 - luke.nukem.jones@gmail.com + +- Adjustment of rust version dependency to prevent inability to + build in the adi rings. + ------------------------------------------------------------------- Sun Apr 30 04:48:19 UTC 2017 - luke.nukem.jones@gmail.com diff --git a/rust.spec b/rust.spec index 911fff4..40a6a23 100644 --- a/rust.spec +++ b/rust.spec @@ -92,11 +92,14 @@ BuildRequires: fdupes # There are no successful builds for less than TW or Leap 42.2, so bootstrap # until such time that there is. %if %{with rust_bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100) -BuildRequires: rust-std-bootstrap == %{prev_rust} -BuildRequires: rustc-bootstrap == %{prev_rust} +BuildRequires: rust-std-bootstrap = %{prev_rust} +BuildRequires: rustc-bootstrap = %{prev_rust} %else -BuildRequires: rust == %{prev_rust} -BuildRequires: rust-std == %{prev_rust} +# if there is a package choice, use prefer version in prjconfig +BuildRequires: rust <= %{version} +BuildRequires: rust >= %{prev_rust} +BuildRequires: rust-std <= %{version} +BuildRequires: rust-std >= %{prev_rust} %endif %description