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
openSUSE Build Service is sponsored by