rust/rust.spec

663 lines
22 KiB
RPMSpec
Raw Normal View History

%global bootstrap_rust 1.76.0
%global bootstrap_cargo 1.76.0
%global bootstrap_channel 1.76.0
%global bootstrap_date 2024-02-08
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 lldb
2023-04-24 23:20:27 +08:00
%bcond_without analyzer
2020-07-15 10:27:00 +08:00
Name: rust
Version: 1.77.0
2024-06-05 08:02:10 +00:00
Release: 4
2020-07-15 10:27:00 +08:00
Summary: The Rust Programming Language
2023-10-09 11:34:09 +08:00
License: Apache-2.0 OR MIT
2020-07-15 10:27:00 +08:00
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
Source1: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz.asc
Source2: https://static.rust-lang.org/rust-key.gpg.ascii
# SOURCE3-5: use local mirror for speed up
Source3: cargo-config
Source4: cargo-config.sh
Source5: cargo-config.csh
2021-05-07 16:50:46 +08:00
Patch0000: rustc-1.77.0-disable-libssh2.patch
2023-11-24 11:37:22 +08:00
# By default, rust tries to use "rust-lld" as a linker for some targets.
2024-02-20 19:01:25 +08:00
Patch0001: 0001-Use-lld-provided-by-system.patch
2023-02-28 19:47:39 +08:00
# Set a substitute-path in rust-gdb for standard library sources.
2024-02-20 19:01:25 +08:00
Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch
2023-02-28 19:47:39 +08:00
%ifarch riscv64
Patch1000: embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch
%endif
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"
2024-06-05 08:02:10 +00:00
elseif arch == "loongarch64" then
arch = "loongarch64"
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)
2024-02-20 19:01:25 +08:00
BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 gnupg2 wget
2020-07-15 10:27:00 +08:00
%global python python3
BuildRequires: %{python}
%if %with bundled_llvm
2023-06-21 09:57:29 +08:00
BuildRequires: cmake3 >= 3.13.4
2023-11-24 11:37:22 +08:00
Provides: bundled(llvm) = 17.0.4
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+
2023-10-09 11:34:09 +08:00
BuildRequires: %{llvm} >= 15.0.0
BuildRequires: %{llvm}-devel >= 15.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
BuildRequires: compiler-rt
BuildRequires: clang
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
2023-10-09 11:34:09 +08:00
# /usr/bin/rustfmt is dynamically linked against internal rustc libs
Requires: %{name}%{?_isa} = %{version}-%{release}
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
2024-02-20 19:01:25 +08:00
# download source0 and gpg check
wget -qO %{SOURCE0} https://user-repo.openeuler.openatom.cn/lfs-tar/rust/rustc-%{version}-src.tar.xz
gpg --import %{SOURCE2}
gpg --verify %{SOURCE1} %{SOURCE0}
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
2023-08-08 11:12:35 +08:00
%patch -P 0000 -p1
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
2023-10-09 11:34:09 +08:00
%patch -P 0001 -p1
2023-08-08 11:12:35 +08:00
%patch -P 0002 -p1
%ifarch riscv64
%patch -P 1000 -p1
%endif
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
2024-01-10 16:24:23 +08:00
# This only affects the transient rust-installer, but let it use our dynamic xz-libs
sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/src/core/build_steps/tool.rs
2020-07-15 10:27:00 +08:00
%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
# Find the compiler-rt library for the Rust profiler_builtins crate.
# But there are two versions in openEuler. Why?
# We don't have macros.clang so we need clang version here
# This is for avoiding rpm syntax error
%global clang_maj_ver 17
%if %{?clang_maj_ver} >= 17
# This is the new one, used on openEuler 24.03 LTS or later
2024-04-22 14:06:04 +08:00
%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_maj_ver}/lib/%{_arch}-%{_vendor}-linux-gnu/libclang_rt.profile.a)
%else
# This is used before openEuler 23.09
%global clang_full_ver %%(clang --version | awk '/clang version/{print $3}')
%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_full_ver}/lib/libclang_rt.profile-%{_arch}.a)
%endif
test -r "%{profiler}"
2020-06-08 10:22:24 +08:00
%configure --disable-option-checking \
2020-07-15 10:27:00 +08:00
--libdir=%{common_libdir} \
2024-06-05 08:02:10 +00:00
%ifarch loongarch64
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
%else
%{rust_musl_root}=%{musl_root} \
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \
2024-06-05 08:02:10 +00:00
%endif
--set target.%{rust_triple}.profiler="%{profiler}" \
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 %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml
install -m 0644 -D -p %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh
install -m 0644 -D -p %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh
2023-07-30 20:42:55 +08:00
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
2024-06-05 08:02:10 +00:00
%ifnarch loongarch64
%dir %{rustlibdir}/%{rust_musl_triple}
%dir %{rustlibdir}/%{rust_musl_triple}/lib
2024-06-05 08:02:10 +00:00
%endif
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
2024-06-05 08:02:10 +00:00
%ifnarch loongarch64
%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
2024-06-05 08:02:10 +00:00
%endif
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
%{_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
2024-06-05 08:02:10 +00:00
* Wed Jun 05 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.77.0-4
- disable musl for loongarch64
2024-04-22 14:06:04 +08:00
* Mon Apr 22 2024 panchenbo <panchenbo@kylinsec.com.cn> - 1.77.0-3
- Modify openEuler to vendor
* Thu Apr 11 2024 misaka00251 <liuxin@iscas.ac.cn> - 1.77.0-2
- Enable profiler builtin
* Wed Apr 03 2024 wangkai <13474090681@163.com> - 1.77.0-1
- Update to 1.77.0
2024-02-20 19:01:25 +08:00
* Tue Feb 20 2024 wangkai <13474090681@163.com> - 1.76.0-1
- Update to 1.76.0
2024-02-17 11:39:05 +08:00
* Sat Feb 17 2024 wangkai <13474090681@163.com> - 1.75.0-2
- Fix CVE-2024-24575,CVE-2024-24577
2024-01-10 16:24:23 +08:00
* Wed Jan 10 2024 wangkai <13474090681@163.com> - 1.75.0-1
- Update to 1.75.0
2023-11-24 11:37:22 +08:00
* Fri Nov 24 2023 wangkai <13474090681@163.com> - 1.74.0-1
- Update to 1.74.0
* Mon Nov 13 2023 wangkai <13474090681@163.com> - 1.73.0-2
- Remove git lfs tar and change to user-repo
- Add gpg verification to Source0
2023-10-09 11:34:09 +08:00
* Mon Oct 09 2023 wangkai <13474090681@163.com> - 1.73.0-1
- Update to 1.73.0
2023-08-30 21:44:36 +08:00
* Mon Aug 28 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.72.0-1
- Update to 1.72.0
2023-08-08 11:12:35 +08:00
* Mon Aug 7 2023 Funda Wang <fundawang@yeah.net> - 1.71.1-1
- New version 1.71.1
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