X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=rust.spec;h=9aa12e3f3573d65e0e987d5c643089650ffa04e7;hb=56b25e8bc40446e475e5ce1cd636fa945f156bf1;hp=760bfcd44aed0710370f1ece6353b77db3e73392;hpb=d8fbcc2e0d290c64e60b2121aad29a3274939794;p=packages%2Frust.git diff --git a/rust.spec b/rust.spec index 760bfcd..9aa12e3 100644 --- a/rust.spec +++ b/rust.spec @@ -21,31 +21,37 @@ # To bootstrap from scratch, set the channel and date from src/stage0.txt # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # or nightly wants some beta-YYYY-MM-DD -%define bootstrap_rust 1.43.1 -%define bootstrap_cargo 1.43.1 -%define bootstrap_date 2020-05-07 +%define bootstrap_rust 1.51.0 +%define bootstrap_cargo 1.51.0 +%define bootstrap_date 2021-03-25 %ifarch x32 %define with_cross 1 %endif + +%if %{without full_debuginfo} +%define _enable_debug_packages 0 +%endif + Summary: The Rust Programming Language Summary(pl.UTF-8): Język programowania Rust Name: rust -Version: 1.44.1 -Release: 2 +Version: 1.52.0 +Release: 0.1 # Licenses: (rust itself) and (bundled libraries) License: (Apache v2.0 or MIT) and (BSD and ISC and MIT) Group: Development/Languages Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz -# Source0-md5: 0cc3b079ddb1eb9a17f9e7e52efcebc5 +# Source0-md5: f95ca614a531b3c1edd4918eaa329732 Source1: https://static.rust-lang.org/dist/%{bootstrap_date}/rust-%{bootstrap_rust}-x86_64-unknown-linux-gnu.tar.xz -# Source1-md5: 62b0974a4bad5aeabd50c7a7fa74518c +# Source1-md5: 7640d6538716c6492e56f361e3af0631 Source2: https://static.rust-lang.org/dist/%{bootstrap_date}/rust-%{bootstrap_rust}-i686-unknown-linux-gnu.tar.xz -# Source2-md5: 758d55172c8dddb1ec71913b5f532bb2 +# Source2-md5: 64f117dc1ae1543c8910eaa9a971ddd4 Source3: https://static.rust-lang.org/dist/%{bootstrap_date}/rust-%{bootstrap_rust}-aarch64-unknown-linux-gnu.tar.xz -# Source3-md5: 3a9d54ab96f96664b2f6077cccb4e70b -Patch0: %{name}-no-miri.patch -Patch1: %{name}-x32.patch +# Source3-md5: 3ac79872671df7ea0215fd351f52ffcf +Source4: https://static.rust-lang.org/dist/%{bootstrap_date}/rust-%{bootstrap_rust}-arm-unknown-linux-gnueabihf.tar.xz +# Source4-md5: f624772d7c7ba2e83a51b4e9c1657f7b +Patch0: %{name}-x32.patch URL: https://www.rust-lang.org/ # for src/compiler-rt BuildRequires: cmake >= 3.4.3 @@ -58,8 +64,10 @@ BuildRequires: rpmbuild(macros) >= 1.752 BuildRequires: curl-devel BuildRequires: libgit2-devel BuildRequires: libstdc++-devel -%{?with_system_llvm:BuildRequires: llvm-devel >= 7.0} +%{?with_system_llvm:BuildRequires: llvm-devel >= 9.0} BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: tar >= 1:1.22 +BuildRequires: xz BuildRequires: zlib-devel %endif %if %{without bootstrap} @@ -76,19 +84,18 @@ BuildRequires: curl-devel BuildRequires: gcc-multilib-x32 BuildRequires: libgit2-devel BuildRequires: libstdc++-devel -%{?with_system_llvm:BuildRequires: llvm-devel >= 7.0} +%{?with_system_llvm:BuildRequires: llvm-devel >= 9.0} BuildRequires: openssl-devel >= 1.0.1 BuildRequires: zlib-devel %else # building x86_64-hosted crosscompiler on x32 host +BuildRequires: curl-devel(x86-64) BuildRequires: gcc-multilib-64 +BuildRequires: libgit2-devel(x86-64) BuildRequires: libstdc++-multilib-64-devel -# how to specify? -#BuildRequires: curl-devel.x86_64 -#BuildRequires: libgit2-devel.x86_64 -#BuildRequires: llvm-devel.x86_64 >= 7.0 -#BuildRequires: openssl-devel.x86_64 -#BuildRequires: zlib-devel.x86_64 +%{?with_system_llvm:BuildRequires: llvm-devel(x86-64) >= 9.0} +BuildRequires: openssl-devel(x86-64) +BuildRequires: zlib-devel(x86-64) %endif %endif # The C compiler is needed at runtime just for linking. Someday rustc might @@ -98,7 +105,7 @@ Requires: gcc # Only x86_64 and i686 are Tier 1 platforms at this time. # x32 is Tier 2, only rust-std is available (no rustc or cargo). # https://doc.rust-lang.org/nightly/rustc/platform-support.html -ExclusiveArch: %{x8664} %{ix86} x32 aarch64 +ExclusiveArch: %{x8664} %{ix86} x32 aarch64 armv6hl armv7hl armv7hnl BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %ifarch x32 @@ -106,10 +113,16 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define rust_host_triple x86_64-unknown-linux-gnu %define rust_bootstrap_triple x86_64-unknown-linux-gnu %else +%ifarch armv6hl armv7hl armv7hnl +%define rust_triple arm-unknown-linux-gnueabihf +%define rust_host_triple %{rust_triple} +%define rust_bootstrap_triple %{rust_triple} +%else %define rust_triple %{_target_cpu}-unknown-linux-gnu %define rust_host_triple %{rust_triple} %define rust_bootstrap_triple %{rust_triple} %endif +%endif %if %{without bootstrap} %define local_rust_root %{_prefix} @@ -152,11 +165,23 @@ Rust to systemowy język programowania działający bardzo szybko, zapobiegający naruszeniom ochrony pamięci i gwarantujący bezpieczną wielowątkowość. +%package analyzer +Summary: Implementation of Language Server Protocol for Rust +Summary(pl.UTF-8): Implementacja Language Server Protocol dla Rusta +Group: Development/Tools +Requires: %{name} = %{version}-%{release} + +%description analyzer +Implementation of Language Server Protocol for Rust. + +%description analyzer -l pl.UTF-8 +Implementacja Language Server Protocol dla Rusta. + %package debugger-common Summary: Common debugger pretty printers for Rust Summary(pl.UTF-8): Narzędzia wypisujące struktury Rusa wspólne dla różnych debuggerów Group: Development/Debuggers -%{?noarchpackage} +BuildArch: noarch %description debugger-common This package includes the common functionality for rust-gdb and @@ -171,7 +196,7 @@ Summary(pl.UTF-8): Ładne wypisywanie struktur Rusta w GDB Group: Development/Debuggers Requires: %{name}-debugger-common = %{version}-%{release} Requires: gdb -%{?noarchpackage} +BuildArch: noarch %description gdb This package includes the rust-gdb script, which allows easier @@ -187,7 +212,7 @@ Summary(pl.UTF-8): Ładne wypisywanie struktur Rusta w LLDB Group: Development/Debuggers Requires: %{name}-debugger-common = %{version}-%{release} Requires: lldb -%{?noarchpackage} +BuildArch: noarch %description lldb This package includes the rust-lldb script, which allows easier @@ -197,11 +222,23 @@ debugging of Rust programs. Ten pakiet zawiera skrypt rust-lldb, pozwalający na łatwiejsze odpluskwianie programów w języku Rust. +%package rls +Summary: Rust Language Server for IDE integration +Summary(pl.UTF-8): Rust Language Server do integracji z IDE +Group: Development/Tools +Requires: %{name} = %{version}-%{release} + +%description rls +Rust Language Server for IDE integration. + +%description rls -l pl.UTF-8 +Rust Language Server do integracji z IDE. + %package doc Summary: Documentation for Rust Summary(pl.UTF-8): Dokumentacja do Rusta Group: Documentation -%{?noarchpackage} +BuildArch: noarch %description doc This package includes HTML documentation for the Rust programming @@ -253,9 +290,8 @@ Dopełnianie parametrów polecenia cargo w powłoce Zsh. %prep %setup -q -n %{rustc_package} -%patch0 -p1 # irrelevant when not building rustc for x32 -#patch1 -p1 +#%%patch0 -p1 %if %{with bootstrap} %ifarch %{x8664} x32 @@ -267,6 +303,9 @@ tar xf %{SOURCE2} %ifarch aarch64 tar xf %{SOURCE3} %endif +%ifarch armv6hl armv7hl armv7hnl +tar xf %{SOURCE4} +%endif %{__mv} %{bootstrap_root} %{bootstrap_root}-root %{bootstrap_root}-root/install.sh \ --components=cargo,rustc,rust-std-%{rust_bootstrap_triple} \ @@ -279,11 +318,14 @@ test -f %{local_rust_root}/bin/rustc # unbundle # We're disabling jemalloc, but rust-src still wants it. #%{__rm} -r src/jemalloc -%{?with_system_llvm:%{__rm} -r src/llvm-project} +%if %{with system_llvm} +%{__rm} -r src/llvm-project +mkdir -p src/llvm-project/libunwind +%endif # extract bundled licenses for packaging -sed -e '/*\//q' vendor/backtrace-sys/src/libbacktrace/backtrace.h \ - >vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace +sed -e '/*\//q' library/backtrace/crates/backtrace-sys/src/libbacktrace/backtrace.h \ + >library/backtrace/crates/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace # rust-gdb has hardcoded SYSROOT/lib -- let's make it noarch sed -i -e 's#DIRECTORY=".*"#DIRECTORY="%{_datadir}/%{name}/etc"#' \ @@ -330,7 +372,6 @@ rm -rf $RPM_BUILD_ROOT export DESTDIR=$RPM_BUILD_ROOT %x_py install -%x_py install src # Make sure the shared libraries are in the proper libdir %if "%{_libdir}" != "%{common_libdir}" @@ -383,8 +424,8 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc COPYRIGHT LICENSE-APACHE LICENSE-MIT README.md vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace -%attr(755,root,root) %{_bindir}/rls +%doc COPYRIGHT LICENSE-APACHE LICENSE-MIT README.md library/backtrace/crates/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace +%attr(755,root,root) %{_bindir}/miri %attr(755,root,root) %{_bindir}/rustc %attr(755,root,root) %{_bindir}/rustdoc %attr(755,root,root) %{_bindir}/rustfmt @@ -400,20 +441,16 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{rustlibdir}/%{rust_triple}/lib/*.so %{rustlibdir}/%{rust_triple}/lib/*.rlib -# for cross-compiler (e.g. x86_64-hosted x32 rust) -%if "%{rust_host_triple}" != "%{rust_triple}" -%dir %{rustlibdir}/%{rust_host_triple} -%{rustlibdir}/%{rust_host_triple}/analysis -%dir %{rustlibdir}/%{rust_host_triple}/lib -%attr(755,root,root) %{rustlibdir}/%{rust_host_triple}/lib/*.so -%{rustlibdir}/%{rust_host_triple}/lib/*.rlib -%endif +%files analyzer +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/rust-analyzer %files debugger-common %defattr(644,root,root,755) %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/etc -%{_datadir}/%{name}/etc/debugger_*.py* +%{_datadir}/%{name}/etc/lldb_commands +%{_datadir}/%{name}/etc/rust_types.py %files lldb %defattr(644,root,root,755) @@ -426,6 +463,10 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/rust-gdbgui %{_datadir}/%{name}/etc/gdb_*.py* +%files rls +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/rls + %files doc %defattr(644,root,root,755) %dir %{_docdir}/%{name} @@ -436,7 +477,9 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/cargo %attr(755,root,root) %{_bindir}/cargo-clippy %attr(755,root,root) %{_bindir}/cargo-fmt +%attr(755,root,root) %{_bindir}/cargo-miri %attr(755,root,root) %{_bindir}/clippy-driver +%attr(755,root,root) %{_libexecdir}/cargo-credential-1password %{_mandir}/man1/cargo*.1* %dir %{_datadir}/cargo %dir %{_datadir}/cargo/registry