leapp-repository/0073-Packaging-Introduce-EL-9-builds-for-IPU-9-10.patch

200 lines
6.9 KiB
Diff
Raw Normal View History

From 87012437ad29350c993deb110283702ca2959c30 Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Tue, 2 Apr 2024 19:33:04 +0200
Subject: [PATCH 73/92] Packaging: Introduce EL 9 builds for IPU 9 -> 10
SPEC files has been updated and polished to be more friendly when
keeping suppoer for building in EL 7, 8, and 9. Also Makefile
contains some initial changes But keeping the full solution for a
separate commit.
Packit configuration has been updated to start building for
epel-9-x86_64 buildroot.
---
.packit.yaml | 3 ++
Makefile | 14 +++++--
packaging/leapp-repository.spec | 42 +++++++++++++------
.../other_specs/leapp-el7toel8-deps.spec | 6 ++-
4 files changed, 48 insertions(+), 17 deletions(-)
diff --git a/.packit.yaml b/.packit.yaml
index 7c3799cf..d91a47e5 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -34,6 +34,7 @@ jobs:
targets:
- epel-7-x86_64
- epel-8-x86_64
+ - epel-9-x86_64
actions:
create-archive:
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
@@ -54,6 +55,7 @@ jobs:
targets:
- epel-7-x86_64
- epel-8-x86_64
+ - epel-9-x86_64
actions:
create-archive:
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
@@ -73,6 +75,7 @@ jobs:
targets:
- epel-7-x86_64
- epel-8-x86_64
+ - epel-9-x86_64
actions:
create-archive:
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
diff --git a/Makefile b/Makefile
index 0de2a86a..a62d0ccc 100644
--- a/Makefile
+++ b/Makefile
@@ -189,8 +189,9 @@ source: prepare
@git archive --prefix "$(PKGNAME)-$(VERSION)/" -o "packaging/sources/$(PKGNAME)-$(VERSION).tar.gz" HEAD
@echo "--- PREPARE DEPS PKGS ---"
mkdir -p packaging/tmp/
- @__TIMESTAMP=$(TIMESTAMP) $(MAKE) _build_subpkg
- @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=$$(($(DIST_VERSION) + 1)) _build_subpkg
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=7 _build_subpkg
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=8 _build_subpkg
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=9 _build_subpkg
@tar -czf packaging/sources/deps-pkgs.tar.gz -C packaging/RPMS/noarch `ls -1 packaging/RPMS/noarch | grep -o "[^/]*rpm$$"`
@rm -f packaging/RPMS/noarch/*.rpm
@@ -389,11 +390,14 @@ _test_container_ipu:
el8toel9) \
export REPOSITORIES="common,el8toel9"; \
;; \
+ el9toel10) \
+ export REPOSITORIES="common,el9toel10"; \
+ ;; \
"") \
echo "TEST_CONT_IPU must be set"; exit 1; \
;; \
*) \
- echo "Only supported TEST_CONT_IPUs are el7toel8, el8toel9"; exit 1; \
+ echo "Only supported TEST_CONT_IPUs are el7toel8, el8toel9, el9toel10"; exit 1; \
;; \
esac && \
$(_CONTAINER_TOOL) exec -w /repocopy $$_CONT_NAME make clean && \
@@ -449,6 +453,10 @@ test_container:
;; \
python3.9) \
TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \
+ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \
+ ;; \
+ python3.12) \
+ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \
;; \
*) \
TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \
diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
index 7c3fe5c6..e813cf14 100644
--- a/packaging/leapp-repository.spec
+++ b/packaging/leapp-repository.spec
@@ -7,9 +7,19 @@
%if 0%{?rhel} == 7
%define leapp_python_sitelib %{python2_sitelib}
%define lpr_name leapp-upgrade-el7toel8
+ %define repo_shortname el7toel8
+ %define next_major_ver 8
%else
%define leapp_python_sitelib %{python3_sitelib}
- %define lpr_name leapp-upgrade-el8toel9
+ %if 0%{?rhel} == 8
+ %define lpr_name leapp-upgrade-el8toel9
+ %define repo_shortname el8toel9
+ %define next_major_ver 9
+ %else
+ %define lpr_name leapp-upgrade-el9toel10
+ %define repo_shortname el9toel10
+ %define next_major_ver 10
+ %endif
# This drops autogenerated deps on
# - /usr/libexec/platform-python (rhel-8 buildroot)
@@ -84,14 +94,24 @@ Obsoletes: leapp-repository-sos-plugin <= 0.9.0
Conflicts: leapp-upgrade-el8toel9
%else
-######### RHEL 8 ############
+######### RHEL 8+ (and newer) ############
BuildRequires: python3-devel
Requires: python3-leapp
+# NOTE(pstodulk): else if / elif has been implemented quite late. as we still
+# want to build on RHEL 7 too, go in the old way. Ref:
+# https://github.com/rpm-software-management/rpm/issues/311
+%if 0%{?rhel} == 8
+######### RHEL 8 ############
+
# Same as the conflict above - we want to be sure our packages are untouched
# during the whole IPU process
Conflicts: leapp-upgrade-el7toel8
-
+Conflicts: leapp-upgrade-el9toel10
+%else
+######### RHEL 9 ############
+Conflicts: leapp-upgrade-el8toel9
+%endif
%endif
# IMPORTANT: every time the requirements are changed, increment number by one
@@ -210,11 +230,7 @@ Requires: python3-gobject-base
%build
-%if 0%{?rhel} == 7
-cp -a leapp*deps*el8.noarch.rpm repos/system_upgrade/el7toel8/files/bundled-rpms/
-%else
-cp -a leapp*deps*el9.noarch.rpm repos/system_upgrade/el8toel9/files/bundled-rpms/
-%endif
+cp -a leapp*deps*el%{next_major_ver}.noarch.rpm repos/system_upgrade/%{repo_shortname}/files/bundled-rpms/
%install
@@ -222,6 +238,7 @@ install -m 0755 -d %{buildroot}%{custom_repositorydir}
install -m 0755 -d %{buildroot}%{repositorydir}
cp -r repos/* %{buildroot}%{repositorydir}/
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d/
+# NOTE(pstodulk): drop transaction dir and its content if replaced by config files before RHEL 10
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/transaction/
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
@@ -234,11 +251,10 @@ rm -rf %{buildroot}%{leapp_python_sitelib}/leapp/cli/commands/tests
# Remove irrelevant repositories - We don't want to ship them for the particular
# RHEL version
-%if 0%{?rhel} == 7
-rm -rf %{buildroot}%{repositorydir}/system_upgrade/el8toel9
-%else
-rm -rf %{buildroot}%{repositorydir}/system_upgrade/el7toel8
-%endif
+for i in el7toel8 el8toel9 el9toel10;
+do
+ [ "$i" != "%{repo_shortname}" ] && rm -rf %{buildroot}%{repositorydir}/system_upgrade/$i
+done
# remove component/unit tests, Makefiles, ... stuff that related to testing only
rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
diff --git a/packaging/other_specs/leapp-el7toel8-deps.spec b/packaging/other_specs/leapp-el7toel8-deps.spec
index c4e0dd90..d9e94faa 100644
--- a/packaging/other_specs/leapp-el7toel8-deps.spec
+++ b/packaging/other_specs/leapp-el7toel8-deps.spec
@@ -5,7 +5,11 @@
%if 0%{?rhel} == 8
%define lpr_name_src leapp-upgrade-el7toel8-deps
%else
- %define lpr_name_src leapp-upgrade-el8toel9-deps
+ %if 0%{?rhel} == 9
+ %define lpr_name_src leapp-upgrade-el8toel9-deps
+ %else
+ %define lpr_name_src leapp-upgrade-el9toel10-deps
+ %endif
%endif
--
2.42.0