diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f43e53 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/coreos-installer-0.11.0-vendor.tar.gz +SOURCES/coreos-installer-0.11.0.crate +SOURCES/coreos-installer-dracut-1a262bd.tar.gz diff --git a/.rust-coreos-installer.metadata b/.rust-coreos-installer.metadata new file mode 100644 index 0000000..bbb06fd --- /dev/null +++ b/.rust-coreos-installer.metadata @@ -0,0 +1,3 @@ +2a876f160edceed577652d36f61c32b27e2bd734 SOURCES/coreos-installer-0.11.0-vendor.tar.gz +4ab40027b2ec1716b95a47090f750d7760c5bd90 SOURCES/coreos-installer-0.11.0.crate +01dc4e66374b6239963bfcf6d80724b0cddd7b75 SOURCES/coreos-installer-dracut-1a262bd.tar.gz diff --git a/SOURCES/disable-lto.patch b/SOURCES/disable-lto.patch new file mode 100644 index 0000000..f709656 --- /dev/null +++ b/SOURCES/disable-lto.patch @@ -0,0 +1,10 @@ +--- coreos-installer-0.11.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ coreos-installer-0.11.0/Cargo.toml 2021-12-15T20:16:00.065634+00:00 +@@ -39,7 +39,6 @@ + opt-level = 3 + + [profile.release] +-lto = true + debug = true + + [lib] diff --git a/SOURCES/enable-rdcore.patch b/SOURCES/enable-rdcore.patch new file mode 100644 index 0000000..2352682 --- /dev/null +++ b/SOURCES/enable-rdcore.patch @@ -0,0 +1,10 @@ +--- coreos-installer-0.11.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ coreos-installer-0.11.0/Cargo.toml 2021-12-15T20:13:31.152703+00:00 +@@ -139,6 +139,7 @@ + version = "^1.0" + + [features] ++default = ["rdcore"] + rdcore = [] + [target."cfg(target_arch = \"s390x\")".dependencies.mbrman] + version = ">= 0.3, < 0.5" diff --git a/SPECS/rust-coreos-installer.spec b/SPECS/rust-coreos-installer.spec new file mode 100644 index 0000000..9e2d566 --- /dev/null +++ b/SPECS/rust-coreos-installer.spec @@ -0,0 +1,312 @@ +# Generated by rust2rpm 16 +%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 dracutcommit 1a262bd9553ee0b3607b4d1982947a1fd6567c35 +%global dracutshortcommit %(c=%{dracutcommit}; echo ${c:0:7}) + +%global crate coreos-installer + +Name: rust-%{crate} +Version: 0.11.0 +Release: 4%{?dist} +Summary: Installer for Fedora CoreOS and RHEL CoreOS + +# Upstream license specification: Apache-2.0 +License: ASL 2.0 +URL: https://crates.io/crates/coreos-installer +Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate +# not used on Fedora +Source1: https://github.com/coreos/%{crate}/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz +Source2: https://github.com/coreos/coreos-installer-dracut/archive/%{dracutcommit}/coreos-installer-dracut-%{dracutshortcommit}.tar.gz + +# The RHEL 8 rust-toolset macros don't let us enable features from the +# %%cargo_* macros. Enable rdcore directly in Cargo.toml. +Patch0: enable-rdcore.patch +# LTO causes runtime crashes on s390x +# https://github.com/coreos/coreos-installer/pull/360 +# https://github.com/coreos/coreos-installer/issues/372 +# https://bugzilla.redhat.com/show_bug.cgi?id=1863466 +Patch1: disable-lto.patch + +ExclusiveArch: %{rust_arches} +%if 0%{?rhel} && !0%{?eln} +BuildRequires: rust-toolset +BuildRequires: openssl-devel +BuildRequires: xz-devel +%else +BuildRequires: rust-packaging +%endif +BuildRequires: systemd-rpm-macros +# For tests +BuildRequires: gnupg2 + +%global _description %{expand: +coreos-installer installs Fedora CoreOS or RHEL CoreOS to bare-metal +machines (or, occasionally, to virtual machines). +} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +# ASL 2.0 +# ASL 2.0 or Boost +# MIT +# MIT or ASL 2.0 +# Unlicense or MIT +# zlib +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-coreos-installer` creates a `coreos-installer` +# subpackage with a newer version number, which supersedes the +# deprecated `coreos-installer` package (https://src.fedoraproject.org/rpms/coreos-installer), +# an explicit `Obsoletes:` for `coreos-installer` is not necessary. + +# Obsolete dracut modules as they are not provided in this package. +Obsoletes: coreos-installer-dracut < 0.0.1 + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%doc README.md +%{_bindir}/coreos-installer + +%prep +%autosetup -n %{crate}-%{version} -p1 -a 2 +%if 0%{?rhel} && !0%{?eln} +tar xvf %{SOURCE1} +mkdir -p .cargo +cat >.cargo/config << EOF +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" +EOF +%else +%cargo_prep +%endif +# Fix SIGSEGV in tests on s390x +# https://bugzilla.redhat.com/show_bug.cgi?id=1883457 +sed -i 's/"-Ccodegen-units=1",//' .cargo/config + +%if !0%{?rhel} || 0%{?eln} +%generate_buildrequires +%cargo_generate_buildrequires -f rdcore +%endif + +%build +%if 0%{?rhel} && !0%{?eln} +%cargo_build +%else +%cargo_build -f rdcore +%endif + +%install +%if 0%{?rhel} && !0%{?eln} +%make_install +# 51coreos-installer for coreos-installer-dracut +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/51coreos-installer/module-setup.sh +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer.target +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/scripts/coreos-installer-service +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/scripts/coreos-installer-growfs +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-growfs.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-luks-open.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-reboot.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-noreboot.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-poweroff.service +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{dracutcommit}/dracut/systemd/coreos-installer-generator +%else +%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/coreos-installer-service +install -D -m 0755 -t %{buildroot}%{_libexecdir} scripts/coreos-installer-disable-device-auto-activation +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-disable-device-auto-activation.service +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer.service +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-reboot.service +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-noreboot.service +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-pre.target +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer.target +install -D -m 0644 -t %{buildroot}%{_unitdir} systemd/coreos-installer-post.target +install -D -m 0755 -t %{buildroot}%{_systemdgeneratordir} systemd/coreos-installer-generator +mv %{buildroot}%{_bindir}/rdcore %{buildroot}%{dracutlibdir}/modules.d/50rdcore/ +%endif + +%package -n %{crate}-bootinfra +Summary: %{crate} boot-time infrastructure for use on Fedora/RHEL CoreOS +Requires: %{crate}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +# ASL 2.0 +# ASL 2.0 or Boost +# MIT +# MIT or ASL 2.0 +# Unlicense or MIT +# zlib +License: ASL 2.0 and MIT and zlib + +# Package was renamed from coreos-installer-systemd when rdcore was added +Provides: %{crate}-systemd = %{version}-%{release} +Obsoletes: %{crate}-systemd <= 0.3.0-3 + +%description -n %{crate}-bootinfra +This subpackage contains boot-time infrastructure for Fedora CoreOS and +RHEL CoreOS. It is not needed on other platforms. + +%files -n %{crate}-bootinfra +%{dracutlibdir}/modules.d/50rdcore +%{_libexecdir}/* +%{_unitdir}/* +%{_systemdgeneratordir}/* + +%if 0%{?rhel} && !0%{?eln} +%package -n %{crate}-dracut +Summary: Dracut module for running coreos-installer in the initrd +Requires: %{crate} = %{version}-%{release} + +%description -n %{crate}-dracut +This subpackage contains files and configuration to run coreos-installer +from the initramfs. + +%files -n %{crate}-dracut +%{dracutlibdir}/modules.d/51coreos-installer +%endif + +%if %{with check} +%check +%if 0%{?rhel} && !0%{?eln} +%cargo_test +%else +%cargo_test -f rdcore +%endif +%endif + +%changelog +* Thu Feb 24 2022 Antonio Murdaca - 0.11.0-4 +- update coi-dracut to fix growfs service Before + +* Thu Feb 10 2022 Antonio Murdaca - 0.11.0-3 +- update coi-dracut to support default poweroff behavior + +* Wed Jan 26 2022 Antonio Murdaca - 0.11.0-2 +- Bump coreos-installer-dracut to support encrypted rootfs + +* Wed Dec 15 2021 Sohan Kunkerkar - 0.11.0-1 +- New release +- Fix inadvertent inclusion of coreos-installer-dracut in -bootinfra on RHEL +- Have -dracut own 51coreos-installer directory on RHEL + +* Tue Nov 30 2021 Sohan Kunkerkar - 0.10.1-6 +- Vendor rust dependencies on RHEL only +- Add coreos-installer-dracut subpackage on RHEL only + +* Fri Nov 26 2021 Antonio Murdaca - 0.10.1-5 +- fix https://bugzilla.redhat.com/show_bug.cgi?id=2027255 + +* Thu Nov 18 2021 Antonio Murdaca - 0.10.1-4 +- fix dracut module dependencies + +* Wed Nov 17 2021 Antonio Murdaca - 0.10.1-3 +- fix dracut module installation target + +* Tue Oct 26 2021 Antonio Murdaca - 0.10.1-2 +- rebuilt + +* Mon Oct 25 2021 Antonio Murdaca - 0.10.1-1 +- New release + +* Thu Sep 16 11:20:52 CET 2021 Antonio Murdaca - 0.10.0-1 +- New bumped release + +* Mon Dec 28 13:28:50 CET 2020 Igor Raits - 0.7.2-2 +- Rebuild + +* Thu Oct 22 2020 Sohan Kunkerkar - 0.7.2-1 +- New release + +* Tue Oct 06 2020 Dusty Mabe - 0.7.0-4 +- Backport commit to start coreos-installer service after systemd-resolved + - https://github.com/coreos/coreos-installer/pull/389 + +* Thu Oct 01 2020 Dusty Mabe - 0.7.0-3 +- Backport commit to add F33 and F34 keys. Drop F31 keys. + - https://github.com/coreos/coreos-installer/pull/387 + +* Wed Sep 30 2020 Benjamin Gilbert - 0.7.0-2 +- Fix SIGSEGV in tests on s390x + +* Mon Sep 21 2020 Benjamin Gilbert - 0.7.0-1 +- New release + +* Tue Aug 25 2020 Benjamin Gilbert - 0.6.0-1 +- New release + +* Sun Aug 16 15:01:11 GMT 2020 Igor Raits - 0.5.0-2 +- Rebuild + +* Fri Jul 31 2020 Benjamin Gilbert - 0.5.0-1 +- New release + +* Wed Jul 29 2020 Fedora Release Engineering - 0.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 24 2020 Benjamin Gilbert - 0.4.0-1 +- New release +- Rename -systemd subpackage to -bootinfra +- Add rdcore Dracut module to -bootinfra + +* Fri Jul 24 2020 Igor Raits - 0.3.0-2 +- Rebuild + +* Mon Jul 13 2020 Benjamin Gilbert - 0.3.0-1 +- New release + +* Sat May 30 2020 Igor Raits - 0.2.1-2 +- Fixup license + +* Fri May 29 2020 Benjamin Gilbert - 0.2.1-1 +- New release +- Make coreos-installer-{service,generator} world-readable + +* Tue May 05 2020 Robert Fairley - 0.2.0-1 +- Update to 0.2.0 + +* Sat Mar 21 2020 Benjamin Gilbert - 0.1.3-1 +- New release + +* Fri Feb 21 2020 Josh Stone - 0.1.2-4 +- Bump to nix 0.17 and reqwest 0.10 + +* Thu Jan 30 2020 Fedora Release Engineering - 0.1.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 09 2020 Josh Stone - 0.1.2-2 +- Remove the nix downgrade. + +* Wed Jan 08 2020 Dusty Mabe - 0.1.2-1 +- Bump to new upstream release 0.1.2 + - Release notes: https://github.com/coreos/coreos-installer/releases/tag/v0.1.2 +- Update spec file to include systemd units from upstream + - These were added upstream in https://github.com/coreos/coreos-installer/pull/119 + +* Fri Dec 20 17:57:28 UTC 2019 Robert Fairley - 0.1.1-1 +- Initial package