%define dracutlibdir %{_prefix}/lib/dracut %bcond_without check %define debug_package %{nil} %global __cargo_skip_build 0 # The library is for internal code reuse and is not a public API %global __cargo_is_lib 0 %global crate nestos-installer Name: rust-nestos-installer Version: 0.10.0 Release: 2 Summary: Installer for NestOS # Upstream license specification: Apache-2.0 License: ASL 2.0 URL: https://gitee.com/openeuler/nestos-installer Source0: https://gitee.com/openeuler/nestos-installer/repository/archive/v%{version}.tar.gz Source1: %{crate}-%{version}-vendor.tar.gz BuildRequires: rust-packaging openssl-devel BuildRequires: systemd %global _description %{expand: nestos-installer installs NestOS to bare-metal machines (or, occasionally, to virtual machines). } %description %{_description} %package -n nestos-installer Summary: %{summary} License: ASL 2.0 and MIT and zlib Requires: gnupg Requires: kpartx Requires: systemd-udev Requires: util-linux %ifarch s390x # This should be spelled "s390utils-core" but some of the binaries are # still moving over from s390utils-base Requires: /usr/sbin/chreipl Requires: /usr/sbin/dasdfmt Requires: /usr/sbin/fdasd Requires: /usr/sbin/lszdev Requires: /usr/sbin/zipl %endif # Since `rust-nestos-installer` creates a `nestos-installer` # subpackage with a newer version number, which supersedes the # deprecated `nestos-installer` package , # an explicit `Obsoletes:` for `nestos-installer` is not necessary. # Obsolete dracut modules as they are not provided in this package. Obsoletes: nestos-installer-dracut < 0.0.1 %description -n nestos-installer %{_description} %files -n nestos-installer %license LICENSE %doc README.* %{_bindir}/nestos-installer %prep %autosetup -n %{crate}-v%{version} -p1 tar xvf %{SOURCE1} %cargo_prep sed -i 's/"-Ccodegen-units=1",//' .cargo/config mkdir -p .cargo cat >.cargo/config << EOF [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" EOF %build %cargo_build -f rdcore %install %cargo_install -f rdcore # Install binaries, dracut modules, units, targets, generators for running via systemd install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/50rdcore dracut/50rdcore/module-setup.sh install -D -m 0755 -t %{buildroot}%{_libexecdir} scripts/nestos-installer-service install -D -m 0755 -t %{buildroot}%{_libexecdir} scripts/nestos-installer-disable-device-auto-activation install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer-disable-device-auto-activation.service install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer.service install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer-reboot.service install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer-noreboot.service install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer-pre.target install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer.target install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/nestos-installer-post.target install -D -m 0755 -t %{buildroot}%{_systemdgeneratordir} systemd/nestos-installer-generator cp -r $RPM_BUILD_DIR/%{crate}-v%{version}/.cargo/bin %{buildroot}/usr mv %{buildroot}%{_bindir}/rdcore %{buildroot}%{dracutlibdir}/modules.d/50rdcore/ %package -n nestos-installer-bootinfra Summary: %{crate} boot-time infrastructure for use on Fedora/RHEL CoreOS Requires: %{crate}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} License: ASL 2.0 and MIT and zlib Provides: %{crate}-systemd = %{version}-%{release} Obsoletes: %{crate}-systemd <= 0.3.0-3 %description -n %{crate}-bootinfra This subpackage contains boot-time infrastructure for NestOS. It is not needed on other platforms. %files -n %{crate}-bootinfra %{dracutlibdir}/modules.d/* %{_libexecdir}/* %{_unitdir}/* %{_systemdgeneratordir}/* %changelog * Wed Jun 08 2022 duyiwei - 0.10.0-2 - change tar.gz to be the same with upstream * Thu Mar 17 2022 duyiwei - 0.10.1-1 - init package