diff --git a/.boom-boot.metadata b/.boom-boot.metadata new file mode 100644 index 0000000..dd5913f --- /dev/null +++ b/.boom-boot.metadata @@ -0,0 +1 @@ +03a68ddf109a1c53f45cf62e7f72e48893b60658 SOURCES/boom-246b116.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4271ba1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/boom-246b116.tar.gz diff --git a/SOURCES/Disable-GRUB2-plugin-on-RHEL-8.patch b/SOURCES/Disable-GRUB2-plugin-on-RHEL-8.patch new file mode 100644 index 0000000..f755ea6 --- /dev/null +++ b/SOURCES/Disable-GRUB2-plugin-on-RHEL-8.patch @@ -0,0 +1,13 @@ + etc/default/boom | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/etc/default/boom b/etc/default/boom +index cd5f772..451cb37 100755 +--- a/etc/default/boom ++++ b/etc/default/boom +@@ -1,3 +1,3 @@ +-BOOM_USE_SUBMENU="yes" ++BOOM_USE_SUBMENU="no" + BOOM_SUBMENU_NAME="Snapshots" +-BOOM_ENABLE_GRUB="yes" ++BOOM_ENABLE_GRUB="no" diff --git a/SPECS/boom-boot.spec b/SPECS/boom-boot.spec new file mode 100644 index 0000000..6c8e58a --- /dev/null +++ b/SPECS/boom-boot.spec @@ -0,0 +1,200 @@ +%global summary A set of libraries and tools for managing boot loader entries +%global sphinx_docs 1 + +%global commit 246b116e58c1efd194707f71fe6e96243320d8bf +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: boom-boot +Version: 1.0 +Release: 0.2.20190610git%{shortcommit}%{?dist} +Summary: %{summary} + +License: GPLv2 +URL: https://github.com/bmr-cymru/boom +Source0: https://github.com/bmr-cymru/boom/archive/%{commit}/boom-%{shortcommit}.tar.gz +Patch0: Disable-GRUB2-plugin-on-RHEL-8.patch + +BuildArch: noarch + +BuildRequires: python3-setuptools +BuildRequires: python3-devel +%if 0%{?sphinx_docs} +BuildRequires: python3-sphinx +%endif + +Requires: python3-boom = %{version}-%{release} +Requires: %{name}-conf = %{version}-%{release} + +%package -n python3-boom +Summary: %{summary} +# Unsupported on RHEL-8 :-( +#%%{?python_provide:%%python_provide python%{__python_pkgversion}-boom} +# Do we need this??? IMO not +#Provides: python3-boom = %%{version}-%%{release} +Requires: %{__python3} +Recommends: (lvm2 or brtfs-progs) +Recommends: %{name}-conf = %{version}-%{release} + +# There used to be a boom package in fedora, and there is boom packaged in +# copr. How to tell which one is installed? We need python3-boom and no boom +# only. +Conflicts: boom + +%package conf +Summary: %{summary} + +%package grub2 +Summary: %{summary} +Supplements: (grub2 and boom-boot = %{version}-%{release}) + +%description +Boom is a boot manager for Linux systems using boot loaders that support +the BootLoader Specification for boot entry configuration. + +Boom requires a BLS compatible boot loader to function: either the +systemd-boot project, or Grub2 with the BLS patch (Red Hat Grub2 builds +include this support in both Red Hat Enterprise Linux 7 and Fedora). + +%description -n python3-boom +Boom is a boot manager for Linux systems using boot loaders that support +the BootLoader Specification for boot entry configuration. + +Boom requires a BLS compatible boot loader to function: either the +systemd-boot project, or Grub2 with the BLS patch (Red Hat Grub2 builds +include this support in both Red Hat Enterprise Linux 7 and Fedora). + +This package provides python3 boom module. + +%description conf +Boom is a boot manager for Linux systems using boot loaders that support +the BootLoader Specification for boot entry configuration. + +Boom requires a BLS compatible boot loader to function: either the +systemd-boot project, or Grub2 with the BLS patch (Red Hat Grub2 builds +include this support in both Red Hat Enterprise Linux 7 and Fedora). + +This package provides configuration files for boom. + +%description grub2 +Boom is a boot manager for Linux systems using boot loaders that support +the BootLoader Specification for boot entry configuration. + +Boom requires a BLS compatible boot loader to function: either the +systemd-boot project, or Grub2 with the BLS patch (Red Hat Grub2 builds +include this support in both Red Hat Enterprise Linux 7 and Fedora). + +This package provides integration scripts for grub2 bootloader. + +%prep +%setup -n boom-%{commit} +# NOTE: Do not use backup extension - MANIFEST.in is picking them +%patch0 -p1 + +%build +%if 0%{?sphinx_docs} +make -C doc html +rm doc/_build/html/.buildinfo +mv doc/_build/html doc/html +rm -r doc/_build +%endif + +%py3_build + +%install +%py3_install + +# Install Grub2 integration scripts +mkdir -p ${RPM_BUILD_ROOT}/etc/grub.d +mkdir -p ${RPM_BUILD_ROOT}/etc/default +install -m 755 etc/grub.d/42_boom ${RPM_BUILD_ROOT}/etc/grub.d +install -m 644 etc/default/boom ${RPM_BUILD_ROOT}/etc/default + +# Make configuration directories +# mode 0700 - in line with /boot/grub2 directory: +install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/profiles +install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/hosts +install -d -m 700 ${RPM_BUILD_ROOT}/boot/loader/entries +install -m 644 examples/boom.conf ${RPM_BUILD_ROOT}/boot/boom + +mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man8 +mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man5 +install -m 644 man/man8/boom.8 ${RPM_BUILD_ROOT}/%{_mandir}/man8 +install -m 644 man/man5/boom.5 ${RPM_BUILD_ROOT}/%{_mandir}/man5 + +rm doc/Makefile +rm doc/conf.py + +# Test suite currently does not operate in rpmbuild environment +#%%check +#%%{__python3} setup.py test + +%files +%license COPYING +%doc README.md +%{_bindir}/boom +%doc %{_mandir}/man*/boom.* + +%files -n python3-boom +%license COPYING +%doc README.md +%{python3_sitelib}/* +%doc doc +%doc examples +%doc tests + +%files conf +%license COPYING +%doc README.md +%dir /boot/boom +%config(noreplace) /boot/boom/boom.conf +%dir /boot/boom/profiles +%dir /boot/boom/hosts +%dir /boot/loader/entries + +%files grub2 +%license COPYING +%doc README.md +%{_sysconfdir}/grub.d/42_boom +%config(noreplace) %{_sysconfdir}/default/boom + + +%changelog +* Mon Jun 10 2019 Marian Csontos 1.0-0.2.20190610git246b116 +- Fix packaging issues. + +* Mon May 06 2019 Marian Csontos 1.0-0.1.20190329git6ff3e08 +- Test upstream packaging. + +* Mon Jan 14 2019 Marian Csontos 0.9-7 +- Reduce log level of "Could not load BootEntry" messages. +- Raise more appropriate LookupError on unknown BLS keys. + +* Tue Dec 18 2018 Marian Csontos 0.9-6 +- Disable GRUB2 plugin on RHEL-8. + +* Mon Sep 17 2018 Tomas Orsava - 0.9-5 +- Require the Python interpreter directly instead of using the package name +- Related: rhbz#1619153 + +* Tue Jul 17 2018 Marian Csontos 0.9-4 +- Change dependencies. + +* Mon Jul 16 2018 Marian Csontos 0.9-3 +- Split executable, python module and configuration. + +* Wed Jun 27 2018 Marian Csontos 0.9-2 +- Spin off grub2 into subpackage + +* Wed Jun 27 2018 Marian Csontos 0.9-1 +- Update to new upstream 0.9. +- Fix boot_id caching. + +* Fri Jun 08 2018 Marian Csontos 0.8.5-6.2 +- Remove example files from /boot/boom/profiles. + +* Fri May 11 2018 Marian Csontos 0.8.5-6.1 +- Files in /boot are treated as configuration files. + +* Thu Apr 26 2018 Marian Csontos 0.8.5-6 +- Package upstream version 0.8-5.6 +