afterburn/rust-afterburn.spec
2022-02-17 10:12:52 +08:00

113 lines
2.9 KiB
RPMSpec

%bcond_without check
%define debug_package %{nil}
%global __cargo_skip_build 0
%global dracutmodulesdir %(pkg-config --variable=dracutmodulesdir dracut || echo '/usr/lib/dracut/modules.d')
%global crate afterburn
Name: rust-%{crate}
Version: 5.1.0
Release: 1
Summary: Simple cloud provider agent
# Upstream license specification: Apache-2.0
License: ASL 2.0
URL: https://crates.io/crates/afterburn
Source0: %{crate}-%{version}.crate
Source1: %{crate}-%{version}-vendor.tar.gz
BuildRequires: rust-packaging openssl-devel
BuildRequires: systemd
%global _description %{expand:
Simple cloud provider agent.}
%description %{_description}
%package -n %{crate}
Summary: %{summary}
License: ASL 2.0 and MIT and BSD and zlib
%{?systemd_requires}
%description -n %{crate} %{_description}
%files -n %{crate}
%license LICENSE
%doc README.md
%{_bindir}/afterburn
%{_unitdir}/afterburn.service
%{_unitdir}/afterburn-checkin.service
%{_unitdir}/afterburn-firstboot-checkin.service
%{_unitdir}/afterburn-sshkeys@.service
%{_unitdir}/afterburn-sshkeys.target
%post -n %{crate}
%systemd_post afterburn.service
%systemd_post afterburn-checkin.service
%systemd_post afterburn-firstboot-checkin.service
%systemd_post afterburn-sshkeys@.service
%preun -n %{crate}
%systemd_preun afterburn.service
%systemd_preun afterburn-checkin.service
%systemd_preun afterburn-firstboot-checkin.service
%systemd_preun afterburn-sshkeys@.service
%postun -n %{crate}
%systemd_postun afterburn.service
%systemd_postun afterburn-checkin.service
%systemd_postun afterburn-firstboot-checkin.service
%systemd_postun afterburn-sshkeys@.service
%package -n %{crate}-dracut
Summary: Dracut modules for afterburn
BuildRequires: pkgconfig(dracut)
Requires: %{crate}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: dracut
Requires: dracut-network
%description -n %{crate}-dracut
Dracut module that enables afterburn and corresponding services
to run in the initramfs on boot.
%files -n %{crate}-dracut
%{dracutmodulesdir}/30afterburn/
%prep
%autosetup -n %{crate}-%{version} -p1
# afterburn-sshkeys@.service is by default enabled for the 'core' user in NestOS
tar xvf %{SOURCE1}
sed -e 's,@DEFAULT_INSTANCE@,core,' < \
systemd/afterburn-sshkeys@.service.in > \
systemd/afterburn-sshkeys@.service
%cargo_prep
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
%build
%cargo_build
%install
%cargo_install
install -Dpm0644 -t %{buildroot}%{_unitdir} \
systemd/*.service systemd/*.target
mkdir -p %{buildroot}%{dracutmodulesdir}
cp -a dracut/* %{buildroot}%{dracutmodulesdir}
cp -r $RPM_BUILD_DIR/afterburn-5.1.0/.cargo/bin %{buildroot}/usr
%changelog
* Fri Dec 24 2021 duyiwei <duyiwei@kylinos.cn> - 5.1.0-1
- Package init