diff --git a/afterburn-5.1.0-vendor.tar.gz b/afterburn-5.1.0-vendor.tar.gz new file mode 100644 index 0000000..bb6a0e7 Binary files /dev/null and b/afterburn-5.1.0-vendor.tar.gz differ diff --git a/afterburn-5.1.0.crate b/afterburn-5.1.0.crate new file mode 100644 index 0000000..2b7c43f Binary files /dev/null and b/afterburn-5.1.0.crate differ diff --git a/rust-afterburn.spec b/rust-afterburn.spec new file mode 100644 index 0000000..64a4502 --- /dev/null +++ b/rust-afterburn.spec @@ -0,0 +1,112 @@ +%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 - 5.1.0-1 +- Package init