$ git diff --patch-with-stat --summary 51536794026c43ccd95529f1aa09384270578c3d..45881c8faec3559a5699d77bc0b0dacccfe74dbb
.abf.yml | 18 ++++++-------
rust-1.49-lock.patch | 20 ++++++++++++++
rust.spec | 75 ++++++++++++++++++++++++++++------------------------
3 files changed, 69 insertions(+), 44 deletions(-)
create mode 100644 rust-1.49-lock.patch
diff --git a/.abf.yml b/.abf.yml
index 3e37163..f1f44af 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,10 +1,10 @@
sources:
- openssl3.tar.gz: e5acd9655392b194eb7540ef0c106fed32253ca5
- rust-1.44.0-aarch64-unknown-linux-gnu.tar.xz: 99735e094f28ae168907c902385f6df09c9545ac
- rust-1.44.0-armv7-unknown-linux-gnueabihf.tar.xz: b2b17448384bc9e972bb275e0a40afc4128fde1e
- rust-1.44.0-i686-unknown-linux-gnu.tar.xz: 96287d119e8008e13c09e421490a90cd8ed994ab
- rust-1.44.0-powerpc64-unknown-linux-gnu.tar.xz: 448cf18776b20fd6063b93d05ae789fd8e033b21
- rust-1.44.0-powerpc64le-unknown-linux-gnu.tar.xz: d7a6dc0bc6712132dafa3802959e9275467872f4
- rust-1.44.0-s390x-unknown-linux-gnu.tar.xz: b2cdfe4da94877f9d1d4e84861cecb0f4aae8743
- rust-1.44.0-x86_64-unknown-linux-gnu.tar.xz: 5bb798e722c7758454def598daec56362be0525c
- rustc-1.45.2-src.tar.xz: ef2e4d6a728918cc78dd535a3d6d842fa485e8c7
+ openssl3.tar.gz: a1013a371be71cd498c14e700e97d6dfc3b57dfd
+ rust-1.48.0-aarch64-unknown-linux-gnu.tar.gz: f638f580ad74ca0b4fa81ede68f781afb99208a6
+ rust-1.48.0-armv7-unknown-linux-gnueabihf.tar.gz: f1ec5d46b0c6efb93af0de4e6aa05b8b2a8b222f
+ rust-1.48.0-i686-unknown-linux-gnu.tar.gz: cb4e5168c67dec2b76f02b1e8353bd5105b4ef0c
+ rust-1.48.0-powerpc64-unknown-linux-gnu.tar.gz: 11bbc2f236dbaca71fbcd792ed87a56dc8307216
+ rust-1.48.0-powerpc64le-unknown-linux-gnu.tar.gz: e83936c6ee96eb7ee0d542d291c193093f96a885
+ rust-1.48.0-s390x-unknown-linux-gnu.tar.gz: dddf1371a25a96a7ef5a5dba1bc2b7798dab0690
+ rust-1.48.0-x86_64-unknown-linux-gnu.tar.gz: f0615a346a5db786a05b3e9ea45ef3ce5c86e5fb
+ rustc-1.49.0-src.tar.xz: f6f4d4e41694935511097c3913d9f720d5e606f8
diff --git a/rust-1.49-lock.patch b/rust-1.49-lock.patch
new file mode 100644
index 0000000..8d7a059
--- /dev/null
+++ b/rust-1.49-lock.patch
@@ -0,0 +1,20 @@
+--- rustc-1.49.0-src/Cargo.lock.orig 2021-01-26 10:24:51.158395369 +0000
++++ rustc-1.49.0-src/Cargo.lock 2021-01-27 09:57:40.837797785 +0000
+@@ -2229,7 +2229,7 @@
+ name = "openssl"
+ version = "0.10.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
++checksum = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449"
+ dependencies = [
+ "bitflags",
+ "cfg-if 0.1.10",
+@@ -2258,7 +2258,7 @@
+ name = "openssl-sys"
+ version = "0.9.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
++checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
+ dependencies = [
+ "autocfg",
+ "cc",
diff --git a/rust.spec b/rust.spec
index 9f32912..b19ea7b 100644
--- a/rust.spec
+++ b/rust.spec
@@ -11,10 +11,9 @@
# 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.44.0
-%global bootstrap_cargo 1.44.0
-%global bootstrap_channel 1.44.0
-%global bootstrap_date 2020-06-04
+%global bootstrap_rust 1.48.0
+%global bootstrap_cargo 1.48.0
+%global bootstrap_channel 1.48.0
# Only the specified arches will use bootstrap binaries.
%global bootstrap_arches %%{rust_arches}
@@ -36,9 +35,13 @@
# LLDB isn't available everywhere...
%bcond_without lldb
+# Running the tests uses loads of diskspace -- causing various abf buildroots
+# to run out of space
+%bcond_with tests
+
Name: rust
-Version: 1.45.2
-Release: 1%{?dist}
+Version: 1.49.0
+Release: 1
Summary: The Rust Programming Language
License: (ASL 2.0 or MIT) and (BSD and MIT)
# ^ written as: (rust itself) and (bundled libraries)
@@ -57,6 +60,7 @@ Source100: openssl3.tar.gz
# We do have the necessary fix in our LLVM 7.
Patch1: rust-pr57840-llvm7-debuginfo-variants.patch
Patch2: rust-pr70163-prepare-for-llvm-10-upgrade.patch
+Patch3: rust-1.49-lock.patch
%{lua: function rust_triple(arch)
local abi = "gnu"
if arch == "armv7hnl" then
@@ -87,11 +91,11 @@ end}
for arch in string.gmatch(rpm.expand("%{bootstrap_arches}"), "%S+") do
table.insert(bootstrap_arches, arch)
end
- local base = rpm.expand("https://static.rust-lang.org/dist/%{bootstrap_date}"
+ local base = rpm.expand("https://static.rust-lang.org/dist"
.."/rust-%{bootstrap_channel}")
local target_arch = rpm.expand("%{_target_cpu}")
for i, arch in ipairs(bootstrap_arches) do
- print(string.format("Source%d: %s-%s.tar.xz\n",
+ print(string.format("Source%d: %s-%s.tar.gz\n",
i, base, rust_triple(arch)))
if arch == target_arch then
rpm.define("bootstrap_source "..i)
@@ -175,17 +179,9 @@ Requires: /usr/bin/cc
%global __provides_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
-# While we don't want to encourage dynamic linking to Rust shared libraries, as
-# there's no stable ABI, we still need the unallocated metadata (.rustc) to
-# support custom-derive plugins like #[proc_macro_derive(Foo)]. But eu-strip is
-# very eager by default, so we have to limit it to -g, only debugging symbols.
-%if 0%{?fedora} >= 27
-# Newer find-debuginfo.sh supports --keep-section, which is preferable. rhbz1465997
+# We need the unallocated metadata (.rustc) to
+# support custom-derive plugins like #[proc_macro_derive(Foo)].
%global _find_debuginfo_opts --keep-section .rustc
-%else
-%global _find_debuginfo_opts -g
-%undefine _include_minidebuginfo
-%endif
# Use hardening ldflags.
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
@@ -373,10 +369,11 @@ test -f '%{local_rust_root}/bin/rustc'
#patch1 -p1 -R
#patch2 -p1
+%patch3 -p1
pushd vendor
rm -Rf openssl openssl-sys
tar xvf %SOURCE100
-sed -i -e 's/0.10.25/0.10.30/' -e 's/0.9.54/0.9.58/' ../Cargo.lock
+#sed -i -e 's/0.10.30/0.10.30-omv/' -e 's/0.9.58/0.9.58-omv/' ../Cargo.lock
popd
%if "%{python}" == "python3"
@@ -385,6 +382,7 @@ sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
%if %without bundled_llvm
rm -rf src/llvm-project/
+mkdir -p src/llvm-project/libunwind/
%endif
# Remove other unused vendored libraries
@@ -405,9 +403,6 @@ rm -rf vendor/libssh2-sys/libssh2/
# This only affects the transient rust-installer, but let it use our dynamic xz-libs
sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs
-# rename bundled license for packaging
-cp -a vendor/backtrace-sys/src/libbacktrace/LICENSE{,-libbacktrace}
-
%if %{with bundled_llvm} && 0%{?epel}
mkdir -p cmake-bin
ln -s /usr/bin/cmake3 cmake-bin/cmake
@@ -454,13 +449,7 @@ export LIBSSH2_SYS_USE_PKG_CONFIG=1
%ifarch %{arm} %{ix86} s390x
# full debuginfo is exhausting memory; just do libstd for now
# https://github.com/rust-lang/rust/issues/45854
-%if (0%{?fedora} && 0%{?fedora} < 27) || (0%{?rhel} && 0%{?rhel} <= 7)
-# Older rpmbuild didn't work with partial debuginfo coverage.
-%global debug_package %{nil}
-%define enable_debuginfo --debuginfo-level=0
-%else
%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2
-%endif
%else
%define enable_debuginfo --debuginfo-level=2
%endif
@@ -489,11 +478,27 @@ export LIBSSH2_SYS_USE_PKG_CONFIG=1
%{?codegen_units_std} \
--release-channel=%{channel}
-%{python} ./x.py build
-%{python} ./x.py doc
+cpus=$(nproc)
+
+if [[ $cpus -gt 4 ]]; then
+ cpus=4
+fi
+
+%{python} ./x.py build -j "$cpus" --stage 2
+%{python} ./x.py doc --stage 2
%install
+%if %without bundled_libgit2
+# convince libgit2-sys to use the distro libgit2
+export LIBGIT2_SYS_USE_PKG_CONFIG=1
+%endif
+
+%if %without bundled_libssh2
+# convince libssh2-sys to use the distro libssh2
+export LIBSSH2_SYS_USE_PKG_CONFIG=1
+%endif
+
%{?cmake_path:export PATH=%{cmake_path}:$PATH}
%{?rustflags:export RUSTFLAGS="%{rustflags}"}
@@ -559,10 +564,11 @@ ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
%if %without lldb
rm -f %{buildroot}%{_bindir}/rust-lldb
-rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
+rm -f %{buildroot}%{rustlibdir}/etc/lldb_*
%endif
+%if %{with tests}
%check
%{?cmake_path:export PATH=%{cmake_path}:$PATH}
%{?rustflags:export RUSTFLAGS="%{rustflags}"}
@@ -573,11 +579,11 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
%{python} ./x.py test --no-fail-fast clippy || :
%{python} ./x.py test --no-fail-fast rls || :
%{python} ./x.py test --no-fail-fast rustfmt || :
+%endif
%files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
-%license vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace
%doc README.md
%{_bindir}/rustc
%{_bindir}/rustdoc
@@ -600,7 +606,7 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
%files debugger-common
%dir %{rustlibdir}
%dir %{rustlibdir}/etc
-%{rustlibdir}/etc/debugger_*.py*
+%{rustlibdir}/etc/rust_types.py
%files gdb
@@ -612,7 +618,7 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
%if %with lldb
%files lldb
%{_bindir}/rust-lldb
-%{rustlibdir}/etc/lldb_*.py*
+%{rustlibdir}/etc/lldb_*
%endif
@@ -623,7 +629,6 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
%{_docdir}/%{name}/html/*/
%{_docdir}/%{name}/html/*.html
%{_docdir}/%{name}/html/*.css
-%{_docdir}/%{name}/html/*.ico
%{_docdir}/%{name}/html/*.js
%{_docdir}/%{name}/html/*.png
%{_docdir}/%{name}/html/*.svg