File rust-alfis.spec of Package rust-alfis
# rust-alfis.spec
# Generated by rust2rpm 16
%bcond_with check
%global __cargo_skip_build 0
%global crate alfis
Name: rust-%{crate}
Version: 0.8.4
Release: 1%{?dist}
Summary: Alternative Free Identity System
# Upstream license specification: None
License: AGPLv3+
URL: https://github.com/Revertron/Alfis
Source: https://github.com/Revertron/Alfis/archive/v%{version}/%{crate}-%{version}.tar.gz
# Automatically generated patch to strip foreign dependencies
Patch0: alfis-fix-metadata-auto.diff
Patch1: alfis-fix-deps.patch
ExclusiveArch: %{rust_arches}
%if %{__cargo_skip_build}
BuildArch: noarch
%endif
BuildRequires: systemd-rpm-macros
BuildRequires: rust-packaging >= 21
%global _description %{expand:
%{summary}.}
%description %{_description}
%if ! %{__cargo_skip_build}
%package -n %{crate}
Summary: %{summary}
Requires: systemd
Requires(pre): %{_bindir}/getent
Requires(pre): %{_sbindir}/useradd
Requires(pre): %{_sbindir}/groupadd
%description -n %{crate} %{_description}
%pre -n %{crate}
%{_bindir}/getent group alfis >/dev/null || %{_sbindir}/groupadd -r alfis
%{_bindir}/getent passwd alfis >/dev/null || \
%{_sbindir}/useradd -r -g alfis -d /var/lib/alfis -s /sbin/nologin \
-c 'Alfis User' alfis
%post -n %{crate}
%systemd_post alfis.service
%preun -n %{crate}
%systemd_preun alfis.service
%postun -n %{crate}
%systemd_postun_with_restart alfis.service
%files -n %{crate}
%license LICENSE
%doc README.md
%{_bindir}/alfis
%{_unitdir}/alfis.service
%{_unitdir}/alfis-default-config.service
%{_sysusersdir}/alfis.conf
%{_tmpfilesdir}/alfis.conf
%attr(0750,alfis,alfis) %dir /var/lib/alfis
%endif
%package devel
Summary: %{summary}
BuildArch: noarch
%description devel %{_description}
This package contains library source intended for building other packages
which use "%{crate}" crate.
%files devel
%license LICENSE
%doc README.md
%{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 "default" feature of "%{crate}" crate.
%files -n %{name}+default-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+doh-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+doh-devel %{_description}
This package contains library source intended for building other packages which
use the "doh" feature of the "%{crate}" crate.
%files -n %{name}+doh-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+edge-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+edge-devel %{_description}
This package contains library source intended for building other packages
which use "edge" feature of "%{crate}" crate.
%files -n %{name}+edge-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+open-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+open-devel %{_description}
This package contains library source intended for building other packages
which use "open" feature of "%{crate}" crate.
%files -n %{name}+open-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+tinyfiledialogs-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+tinyfiledialogs-devel %{_description}
This package contains library source intended for building other packages
which use "tinyfiledialogs" feature of "%{crate}" crate.
%files -n %{name}+tinyfiledialogs-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+ureq-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+ureq-devel %{_description}
This package contains library source intended for building other packages which
use the "ureq" feature of the "%{crate}" crate.
%files -n %{name}+ureq-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+web-view-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+web-view-devel %{_description}
This package contains library source intended for building other packages
which use "web-view" feature of "%{crate}" crate.
%files -n %{name}+web-view-devel
%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+webgui-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+webgui-devel %{_description}
This package contains library source intended for building other packages
which use "webgui" feature of "%{crate}" crate.
%files -n %{name}+webgui-devel
%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n Alfis-%{version_no_tilde} -p1
%cargo_prep
%generate_buildrequires
%cargo_generate_buildrequires
%build
%cargo_build
%install
%cargo_install
install -m 0644 -D contrib/systemd/alfis.service \
%{buildroot}/%{_unitdir}/alfis.service
install -m 0644 -D contrib/systemd/alfis-default-config.service \
%{buildroot}/%{_unitdir}/alfis-default-config.service
install -m 0644 -D contrib/systemd/alfis.sysusers \
%{buildroot}/%{_sysusersdir}/alfis.conf
install -m 0644 -D contrib/systemd/alfis.tmpfiles \
%{buildroot}/%{_tmpfilesdir}/alfis.conf
install -m 0750 -d %{buildroot}/var/lib/alfis
%if %{with check}
%check
%cargo_test
%endif