%bcond_without check
%global debug_package %{nil}
%global crate podmod
%global cargo_out_dir target/release/
Name: rust-%{crate}
Version: 0.4.3
Release: 1%{?dist}
Summary: Containerized build system for kernel modules on Fedora
License: GPL-2.0-or-later
URL: https://crates.io/crates/%{crate}
Source0: %{crates_source}
ExclusiveArch: %{rust_arches}
BuildRequires: rust-packaging
BuildRequires: systemd-rpm-macros
Requires: podman
%global _description %{expand:
Builds a kernel module from source inside a Podman container.
Targeted for Fedora Silverblue / Kinoite, but also works for other editions.}
%description %{_description}
%package -n %{crate}
Summary: %{summary}
%description -n %{crate} %{_description}
%files -n %{crate}
%license COPYING
%doc README.md
%doc CHANGELOG.md
%{_sbindir}/podmod
%{_datadir}/podmod/
%{_datadir}/bash-completion/completions/%{crate}
%{_datadir}/zsh/site-functions/_%{crate}
%{_datadir}/fish/vendor_completions.d/%{crate}.fish
%{_mandir}/
%{_sysconfdir}/podmod.conf
%{_unitdir}/podmod@.service
%package devel
Summary: %{summary}
BuildArch: noarch
%description devel %{_description}
This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+default-devel %{_description}
This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
%cargo_prep
%generate_buildrequires
%cargo_generate_buildrequires
%build
%cargo_build
%install
%cargo_install
mv %{buildroot}%{_bindir} %{buildroot}%{_sbindir}
mkdir -p %{buildroot}%{_datadir}
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/
mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d/
mkdir -p %{buildroot}%{_mandir}/man8/ %{buildroot}%{_mandir}/man5/
mkdir -p %{buildroot}%{_sysconfdir}
mkdir -p %{buildroot}%{_unitdir}
cp -pr share/ %{buildroot}%{_datadir}/podmod/
install -p -m0644 %{cargo_out_dir}/podmod.bash %{buildroot}%{_datadir}/bash-completion/completions/podmod
install -p -m0644 %{cargo_out_dir}/_podmod %{buildroot}%{_datadir}/zsh/site-functions/_podmod
install -p -m0644 %{cargo_out_dir}/podmod.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/podmod.fish
install -p -m0644 docs/*.8 %{buildroot}%{_mandir}/man8/
install -p -m0644 docs/*.5 %{buildroot}%{_mandir}/man5/
install -p -m0644 extra/podmod.conf.dist %{buildroot}%{_sysconfdir}/podmod.conf
install -p -m0644 extra/podmod@.service %{buildroot}%{_unitdir}
%if %{with check}
%check
%cargo_test
%endif
%changelog
* Tue Nov 15 2022 Alpin H. Gencer <ah@gencer.us> 0.4.3-1
- Add shell completion files to package
* Thu Oct 27 2022 Alpin H. Gencer <ah@gencer.us> 0.3.6-1
- Configuration file re-introduced in version 0.3.6
* Sun Oct 16 2022 Alpin H. Gencer <ah@gencer.us> 0.3.1-1
- Configuration file removed in version 0.3.1
* Sat Oct 15 2022 Alpin H. Gencer <ah@gencer.us> 0.3.0-5
- Create subpackages for split binary and library crates
* Thu Oct 13 2022 Alpin H. Gencer <ah@gencer.us> 0.3.0-4
- Bundle README as documentation in package
* Wed Oct 12 2022 Alpin H. Gencer <ah@gencer.us> 0.3.0-3
- Publish crate to crates.io
- Re-package RPM according to Fedora Rust Packaging Guidelines
- Re-create package podmod as subpackage of rust-podmod
* Wed Oct 12 2022 Alpin H. Gencer <ah@gencer.us> 0.3.0-2
- Fill in missing check condition from spec file generated with rust2rpm
- Use SPDX license identifier
* Fri Oct 07 2022 Alpin H. Gencer <ah@gencer.us> 0.3.0-1
- Rewrite frontend script in Rust
* Thu Oct 06 2022 Alpin H. Gencer <ah@gencer.us> 0.2.2-1
- Initialize tito
* Wed Oct 05 2022 Alpin H. Gencer <ah@gencer.us> - 0.2.1-1
- Update project description
* Wed Oct 05 2022 Alpin H. Gencer <ah@gencer.us> - 0.2.0-1
- Initial version