From 99d3f0c6993f0ade9141105ae5bb0c3e87719215 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Dec 09 2020 08:49:24 +0000 Subject: Add spec-file for the distribution --- diff --git a/SPECS/boom-boot.spec b/SPECS/boom-boot.spec new file mode 100644 index 0000000..3e26b6b --- /dev/null +++ b/SPECS/boom-boot.spec @@ -0,0 +1,237 @@ +%global summary A set of libraries and tools for managing boot loader entries +%global sphinx_docs 1 + +Name: boom-boot +Version: 1.2 +Release: 2%{?dist} +Summary: %{summary} + +License: GPLv2 +URL: https://github.com/snapshotmanager/boom +Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz +Patch0: Disable-GRUB2-plugin-on-RHEL-8.patch +Patch1: 0001-etc-Remove-executable-permission-from-etc-default-bo.patch +Patch2: 0002-man-Fix-line-starting-with.patch +Patch3: 0003-boom-bump-release-to-1.2.patch +Patch4: 0004-boom-fix-precedence-and-handle-conflicts-when-mergin.patch +Patch5: 0005-boom-pass-add-del-opts-to-edit_entry-in-edit-command.patch +Patch6: 0006-boom-check-for-duplicates-in-edit_entry.patch +Patch7: 0007-tests-add-test_clone_entry_-add-del-_opts_and_re_-ad.patch +Patch8: 0008-tests-skip-add-del-and-re-del-add-tests-if-have_root.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-%{version} +# NOTE: Do not use backup extension - MANIFEST.in is picking them +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -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 -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/cache +install -m 644 examples/boom.conf ${RPM_BUILD_ROOT}/boot/boom +install -m 644 examples/profiles/*.profile ${RPM_BUILD_ROOT}/boot/boom/profiles + +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 +%config(noreplace) /boot/boom/profiles/* +%dir /boot/boom/hosts +%dir /boot/boom/cache +%dir /boot/loader/entries + +%files grub2 +%license COPYING +%doc README.md +%{_sysconfdir}/grub.d/42_boom +%config(noreplace) %{_sysconfdir}/default/boom + + +%changelog +* Mon Jun 29 2020 Marian Csontos 1.2-2 +- Fix RHEL-8 profiles. +- Fix --add/del-opt precedence. +- Fix backup image reference counting. + +* Sun Jun 07 2020 Marian Csontos 1.2-1 +- Update to bug fix release 1.2. + +* Tue May 26 2020 Marian Csontos 1.1-2 +- Fix unicode entries handling. +- Add tracebacks when --debug is used. + +* Thu May 14 2020 Marian Csontos 1.1-1 +- Update to new upstream release 1.1. +- Add caching of kernel and init ramdisk images. + +* Fri Nov 29 2019 Marian Csontos 1.0-1 +- Update to new upstream release 1.0. + +* 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 +