%define dracutlibdir %{_prefix}/lib/dracut %bcond_without check %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.16.0 Release: 3 Summary: Installer for NestOS License: Apache-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 Patch01: fix-nestos-installer-iso-command-error.patch BuildRequires: rust-packaging openssl-devel zstd-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 # 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 mkdir -p vendor tar xvf %{SOURCE1} -C vendor %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 * Thu Dec 15 2022 dingdingaaaaa - 0.16.0-3 - License compliance rectification * Thu Dec 08 2022 fushanqing - 0.16.0-2 - Enable debuginfo for fix strip * Wed Nov 16 2022 fushanqing - 0.16.0-1 - update to 0.16.0 * Tue Aug 23 2022 fushanqing - 0.14.0-2 - fix 'nestos-installer iso' command error * Mon Jun 13 2022 duyiwei - 0.14.0-1 - upgrade to 0.14.0 * 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