nestos-installer/nestos-installer.spec
2024-08-15 16:26:48 +08:00

157 lines
5.3 KiB
RPMSpec

%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.20.0
Release: 4
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: 0001-Block-unsupported-functions-and-modify-the-coreos-to-nestos.patch
BuildRequires: rust-packaging openssl-devel libzstd-devel
BuildRequires: systemd gnupg2
%global _description %{expand:
nestos-installer installs NestOS to bare-metal
machines (or, occasionally, to virtual machines).
NestOS is a Variant in openEuler from Fedora CoreOS.
}
%description %{_description}
%package -n %{crate}
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 %{crate} %{_description}
%files -n %{crate}
%license LICENSE
%doc README.*
%{_bindir}/nestos-installer
%dir %{_datadir}/nestos-installer
%{_datadir}/nestos-installer/example-config.yaml
%package -n %{crate}-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/50rdcore/
%{_libexecdir}/nestos-installer-*
%{_unitdir}/nestos-installer*.{service,target}
%{_systemdgeneratordir}/nestos-installer-generator
%prep
%autosetup -n %{crate}-v%{version} -p1
tar xvf %{SOURCE1}
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 0644 -t %{buildroot}%{_datadir}/%{crate} data/example-config.yaml
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/
%changelog
* Thu Aug 15 2024 duyiwei <duyiwei@kylinos.cn> - 0.20.0-4
- add file example-config.yaml
* Fri May 24 2024 duyiwei <duyiwei@kylinos.cn> - 0.20.0-3
- update patch 0001 to unsupport NestOS stream
* Fri May 10 2024 duyiwei <duyiwei@kylinos.cn> - 0.20.0-2
- Block unsupported functions and modify the coreos to nestos
* Thu Jan 25 2024 duyiwei <duyiwei@kylinos.cn> - 0.20.0-1
- upgrade version to 0.20.0
* Wed Jan 24 2024 duyiwei <duyiwei@kylinos.cn> - 0.18.0-1
- upgrade version to 0.18.0
* Tue Jan 23 2024 duyiwei <duyiwei@kylinos.cn> - 0.17.0-1
- upgrade version to 0.17.0
* Wed Dec 27 2023 wangyueliang <wangyueliang@kylinos.cn> - 0.16.0-5
- unify adapt to NestOS patches
* Fri Sep 22 2023 duyiwei7w <duyiwei@kylinos.cn> - 0.16.0-4
- modify-coreos-rootflags-to-fix-nestos-install-problem
* Thu Dec 15 2022 dingdingaaaaa <dingziwei@kylinos.cn> - 0.16.0-3
- License compliance rectification
* Thu Dec 08 2022 fushanqing <fushanqing@kylinos.cn> - 0.16.0-2
- Enable debuginfo for fix strip
* Wed Nov 16 2022 fushanqing <fushanqing@kylinos.cn> - 0.16.0-1
- update to 0.16.0
* Tue Aug 23 2022 fushanqing <fushanqing@kylinos.cn> - 0.14.0-2
- fix 'nestos-installer iso' command error
* Mon Jun 13 2022 duyiwei <duyiwei@kylinos.cn> - 0.14.0-1
- upgrade to 0.14.0
* Wed Jun 08 2022 duyiwei <duyiwei@kylinos.cn> - 0.10.0-2
- change tar.gz to be the same with upstream
* Thu Mar 17 2022 duyiwei <duyiwei@kylinos.cn> - 0.10.1-1
- init package