13 |
# To bootstrap from scratch, set the channel and date from src/stage0.json |
# To bootstrap from scratch, set the channel and date from src/stage0.json |
14 |
# e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 |
# e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 |
15 |
# or nightly wants some beta-YYYY-MM-DD |
# or nightly wants some beta-YYYY-MM-DD |
16 |
%global bootstrap_version 1.62.0 |
%global bootstrap_version 1.63.0 |
17 |
%global bootstrap_channel 1.62.0 |
%global bootstrap_channel 1.63.0 |
18 |
%global bootstrap_date 2022-06-30 |
%global bootstrap_date 2022-08-11 |
19 |
|
|
20 |
# Only the specified arches will use bootstrap binaries. |
# Only the specified arches will use bootstrap binaries. |
21 |
# NOTE: Those binaries used to be uploaded with every new release, but that was |
# NOTE: Those binaries used to be uploaded with every new release, but that was |
62 |
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM |
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM |
63 |
# is insufficient. Rust currently requires LLVM 12.0+. |
# is insufficient. Rust currently requires LLVM 12.0+. |
64 |
%global min_llvm_version 12.0.0 |
%global min_llvm_version 12.0.0 |
65 |
%global bundled_llvm_version 14.0.5 |
%global bundled_llvm_version 14.0.6 |
66 |
%bcond_with bundled_llvm |
%bcond_with bundled_llvm |
67 |
# (akien) Hacks below are needed on mga's buildsystem when we have to rebootstrap llvm. |
# (akien) Hacks below are needed on mga's buildsystem when we have to rebootstrap llvm. |
68 |
## Bundled LLVM has underlinking issues: |
## Bundled LLVM has underlinking issues: |
111 |
%endif |
%endif |
112 |
|
|
113 |
Name: rust |
Name: rust |
114 |
Version: 1.63.0 |
Version: 1.64.0 |
115 |
Release: %mkrel 3 |
Release: %mkrel 1 |
116 |
Summary: The Rust Programming Language |
Summary: The Rust Programming Language |
117 |
%if 0%{?mageia} |
%if 0%{?mageia} |
118 |
Group: Development/Other |
Group: Development/Other |
155 |
|
|
156 |
# kernel rh1410097 causes too-small stacks for PIE. |
# kernel rh1410097 causes too-small stacks for PIE. |
157 |
# (affects RHEL6 kernels when building for RHEL7) |
# (affects RHEL6 kernels when building for RHEL7) |
158 |
Patch102: rustc-1.58.0-no-default-pie.patch |
Patch102: rustc-1.64.0-no-default-pie.patch |
159 |
|
|
160 |
|
|
161 |
# Get the Rust triple for any arch. |
# Get the Rust triple for any arch. |
540 |
|
|
541 |
|
|
542 |
%package -n rls |
%package -n rls |
543 |
Summary: Rust Language Server for IDE integration |
Summary: Rust Language Server for IDE integration (deprecated) |
544 |
%if %with bundled_libgit2 |
%if %with bundled_libgit2 |
545 |
Provides: bundled(libgit2) = %{bundled_libgit2_version} |
Provides: bundled(libgit2) = %{bundled_libgit2_version} |
546 |
%endif |
%endif |
555 |
%description -n rls |
%description -n rls |
556 |
The Rust Language Server provides a server that runs in the background, |
The Rust Language Server provides a server that runs in the background, |
557 |
providing IDEs, editors, and other tools with information about Rust programs. |
providing IDEs, editors, and other tools with information about Rust programs. |
558 |
It supports functionality such as 'goto definition', symbol search, |
RLS is being deprecated in favor of rust-analyzer, and may be removed in the future. |
559 |
reformatting, and code completion, and enables renaming and refactorings. |
https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html |
560 |
|
|
561 |
|
|
562 |
|
%package analyzer |
563 |
|
Summary: Rust implementation of the Language Server Protocol |
564 |
|
|
565 |
|
%description analyzer |
566 |
|
rust-analyzer is an implementation of Language Server Protocol for the Rust |
567 |
|
programming language. It provides features like completion and goto definition |
568 |
|
for many code editors, including VS Code, Emacs and Vim. |
569 |
|
|
570 |
|
|
571 |
%package -n clippy |
%package -n clippy |
637 |
|
|
638 |
%patch1 -p1 |
%patch1 -p1 |
639 |
%patch2 -p1 |
%patch2 -p1 |
640 |
|
%patch3 -p1 |
641 |
|
|
642 |
%patch11 -p1 |
%patch11 -p1 |
643 |
|
|
802 |
%{enable_debuginfo} \ |
%{enable_debuginfo} \ |
803 |
--set rust.codegen-units-std=1 \ |
--set rust.codegen-units-std=1 \ |
804 |
--enable-extended \ |
--enable-extended \ |
805 |
--tools=analysis,cargo,clippy,rls,rustfmt,src \ |
--tools=analysis,cargo,clippy,rls,rust-analyzer,rustfmt,src \ |
806 |
--enable-vendor \ |
--enable-vendor \ |
807 |
--enable-verbose-tests \ |
--enable-verbose-tests \ |
808 |
--dist-compression-formats=gz \ |
--dist-compression-formats=gz \ |
842 |
# The libdir libraries are identical to those under rustlib/. It's easier on |
# The libdir libraries are identical to those under rustlib/. It's easier on |
843 |
# library loading if we keep them in libdir, but we do need them in rustlib/ |
# library loading if we keep them in libdir, but we do need them in rustlib/ |
844 |
# to support dynamic linking for compiler plugins, so we'll symlink. |
# to support dynamic linking for compiler plugins, so we'll symlink. |
845 |
(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" && |
find %{buildroot}%{rustlibdir}/%{rust_triple}/lib/ -maxdepth 1 -type f -name '*.so' | |
846 |
find ../../../../%{_lib} -maxdepth 1 -name '*.so' | |
while read lib; do |
847 |
while read lib; do |
lib2="%{buildroot}%{_libdir}/${lib##*/}" |
848 |
if [ -f "${lib##*/}" ]; then |
if [ -f "$lib2" ]; then |
849 |
# make sure they're actually identical! |
# make sure they're actually identical! |
850 |
cmp "$lib" "${lib##*/}" |
cmp "$lib" "$lib2" |
851 |
ln -v -f -s -t . "$lib" |
ln -v -f -r -s -T "$lib2" "$lib" |
852 |
fi |
fi |
853 |
done) |
done |
854 |
|
|
855 |
# Remove installer artifacts (manifests, uninstall scripts, etc.) |
# Remove installer artifacts (manifests, uninstall scripts, etc.) |
856 |
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' |
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' |
929 |
env RLS_TEST_WAIT_FOR_AGES=1 \ |
env RLS_TEST_WAIT_FOR_AGES=1 \ |
930 |
%{__python3} ./x.py test --no-fail-fast --stage 2 rls || : |
%{__python3} ./x.py test --no-fail-fast --stage 2 rls || : |
931 |
|
|
932 |
|
%{__python3} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : |
933 |
|
|
934 |
%{__python3} ./x.py test --no-fail-fast --stage 2 rustfmt || : |
%{__python3} ./x.py test --no-fail-fast --stage 2 rustfmt || : |
935 |
|
|
936 |
|
|
943 |
%{_bindir}/rustc |
%{_bindir}/rustc |
944 |
%{_bindir}/rustdoc |
%{_bindir}/rustdoc |
945 |
%{_libdir}/*.so |
%{_libdir}/*.so |
946 |
|
%{_libexecdir}/rust-analyzer-proc-macro-srv |
947 |
%{_mandir}/man1/rustc.1* |
%{_mandir}/man1/rustc.1* |
948 |
%{_mandir}/man1/rustdoc.1* |
%{_mandir}/man1/rustdoc.1* |
949 |
%dir %{rustlibdir} |
%dir %{rustlibdir} |
1088 |
%license src/tools/rls/LICENSE-{APACHE,MIT} |
%license src/tools/rls/LICENSE-{APACHE,MIT} |
1089 |
|
|
1090 |
|
|
1091 |
|
%files analyzer |
1092 |
|
%{_bindir}/rust-analyzer |
1093 |
|
%doc src/tools/rust-analyzer/README.md |
1094 |
|
%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} |
1095 |
|
|
1096 |
|
|
1097 |
%files -n clippy |
%files -n clippy |
1098 |
%{_bindir}/cargo-clippy |
%{_bindir}/cargo-clippy |
1099 |
%{_bindir}/clippy-driver |
%{_bindir}/clippy-driver |