diff --git a/0001-WIP-minimize-the-rust-std-component.patch b/0001-WIP-minimize-the-rust-std-component.patch new file mode 100644 index 0000000000000000000000000000000000000000..04be717a3daf9fe1c20d64aa21d16907bf280622 --- /dev/null +++ b/0001-WIP-minimize-the-rust-std-component.patch @@ -0,0 +1,74 @@ +From 2bf05f208272cd58c57f4d7d8d0e10fdb22e8719 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Fri, 27 Sep 2019 12:33:08 -0700 +Subject: [PATCH] [WIP] minimize the rust-std component + +--- + src/bootstrap/dist.rs | 45 +++++++++++++++---------------------------- + 1 file changed, 16 insertions(+), 29 deletions(-) + +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index 552965863d10..76fbd07f9fb5 100644 +--- a/src/bootstrap/dist.rs ++++ b/src/bootstrap/dist.rs +@@ -667,41 +667,28 @@ impl Step for Std { + return distdir(builder).join(format!("{}-{}.tar.gz", name, target)); + } + +- // We want to package up as many target libraries as possible +- // for the `rust-std` package, so if this is a host target we +- // depend on librustc and otherwise we just depend on libtest. +- if builder.hosts.iter().any(|t| t == target) { +- builder.ensure(compile::Rustc { compiler, target }); +- } else { +- if builder.no_std(target) == Some(true) { +- // the `test` doesn't compile for no-std targets +- builder.ensure(compile::Std { compiler, target }); +- } else { +- builder.ensure(compile::Test { compiler, target }); +- } +- } ++ builder.ensure(compile::Std { compiler, target }); ++ builder.ensure(compile::Test { compiler, target }); + + let image = tmpdir(builder).join(format!("{}-{}-image", name, target)); + let _ = fs::remove_dir_all(&image); + +- let dst = image.join("lib/rustlib").join(target); ++ let dst = image.join("lib/rustlib").join(target).join("lib"); + t!(fs::create_dir_all(&dst)); +- let mut src = builder.sysroot_libdir(compiler, target).to_path_buf(); +- src.pop(); // Remove the trailing /lib folder from the sysroot_libdir +- builder.cp_filtered(&src, &dst, &|path| { +- if let Some(name) = path.file_name().and_then(|s| s.to_str()) { +- if name == builder.config.rust_codegen_backends_dir.as_str() { +- return false +- } +- if name == "bin" { +- return false +- } +- if name.contains("LLVM") { +- return false +- } ++ ++ let compiler_to_use = builder.compiler_for(compiler.stage, compiler.host, target); ++ let stamp = dbg!(compile::libstd_stamp(builder, compiler_to_use, target)); ++ for (path, host) in builder.read_stamp_file(&stamp) { ++ if !host { ++ builder.copy(&path, &dst.join(path.file_name().unwrap())); + } +- true +- }); ++ } ++ let stamp = dbg!(compile::libtest_stamp(builder, compiler_to_use, target)); ++ for (path, host) in builder.read_stamp_file(&stamp) { ++ if !host { ++ builder.copy(&path, &dst.join(path.file_name().unwrap())); ++ } ++ } + + let mut cmd = rust_installer(builder); + cmd.arg("generate") +-- +2.21.0 + diff --git a/rust-pr57840-llvm7-debuginfo-variants.patch b/rust-pr57840-llvm7-debuginfo-variants.patch new file mode 100644 index 0000000000000000000000000000000000000000..71996bce8a83938ba554a9958d4ea9c4cb64f5c5 --- /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 536824c72db1f637c9a90c5933a3e085fbc172aa..0c16679113353b8a1eca578acf177817604d7a3d 100644 --- a/rust.spec +++ b/rust.spec @@ -1,36 +1,93 @@ -%global rust_arches x86_64 aarch64 -%global bootstrap_rust 1.29.1 -%global bootstrap_cargo 1.29.0 -%global bootstrap_channel %{bootstrap_rust} -%global bootstrap_date 2018-10-12 - -Name: rust -Version: 1.30.0 -Release: 1 -Summary: The Rust Programming Language -License: (ASL 2.0 or MIT) and (BSD and MIT) -URL: https://www.rust-lang.org -ExclusiveArch: aarch64 x86_64 -Source0: https://static.rust-lang.org/dist/rustc-1.30.0-src.tar.xz - +%{!?channel: %global channel stable} +%global bootstrap_rust 1.37.0 +%global bootstrap_cargo 1.37.0 +%global bootstrap_channel 1.37.0 +%global bootstrap_date 2019-08-15 +%bcond_with llvm_static +%bcond_with bundled_llvm +%bcond_without bundled_libgit2 +Name: rust +Version: 1.38.0 +Release: 1 +Summary: The Rust Programming Language +License: (ASL 2.0 or MIT) and (BSD and MIT) +URL: https://www.rust-lang.org +%if "%{channel}" == "stable" +%global rustc_package rustc-%{version}-src +%else +%global rustc_package rustc-%{channel}-src +%endif +Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz +Patch1: rust-pr57840-llvm7-debuginfo-variants.patch +Patch2: rustc-1.38.0-rebuild-bootstrap.patch +Patch3: 0001-WIP-minimize-the-rust-std-component.patch %{lua: function rust_triple(arch) local abi = "gnu" + if arch == "armv7hl" then + arch = "armv7" + abi = "gnueabihf" + elseif arch == "ppc64" then + arch = "powerpc64" + elseif arch == "ppc64le" then + arch = "powerpc64le" + end return arch.."-unknown-linux-"..abi end} %global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} - -BuildRequires: cargo >= %{bootstrap_cargo} -BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= 1.30.0) -BuildRequires: make gdb gcc gcc-c++ ncurses-devel curl -BuildRequires: pkgconfig(libcurl) pkgconfig(liblzma) -BuildRequires: pkgconfig(openssl) pkgconfig(zlib) -BuildRequires: pkgconfig(libgit2) >= 0.27 pkgconfig(libssh2) >= 1.6.0 -BuildRequires: python3 cmake >= 2.8.11 llvm-devel >= 5.0 -BuildRequires: llvm-static libffi-devel procps-ng -Provides: bundled(libbacktrace) = 8.1.0 bundled(miniz) = 1.16~beta+r1 -Provides: rustc = 1.30.0-%{release} -Requires: %{name}-std-static = 1.30.0-%{release} /usr/bin/cc - +%if %defined bootstrap_arches +%{lua: do + local bootstrap_arches = {} + 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}" + .."/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", + i, base, rust_triple(arch))) + if arch == target_arch then + rpm.define("bootstrap_source "..i) + end + end +end} +%endif +%ifarch %{bootstrap_arches} +%global bootstrap_root rust-%{bootstrap_channel}-%{rust_triple} +%global local_rust_root %{_builddir}/%{bootstrap_root}/usr +Provides: bundled(%{name}-bootstrap) = %{bootstrap_rust} +%else +BuildRequires: cargo >= %{bootstrap_cargo} +BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) +%global local_rust_root %{_prefix} +%endif +BuildRequires: make gcc gcc-c++ ncurses-devel curl pkgconfig(libcurl) pkgconfig(liblzma) +BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 +%global python python3 +BuildRequires: %{python} +%if %with bundled_llvm +BuildRequires: cmake3 >= 3.4.3 +Provides: bundled(llvm) = 8.0.0 +%else +BuildRequires: cmake >= 2.8.11 +%if %defined llvm +%global llvm_root %{_libdir}/%{llvm} +%else +%global llvm llvm +%global llvm_root %{_prefix} +%endif +BuildRequires: %{llvm}-devel >= 6.0 +%if %with llvm_static +BuildRequires: %{llvm}-static libffi-devel +%endif +%endif +BuildRequires: procps-ng gdb +Provides: bundled(libbacktrace) = 8.1.0 +Provides: bundled(miniz) = 2.0.7 +Provides: rustc = %{version}-%{release} +Provides: rustc%{?_isa} = %{version}-%{release} +Requires: %{name}-std-static%{?_isa} = %{version}-%{release} +Requires: /usr/bin/cc %global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.* %global __provides_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$ @@ -38,92 +95,97 @@ Requires: %{name}-std-static = 1.30.0-%{release} /usr/bin/cc %global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ %global _find_debuginfo_opts --keep-section .rustc %global rustflags -Clink-arg=-Wl,-z,relro,-z,now - +%if %{without bundled_llvm} +%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} +%global llvm_has_filecheck 1 +%endif +%endif %description -Rust is a systems programming language focused on three goals:safety, -speed,and concurrency.It maintains these goals without having -a garbage -collector, making it a useful language for a number of use cases other -languages are not good at: embedding in other languages, programs with -specific space and time requirements,and writing low-level code, like -device drivers and operating systems. It improves on current languages -targeting this space by having a number of compile-time safety checks -that produce no runtime overhead,while eliminating all data races. - -%package devel -Summary: Libraries and header files for developing applications that use appstream-glib -Provides: rust-std-static = %{version}-%{release} -Obsoletes: rust-std-static < %{version}-%{release} -%description devel -Libraries and header files for developing applications that use appstream-glib. +Rust is a systems programming language that runs blazingly fast, prevents +segfaults, and guarantees thread safety. +This package includes the Rust compiler and documentation generator. + +%package std-static +Summary: Standard library for Rust +%description std-static +This package includes the standard libraries for building applications +written in Rust. %package debugger-common Summary: Common debugger pretty printers for Rust BuildArch: noarch %description debugger-common -This package includes the common functionality for rust-gdb and rust-lldb. +This package includes the common functionality for %{name}-gdb and %{name}-lldb. %package gdb Summary: GDB pretty printers for Rust BuildArch: noarch -Requires: gdb rust-debugger-common = 1.30.0-%{release} +Requires: gdb %{name}-debugger-common = %{version}-%{release} %description gdb This package includes the rust-gdb script, which allows easier debugging of Rust programs. %package lldb Summary: LLDB pretty printers for Rust -Requires: lldb python2-lldb rust-debugger-common = 1.30.0-%{release} +BuildArch: noarch +Requires: lldb python2-lldb +Requires: %{name}-debugger-common = %{version}-%{release} %description lldb This package includes the rust-lldb script, which allows easier debugging of Rust programs. -%package help -Summary: Help documentation for Rust -Provides: rust-doc = %{version}-%{release} cargo-doc = %{version}-%{release} -Obsoletes: rust-doc < %{version}-%{release} cargo-doc < %{version}-%{release} -%description help -Man pages and other related help documents for rust. +%package doc +Summary: Documentation for Rust +Provides: rust-help = %{version}-%{release} +Obsoletes: rust-help < %{version}-%{release} +%description doc +This package includes HTML documentation for the Rust programming language and +its standard library. %package -n cargo Summary: Rust's package manager and build tool -Version: 1.30.0 +Provides: bundled(libgit2) = 0.28.2 BuildRequires: git -Provides: bundled(libgit2)= 0.27 Requires: rust +Obsoletes: cargo-vendor <= 0.1.23 +Provides: cargo-vendor = %{version}-%{release} %description -n cargo Cargo is a tool that allows Rust projects to declare their various dependencies and ensure that you'll always get a repeatable build. +%package -n cargo-doc +Summary: Documentation for Cargo +BuildArch: noarch +Requires: rust-doc = %{version}-%{release} +%description -n cargo-doc +This package includes HTML documentation for Cargo. -%package -n rustfmt-preview +%package -n rustfmt Summary: Tool to find and fix Rust formatting issues -Version: 0.99.4 Requires: cargo -Obsoletes: rustfmt <= 0.9.0 -Provides: rustfmt = 0.99.4 -%description -n rustfmt-preview +Obsoletes: rustfmt-preview < 1.0.0 +Provides: rustfmt-preview = %{version}-%{release} +%description -n rustfmt A tool for formatting Rust code according to style guidelines. -%package -n rls-preview +%package -n rls Summary: Rust Language Server for IDE integration -Version: 0.130.5 -Provides: rls = 0.130.5 -Provides: bundled(libgit2) = 0.27 -Requires: rust-analysis rust = 1.30.0-%{release} -%description -n rls-preview +Provides: bundled(libgit2) = 0.28.2 +Requires: rust-analysis %{name}%{?_isa} = %{version}-%{release} +Obsoletes: rls-preview < 1.31.6 +Provides: rls-preview = %{version}-%{release} +%description -n rls The Rust Language Server 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. -%package -n clippy-preview +%package -n clippy Summary: Lints to catch common mistakes and improve your Rust code -Version: 0.0.212 -License: MPLv2.0 -Provides: clippy = 0.0.212 -Requires: cargo rust = 1.30.0-%{release} -%description -n clippy-preview +Requires: cargo %{name}%{?_isa} = %{version}-%{release} +Obsoletes: clippy-preview <= 0.0.212 +Provides: clippy-preview = %{version}-%{release} +%description -n clippy A collection of lints to catch common mistakes and improve your Rust code. %package src @@ -135,139 +197,221 @@ useful as a reference for code completion tools in various editors. %package analysis Summary: Compiler analysis data for the Rust standard library -Requires: devel = 1.30.0-%{release} +Requires: rust-std-static%{?_isa} = %{version}-%{release} %description 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. %prep -%autosetup -n rustc-1.30.0-src -p1 +%ifarch %{bootstrap_arches} +%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} +./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ + --prefix=%{local_rust_root} --disable-ldconfig +test -f '%{local_rust_root}/bin/cargo' +test -f '%{local_rust_root}/bin/rustc' +%endif +%setup -q -n %{rustc_package} +%patch1 -p1 -R +%patch2 -p1 +%patch3 -p1 +%if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure -rm -rf src/llvm src/llvm-emscripten/ src/tools/clang src/tools/lld src/tools/lldb -sed -e '/*\//q' src/libbacktrace/backtrace.h \ - >src/libbacktrace/LICENSE-libbacktrace -find src/vendor -name .cargo-checksum.json \ - -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' +%endif +%if %without bundled_llvm +rm -rf src/llvm-project/ +%endif +rm -rf src/llvm-emscripten/ +rm -rf vendor/curl-sys/curl/ +rm -rf vendor/jemalloc-sys/jemalloc/ +rm -rf vendor/libz-sys/src/zlib/ +rm -rf vendor/lzma-sys/xz-*/ +rm -rf vendor/openssl-src/openssl/ +rm -rf vendor/libssh2-sys/libssh2/ +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs +cp -a vendor/backtrace-sys/src/libbacktrace/LICENSE{,-libbacktrace} +%if %{without bundled_llvm} && %{with llvm_static} +sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \ + src/librustc_llvm/lib.rs +%endif +find vendor -name .cargo-checksum.json \ + -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' +find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+' %build export LIBSSH2_SYS_USE_PKG_CONFIG=1 -export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" +%{?cmake_path:export PATH=%{cmake_path}:$PATH} +%{?rustflags:export RUSTFLAGS="%{rustflags}"} %global common_libdir %{_prefix}/lib %global rustlibdir %{common_libdir}/rustlib -%define enable_debuginfo --enable-debuginfo --disable-debuginfo-only-std --enable-debuginfo-tools --disable-debuginfo-lines +%ifarch %{arm} %{ix86} s390x +%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2 +%else +%define enable_debuginfo --debuginfo-level=2 +%endif +%ifnarch %{power64} +%define codegen_units_std --set rust.codegen-units-std=1 +%endif %configure --disable-option-checking \ - --libdir=%{common_libdir} --release-channel=stable \ + --libdir=%{common_libdir} \ --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ - --local-rust-root=%{_prefix} --enable-verbose-tests \ - --llvm-root=%{_prefix} --disable-codegen-tests \ - --enable-llvm-link-shared --enable-vendor \ - --disable-jemalloc -disable-rpath \ - %{enable_debuginfo} --enable-extended -python3 ./x.py build -python3 ./x.py doc + --python=%{python} \ + --local-rust-root=%{local_rust_root} \ + %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ + %{!?llvm_has_filecheck: --disable-codegen-tests} \ + %{!?with_llvm_static: --enable-llvm-link-shared } } \ + --disable-rpath \ + %{enable_debuginfo} \ + --enable-extended \ + --enable-vendor \ + --enable-verbose-tests \ + %{?codegen_units_std} \ + --release-channel=%{channel} +%{python} ./x.py build +%{python} ./x.py doc %install -export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" -DESTDIR=%{buildroot} python3 ./x.py install +%{?cmake_path:export PATH=%{cmake_path}:$PATH} +%{?rustflags:export RUSTFLAGS="%{rustflags}"} +DESTDIR=%{buildroot} %{python} ./x.py install +%if "%{_libdir}" != "%{common_libdir}" mkdir -p %{buildroot}%{_libdir} find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ -exec mv -v -t %{buildroot}%{_libdir} '{}' '+' +%endif find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ -exec chmod -v +x '{}' '+' (cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" && find ../../../../%{_lib} -maxdepth 1 -name '*.so' | while read lib; do - cmp "$lib" "${lib##*/}" - ln -v -f -s -t . "$lib" + if [ -f "${lib##*/}" ]; then + # make sure they're actually identical! + cmp "$lib" "${lib##*/}" + ln -v -f -s -t . "$lib" + fi done) find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' -rm -f %{buildroot}%{_docdir}/rust/{README.md,COPYRIGHT,LICENSE,LICENSE-APACHE} -rm -f %{buildroot}%{_docdir}/rust/{LICENSE-MIT,LICENSE-THIRD-PARTY,*.old} -find %{buildroot}%{_docdir}/rust/html -empty -delete -find %{buildroot}%{_docdir}/rust/html -type f -exec chmod -x '{}' '+' -install -d %{buildroot}%{_datadir}/cargo/registry -install -d %{buildroot}%{_docdir}/cargo +rm -f %{buildroot}%{_docdir}/%{name}/README.md +rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT +rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_docdir}/%{name}/*.old +find %{buildroot}%{_docdir}/%{name}/html -empty -delete +find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+' +mkdir -p %{buildroot}%{_datadir}/cargo/registry +mkdir -p %{buildroot}%{_docdir}/cargo ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html %check -export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" -python3 ./x.py test --no-fail-fast || : -python3 ./x.py test --no-fail-fast cargo || : -python3 ./x.py test --no-fail-fast clippy || : -python3 ./x.py test --no-fail-fast rls || : -python3 ./x.py test --no-fail-fast rustfmt || : -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%{?cmake_path:export PATH=%{cmake_path}:$PATH} +%{?rustflags:export RUSTFLAGS="%{rustflags}"} +%{python} ./x.py test --no-fail-fast || : +%{python} ./x.py test --no-fail-fast cargo || : +%{python} ./x.py test --no-fail-fast clippy || : +%{python} ./x.py test --no-fail-fast rls || : +%{python} ./x.py test --no-fail-fast rustfmt || : +%ldconfig_scriptlets %files %license COPYRIGHT LICENSE-APACHE LICENSE-MIT -%license src/libbacktrace/LICENSE-libbacktrace -%{_bindir}/{rustc,rustdoc} +%license vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace +%doc README.md +%{_bindir}/rustc +%{_bindir}/rustdoc %{_libdir}/*.so -%{_mandir}/man1/{rustc.1*,rustdoc.1*} +%{_mandir}/man1/rustc.1* +%{_mandir}/man1/rustdoc.1* +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.so %{rustlibdir}/%{rust_triple}/codegen-backends/ +%exclude %{_bindir}/*miri -%files devel +%files std-static +%dir %{rustlibdir} +%dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.rlib %files debugger-common +%dir %{rustlibdir} %dir %{rustlibdir}/etc %{rustlibdir}/etc/debugger_*.py* %files gdb %{_bindir}/rust-gdb %{rustlibdir}/etc/gdb_*.py* +%exclude %{_bindir}/rust-gdbgui %files lldb %{_bindir}/rust-lldb %{rustlibdir}/etc/lldb_*.py* -%files help -%doc README.md -%{_docdir}/cargo/html -%{_mandir}/man1/cargo*.1* -%doc %{_docdir}/rust/html/*.txt -%docdir %{_docdir}/{rust,cargo} -%dir %{_docdir}/{rust/html,cargo} -%{_docdir}/rust/html/{*/,*.html,*.css,*.js,*.svg,*.woff} -%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md -%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md} -%doc src/tools/clippy/{README.md,CHANGELOG.md} +%files doc +%docdir %{_docdir}/%{name} +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/html +%{_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 +%{_docdir}/%{name}/html/*.woff +%license %{_docdir}/%{name}/html/*.txt +%license %{_docdir}/%{name}/html/*.md %files -n cargo -%doc src/tools/cargo/README.md src/tools/cargo/LICENSE-THIRD-PARTY -%doc src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT +%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY +%doc src/tools/cargo/README.md %{_bindir}/cargo -%dir %{_datadir}/cargo/registry +%{_mandir}/man1/cargo*.1* %{_sysconfdir}/bash_completion.d/cargo %{_datadir}/zsh/site-functions/_cargo +%dir %{_datadir}/cargo +%dir %{_datadir}/cargo/registry + +%files -n cargo-doc +%docdir %{_docdir}/cargo +%dir %{_docdir}/cargo +%{_docdir}/cargo/html -%files -n rustfmt-preview -%{_bindir}/{rustfmt,cargo-fmt} -%doc src/tools/rustfmt/LICENSE-{APACHE,MIT} +%files -n rustfmt +%{_bindir}/rustfmt +%{_bindir}/cargo-fmt +%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md +%license src/tools/rustfmt/LICENSE-{APACHE,MIT} -%files -n rls-preview +%files -n rls %{_bindir}/rls -%doc src/tools/rls/LICENSE-{APACHE,MIT} +%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md} +%license src/tools/rls/LICENSE-{APACHE,MIT} -%files -n clippy-preview -%{_bindir}/{cargo-clippy,clippy-driver} -%doc src/tools/clippy/LICENSE +%files -n clippy +%{_bindir}/cargo-clippy +%{_bindir}/clippy-driver +%doc src/tools/clippy/{README.md,CHANGELOG.md} +%license src/tools/clippy/LICENSE-{APACHE,MIT} %files src +%dir %{rustlibdir} %{rustlibdir}/src %files analysis %{rustlibdir}/%{rust_triple}/analysis/ %changelog +* Wed Jul 15 2020 yanan li - 1.38.0-1 +- Update to 1.38.0-1 + * Fri Jun 5 2020 yaokai - 1.30.0-1 - Update to 1.30.0-1 + * Thu Dec 5 2019 wutao - 1.29.1-3 - Package init diff --git a/rustc-1.38.0-rebuild-bootstrap.patch b/rustc-1.38.0-rebuild-bootstrap.patch new file mode 100644 index 0000000000000000000000000000000000000000..07f59a0641bb844deaba374e79c034cbb3127b6e --- /dev/null +++ b/rustc-1.38.0-rebuild-bootstrap.patch @@ -0,0 +1,10 @@ +--- rustc-1.38.0-src/src/bootstrap/builder.rs 2019-09-23 14:15:52.000000000 -0700 ++++ rustc-1.38.0-src/src/bootstrap/builder.rs 2019-09-26 10:45:49.663995011 -0700 +@@ -140,6 +140,7 @@ + + impl StepDescription { + fn from() -> StepDescription { ++ #[allow(unused_unsafe)] // for rebuild bootstrapping + StepDescription { + default: S::DEFAULT, + only_hosts: S::ONLY_HOSTS, diff --git a/rustc-1.30.0-src.tar.xz b/rustc-1.38.0-src.tar.xz similarity index 85% rename from rustc-1.30.0-src.tar.xz rename to rustc-1.38.0-src.tar.xz index d624e46022b67c8f1b0b599b29d668e4244eabb0..19d73b897283774f2e5e54d74879785501bc5779 100644 Binary files a/rustc-1.30.0-src.tar.xz and b/rustc-1.38.0-src.tar.xz differ