File sudo-rs.spec of Package sudo-rs
#
# spec file for package sudo-rs
#
# Original Copyright (c) 2025, Martin Hauke <mardnh@gmx.de>
# Copyright (c) 2025, Alxhr0 <alxhr0@proton.me>
%global debug_package %{nil}
Name: sudo-rs
Version: 0.2.12
Release: 0
Summary: Execute some commands as root
License: Apache-2.0 or MIT
Group: System/Base
URL: https://github.com/trifectatechfoundation/sudo-rs
Source0: %{name}-%{version}.tar.gz
Source1: vendor.tar.zst
Conflicts: sudo
Provides: sudo
Source2: sudo-pam-files.tar.xz
%if 0%{?fedora}
BuildRequires: wget2-wget
BuildRequires: rust-packaging
BuildRequires: cargo-rpm-macros
BuildRequires: tzdata
%else
Requires(pre): permissions
BuildRequires: cargo-packaging
BuildRequires: timezone
BuildRequires: pam-devel
%endif
%description
A safety oriented and memory safe implementation of sudo and su
written in Rust.
%prep
%autosetup -p1 -a 1
%build
tar -xf %{SOURCE2} -C ../
%{cargo_build} --features pam-login
%install
%{cargo_install}
mv %{buildroot}/%{_bindir}/su %{buildroot}/%{_bindir}/su-rs
mkdir -pv %{buildroot}/usr/lib/pam.d
cp -v ../sudo-pam-files/* %{buildroot}/usr/lib/pam.d
%check
#%%{cargo_test} -- -- --skip system::audit::test::secure_open_is_predictable --skip system::interface::test::test_unix_group --skip system::interface::test::test_unix_user
#[ 32s] test system::audit::test::secure_open_is_predictable ... FAILED
#[ 32s] test system::interface::test::test_unix_group ... FAILED
#[ 32s] test system::interface::test::test_unix_user ... FAILED
%post
%set_permissions %{_bindir}/su-rs
%set_permissions %{_bindir}/sudo
%verifyscript
%verify_permissions -e %{_bindir}/su-rs
%verify_permissions -e %{_bindir}/sudo
%files
%license COPYRIGHT
%doc CHANGELOG.md README.md
%dir /usr/lib/pam.d
%attr(4755, root, root) %{_bindir}/su-rs
%attr(4111, root, root) %{_bindir}/sudo
%attr(0755, root, root) %{_bindir}/visudo
/usr/lib/pam.d/sudo
%changelog