File rust-bin.spec of Package rust-bin
#
# spec file for package rust-bin
#
# Copyright (c) 2026 Gakuto Furuya <g.furuya@gaato.net>
#
%global debug_package %{nil}
%define __strip /bin/true
Name: rust-bin
Version: 1.93.1
Release: 1%{?dist}
Summary: Rust programming language - binary distribution
License: MIT OR Apache-2.0
URL: https://www.rust-lang.org/
Source0: rust-%{version}-x86_64-unknown-linux-gnu.tar.xz
Source1: rust-%{version}-aarch64-unknown-linux-gnu.tar.xz
Source2: rust-%{version}-powerpc64le-unknown-linux-gnu.tar.xz
Source3: rust-%{version}-powerpc64-unknown-linux-gnu.tar.xz
Source4: rust-%{version}-armv7-unknown-linux-gnueabihf.tar.xz
Source5: rust-%{version}-i686-unknown-linux-gnu.tar.xz
ExclusiveArch: x86_64 aarch64 ppc64le ppc64 armv7hl %{ix86}
AutoReqProv: no
BuildRequires: xz
Provides: rust = %{version}
Provides: cargo = %{version}
Provides: rustc = %{version}
Requires: gcc
Requires: glibc-devel
%description
Pre-built Rust toolchain (rustc and cargo) version %{version},
repackaged from the official binary distribution.
%prep
%ifarch x86_64
%setup -q -n rust-%{version}-x86_64-unknown-linux-gnu
%endif
%ifarch aarch64
%setup -q -n rust-%{version}-aarch64-unknown-linux-gnu -T -b 1
%endif
%ifarch ppc64le
%setup -q -n rust-%{version}-powerpc64le-unknown-linux-gnu -T -b 2
%endif
%ifarch ppc64
%setup -q -n rust-%{version}-powerpc64-unknown-linux-gnu -T -b 3
%endif
%ifarch armv7hl
%setup -q -n rust-%{version}-armv7-unknown-linux-gnueabihf -T -b 4
%endif
%ifarch %{ix86}
%setup -q -n rust-%{version}-i686-unknown-linux-gnu -T -b 5
%endif
%build
%install
./install.sh \
--prefix=%{buildroot}/usr \
--sysconfdir=%{buildroot}%{_sysconfdir} \
--without=rust-docs,rust-docs-json-preview
# Remove installer metadata
rm -f %{buildroot}/usr/lib/rustlib/install.log
rm -f %{buildroot}/usr/lib/rustlib/uninstall.sh
rm -f %{buildroot}/usr/lib/rustlib/rust-installer-version
rm -f %{buildroot}/usr/lib/rustlib/components
rm -f %{buildroot}/usr/lib/rustlib/manifest-*
# ldconfig configuration
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
%ifarch x86_64
echo "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%ifarch aarch64
echo "/usr/lib/rustlib/aarch64-unknown-linux-gnu/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%ifarch ppc64le
echo "/usr/lib/rustlib/powerpc64le-unknown-linux-gnu/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%ifarch ppc64
echo "/usr/lib/rustlib/powerpc64-unknown-linux-gnu/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%ifarch armv7hl
echo "/usr/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%ifarch %{ix86}
echo "/usr/lib/rustlib/i686-unknown-linux-gnu/lib" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license COPYRIGHT LICENSE-MIT LICENSE-APACHE
/usr/bin/*
/usr/lib/lib*
/usr/lib/rustlib/
/usr/libexec/
%dir /usr/share/doc/cargo
/usr/share/doc/cargo/*
%dir /usr/share/doc/clippy
/usr/share/doc/clippy/*
%dir /usr/share/doc/rust
/usr/share/doc/rust/*
%dir /usr/share/doc/rust-analyzer
/usr/share/doc/rust-analyzer/*
%dir /usr/share/doc/rustfmt
/usr/share/doc/rustfmt/*
/usr/share/man/man1/*.1*
/usr/share/zsh/
%{_sysconfdir}/bash_completion.d/
%{_sysconfdir}/target-spec-json-schema.json
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/rust-bin.conf
%changelog
* Wed Feb 25 2026 Gakuto Furuya <g.furuya@gaato.net> - 1.93.1-1
- Initial RPM packaging of official Rust binary distribution