rust/rust.spec

600 lines
20 KiB
RPMSpec
Raw Normal View History

2023-07-28 18:38:51 +08:00
%global bootstrap_rust 1.70.0
%global bootstrap_cargo 1.70.0
%global bootstrap_channel 1.70.0
%global bootstrap_date 2023-06-01
2020-07-15 10:27:00 +08:00
%bcond_with llvm_static
%bcond_with bundled_llvm
2020-07-15 10:27:00 +08:00
%bcond_without bundled_libgit2
2021-05-07 16:50:46 +08:00
%bcond_with disabled_libssh2
%bcond_without curl_http2
%bcond_without lldb
2023-04-24 23:20:27 +08:00
%bcond_without analyzer
2020-07-15 10:27:00 +08:00
Name: rust
2023-07-28 18:38:51 +08:00
Version: 1.71.0
2023-07-30 23:07:21 +08:00
Release: 3
2020-07-15 10:27:00 +08:00
Summary: The Rust Programming Language
License: (ASL 2.0 or MIT) and (BSD and MIT)
URL: https://www.rust-lang.org
2023-04-24 19:10:15 +08:00
Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz
2023-07-30 20:42:55 +08:00
# SOURCE1-3: use local mirror for speed up
Source1: cargo-config
Source2: cargo-config.sh
Source3: cargo-config.csh
2021-05-07 16:50:46 +08:00
2023-07-28 18:38:51 +08:00
Patch0000: rustc-1.71.0-disable-libssh2.patch
Patch0001: rustc-1.71.0-disable-http2.patch
2021-12-18 10:58:18 +08:00
Patch0002: clippy-driver-usage-should-user-friendly.patch
Patch0003: cargo-help-clippy-should-have-description-to-user.patch
Patch0004: fix-a-println-wrong-format.patch
2023-07-28 18:38:51 +08:00
# Restore LD_LIBRARY_PATH when running lint-docs
# https://github.com/rust-lang/rust/pull/110521#issuecomment-1629705099
Patch0005: 0001-Revert-Fix-x-test-lint-docs-when-download-rustc-is-e.patch
# Restore the bash completion path
# https://github.com/rust-lang/rust/pull/110906#issuecomment-1629832675
Patch0006: 0001-Revert-fix-bug-etc-bash_complettion-src-etc-.-to-avo.patch
2023-02-28 19:47:39 +08:00
# By default, rust tries to use "rust-lld" as a linker for WebAssembly.
2023-07-28 18:38:51 +08:00
Patch0007: 0001-Use-lld-provided-by-system-for-wasm.patch
2023-02-28 19:47:39 +08:00
# Set a substitute-path in rust-gdb for standard library sources.
2023-07-28 18:38:51 +08:00
Patch0008: rustc-1.70.0-rust-gdb-substitute-path.patch
2023-02-28 19:47:39 +08:00
2020-06-08 10:22:24 +08:00
%{lua: function rust_triple(arch)
local abi = "gnu"
2020-07-15 10:27:00 +08:00
if arch == "armv7hl" then
arch = "armv7"
abi = "gnueabihf"
elseif arch == "ppc64" then
arch = "powerpc64"
elseif arch == "ppc64le" then
arch = "powerpc64le"
2021-05-07 16:50:46 +08:00
elseif arch == "riscv64" then
arch = "riscv64gc"
2020-07-15 10:27:00 +08:00
end
2020-06-08 10:22:24 +08:00
return arch.."-unknown-linux-"..abi
end}
%{lua: function rust_musl_triple(arch)
local abi = "musl"
2023-04-24 23:20:27 +08:00
if arch == "riscv64" then
arch = "riscv64gc"
end
return arch.."-unknown-linux-"..abi
end}
%{lua: function rust_musl_root(arch)
2023-04-24 23:20:27 +08:00
if arch == "riscv64" then
arch = "riscv64gc"
end
return "--musl-root-"..arch
end}
2020-06-08 10:22:24 +08:00
%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))}
%global rust_musl_triple %{lua: print(rust_musl_triple(rpm.expand("%{_target_cpu}")))}
%global rust_musl_root %{lua: print(rust_musl_root(rpm.expand("%{_target_cpu}")))}
2020-07-15 10:27:00 +08:00
%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 curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma)
2020-07-15 10:27:00 +08:00
BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0
%global python python3
BuildRequires: %{python}
%if %with bundled_llvm
2023-06-21 09:57:29 +08:00
BuildRequires: cmake3 >= 3.13.4
2023-07-28 18:38:51 +08:00
Provides: bundled(llvm) = 16.0.5
2020-07-15 10:27:00 +08:00
%else
BuildRequires: cmake >= 2.8.11
%if %defined llvm
%global llvm_root %{_libdir}/%{llvm}
%else
2023-04-24 23:20:27 +08:00
# default llvm is decent enough on riscv64
%global llvm llvm
2020-07-15 10:27:00 +08:00
%global llvm_root %{_prefix}
%endif
2023-04-24 19:10:15 +08:00
# rust currently requires llvm 14.0+
BuildRequires: %{llvm} >= 14.0.0
BuildRequires: %{llvm}-devel >= 14.0.0
2020-07-15 10:27:00 +08:00
%if %with llvm_static
BuildRequires: %{llvm}-static libffi-devel
%endif
%endif
2021-08-04 21:25:35 +08:00
BuildRequires: procps-ng
BuildRequires: ninja-build
2020-07-15 10:27:00 +08:00
Provides: rustc = %{version}-%{release}
Provides: rustc%{?_isa} = %{version}-%{release}
Requires: %{name}-std-static%{?_isa} = %{version}-%{release}
Requires: /usr/bin/cc
2019-12-14 14:47:22 +08:00
%global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
%global __provides_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
%global _find_debuginfo_opts --keep-section .rustc
2020-06-08 10:22:24 +08:00
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
2020-07-15 10:27:00 +08:00
%if %{without bundled_llvm}
%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1}
%global llvm_has_filecheck 1
%endif
%endif
%global musl_root %{_prefix}/musl
2023-04-24 19:10:15 +08:00
# The 'analysis' component is removed since Rust 1.69.0
# ref: https://github.com/rust-lang/rust/pull/101841
Obsoletes: %{name}-analysis < 1.69.0~
2019-12-14 14:47:22 +08:00
%description
2020-07-15 10:27:00 +08:00
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.
2019-12-14 14:47:22 +08:00
%package debugger-common
2020-06-08 10:22:24 +08:00
Summary: Common debugger pretty printers for Rust
BuildArch: noarch
2019-12-14 14:47:22 +08:00
%description debugger-common
2020-07-15 10:27:00 +08:00
This package includes the common functionality for %{name}-gdb and %{name}-lldb.
2019-12-14 14:47:22 +08:00
%package gdb
2020-06-08 10:22:24 +08:00
Summary: GDB pretty printers for Rust
BuildArch: noarch
2020-07-15 10:27:00 +08:00
Requires: gdb %{name}-debugger-common = %{version}-%{release}
2019-12-14 14:47:22 +08:00
%description gdb
This package includes the rust-gdb script, which allows easier debugging of Rust
programs.
2020-06-08 10:22:24 +08:00
%package lldb
Summary: LLDB pretty printers for Rust
2020-07-15 10:27:00 +08:00
BuildArch: noarch
2021-05-07 16:50:46 +08:00
Requires: lldb %{python}-lldb
2020-07-15 10:27:00 +08:00
Requires: %{name}-debugger-common = %{version}-%{release}
2021-05-07 16:50:46 +08:00
2020-06-08 10:22:24 +08:00
%description lldb
This package includes the rust-lldb script, which allows easier debugging of Rust
programs.
2019-12-14 14:47:22 +08:00
2020-06-08 10:22:24 +08:00
%package -n cargo
Summary: Rust's package manager and build tool
2021-05-07 16:50:46 +08:00
%if %with bundled_libgit2
Provides: bundled(libgit2) = 1.1.0
%endif
2020-06-08 10:22:24 +08:00
BuildRequires: git
Requires: rust
2020-07-15 10:27:00 +08:00
Obsoletes: cargo-vendor <= 0.1.23
Provides: cargo-vendor = %{version}-%{release}
2019-12-14 14:47:22 +08:00
%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.
2020-07-15 10:27:00 +08:00
%package -n rustfmt
2020-06-08 10:22:24 +08:00
Summary: Tool to find and fix Rust formatting issues
Requires: cargo
2020-07-15 10:27:00 +08:00
Obsoletes: rustfmt-preview < 1.0.0
Provides: rustfmt-preview = %{version}-%{release}
Conflicts: rustfmt-preview < 1.0.0
2020-07-15 10:27:00 +08:00
%description -n rustfmt
2019-12-14 14:47:22 +08:00
A tool for formatting Rust code according to style guidelines.
2023-04-24 23:20:27 +08:00
%if %{with analyzer}
2023-02-28 19:47:39 +08:00
%package analyzer
Summary:Rust implementation of the Language Server Protocol
Requires: %{name}-src
# RLS is no longer available as of Rust 1.65, but we're including the stub
# binary that implements LSP just enough to recommend rust-analyzer.
Obsoletes: rls < 1.65.0~
2020-07-15 10:27:00 +08:00
Obsoletes: rls-preview < 1.31.6
2023-02-28 19:47:39 +08:00
%description analyzer
rust-analyzer is an implementation of Language Server Protocol for the Rust
programming language. It provides features like completion and goto definition
for many code editors, including VS Code, Emacs and Vim.
2023-04-24 23:20:27 +08:00
%endif
2019-12-14 14:47:22 +08:00
2020-07-15 10:27:00 +08:00
%package -n clippy
2020-06-08 10:22:24 +08:00
Summary: Lints to catch common mistakes and improve your Rust code
2020-07-15 10:27:00 +08:00
Requires: cargo %{name}%{?_isa} = %{version}-%{release}
Obsoletes: clippy-preview <= 0.0.212
Provides: clippy-preview = %{version}-%{release}
Conflicts: clippy-preview <= 0.0.212
2020-07-15 10:27:00 +08:00
%description -n clippy
2019-12-14 14:47:22 +08:00
A collection of lints to catch common mistakes and improve your Rust code.
%package src
2020-06-08 10:22:24 +08:00
Summary: Sources for the Rust standard library
BuildArch: noarch
2019-12-14 14:47:22 +08:00
%description src
2020-06-08 10:22:24 +08:00
This package includes source files for the Rust standard library. It may be
2019-12-14 14:47:22 +08:00
useful as a reference for code completion tools in various editors.
%package help
Summary: Help documents for rust
Provides: %{name}-doc = %{version}-%{release} %{name}-cargo-doc = %{version}-%{release}
Obsoletes: %{name}-doc < %{version}-%{release} %{name}-cargo-doc < %{version}-%{release}
%description help
Man pages and other related help documents for rust.
2019-12-14 14:47:22 +08:00
%prep
2020-07-15 10:27:00 +08:00
%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
2023-02-28 19:47:39 +08:00
%setup -q -n rustc-%{version}-src
2021-05-07 16:50:46 +08:00
%if %with disabled_libssh2
2021-12-18 10:58:18 +08:00
%patch0000 -p1
2021-05-07 16:50:46 +08:00
%endif
%if %without curl_http2
2021-12-18 10:58:18 +08:00
%patch0001 -p1
2023-06-21 09:57:29 +08:00
rm -rf vendor/libnghttp2-sys*/
2021-05-07 16:50:46 +08:00
%endif
%if "%{python}" != "python3"
sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure
2020-07-15 10:27:00 +08:00
%endif
2021-12-18 10:58:18 +08:00
%patch0002 -p1
%patch0003 -p1
%patch0004 -p1
2023-07-28 18:38:51 +08:00
%patch0005 -p1
2023-02-28 19:47:39 +08:00
%patch0006 -p1
%patch0007 -p1
2023-04-24 23:20:27 +08:00
%patch0008 -p1
2023-06-21 09:57:29 +08:00
rm -rf vendor/curl-sys*/curl/
2020-07-15 10:27:00 +08:00
rm -rf vendor/jemalloc-sys/jemalloc/
2023-06-21 09:57:29 +08:00
rm -rf vendor/libffi-sys*/libffi/
rm -rf vendor/libssh2-sys*/libssh2/
rm -rf vendor/libz-sys*/src/zlib{,-ng}/
rm -rf vendor/lzma-sys*/xz-*/
rm -rf vendor/openssl-src*/openssl/
2021-05-07 16:50:46 +08:00
%if %without bundled_libgit2
2023-06-21 09:57:29 +08:00
rm -rf vendor/libgit2-sys*/libgit2/
2021-05-07 16:50:46 +08:00
%endif
%if %with disabled_libssh2
2023-06-21 09:57:29 +08:00
rm -rf vendor/libssh2-sys*/
2021-05-07 16:50:46 +08:00
%endif
2020-07-15 10:27:00 +08:00
sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs
%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 '{}' '+'
2021-05-07 16:50:46 +08:00
%global rust_env RUSTFLAGS="%{rustflags}"
%if 0%{?cmake_path:1}
%global rust_env %{rust_env} PATH="%{cmake_path}:$PATH"
%endif
%if %without bundled_libgit2
%global rust_env %{rust_env} LIBGIT2_SYS_USE_PKG_CONFIG=1
%endif
%if %without disabled_libssh2
%global rust_env %{rust_env} LIBSSH2_SYS_USE_PKG_CONFIG=1
%endif
2019-12-14 14:47:22 +08:00
%build
2021-05-07 16:50:46 +08:00
export %{rust_env}
2020-06-08 10:22:24 +08:00
%global common_libdir %{_prefix}/lib
%global rustlibdir %{common_libdir}/rustlib
2020-07-15 10:27:00 +08:00
%ifarch %{arm} %{ix86} s390x
%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2
%else
2021-10-09 11:42:27 +08:00
%define enable_debuginfo --debuginfo-level=1
2020-07-15 10:27:00 +08:00
%endif
%ifnarch %{power64}
%define codegen_units_std --set rust.codegen-units-std=1
%endif
2021-05-07 16:50:46 +08:00
ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN)
max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 ))
if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then
ncpus="$max_cpus"
fi
2020-06-08 10:22:24 +08:00
%configure --disable-option-checking \
2020-07-15 10:27:00 +08:00
--libdir=%{common_libdir} \
%{rust_musl_root}=%{musl_root} \
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \
2020-07-15 10:27:00 +08:00
--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 \
2023-04-24 23:20:27 +08:00
--tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \
2020-07-15 10:27:00 +08:00
--enable-vendor \
--enable-verbose-tests \
%{?codegen_units_std} \
2023-07-30 23:07:21 +08:00
--release-channel=stable
2021-05-07 16:50:46 +08:00
%{python} ./x.py build -j "$ncpus" --stage 2
%{python} ./x.py doc --stage 2
2019-12-14 14:47:22 +08:00
%install
2021-05-07 16:50:46 +08:00
export %{rust_env}
2020-07-15 10:27:00 +08:00
DESTDIR=%{buildroot} %{python} ./x.py install
2023-07-28 18:38:51 +08:00
# Some of the components duplicate-install binaries, leaving backups we don't want
rm -f %{buildroot}%{_bindir}/*.old
2020-07-15 10:27:00 +08:00
%if "%{_libdir}" != "%{common_libdir}"
2020-06-08 10:22:24 +08:00
mkdir -p %{buildroot}%{_libdir}
find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \
-exec mv -v -t %{buildroot}%{_libdir} '{}' '+'
2020-07-15 10:27:00 +08:00
%endif
2020-06-08 10:22:24 +08:00
find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \
-exec chmod -v +x '{}' '+'
2019-12-14 14:47:22 +08:00
(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" &&
find ../../../../%{_lib} -maxdepth 1 -name '*.so' |
while read lib; do
2020-07-15 10:27:00 +08:00
if [ -f "${lib##*/}" ]; then
# make sure they're actually identical!
cmp "$lib" "${lib##*/}"
ln -v -f -s -t . "$lib"
fi
2019-12-14 14:47:22 +08:00
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 '{}' '+'
2020-07-15 10:27:00 +08:00
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
2019-12-14 14:47:22 +08:00
ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
2023-02-28 19:47:39 +08:00
2023-07-30 20:42:55 +08:00
# install default config for cargo mirror
install -m 0644 -D -p %{SOURCE1} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml
install -m 0644 -D -p %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh
install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh
2023-04-24 23:20:27 +08:00
%if %{with analyzer}
2023-02-28 19:47:39 +08:00
# The rls stub doesn't have an install target, but we can just copy it.
%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls
2023-04-24 23:20:27 +08:00
%endif
2023-02-28 19:47:39 +08:00
2021-05-07 16:50:46 +08:00
%if %without lldb
rm -f %{buildroot}%{_bindir}/rust-lldb
rm -f %{buildroot}%{rustlibdir}/etc/lldb_*
%endif
rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll*
2019-12-14 14:47:22 +08:00
%check
2021-05-07 16:50:46 +08:00
export %{rust_env}
%{python} ./x.py test --no-fail-fast --stage 2 || :
%{python} ./x.py test --no-fail-fast --stage 2 cargo || :
%{python} ./x.py test --no-fail-fast --stage 2 clippy || :
2023-04-24 23:20:27 +08:00
%if %{with analyzer}
2023-02-28 19:47:39 +08:00
%{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || :
2023-04-24 23:20:27 +08:00
%endif
2021-05-07 16:50:46 +08:00
%{python} ./x.py test --no-fail-fast --stage 2 rustfmt || :
2020-07-15 10:27:00 +08:00
%ldconfig_scriptlets
2019-12-14 14:47:22 +08:00
%files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%license %{_docdir}/%{name}/html/*.txt
2020-07-15 10:27:00 +08:00
%doc README.md
%{_bindir}/rustc
%{_bindir}/rustdoc
2019-12-14 14:47:22 +08:00
%{_libdir}/*.so
2020-07-15 10:27:00 +08:00
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
2020-06-08 10:22:24 +08:00
%dir %{rustlibdir}/%{rust_triple}/lib
2023-06-21 09:57:29 +08:00
%if %{with analyzer}
2023-02-28 19:47:39 +08:00
%{_libexecdir}/rust-analyzer-proc-macro-srv
2023-06-21 09:57:29 +08:00
%endif
2019-12-14 14:47:22 +08:00
%{rustlibdir}/%{rust_triple}/lib/*.so
%dir %{rustlibdir}/%{rust_musl_triple}
%dir %{rustlibdir}/%{rust_musl_triple}/lib
2019-12-14 14:47:22 +08:00
2020-07-15 10:27:00 +08:00
%files std-static
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
2019-12-14 14:47:22 +08:00
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.rlib
%dir %{rustlibdir}/%{rust_musl_triple}
%dir %{rustlibdir}/%{rust_musl_triple}/lib
%{rustlibdir}/%{rust_musl_triple}/lib/*.rlib
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/*.o
2021-12-18 10:58:18 +08:00
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libunwind.a
2022-02-27 23:34:12 +08:00
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libc.a
2019-12-14 14:47:22 +08:00
%files debugger-common
2020-07-15 10:27:00 +08:00
%dir %{rustlibdir}
2019-12-14 14:47:22 +08:00
%dir %{rustlibdir}/etc
2021-05-07 16:50:46 +08:00
%{rustlibdir}/etc/rust_*.py*
2019-12-14 14:47:22 +08:00
%files gdb
%{_bindir}/rust-gdb
2021-05-07 16:50:46 +08:00
%{rustlibdir}/etc/gdb_*
2020-07-15 10:27:00 +08:00
%exclude %{_bindir}/rust-gdbgui
2021-05-07 16:50:46 +08:00
%if %with lldb
2019-12-14 14:47:22 +08:00
2020-06-08 10:22:24 +08:00
%files lldb
%{_bindir}/rust-lldb
2021-05-07 16:50:46 +08:00
%{rustlibdir}/etc/lldb_*
%endif
2020-06-08 10:22:24 +08:00
2019-12-14 14:47:22 +08:00
%files -n cargo
2020-07-15 10:27:00 +08:00
%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY
%doc src/tools/cargo/README.md
2023-07-30 20:42:55 +08:00
%config(noreplace) %{_sysconfdir}/skel/.cargo/config.toml
%{_sysconfdir}/profile.d/cargo-config.*
2019-12-14 14:47:22 +08:00
%{_bindir}/cargo
2021-05-07 16:50:46 +08:00
%{_libexecdir}/cargo*
2019-12-14 14:47:22 +08:00
%{_sysconfdir}/bash_completion.d/cargo
%{_datadir}/zsh/site-functions/_cargo
2020-07-15 10:27:00 +08:00
%dir %{_datadir}/cargo
%dir %{_datadir}/cargo/registry
%files -n rustfmt
%{_bindir}/rustfmt
%{_bindir}/cargo-fmt
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
2019-12-14 14:47:22 +08:00
2023-04-24 23:20:27 +08:00
%if %{with analyzer}
2023-02-28 19:47:39 +08:00
%files analyzer
2019-12-14 14:47:22 +08:00
%{_bindir}/rls
2023-02-28 19:47:39 +08:00
%{_bindir}/rust-analyzer
%doc src/tools/rust-analyzer/README.md
%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT}
2023-04-24 23:20:27 +08:00
%endif
2019-12-14 14:47:22 +08:00
2020-07-15 10:27:00 +08:00
%files -n clippy
%{_bindir}/cargo-clippy
%{_bindir}/clippy-driver
%doc src/tools/clippy/{README.md,CHANGELOG.md}
%license src/tools/clippy/LICENSE-{APACHE,MIT}
2019-12-14 14:47:22 +08:00
%files src
2020-07-15 10:27:00 +08:00
%dir %{rustlibdir}
2019-12-14 14:47:22 +08:00
%{rustlibdir}/src
%files help
%dir %{_docdir}/%{name}
%docdir %{_docdir}/%{name}
2023-02-28 19:47:39 +08:00
%{_docdir}/%{name}/html
%dir %{_docdir}/cargo
%docdir %{_docdir}/cargo
%{_docdir}/cargo/html
%{_mandir}/man1/rustc.1*
%{_mandir}/man1/rustdoc.1*
%{_mandir}/man1/cargo*.1*
2019-12-14 14:47:22 +08:00
%changelog
2023-07-30 23:07:21 +08:00
* Sun Jul 30 2023 Funda Wang <fundawang@yeah.net> - 1.71.0-3
- Fix release channel name
2023-07-30 20:42:55 +08:00
* Sun Jul 30 2023 Funda Wang <fundawang@yeah.net> - 1.71.0-2
- Use local mirror for speed up
2023-07-28 18:38:51 +08:00
* Fri Jul 28 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.71.0-1
- Update to 1.71.0
* Tue Jul 18 2023 xu_ping <707078654@qq.com> - 1.70.0-2
- Use llvm package instead of llvm15
2023-06-21 09:57:29 +08:00
* Mon Jun 05 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.70.0-1
- Update to 1.70.0
- Fix rotten patch
2023-04-24 23:20:27 +08:00
* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-2
- Add riscv64 specific changes
2023-04-24 19:10:15 +08:00
* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-1
- Update to 1.69.0
- Obsolete the removed rust-analysis subpackage
- Switch to xz tarball to save space
2023-03-22 14:39:22 +08:00
* Wed Mar 22 2023 wangkai <wangkai385@h-partners.com> - 1.68.0-1
- Update to 1.68.0
2023-02-28 19:47:39 +08:00
* Tue Feb 28 2023 wangkai <wangkai385@h-partners.com> - 1.67.1-1
- Update to 1.67.1
2022-04-20 00:30:19 +08:00
* Tue Apr 19 2022 Liu Zixian <liuzixian4@huawei.com> - 1.60.0-1
- Update to 1.60.0
2022-03-15 07:53:20 +08:00
* Mon Feb 28 2022 Liu Zixian <liuzixian4@huawei.com> - 1.59.0-1
- Update to 1.59.0
2022-02-27 23:34:12 +08:00
* Sun Feb 27 2022 Liu Zixian <liuzixian4@huawei.com> - 1.58.1-1
- Update to 1.58.1
2022-02-09 14:36:00 +08:00
* Wed Feb 09 2022 Li Zheng <lizheng135@huawei.com> - 1.57.0-2
- Fix build error
2022-01-22 23:46:09 +08:00
* Sat Jan 22 2022 Liu Zixian <liuzixian4@huawei.com> - 1.57.0-1
- Update to 1.57.0
2021-12-18 10:58:18 +08:00
* Sat Dec 18 2021 sdlzx <hdu_sdlzx@163.com> - 1.56.0-1
- Update to 1.56.0
2021-12-16 00:16:44 +08:00
* Wed Dec 15 2021 sdlzx <hdu_sdlzx@163.com> - 1.55.0-1
- Update to 1.55.0
2021-10-09 23:40:21 +08:00
* Thu Oct 14 2021 sdlzx <hdu_sdlzx@163.com> - 1.54.0-1
- Update to 1.54.0
2021-10-09 11:42:27 +08:00
* Fri Oct 08 2021 donglongtao <donglongtao@huawei.com> - 1.53.0-2
- Update debuginfo-level config
2021-10-02 11:26:35 +08:00
* Sat Oct 02 2021 sdlzx <hdu_sdlzx@163.com> - 1.53.0-1
- Update to 1.53.0
2021-09-29 21:53:55 +08:00
* Tue Sep 28 2021 sdlzx <hdu_sdlzx@163.com> - 1.52.1-1
- Update to 1.52.1
2021-10-09 11:42:27 +08:00
* Fri Sep 17 2021 donglongtao <donglongtao@huawei.com> - 1.51.0-10
2021-09-17 15:28:19 +08:00
- Fix rustdoc install very slow
* Tue Aug 24 2021 caodongxia <caodongxia@huawei.com> - 1.51.0-9
- Fix rustdoc error info
2021-08-18 10:09:00 +08:00
* Wed Aug 18 2021 yaoxin <yaoxin30@huawei.com> - 1.51.0-8
- Fix CVE-2021-29922
2021-08-04 21:25:35 +08:00
* Wed Aug 04 2021 chenyanpanHW <chenyanpan@huawei.com> - 1.51.0-7
- DESC: delete BuildRequires gdb
2022-02-09 14:36:00 +08:00
* Thu Jul 08 2021 Jiajie Li <lijiajie11@huawei.com> - 1.51.0-6
- Add build require of ninja and llvm
2022-02-09 14:36:00 +08:00
* Thu Jul 01 2021 Jiajie Li <lijiajie11@huawei.com> - 1.51.0-5
- Add support for musl target
2022-02-09 14:36:00 +08:00
* Thu Jun 24 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-4
- fix a println wrong format
2022-02-09 14:36:00 +08:00
* Thu Jun 24 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-3
- cargo help clippy should have description to user
2022-02-09 14:36:00 +08:00
* Wed Jun 23 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.51.0-2
- clippy-driver usage should user friendly
2021-05-07 16:50:46 +08:00
* Fri May 07 2021 wangyue <wangyue92@huawei.com> - 1.51.0-1
- Update to 1.51.0
* Mon Nov 30 2020 Jeffery.Gao <gaojianxing@huawei.com> - 1.45.2-2
- fix upgrade error
2020-08-17 20:06:36 +08:00
* Mon Sep 21 2020 Jeffery.Gao <gaojianxing@huawei.com> - 1.45.2-1
- Update to 1.45.2
2020-07-15 10:27:00 +08:00
2022-02-09 14:36:00 +08:00
* Fri Apr 17 2020 zhujunhao <zhujunhao8@huawei.com> - 1.29.1-4
- add llvm in rust
2020-07-15 10:27:00 +08:00
2019-12-14 14:47:22 +08:00
* Thu Dec 5 2019 wutao <wutao61@huawei.com> - 1.29.1-3
- Package init