diff --git a/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch b/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch deleted file mode 100644 index 78b84c2..0000000 --- a/0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d9ddc39052c91568936427e3dee087b608140cf4 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Tue, 8 Jan 2019 13:19:50 -0800 -Subject: [PATCH] lldb_batchmode.py: try `import _thread` for Python 3 - ---- - src/etc/lldb_batchmode.py | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/etc/lldb_batchmode.py b/src/etc/lldb_batchmode.py -index 6b4c44806740..537b419b3279 100644 ---- a/src/etc/lldb_batchmode.py -+++ b/src/etc/lldb_batchmode.py -@@ -18,10 +18,15 @@ import lldb - import os - import sys - import threading --import thread - import re - import time - -+try: -+ import thread -+except ModuleNotFoundError: -+ # The `thread` module was renamed to `_thread` in Python 3. -+ import _thread as thread -+ - # Set this to True for additional output - DEBUG_OUTPUT = False - --- -2.20.1 - diff --git a/0001-rust-gdb-relax-the-GDB-version-regex.patch b/0001-rust-gdb-relax-the-GDB-version-regex.patch new file mode 100644 index 0000000..6905230 --- /dev/null +++ b/0001-rust-gdb-relax-the-GDB-version-regex.patch @@ -0,0 +1,30 @@ +From 9430423cab6909792fb1b3a850f1c3c8974a5111 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Tue, 15 Jan 2019 15:14:17 -0800 +Subject: [PATCH] [rust-gdb] relax the GDB version regex + +The pretty-printer script is checking `gdb.VERSION` to see if it's at +least 8.1 for some features. With `re.match`, it will only find the +version at the beginning of that string, but in Fedora the string is +something like "Fedora 8.2-5.fc29". Using `re.search` instead will find +the first location that matches anywhere, so it will find my 8.2. +--- + src/etc/gdb_rust_pretty_printing.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/etc/gdb_rust_pretty_printing.py b/src/etc/gdb_rust_pretty_printing.py +index 08ae289d6037..b9413563fd9f 100755 +--- a/src/etc/gdb_rust_pretty_printing.py ++++ b/src/etc/gdb_rust_pretty_printing.py +@@ -16,7 +16,7 @@ rust_enabled = 'set language rust' in gdb.execute('complete set language ru', to + # This fix went in 8.1, so check for that. + # See https://github.com/rust-lang/rust/issues/56730 + gdb_81 = False +-_match = re.match('([0-9]+)\\.([0-9]+)', gdb.VERSION) ++_match = re.search('([0-9]+)\\.([0-9]+)', gdb.VERSION) + if _match: + if int(_match.group(1)) > 8 or (int(_match.group(1)) == 8 and int(_match.group(2)) >= 1): + gdb_81 = True +-- +2.20.1 + diff --git a/rust-pr57840-llvm7-debuginfo-variants.patch b/rust-pr57840-llvm7-debuginfo-variants.patch new file mode 100644 index 0000000..71996bc --- /dev/null +++ b/rust-pr57840-llvm7-debuginfo-variants.patch @@ -0,0 +1,32 @@ +commit ab998a2eeb2bcdc69ce70c814af97f0d1302a404 (from d17f62d857c70508efbf60be41135880bcd2e062) +Merge: d17f62d857c7 9452a8dfa3ba +Author: Mazdak Farrokhzad +Date: Thu Jan 24 00:20:00 2019 +0100 + + Rollup merge of #57840 - tromey:fix-issue-57762, r=nikic + + Fix issue 57762 + + against a stock LLVM 7. LLVM 7 was released without a necessary fix + for a bug in the DWARF discriminant code. + + This patch changes rustc to use the fallback mode on (non-Rust) LLVM 7. + + Closes #57762 + +diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs +index 6deedd0b5ea3..9f63038c3623 100644 +--- a/src/librustc_codegen_llvm/debuginfo/metadata.rs ++++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs +@@ -1164,7 +1164,10 @@ fn use_enum_fallback(cx: &CodegenCx) -> bool { + // On MSVC we have to use the fallback mode, because LLVM doesn't + // lower variant parts to PDB. + return cx.sess().target.target.options.is_like_msvc +- || llvm_util::get_major_version() < 7; ++ // LLVM version 7 did not release with an important bug fix; ++ // but the required patch is in the LLVM 8. Rust LLVM reports ++ // 8 as well. ++ || llvm_util::get_major_version() < 8; + } + + // Describes the members of an enum value: An enum is described as a union of diff --git a/rust.spec b/rust.spec index e6ff826..25173c7 100644 --- a/rust.spec +++ b/rust.spec @@ -9,10 +9,10 @@ # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # or nightly wants some beta-YYYY-MM-DD # Note that cargo matches the program version here, not its crate version. -%global bootstrap_rust 1.31.1 -%global bootstrap_cargo 1.31.0 +%global bootstrap_rust 1.32.0 +%global bootstrap_cargo 1.32.0 %global bootstrap_channel %{bootstrap_rust} -%global bootstrap_date 2018-12-20 +%global bootstrap_date 2019-01-17 # Only the specified arches will use bootstrap binaries. #global bootstrap_arches %%{rust_arches} @@ -53,8 +53,8 @@ %endif Name: rust -Version: 1.32.0 -Release: 2%{?dist} +Version: 1.33.0 +Release: 0.1.beta.9%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) # ^ written as: (rust itself) and (bundled libraries) @@ -71,8 +71,12 @@ Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz # https://github.com/rust-dev-tools/rls-analysis/pull/160 Patch1: 0001-Try-to-get-the-target-triple-from-rustc-itself.patch -# https://github.com/rust-lang/rust/pull/57453 -Patch2: 0001-lldb_batchmode.py-try-import-_thread-for-Python-3.patch +# https://github.com/rust-lang/rust/pull/57647 +Patch2: 0001-rust-gdb-relax-the-GDB-version-regex.patch + +# Revert https://github.com/rust-lang/rust/pull/57840 +# We do have the necessary fix in our LLVM 7. +Patch3: rust-pr57840-llvm7-debuginfo-variants.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -166,7 +170,7 @@ BuildRequires: cmake >= 2.8.11 %global llvm llvm %global llvm_root %{_prefix} %endif -BuildRequires: %{llvm}-devel >= 5.0 +BuildRequires: %{llvm}-devel >= 6.0 %if %with llvm_static BuildRequires: %{llvm}-static BuildRequires: libffi-devel @@ -181,7 +185,7 @@ BuildRequires: gdb # TODO: work on unbundling these! Provides: bundled(libbacktrace) = 8.1.0 -Provides: bundled(miniz) = 1.16~beta+r1 +Provides: bundled(miniz) = 2.0.7 # Virtual provides for folks who attempt "dnf install rustc" Provides: rustc = %{version}-%{release} @@ -405,6 +409,7 @@ pushd vendor/rls-analysis %patch1 -p1 popd %patch2 -p1 +%patch3 -p1 -R %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure @@ -422,9 +427,8 @@ rm -rf src/tools/clang rm -rf src/tools/lld rm -rf src/tools/lldb -# extract bundled licenses for packaging -sed -e '/*\//q' src/libbacktrace/backtrace.h \ - >src/libbacktrace/LICENSE-libbacktrace +# rename bundled license for packaging +cp -a vendor/backtrace-sys/src/libbacktrace/LICENSE{,-libbacktrace} %if %{with bundled_llvm} && 0%{?epel} mkdir -p cmake-bin @@ -586,7 +590,7 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %files %license COPYRIGHT LICENSE-APACHE LICENSE-MIT -%license src/libbacktrace/LICENSE-libbacktrace +%license vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace %doc README.md %{_bindir}/rustc %{_bindir}/rustdoc @@ -598,6 +602,7 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.so %{rustlibdir}/%{rust_triple}/codegen-backends/ +%exclude %{_bindir}/{cargo-,}miri %files std-static @@ -685,6 +690,9 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Feb 21 2019 Josh Stone - 1.33.0-0.1.beta.9 +- beta test + * Sat Feb 02 2019 Fedora Release Engineering - 1.32.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild