diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb7204e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/coreos-installer-0.10.1-vendor.tar.gz +SOURCES/coreos-installer-0.10.1.crate +SOURCES/coreos-installer-dracut-80d42a6.tar.gz diff --git a/.rust-coreos-installer.metadata b/.rust-coreos-installer.metadata new file mode 100644 index 0000000..884ee99 --- /dev/null +++ b/.rust-coreos-installer.metadata @@ -0,0 +1,3 @@ +19c823fcddba372dd7d897b93fda539c2e0bc101 SOURCES/coreos-installer-0.10.1-vendor.tar.gz +026193aadb28e0d70ce4f71b29e90d90dbc999c4 SOURCES/coreos-installer-0.10.1.crate +2cb25c4e17753322bce64a4b2ab35379b1f79ba9 SOURCES/coreos-installer-dracut-80d42a6.tar.gz diff --git a/SOURCES/disable-lto.patch b/SOURCES/disable-lto.patch new file mode 100644 index 0000000..5ab72aa --- /dev/null +++ b/SOURCES/disable-lto.patch @@ -0,0 +1,12 @@ +--- coreos-installer-0.10.0/Cargo.toml 2021-09-02 10:50:54.538578470 +0200 ++++ coreos-installer-0.10.0/Cargo.toml 2021-09-02 10:51:20.779926148 +0200 +@@ -35,9 +35,6 @@ + [profile.dev.package.miniz_oxide] + opt-level = 3 + +-[profile.release] +-lto = true +- + [lib] + name = "libcoreinst" + path = "src/lib.rs" diff --git a/SOURCES/enable-rdcore.patch b/SOURCES/enable-rdcore.patch new file mode 100644 index 0000000..950c0f7 --- /dev/null +++ b/SOURCES/enable-rdcore.patch @@ -0,0 +1,10 @@ +--- coreos-installer-0.10.0/Cargo.toml 2021-09-02 10:48:49.577922841 +0200 ++++ coreos-installer-0.10.0/Cargo.toml 2021-09-02 10:49:23.366370513 +0200 +@@ -129,6 +129,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..55a8780 --- /dev/null +++ b/SPECS/rust-coreos-installer.spec @@ -0,0 +1,254 @@ +# Ganerated by rust2rpm 13 +%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 coidracutcommit 80d42a6b34c0942309331f2533d1af61582f4320 +%global coidracutshortcommit %(c=%{coidracutcommit}; echo ${c:0:7}) + +%global crate coreos-installer + +Name: rust-%{crate} +Version: 0.10.1 +Release: 4%{?dist} +Summary: Installer for Fedora CoreOS and RHEL CoreOS + +# Upstream license specification: Apache-2.0 +License: ASL 2.0 +URL: https://github.com/coreos/coreos-installer +Source: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate +Source1: https://github.com/coreos/coreos-installer/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz +Source2: https://github.com/runcom/coreos-installer-dracut/archive/%{coidracutcommit}/coreos-installer-dracut-%{coidracutshortcommit}.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} +BuildRequires: openssl-devel +BuildRequires: xz-devel +BuildRequires: rust-toolset +BuildRequires: systemd +# For tests +BuildRequires: gnupg2 + +Requires: gnupg +Requires: kpartx +Requires: systemd-udev +Requires: util-linux +%ifarch s390x +# This should eventually be spelled "s390utils-core" but the binaries +# haven't been broken out of s390utils-base yet +Requires: /usr/sbin/chreipl +Requires: /usr/sbin/dasdfmt +Requires: /usr/sbin/fdasd +Requires: /usr/sbin/lszdev +Requires: /usr/sbin/zipl +%endif + +#BuildRequires: rust-packaging +#BuildRequires: systemd-rpm-macros + +%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 + +# 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. + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%doc README.md +%{_bindir}/coreos-installer + +%prep +%autosetup -n %{crate}-%{version} -p1 +%setup -n %{crate}-%{version} -D -T -a 2 +%cargo_prep -V 1 +# https://github.com/rust-lang-nursery/error-chain/pull/289 +find -name '*.rs' -executable -exec chmod a-x {} \; + +%build +%cargo_build + +%install +%cargo_install +# 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/ +# 51coreos-installer for coreos-installer-dracut +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/51coreos-installer/module-setup.sh +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer.target +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/scripts/coreos-installer-service +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/scripts/coreos-installer-growfs +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer-growfs.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer-reboot.service +install -D -m 0644 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer-noreboot.service +install -D -m 0755 -t %{buildroot}%{dracutlibdir}/modules.d/51coreos-installer coreos-installer-dracut-%{coidracutcommit}/dracut/systemd/coreos-installer-generator + +%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}/* + +%package -n %{crate}-dracut +Summary: %{crate} provides coreos-installer as a dracut module. +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/* + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +* 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