- Add symlink to rustup-init. rustup and rustup-init are the same binary, but that binary behaves diferently based on the name it's executed by. rustup-init takes care of the initial setup, which includes setting PATH, modifying .bashrc etc. It's supposed to be called only once. rustup doesn't perform those steps and it only manages toolchains. It can be used the entire time. - Install bash and zsh completion. OBS-URL: https://build.opensuse.org/request/show/924402 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rustup?expand=0&rev=5
105 lines
4.2 KiB
RPMSpec
105 lines
4.2 KiB
RPMSpec
#
|
|
# spec file for package rustup
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
# Copyright (c) 2021 William Brown <william@blackhats.net.au>
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
%define rust_version 1.56
|
|
%define obsolete_rust_versioned() \
|
|
Obsoletes: %{1}1.55%{?2:-%{2}} \
|
|
Provides: %{1}1.55%{?2:-%{2}} \
|
|
Obsoletes: %{1}1.54%{?2:-%{2}} \
|
|
Provides: %{1}1.54%{?2:-%{2}} \
|
|
Obsoletes: %{1}1.53%{?2:-%{2}} \
|
|
Provides: %{1}1.53%{?2:-%{2}} \
|
|
Obsoletes: %{1}1.52%{?2:-%{2}} \
|
|
Obsoletes: %{1}1.51%{?2:-%{2}}
|
|
|
|
Name: rustup
|
|
Version: 1.24.3~git0.ce5817a9
|
|
Release: 0
|
|
Summary: A tool for managing user Rust toolchains
|
|
License: ( 0BSD OR MIT OR Apache-2.0 ) AND ( Apache-2.0 OR BSL-1.0 ) AND ( Apache-2.0 OR ISC OR MIT ) AND ( Apache-2.0 OR MIT ) AND ( MIT OR Apache-2.0 OR Zlib ) AND ( MIT OR Zlib OR Apache-2.0 ) AND ( Unlicense OR MIT ) AND ( Zlib OR Apache-2.0 OR MIT ) AND Apache-2.0 AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT
|
|
Group: Development/Languages/Rust
|
|
Url: https://github.com/rust-lang/rustup
|
|
Source0: %{name}-%{version}.tar.xz
|
|
Source1: vendor.tar.xz
|
|
Source2: cargo_config
|
|
Source3: %{name}-rpmlintrc
|
|
BuildRequires: cargo-packaging
|
|
BuildRequires: pkgconfig(openssl)
|
|
ExclusiveArch: %{rust_tier1_arches}
|
|
|
|
%obsolete_rust_versioned rls
|
|
%obsolete_rust_versioned rust doc
|
|
%obsolete_rust_versioned rust src
|
|
%obsolete_rust_versioned rust analysis
|
|
%obsolete_rust_versioned cargo doc
|
|
|
|
Obsoletes: cargo-doc < %{rust_version}
|
|
Obsoletes: rustfmt < %{rust_version}
|
|
Obsoletes: cargo-fmt < %{rust_version}
|
|
Obsoletes: clippy < %{rust_version}
|
|
Obsoletes: rust-analysis < %{rust_version}
|
|
Obsoletes: rls < %{rust_version}
|
|
Obsoletes: rust-src < %{rust_version}
|
|
Obsoletes: rust-doc < %{rust_version}
|
|
|
|
%description
|
|
A tool to manager user Rust toolchains. This is generally used by developers
|
|
managing multiple parallel toolchains in their environment.
|
|
|
|
%prep
|
|
%setup -q
|
|
%setup -qa1
|
|
cp %{SOURCE2} .cargo/config
|
|
# Remove exec bits to prevent an issue in fedora shebang checking. Uncomment only if required.
|
|
find vendor -type f -name \*.rs -exec chmod -x '{}' \;
|
|
|
|
%build
|
|
%{cargo_build} --features=no-self-update
|
|
|
|
%install
|
|
# manual process
|
|
install -D -d -m 0755 %{buildroot}%{_bindir}
|
|
install -m 0755 %{_builddir}/%{name}-%{version}/target/release/rustup-init %{buildroot}%{_bindir}/rustup
|
|
# rustup-init and rustup are the same binary, but that binary behaves
|
|
# differently based on the name it's executed by.
|
|
# rustup-init takes care of the initial setup, which includes setting PATH,
|
|
# modifying .bashrc etc. It's supposed to be called only once.
|
|
# rustup doesn't perform those steps and it only manages toolchains. It
|
|
# can be used the entire time.
|
|
ln -sf rustup %{buildroot}%{_bindir}/rustup-init
|
|
# shell completions
|
|
install -D -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions
|
|
ls %{buildroot}%{_bindir}
|
|
ls %{buildroot}%{_bindir}/rustup
|
|
%{buildroot}%{_bindir}/rustup completions bash > %{buildroot}%{_datadir}/bash-completion/completions/rustup
|
|
%{buildroot}%{_bindir}/rustup completions bash cargo > %{buildroot}%{_datadir}/bash-completion/completions/cargo
|
|
install -D -d -m 0755 %{buildroot}%{_datadir}/zsh/site-functions
|
|
%{buildroot}%{_bindir}/rustup completions zsh > %{buildroot}%{_datadir}/zsh/site-functions/_rustup
|
|
%{buildroot}%{_bindir}/rustup completions zsh cargo > %{buildroot}%{_datadir}/zsh/site-functions/_cargo
|
|
|
|
%files
|
|
%{_bindir}/rustup
|
|
%{_bindir}/rustup-init
|
|
%{_datadir}/bash-completion/completions/cargo
|
|
%{_datadir}/bash-completion/completions/rustup
|
|
%{_datadir}/zsh/site-functions/_cargo
|
|
%{_datadir}/zsh/site-functions/_rustup
|
|
|
|
%changelog
|
|
|