diff --git a/.gitignore b/.gitignore index ccb9518..061c797 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/leapp-0.15.0.tar.gz +SOURCES/leapp-0.15.1.tar.gz diff --git a/.leapp.metadata b/.leapp.metadata index ffac38a..7131e64 100644 --- a/.leapp.metadata +++ b/.leapp.metadata @@ -1 +1 @@ -36cdd3d8d957a500c8dfe8dfb90ecd8c1ef84737 SOURCES/leapp-0.15.0.tar.gz +85884622ba869887d06166c29c0a72b91c01a04f SOURCES/leapp-0.15.1.tar.gz diff --git a/SOURCES/0001-Make-checks-for-missing-answers-more-strict.patch b/SOURCES/0001-Make-checks-for-missing-answers-more-strict.patch deleted file mode 100644 index 43345b8..0000000 --- a/SOURCES/0001-Make-checks-for-missing-answers-more-strict.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 84de08e3fe25c7eadf5cbb2f18b83acf3536fc2a Mon Sep 17 00:00:00 2001 -From: Inessa Vasilevskaya -Date: Tue, 6 Sep 2022 15:26:52 +0200 -Subject: [PATCH] Make checks for missing answers more strict - -Previously only presence of one section in the answerfile -has been verified, which led to false-positive preupgrade -reports when some other key has been present in the -dialog section instead of the required one. - -OAMG-7521 ---- - leapp/messaging/__init__.py | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/leapp/messaging/__init__.py b/leapp/messaging/__init__.py -index 1ecc42e..9896179 100644 ---- a/leapp/messaging/__init__.py -+++ b/leapp/messaging/__init__.py -@@ -152,10 +152,17 @@ class BaseMessaging(object): - """ - self._stop_after_phase.set(True) - -+ def _unanswered_questions(self, dialog): -+ userchoices = dialog.get_answers(self._answers) -+ res = [s for s in dialog.answerfile_sections.keys() if s.split('.', 2)[1] not in userchoices] -+ return res -+ - def register_dialog(self, dialog, actor): -+ # FIXME(ivasilev) Make sure it works correctly in case of a dialog with several questions. Currently there -+ # is no such dialog in actors but this code should be revisited if this changes. OAMG-7523 - self._dialogs.append(dialog) -- userchoices = dialog.get_answers(self._answers) -- if not userchoices: -+ unanswered = self._unanswered_questions(dialog) -+ if unanswered: - # produce DialogModel messages for all the dialogs that don't have answers in answerfile - stable_key = dialog.key if dialog.key else hashlib.sha1( - ','.join(sorted(dialog.answerfile_sections.keys())).encode('utf-8')).hexdigest() -@@ -164,6 +171,7 @@ class BaseMessaging(object): - key=stable_key), actor) - else: - # update dialogs with answers from answerfile. That is necessary for proper answerfile generation -+ userchoices = dialog.get_answers(self._answers) - for component, value in userchoices.items(): - dialog_component = dialog.component_by_key(component) - if dialog_component: --- -2.37.2 - diff --git a/SOURCES/0002-Add-Makefile-target-for-building-RPMs-locally-and-in.patch b/SOURCES/0002-Add-Makefile-target-for-building-RPMs-locally-and-in.patch deleted file mode 100644 index b180534..0000000 --- a/SOURCES/0002-Add-Makefile-target-for-building-RPMs-locally-and-in.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 46f589c539fb9053c5017f02d9303a324bfca6a2 Mon Sep 17 00:00:00 2001 -From: Matej Matuska <75834032+matejmatuska@users.noreply.github.com> -Date: Thu, 4 Aug 2022 17:30:34 +0200 -Subject: [PATCH 02/16] Add Makefile target for building RPMs locally and in - containers - -Add `build` target to build locally and `build_container` to build -locally in a container. Building in containers has the benefit of being -able to build on all the different platforms e.g. both on el7 and el8. - -Run `make build` to build locally. - -Run `make build_container` to build in a container. Note that -BUILD_CONTAINER environment variable must be set. - -Run `clean_containers` to clean up container images used for building. - -The containers are built from Containerfiles in `res/container-builds/`. -Since Containerfiles for all the Fedora versions would differ only in the `FROM` -statement, a generic Containerfile `Containerfile.fedora_generic` is -used and the `FROM` statement is inserted in the Makefile. - -For el7 builds CentOS 7 container is used, because rpm-build package -is not available in ubi7 image. - -Builds cannot be run in parallel because containers operate on the same -files, which would result in them conflicting. - -Also update `.gitignore` to exclude build files from git. ---- - .gitignore | 5 ++ - Makefile | 63 +++++++++++++++++-- - res/container-builds/Containerfile.centos7 | 11 ++++ - .../Containerfile.fedora_generic | 12 ++++ - res/container-builds/Containerfile.ubi8 | 12 ++++ - 5 files changed, 97 insertions(+), 6 deletions(-) - create mode 100644 res/container-builds/Containerfile.centos7 - create mode 100644 res/container-builds/Containerfile.fedora_generic - create mode 100644 res/container-builds/Containerfile.ubi8 - -diff --git a/.gitignore b/.gitignore -index d9ae04d..e9c1edb 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -33,3 +33,8 @@ res/schema/schemas.py - leapp.db - # do not ignore the directory with tests... - !tests/scripts/ -+ -+packaging/BUILD/ -+packaging/RPMS/ -+packaging/SRPMS/ -+packaging/sources/ -diff --git a/Makefile b/Makefile -index 59d5118..22d29a4 100644 ---- a/Makefile -+++ b/Makefile -@@ -76,7 +76,13 @@ help: - @echo " - available containers are: rhel7, rhel8, rhel9" - @echo " test_container_all runs linter and tests in all available containers" - @echo " lint runs just the linter" -- @echo " clean_containers cleans up all testing containers" -+ @echo " build create the RPM" -+ @echo " build_container create the RPM in container" -+ @echo " - set BUILD_CONTAINER to select the container" -+ @echo " - available containers are: el7, el8, f35, f36, rawhide" -+ @echo " - this can't be used to build in parallel," -+ @echo " as build containers operate on the same files" -+ @echo " clean_containers clean container images used for building" - @echo "" - @echo "Possible use:" - @echo " make " -@@ -85,11 +91,12 @@ help: - @echo " PR=7 SUFFIX='my_additional_suffix' make " - @echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' " - @echo " TEST_CONTAINER=rhel7 make test_container" -+ @echo " BUILD_CONTAINER=el7 make build_container" - @echo "" - - clean: - @echo "--- Clean repo ---" -- @rm -rf packaging/{sources,SRPMS}/ -+ @rm -rf packaging/{sources,SRPMS,BUILD,BUILDROOT,RPMS}/ - @rm -rf build/ dist/ *.egg-info - @find . -name '__pycache__' -exec rm -fr {} + - @find . -name '*.pyc' -exec rm -f {} + -@@ -97,7 +104,7 @@ clean: - - prepare: clean - @echo "--- Prepare build directories ---" -- @mkdir -p packaging/{sources,SRPMS}/ -+ @mkdir -p packaging/{sources,SRPMS,BUILD,BUILDROOT,RPMS}/ - - source: prepare - @echo "--- Create source tarball ---" -@@ -123,6 +130,50 @@ copr_build: srpm - @copr-cli --config $(_COPR_CONFIG) build $(_COPR_REPO) \ - packaging/SRPMS/${PKGNAME}-${VERSION}-${RELEASE}*.src.rpm - -+build: source -+ @echo "--- Build RPM ${PKGNAME}-${VERSION}-${RELEASE}.el$(DIST_VERSION).rpm ---" -+ @cp packaging/$(PKGNAME).spec packaging/$(PKGNAME).spec.bak -+ @sed -i "s/1%{?dist}/$(RELEASE)%{?dist}/g" packaging/$(PKGNAME).spec -+ @rpmbuild -ba packaging/$(PKGNAME).spec \ -+ --define "_sourcedir `pwd`/packaging/sources" \ -+ --define "_srcrpmdir `pwd`/packaging/SRPMS" \ -+ --define "_builddir `pwd`/packaging/BUILD" \ -+ --define "_buildrootdir `pwd`/packaging/BUILDROOT" \ -+ --define "_rpmdir `pwd`/packaging/RPMS" \ -+ --define "rhel $(DIST_VERSION)" \ -+ --define 'dist .el$(DIST_VERSION)' \ -+ --define 'el$(DIST_VERSION) 1' || FAILED=1 -+ @mv packaging/$(PKGNAME).spec.bak packaging/$(PKGNAME).spec -+ -+build_container: -+ @case "$$BUILD_CONTAINER" in \ -+ el7) \ -+ _CONT_FILE="Containerfile.centos7"; \ -+ ;; \ -+ el8) \ -+ _CONT_FILE="Containerfile.ubi8"; \ -+ ;; \ -+ f3[56]|rawhide) \ -+ [ $$BUILD_CONTAINER = rawhide ] && VERSION=latest || VERSION=$${BUILD_CONTAINER: -2}; \ -+ _CONT_FILE=".Containerfile.$${BUILD_CONTAINER}"; \ -+ cp res/container-builds/Containerfile.fedora_generic res/container-builds/$$_CONT_FILE && \ -+ sed -i "1i FROM fedora:$${VERSION}" res/container-builds/$$_CONT_FILE \ -+ ;; \ -+ "") \ -+ echo "BUILD_CONTAINER must be set"; \ -+ exit 1; \ -+ ;; \ -+ *) \ -+ echo "Available containers are el7, el8, f35, f36, rawhide"; \ -+ exit 1; \ -+ ;; \ -+ esac && \ -+ echo "--- Preparing $$BUILD_CONTAINER container for building ---" && \ -+ IMAGE_NAME="leapp-build-$${BUILD_CONTAINER}"; \ -+ podman build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \ -+ podman run --rm -ti -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \ -+ [ '$${_CONT_FILE:0:1}' = '.' ] && rm -f res/container-builds/$$_CONT_FILE || : -+ - print_release: - @echo $(RELEASE) - -@@ -179,8 +230,8 @@ test_container_all: - done - - clean_containers: -- @for i in "leapp-tests-rhel"{7,8,9}; do \ -- podman rmi "$$i" > /dev/null 2>&1 || :; \ -+ @for i in "leapp-build-"{el7,el8,f35,f36,rawhide} "leapp-tests-rhel"{7,8,9}; do \ -+ podman rmi "$$i" > /dev/null 2>&1 || :; \ - done - - lint: -@@ -216,4 +267,4 @@ fast_lint: - echo "No files to lint."; \ - fi - --.PHONY: clean copr_build install install-deps install-test srpm test test_container test_container_all lint fast_lint clean_containers -+.PHONY: clean copr_build build build_container install install-deps install-test srpm test test_container test_container_all lint fast_lint clean_containers -diff --git a/res/container-builds/Containerfile.centos7 b/res/container-builds/Containerfile.centos7 -new file mode 100644 -index 0000000..a3b0ea0 ---- /dev/null -+++ b/res/container-builds/Containerfile.centos7 -@@ -0,0 +1,11 @@ -+FROM centos:7 -+ -+VOLUME /payload -+ -+ENV DIST_VERSION 7 -+ -+RUN yum update -y && \ -+ yum install -y make git rpm-build python-setuptools python-devel -+ -+WORKDIR /payload -+ENTRYPOINT make build -diff --git a/res/container-builds/Containerfile.fedora_generic b/res/container-builds/Containerfile.fedora_generic -new file mode 100644 -index 0000000..c0af2b7 ---- /dev/null -+++ b/res/container-builds/Containerfile.fedora_generic -@@ -0,0 +1,12 @@ -+# FROM statement is inserted in Makefile -+ -+VOLUME /payload -+ -+ENV DIST_VERSION 8 -+ -+RUN dnf update -y && \ -+ dnf install -y python3 make git rpm-build python3-devel -+ #yum install -y python3-pip && \ python3 -m pip install --upgrade pip==20.3.4 -+ -+WORKDIR /payload -+ENTRYPOINT make build -diff --git a/res/container-builds/Containerfile.ubi8 b/res/container-builds/Containerfile.ubi8 -new file mode 100644 -index 0000000..0b2c021 ---- /dev/null -+++ b/res/container-builds/Containerfile.ubi8 -@@ -0,0 +1,12 @@ -+FROM registry.access.redhat.com/ubi8/ubi:latest -+ -+VOLUME /payload -+ -+ENV DIST_VERSION 8 -+ -+RUN dnf update -y && \ -+ dnf install -y python3 make git rpm-build python3-devel -+ #yum install -y python3-pip && \ python3 -m pip install --upgrade pip==20.3.4 -+ -+WORKDIR /payload -+ENTRYPOINT make build --- -2.39.0 - diff --git a/SOURCES/0003-Add-possibility-to-use-docker-to-run-tests-and-build.patch b/SOURCES/0003-Add-possibility-to-use-docker-to-run-tests-and-build.patch deleted file mode 100644 index 9183666..0000000 --- a/SOURCES/0003-Add-possibility-to-use-docker-to-run-tests-and-build.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 6ae95a1d2f73e4eb45e97903390f71e03555e841 Mon Sep 17 00:00:00 2001 -From: Matej Matuska -Date: Mon, 26 Sep 2022 08:42:50 +0200 -Subject: [PATCH 03/16] Add possibility to use docker to run tests and build in - containers - -On some systems podman is unavailable. Also, some people prefer docker -over podman. Add possibility to use docker to run tests and build -packages. - -Set the CONTAINER_TOOL environment variable to change the container -tool used for running tests and building packages, for example: -CONTAINER_TOOL="docker" make test_container. - -Unless you are running the Docker daemon in rootless mode, you will have -to run as root. In such case files created in `packaging/` using -`build_container` and in `testenv/` using `test_container` will be owned -by root. To change the ownership back to your user, you can for example -run `chown -R $USER packaging/ testenv/`. - -The `clean_container` target now checks the existency of image before -deleting it, otherwise the command would silently fail when ran without -correct permission. - -Jira ref.: OAMG-7286 ---- - Makefile | 15 ++++++++++----- - 1 file changed, 10 insertions(+), 5 deletions(-) - -diff --git a/Makefile b/Makefile -index 22d29a4..d392765 100644 ---- a/Makefile -+++ b/Makefile -@@ -15,6 +15,9 @@ VERSION=`grep -m1 "^Version:" packaging/$(PKGNAME).spec | grep -om1 "[0-9].[0-9. - _COPR_REPO=$${COPR_REPO:-leapp} - _COPR_CONFIG=$${COPR_CONFIG:-~/.config/copr_rh_oamg.conf} - -+# tool used to run containers for testing and building packages -+_CONTAINER_TOOL=$${CONTAINER_TOOL:-podman} -+ - # container used to run unit tests - _TEST_CONTAINER=$${TEST_CONTAINER:-rhel8} - -@@ -92,6 +95,7 @@ help: - @echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' " - @echo " TEST_CONTAINER=rhel7 make test_container" - @echo " BUILD_CONTAINER=el7 make build_container" -+ @echo " CONTAINER_TOOL=docker make test_container" - @echo "" - - clean: -@@ -170,8 +174,8 @@ build_container: - esac && \ - echo "--- Preparing $$BUILD_CONTAINER container for building ---" && \ - IMAGE_NAME="leapp-build-$${BUILD_CONTAINER}"; \ -- podman build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \ -- podman run --rm -ti -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \ -+ $(_CONTAINER_TOOL) build -f res/container-builds/$$_CONT_FILE -t $$IMAGE_NAME res/container-builds/ && \ -+ $(_CONTAINER_TOOL) run --rm -v $$PWD:/payload:Z --name "$${IMAGE_NAME}-cont" $$IMAGE_NAME && \ - [ '$${_CONT_FILE:0:1}' = '.' ] && rm -f res/container-builds/$$_CONT_FILE || : - - print_release: -@@ -221,8 +225,8 @@ test_container: - esac; \ - export TEST_IMAGE="leapp-tests-$(_TEST_CONTAINER)"; \ - rm -rf testenv/ && \ -- podman build -t $$TEST_IMAGE -f $$_CONT_FILE res/container-tests && \ -- podman run --rm -v $${PWD}:/payload:Z -e PYTHON_VENV=$$_VENV $$TEST_IMAGE -+ $(_CONTAINER_TOOL) build -t $$TEST_IMAGE -f $$_CONT_FILE res/container-tests && \ -+ $(_CONTAINER_TOOL) run --rm -v $${PWD}:/payload:Z -e PYTHON_VENV=$$_VENV $$TEST_IMAGE - - test_container_all: - @for container in "rhel"{7,8,9}; do \ -@@ -231,7 +235,8 @@ test_container_all: - - clean_containers: - @for i in "leapp-build-"{el7,el8,f35,f36,rawhide} "leapp-tests-rhel"{7,8,9}; do \ -- podman rmi "$$i" > /dev/null 2>&1 || :; \ -+ [ -z $$($(_CONTAINER_TOOL) images -q "$$i") ] || \ -+ $(_CONTAINER_TOOL) rmi "$$i" > /dev/null 2>&1 || :; \ - done - - lint: --- -2.39.0 - diff --git a/SOURCES/0004-Document-workaround-for-the-broken-snactor.patch b/SOURCES/0004-Document-workaround-for-the-broken-snactor.patch deleted file mode 100644 index 44a76b7..0000000 --- a/SOURCES/0004-Document-workaround-for-the-broken-snactor.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 18f6055615320d721c3ee5f1237a02d31540b03b Mon Sep 17 00:00:00 2001 -From: Jakub Jelen -Date: Thu, 6 Oct 2022 19:21:14 +0200 -Subject: [PATCH 04/16] Document workaround for the broken snactor - -prefer having this documented instead answering everyone questions why it does not work when it is in documentation. At least until it is fixed. ---- - docs/source/el7toel8/actor-rhel7-to-rhel8.md | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/docs/source/el7toel8/actor-rhel7-to-rhel8.md b/docs/source/el7toel8/actor-rhel7-to-rhel8.md -index 4157cfb..b7c1e5c 100644 ---- a/docs/source/el7toel8/actor-rhel7-to-rhel8.md -+++ b/docs/source/el7toel8/actor-rhel7-to-rhel8.md -@@ -327,6 +327,17 @@ data is stored in the database for the current session: - ```shell - snactor run --save-output IPUWorkflowConfig - ``` -+Since the leapp supports several upgrade paths, the `snactor` needs to know target system and upgrade flavor specification for correct execution. -+If you see similar errors when running `snactor` -+``` -+leapp.models.fields.ModelViolationError: The value of "target" field is None, but this is not allowed -+``` -+please, set the following environment variables (adjust the `LEAPP_UPGRADE_PATH_TARGET_RELEASE` as needed): -+``` -+export LEAPP_UPGRADE_PATH_TARGET_RELEASE=8.6 -+export LEAPP_UPGRADE_PATH_FLAVOUR=default -+snactor run --save-output IPUWorkflowConfig -+``` - - ### Executing the whole upgrade workflow with the new actor - --- -2.39.0 - diff --git a/SOURCES/0005-Improve-wording.patch b/SOURCES/0005-Improve-wording.patch deleted file mode 100644 index 7c94b4f..0000000 --- a/SOURCES/0005-Improve-wording.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d8e01d7b7c54db46fbf7dffde01094399d796f4f Mon Sep 17 00:00:00 2001 -From: Jakub Jelen -Date: Fri, 7 Oct 2022 12:27:28 +0200 -Subject: [PATCH 05/16] Improve wording -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Co-authored-by: Petr Stodůlka ---- - docs/source/el7toel8/actor-rhel7-to-rhel8.md | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/source/el7toel8/actor-rhel7-to-rhel8.md b/docs/source/el7toel8/actor-rhel7-to-rhel8.md -index b7c1e5c..a6ecf37 100644 ---- a/docs/source/el7toel8/actor-rhel7-to-rhel8.md -+++ b/docs/source/el7toel8/actor-rhel7-to-rhel8.md -@@ -327,7 +327,7 @@ data is stored in the database for the current session: - ```shell - snactor run --save-output IPUWorkflowConfig - ``` --Since the leapp supports several upgrade paths, the `snactor` needs to know target system and upgrade flavor specification for correct execution. -+Since the leapp upgrade repositories support several upgrade paths, the `snactor` needs to get additional data for the correct execution, like the release of the target system, the flavor specification, etc. - If you see similar errors when running `snactor` - ``` - leapp.models.fields.ModelViolationError: The value of "target" field is None, but this is not allowed --- -2.39.0 - diff --git a/SOURCES/0006-Docs-update-the-leapp-deprecation-doc-add-v0.15.0.patch b/SOURCES/0006-Docs-update-the-leapp-deprecation-doc-add-v0.15.0.patch deleted file mode 100644 index 901fb68..0000000 --- a/SOURCES/0006-Docs-update-the-leapp-deprecation-doc-add-v0.15.0.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 14fae66738fbff1ace3407767da3ca97bb852a3b Mon Sep 17 00:00:00 2001 -From: Petr Stodulka -Date: Tue, 18 Oct 2022 10:16:48 +0200 -Subject: [PATCH 06/16] Docs: update the leapp deprecation doc (add v0.15.0) - ---- - docs/source/deprecation.md | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/source/deprecation.md b/docs/source/deprecation.md -index a9e9776..28dbc14 100644 ---- a/docs/source/deprecation.md -+++ b/docs/source/deprecation.md -@@ -17,7 +17,7 @@ such information, see [Deprecated functionality in the el7toel8 repository](el7t - - - nothing yet... - --## current upstream development (till Mar 2023) -+## v0.15.0 (till Mar 2023) - - - Reporting primitives - - **`leapp.reporting.Flags`** - The `Flags` report primitive has been deprecated in favor of the more general `Groups` one. --- -2.39.0 - diff --git a/SOURCES/0007-snactor.sanity-check-Add-option-to-ignore-models.patch b/SOURCES/0007-snactor.sanity-check-Add-option-to-ignore-models.patch deleted file mode 100644 index ce5fcd1..0000000 --- a/SOURCES/0007-snactor.sanity-check-Add-option-to-ignore-models.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 9b26394f337f7e28a2709d6fd0d1c54deaa43d74 Mon Sep 17 00:00:00 2001 -From: Vinzenz Feenstra -Date: Fri, 27 Nov 2020 22:15:54 +0100 -Subject: [PATCH 07/16] snactor.sanity-check: Add option to ignore models - -Previously, if a Model was being consumed by actor before it was -produced, `snactor sanity-check` reported a failure. This however -blocks some use case in leapp-repository now, where there is the -possibility to supply user data and it is being verified before in a -later stage it actually is used. This sanitization actor causes this -check to fail and would force an ugly workaround by having a dummy actor -pretending to produce the message earlier. - -This patch will introduce two ways of handling this situation by -ignoring the models. Either each model can be specified as a commandline -option --ignore or a path to a file containing a list of such models can -be supplied via --ignorefile. -Any of those specified model names supplied via --ignore or the -ignore file will no longer be considered a failure. - -Signed-off-by: Vinzenz Feenstra ---- - .../snactor/commands/workflow/sanity_check.py | 22 +++++++++++++++---- - 1 file changed, 18 insertions(+), 4 deletions(-) - -diff --git a/leapp/snactor/commands/workflow/sanity_check.py b/leapp/snactor/commands/workflow/sanity_check.py -index 14de28a..6f5db78 100644 ---- a/leapp/snactor/commands/workflow/sanity_check.py -+++ b/leapp/snactor/commands/workflow/sanity_check.py -@@ -1,19 +1,23 @@ - from __future__ import print_function -+ - import sys - --from leapp.exceptions import LeappError, CommandError -+from leapp.exceptions import CommandError, LeappError - from leapp.logger import configure_logger - from leapp.repository.scan import find_and_scan_repositories - from leapp.snactor.commands.workflow import workflow --from leapp.utils.clicmd import command_arg -+from leapp.utils.clicmd import command_arg, command_opt - from leapp.utils.output import Color --from leapp.utils.repository import requires_repository, find_repository_basedir -+from leapp.utils.repository import find_repository_basedir, requires_repository - - _DESCRIPTION = 'The following messages are attempted to be consumed before they are produced: {}' - _LONG_DESCRIPTION = ''' - Perform workflow sanity checks - - - check whether there is a message in the given workflow which is attempted to be consumed before it was produced -+ --ignore can be used to specify one or multiple times to ignore the above condition -+ --ignorefile can be used to specify a file to load a list of ignored models. The list shall be -+ new line separated. Lines beginning with # are considered comments. - - For more information please consider reading the documentation at: - https://red.ht/leapp-docs -@@ -24,10 +28,19 @@ def print_fail(error): - print('{red}FAIL: {error}{reset}'.format(red=Color.red, error=error, reset=Color.reset), file=sys.stderr, end='\n') - - -+def _ignore_file_content(path): -+ if path: -+ with open(path) as f: -+ return [line.strip() for line in f.read().split('\n') if not line.strip().startswith('#')] -+ -+ - @workflow.command('sanity-check', help='Perform workflow sanity checks', description=_LONG_DESCRIPTION) - @command_arg('name') -+@command_opt('ignore', metavar='', action='append', help='Models to ignore in the sanity check.') -+@command_opt('ignorefile', metavar='', help='File with a list of model names to ignore.') - @requires_repository - def cli(params): -+ ignored_models = set(params.ignore or []) | set(_ignore_file_content(params.ignorefile)) - configure_logger() - repository = find_and_scan_repositories(find_repository_basedir('.'), include_locals=True) - try: -@@ -43,6 +56,7 @@ def cli(params): - - instance = wf() - produced_late = set(instance.initial).intersection(set(instance.produces)) -- if produced_late: -+ produced_late_names = [model.__name__ for model in produced_late if model.__name__ not in ignored_models] -+ if produced_late_names: - print_fail(_DESCRIPTION.format(' '.join([m.__name__ for m in produced_late]))) - sys.exit(1) --- -2.39.0 - diff --git a/SOURCES/0008-Update-leapp-snactor-commands-workflow-sanity_check..patch b/SOURCES/0008-Update-leapp-snactor-commands-workflow-sanity_check..patch deleted file mode 100644 index 3beb054..0000000 --- a/SOURCES/0008-Update-leapp-snactor-commands-workflow-sanity_check..patch +++ /dev/null @@ -1,34 +0,0 @@ -From 833981217329e43b73840e796bc88978cb3ae272 Mon Sep 17 00:00:00 2001 -From: Vinzenz 'evilissimo' Feenstra -Date: Mon, 31 Oct 2022 14:51:20 +0100 -Subject: [PATCH 08/16] Update leapp/snactor/commands/workflow/sanity_check.py -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Co-authored-by: Petr Stodůlka ---- - leapp/snactor/commands/workflow/sanity_check.py | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/leapp/snactor/commands/workflow/sanity_check.py b/leapp/snactor/commands/workflow/sanity_check.py -index 6f5db78..ac98dae 100644 ---- a/leapp/snactor/commands/workflow/sanity_check.py -+++ b/leapp/snactor/commands/workflow/sanity_check.py -@@ -29,9 +29,10 @@ def print_fail(error): - - - def _ignore_file_content(path): -- if path: -- with open(path) as f: -- return [line.strip() for line in f.read().split('\n') if not line.strip().startswith('#')] -+ if not path: -+ return [] -+ with open(path) as f: -+ return [line.strip() for line in f.read().split('\n') if line.strip() and not line.strip().startswith('#')] - - - @workflow.command('sanity-check', help='Perform workflow sanity checks', description=_LONG_DESCRIPTION) --- -2.39.0 - diff --git a/SOURCES/0009-Tune-tmt-tests-regexes-to-align-with-QE-automation.patch b/SOURCES/0009-Tune-tmt-tests-regexes-to-align-with-QE-automation.patch deleted file mode 100644 index 428d18c..0000000 --- a/SOURCES/0009-Tune-tmt-tests-regexes-to-align-with-QE-automation.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 98a6bcebba640c7645c02465dde4895227cce825 Mon Sep 17 00:00:00 2001 -From: Inessa Vasilevskaya -Date: Thu, 10 Nov 2022 13:19:40 +0100 -Subject: [PATCH 09/16] Tune tmt tests regexes to align with QE automation - -In order for upstream tests and those launched with QE tooling -to produce the comparable set of results it's a wise thing to -do. ---- - .github/workflows/reuse-tests-7to8.yml | 2 +- - .github/workflows/reuse-tests-8to9.yml | 2 +- - .github/workflows/tmt-tests.yml | 16 ++++++++-------- - 3 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml -index 9d8e0db..b1a9a8e 100644 ---- a/.github/workflows/reuse-tests-7to8.yml -+++ b/.github/workflows/reuse-tests-7to8.yml -@@ -13,7 +13,7 @@ on: - type: string - tmt_plan_regex: - type: string -- default: "^(?!.*c2r)(?!.*sap)(?!.*8to9)" -+ default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)" - environment_settings: - type: string - default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' -diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml -index a7adace..828a717 100644 ---- a/.github/workflows/reuse-tests-8to9.yml -+++ b/.github/workflows/reuse-tests-8to9.yml -@@ -13,7 +13,7 @@ on: - type: string - tmt_plan_regex: - type: string -- default: "^(?!.*c2r)(?!.*sap)(?!.*7to8)" -+ default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)" - environment_settings: - type: string - default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' -diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml -index cfad280..6b9a0b4 100644 ---- a/.github/workflows/tmt-tests.yml -+++ b/.github/workflows/tmt-tests.yml -@@ -16,7 +16,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" - pull_request_status_name: "7.9to8.4" - - call_workflow_tests_79to86_integration: -@@ -25,7 +25,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" - variables: 'TARGET_RELEASE=8.6' - pull_request_status_name: "7.9to8.6" - -@@ -35,7 +35,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(.*morf)" -+ tmt_plan_regex: "^(/plans/morf)(?!.*sap)" - pull_request_status_name: "7.9to8.4-sst" - update_pull_request_status: 'false' - if: | -@@ -49,7 +49,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" - compose: "RHEL-7.9-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}' - pull_request_status_name: "7to8-aws-e2e" -@@ -61,7 +61,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" - pull_request_status_name: "8.6to9.0" - - call_workflow_tests_87to91_integration: -@@ -70,7 +70,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" - variables: 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta;RHSM_SKU=RH00069;TARGET_RELEASE=9.1;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms' - compose: 'RHEL-8.7.0-Nightly' - pull_request_status_name: "8.7to9.1" -@@ -82,7 +82,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(.*morf)" -+ tmt_plan_regex: "^(/plans/morf)(?!.*sap)" - pull_request_status_name: "8.6to9.0-sst" - update_pull_request_status: 'false' - if: | -@@ -96,7 +96,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" - compose: "RHEL-8.6-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' - pull_request_status_name: "8to9-aws-e2e" --- -2.39.0 - diff --git a/SOURCES/0010-Change-rerun-all-to-rerun-sst.patch b/SOURCES/0010-Change-rerun-all-to-rerun-sst.patch deleted file mode 100644 index 690b659..0000000 --- a/SOURCES/0010-Change-rerun-all-to-rerun-sst.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0e732fca2e8519f135ec5a18b032b6facb022c99 Mon Sep 17 00:00:00 2001 -From: Inessa Vasilevskaya -Date: Thu, 10 Nov 2022 13:21:49 +0100 -Subject: [PATCH 10/16] Change /rerun-all to /rerun-sst - -Change the concept from "rerun all tests + morf ones" to -"rerun just the morf tests". -Welcome message updated as well. ---- - .github/workflows/pr-welcome-msg.yml | 4 ++-- - .github/workflows/reuse-copr-build.yml | 2 +- - .github/workflows/tmt-tests.yml | 28 ++++++++++++++++++++++++-- - 3 files changed, 29 insertions(+), 5 deletions(-) - -diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml -index 1bfcd2b..67393f9 100644 ---- a/.github/workflows/pr-welcome-msg.yml -+++ b/.github/workflows/pr-welcome-msg.yml -@@ -27,8 +27,8 @@ jobs: - To launch regression testing public members of oamg organization can leave the following comment: - - **/rerun** to schedule basic regression tests using this pr build and leapp-repository\*master\* as artifacts - - **/rerun 42** to schedule basic regression tests using this pr build and leapp-repository\*PR42\* as artifacts -- - **/rerun-all** to schedule all tests (including sst) using this pr build and leapp-repository\*master\* as artifacts -- - **/rerun-all 42** to schedule all tests (including sst) using this pr build and leapp-repository\*PR42\* as artifacts -+ - **/rerun-sst** to schedule sst tests using this pr build and leapp-repository\*master\* as artifacts -+ - **/rerun-sst 42** to schedule sst tests using this pr build and leapp-repository\*PR42\* as artifacts - - Please [open ticket](https://url.corp.redhat.com/oamg-ci-issue) in case you experience technical problem with the CI. (RH internal only) - -diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml -index ccfee83..bdddc36 100644 ---- a/.github/workflows/reuse-copr-build.yml -+++ b/.github/workflows/reuse-copr-build.yml -@@ -33,7 +33,7 @@ jobs: - id: leapp_repository_pr_regex_match - with: - text: ${{ github.event.comment.body }} -- regex: '^/(rerun|rerun-all)\s+([0-9]+)\s*$' -+ regex: '^/(rerun|rerun-sst)\s+([0-9]+)\s*$' - - - name: Get pull request number - id: pr_nr -diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml -index 6b9a0b4..15b7eb3 100644 ---- a/.github/workflows/tmt-tests.yml -+++ b/.github/workflows/tmt-tests.yml -@@ -18,6 +18,10 @@ jobs: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" - pull_request_status_name: "7.9to8.4" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_79to86_integration: - needs: call_workflow_copr_build -@@ -28,6 +32,10 @@ jobs: - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" - variables: 'TARGET_RELEASE=8.6' - pull_request_status_name: "7.9to8.6" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_79to84_sst: - needs: call_workflow_copr_build -@@ -40,7 +48,7 @@ jobs: - update_pull_request_status: 'false' - if: | - github.event.issue.pull_request -- && startsWith(github.event.comment.body, '/rerun-all') -+ && startsWith(github.event.comment.body, '/rerun-sst') - && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_7to8_aws: -@@ -54,6 +62,10 @@ jobs: - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}' - pull_request_status_name: "7to8-aws-e2e" - variables: "RHUI=aws" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_86to90_integration: - needs: call_workflow_copr_build -@@ -63,6 +75,10 @@ jobs: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" - pull_request_status_name: "8.6to9.0" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_87to91_integration: - needs: call_workflow_copr_build -@@ -75,6 +91,10 @@ jobs: - compose: 'RHEL-8.7.0-Nightly' - pull_request_status_name: "8.7to9.1" - tmt_context: "distro=rhel-8.7" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_86to90_sst: - needs: call_workflow_copr_build -@@ -87,7 +107,7 @@ jobs: - update_pull_request_status: 'false' - if: | - github.event.issue.pull_request -- && startsWith(github.event.comment.body, '/rerun-all') -+ && startsWith(github.event.comment.body, '/rerun-sst') - && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - - call_workflow_tests_8to9_aws: -@@ -101,3 +121,7 @@ jobs: - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' - pull_request_status_name: "8to9-aws-e2e" - variables: "RHUI=aws" -+ if: | -+ github.event.issue.pull_request -+ && ! startsWith(github.event.comment.body, '/rerun-sst') -+ && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) --- -2.39.0 - diff --git a/SOURCES/0011-Do-not-run-rhsm-tests-in-upstream.patch b/SOURCES/0011-Do-not-run-rhsm-tests-in-upstream.patch deleted file mode 100644 index 674b8b4..0000000 --- a/SOURCES/0011-Do-not-run-rhsm-tests-in-upstream.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 057b2887586e9255c2b45c2ce9463240d1a1b484 Mon Sep 17 00:00:00 2001 -From: Inessa Vasilevskaya -Date: Mon, 28 Nov 2022 12:50:47 +0100 -Subject: [PATCH 11/16] Do not run rhsm tests in upstream - -It was decided to limit test tuns to tier0/tier1, non-RHSM -tests only. -Also this patch will keep github action parameters in sync with -supported upgrade paths. ---- - .github/workflows/reuse-tests-7to8.yml | 2 +- - .github/workflows/reuse-tests-8to9.yml | 2 +- - .github/workflows/tmt-tests.yml | 34 ++++++++++++++------------ - 3 files changed, 21 insertions(+), 17 deletions(-) - -diff --git a/.github/workflows/reuse-tests-7to8.yml b/.github/workflows/reuse-tests-7to8.yml -index b1a9a8e..cfdfb35 100644 ---- a/.github/workflows/reuse-tests-7to8.yml -+++ b/.github/workflows/reuse-tests-7to8.yml -@@ -13,7 +13,7 @@ on: - type: string - tmt_plan_regex: - type: string -- default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)" -+ default: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)" - environment_settings: - type: string - default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' -diff --git a/.github/workflows/reuse-tests-8to9.yml b/.github/workflows/reuse-tests-8to9.yml -index 828a717..5d2e9d5 100644 ---- a/.github/workflows/reuse-tests-8to9.yml -+++ b/.github/workflows/reuse-tests-8to9.yml -@@ -13,7 +13,7 @@ on: - type: string - tmt_plan_regex: - type: string -- default: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)" -+ default: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)" - environment_settings: - type: string - default: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' -diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml -index 15b7eb3..2212453 100644 ---- a/.github/workflows/tmt-tests.yml -+++ b/.github/workflows/tmt-tests.yml -@@ -10,14 +10,15 @@ jobs: - uses: ./.github/workflows/reuse-copr-build.yml - secrets: inherit - -- call_workflow_tests_79to84_integration: -+ call_workflow_tests_79to88_integration: - needs: call_workflow_copr_build - uses: ./.github/workflows/reuse-tests-7to8.yml - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -- pull_request_status_name: "7.9to8.4" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -+ pull_request_status_name: "7.9to8.8" -+ variables: 'TARGET_RELEASE=8.8' - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') -@@ -29,7 +30,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" - variables: 'TARGET_RELEASE=8.6' - pull_request_status_name: "7.9to8.6" - if: | -@@ -37,15 +38,16 @@ jobs: - && ! startsWith(github.event.comment.body, '/rerun-sst') - && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - -- call_workflow_tests_79to84_sst: -+ call_workflow_tests_79to88_sst: - needs: call_workflow_copr_build - uses: ./.github/workflows/reuse-tests-7to8.yml - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(/plans/morf)(?!.*sap)" -- pull_request_status_name: "7.9to8.4-sst" -+ pull_request_status_name: "7.9to8.8-sst" - update_pull_request_status: 'false' -+ variables: 'TARGET_RELEASE=8.8' - if: | - github.event.issue.pull_request - && startsWith(github.event.comment.body, '/rerun-sst') -@@ -57,7 +59,7 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" - compose: "RHEL-7.9-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}' - pull_request_status_name: "7to8-aws-e2e" -@@ -73,23 +75,24 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' - pull_request_status_name: "8.6to9.0" - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') - && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - -- call_workflow_tests_87to91_integration: -+ call_workflow_tests_87to90_integration: - needs: call_workflow_copr_build - uses: ./.github/workflows/reuse-tests-8to9.yml - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -- variables: 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE=beta;RHSM_SKU=RH00069;TARGET_RELEASE=9.1;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms' -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms' - compose: 'RHEL-8.7.0-Nightly' -- pull_request_status_name: "8.7to9.1" -+ pull_request_status_name: "8.7to9.0" - tmt_context: "distro=rhel-8.7" - if: | - github.event.issue.pull_request -@@ -103,6 +106,7 @@ jobs: - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(/plans/morf)(?!.*sap)" -+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' - pull_request_status_name: "8.6to9.0-sst" - update_pull_request_status: 'false' - if: | -@@ -110,17 +114,17 @@ jobs: - && startsWith(github.event.comment.body, '/rerun-sst') - && contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) - -- call_workflow_tests_8to9_aws: -+ call_workflow_tests_86to90_aws: - needs: call_workflow_copr_build - uses: ./.github/workflows/reuse-tests-8to9.yml - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" - compose: "RHEL-8.6-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' - pull_request_status_name: "8to9-aws-e2e" -- variables: "RHUI=aws" -+ variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws' - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') --- -2.39.0 - diff --git a/SOURCES/0012-Set-SOURCE_RELEASE-env-var.patch b/SOURCES/0012-Set-SOURCE_RELEASE-env-var.patch deleted file mode 100644 index b01aa79..0000000 --- a/SOURCES/0012-Set-SOURCE_RELEASE-env-var.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 821358f50454108b3b43c1e51623089424a8cc7b Mon Sep 17 00:00:00 2001 -From: Inessa Vasilevskaya -Date: Fri, 16 Dec 2022 11:38:53 +0100 -Subject: [PATCH 12/16] Set SOURCE_RELEASE env var - -Following a change in tmt-tests this is a necessary addition -for upgrade_plugin to correctly choose an upgrade path. ---- - .github/workflows/tmt-tests.yml | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml -index 2212453..1fd012b 100644 ---- a/.github/workflows/tmt-tests.yml -+++ b/.github/workflows/tmt-tests.yml -@@ -18,7 +18,7 @@ jobs: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" - pull_request_status_name: "7.9to8.8" -- variables: 'TARGET_RELEASE=8.8' -+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.8' - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') -@@ -30,8 +30,8 @@ jobs: - secrets: inherit - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} -- tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -- variables: 'TARGET_RELEASE=8.6' -+ tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*morf)" -+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.6' - pull_request_status_name: "7.9to8.6" - if: | - github.event.issue.pull_request -@@ -47,7 +47,7 @@ jobs: - tmt_plan_regex: "^(/plans/morf)(?!.*sap)" - pull_request_status_name: "7.9to8.8-sst" - update_pull_request_status: 'false' -- variables: 'TARGET_RELEASE=8.8' -+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.8' - if: | - github.event.issue.pull_request - && startsWith(github.event.comment.body, '/rerun-sst') -@@ -63,7 +63,7 @@ jobs: - compose: "RHEL-7.9-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"}}' - pull_request_status_name: "7to8-aws-e2e" -- variables: "RHUI=aws" -+ variables: 'SOURCE_RELEASE=7.9;TARGET_RELEASE=8.6;RHUI=aws' - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') -@@ -76,7 +76,7 @@ jobs: - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' -+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' - pull_request_status_name: "8.6to9.0" - if: | - github.event.issue.pull_request -@@ -90,7 +90,7 @@ jobs: - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*morf)" -- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms' -+ variables: 'SOURCE_RELEASE=8.7;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms' - compose: 'RHEL-8.7.0-Nightly' - pull_request_status_name: "8.7to9.0" - tmt_context: "distro=rhel-8.7" -@@ -106,7 +106,7 @@ jobs: - with: - copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }} - tmt_plan_regex: "^(/plans/morf)(?!.*sap)" -- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' -+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms' - pull_request_status_name: "8.6to9.0-sst" - update_pull_request_status: 'false' - if: | -@@ -124,7 +124,7 @@ jobs: - compose: "RHEL-8.6-rhui" - environment_settings: '{"provisioning": {"post_install_script": "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"}}' - pull_request_status_name: "8to9-aws-e2e" -- variables: 'TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws' -+ variables: 'SOURCE_RELEASE=8.6;TARGET_RELEASE=9.0;TARGET_KERNEL=el9;RHSM_REPOS=rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms;RHUI=aws' - if: | - github.event.issue.pull_request - && ! startsWith(github.event.comment.body, '/rerun-sst') --- -2.39.0 - diff --git a/SOURCES/0013-change-the-permissions-for-var-lib-leapp-directory-f.patch b/SOURCES/0013-change-the-permissions-for-var-lib-leapp-directory-f.patch deleted file mode 100644 index 6a944de..0000000 --- a/SOURCES/0013-change-the-permissions-for-var-lib-leapp-directory-f.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 895caae0dac1dabd0966b5c4c9e29b86573fe0c8 Mon Sep 17 00:00:00 2001 -From: PeterMocary -Date: Fri, 16 Dec 2022 16:20:49 +0100 -Subject: [PATCH 13/16] change the permissions for /var/lib/leapp directory - from '755' to '700' - ---- - Makefile | 2 +- - packaging/leapp.spec | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index d392765..2653896 100644 ---- a/Makefile -+++ b/Makefile -@@ -188,7 +188,7 @@ install: - install -dm 0755 ${CONFDIR} - install -m 0744 etc/leapp/leapp.conf ${CONFDIR} - install -m 0744 etc/leapp/logger.conf ${CONFDIR} -- install -dm 0755 ${LIBDIR} -+ install -dm 0700 ${LIBDIR} - umask 177 && $(PYTHON_VENV) -c "import sqlite3; sqlite3.connect('${LIBDIR}/audit.db').executescript(open('res/audit-layout.sql', 'r').read())" - - install-test: -diff --git a/packaging/leapp.spec b/packaging/leapp.spec -index dfca9aa..071ffe7 100644 ---- a/packaging/leapp.spec -+++ b/packaging/leapp.spec -@@ -180,7 +180,7 @@ install -m 0644 -p man/snactor.1 %{buildroot}%{_mandir}/man1/ - install -m 0755 -d %{buildroot}%{_datadir}/leapp - install -m 0755 -d %{buildroot}%{_datadir}/leapp/report_schema - install -m 0644 -p report-schema-v110.json %{buildroot}%{_datadir}/leapp/report_schema/report-schema.json --install -m 0755 -d %{buildroot}%{_sharedstatedir}/leapp -+install -m 0700 -d %{buildroot}%{_sharedstatedir}/leapp - install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp - install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d - install -m 0600 -d %{buildroot}%{_sysconfdir}/leapp/answers --- -2.39.0 - diff --git a/SOURCES/0014-Expose-tracebacks-from-actor-exceptions.patch b/SOURCES/0014-Expose-tracebacks-from-actor-exceptions.patch deleted file mode 100644 index 7ec463d..0000000 --- a/SOURCES/0014-Expose-tracebacks-from-actor-exceptions.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 3d453d180d9b7bf0e283e313d1b5e294a5b4aeeb Mon Sep 17 00:00:00 2001 -From: Roman Prilipskii -Date: Wed, 9 Nov 2022 07:22:54 +0400 -Subject: [PATCH 14/16] Expose tracebacks from actor exceptions - -Previously when leapp would be running actors, any exceptions raised by -those actors in child processes would only be output to stderr, -while the main process would only have the exit code to examine. - -Consequently, there was no real way to log occuring exceptions - -only providing the aforementioned exit code was possible. - -This patch adds a pipe between the main and the actor processes, -through which a formatted exception + traceback string is provided to -the main process. -This string is then packaged into the LeappRuntimeError thrown from the -process, to be utilized downstream in -workflow/command code. ---- - leapp/exceptions.py | 4 +++- - leapp/repository/actor_definition.py | 31 +++++++++++++++++++++------- - 2 files changed, 27 insertions(+), 8 deletions(-) - -diff --git a/leapp/exceptions.py b/leapp/exceptions.py -index 1bd4222..ef9d647 100644 ---- a/leapp/exceptions.py -+++ b/leapp/exceptions.py -@@ -109,7 +109,9 @@ class UnknownCommandError(LeappError): - - - class LeappRuntimeError(LeappError): -- pass -+ def __init__(self, message, exception_info): -+ super().__init__(message) -+ self.exception_info = exception_info - - - class StopActorExecution(Exception): -diff --git a/leapp/repository/actor_definition.py b/leapp/repository/actor_definition.py -index 7c0beb9..2b5df1a 100644 ---- a/leapp/repository/actor_definition.py -+++ b/leapp/repository/actor_definition.py -@@ -4,9 +4,10 @@ import logging - import os - import pkgutil - import sys -+import traceback - import warnings - from io import UnsupportedOperation --from multiprocessing import Process, Queue -+from multiprocessing import Process, Queue, Pipe - - import leapp.libraries.actor # noqa # pylint: disable=unused-import - from leapp.actors import get_actor_metadata, get_actors -@@ -56,7 +57,7 @@ class ActorCallContext(object): - self.skip_dialogs = skip_dialogs - - @staticmethod -- def _do_run(stdin, logger, messaging, definition, config_model, skip_dialogs, args, kwargs): -+ def _do_run(stdin, logger, messaging, definition, config_model, skip_dialogs, error_pipe, args, kwargs): - if stdin is not None: - try: - sys.stdin = os.fdopen(stdin) -@@ -69,7 +70,13 @@ class ActorCallContext(object): - target_actor = [actor for actor in get_actors() if actor.name == definition.name][0] - actor_instance = target_actor(logger=logger, messaging=messaging, config_model=config_model, - skip_dialogs=skip_dialogs) -- actor_instance.run(*args, **kwargs) -+ try: -+ actor_instance.run(*args, **kwargs) -+ except Exception: -+ # Send the exception data string to the parent process -+ # and reraise. -+ error_pipe.send(traceback.format_exc()) -+ raise - try: - # By this time this is no longer set, so we have to get it back - os.environ['LEAPP_CURRENT_ACTOR'] = actor_instance.name -@@ -96,15 +103,25 @@ class ActorCallContext(object): - stdin = sys.stdin.fileno() - except UnsupportedOperation: - stdin = None -+ -+ pipe_receiver, pipe_sender = Pipe() - p = Process(target=self._do_run, - args=(stdin, self.logger, self.messaging, self.definition, self.config_model, -- self.skip_dialogs, args, kwargs)) -+ self.skip_dialogs, pipe_sender, args, kwargs)) - p.start() - p.join() - if p.exitcode != 0: -- raise LeappRuntimeError( -- 'Actor {actorname} unexpectedly terminated with exit code: {exitcode}' -- .format(actorname=self.definition.name, exitcode=p.exitcode)) -+ err_message = "Actor {actorname} unexpectedly terminated with exit code: {exitcode}".format( -+ actorname=self.definition.name, exitcode=p.exitcode) -+ -+ exception_info = None -+ # If there's data in the pipe, it's formatted exception info. -+ if pipe_receiver.poll(): -+ exception_info = pipe_receiver.recv() -+ -+ # This LeappRuntimeError will contain an exception traceback -+ # in addition to the above message. -+ raise LeappRuntimeError(err_message, exception_info) - - - class ActorDefinition(object): --- -2.39.0 - diff --git a/SOURCES/0015-Add-a-default-None-value-to-the-LeappRuntimeError-fi.patch b/SOURCES/0015-Add-a-default-None-value-to-the-LeappRuntimeError-fi.patch deleted file mode 100644 index bdcc69c..0000000 --- a/SOURCES/0015-Add-a-default-None-value-to-the-LeappRuntimeError-fi.patch +++ /dev/null @@ -1,25 +0,0 @@ -From adc83588e269866d01bde579e075405939b08434 Mon Sep 17 00:00:00 2001 -From: Roman Prilipskii -Date: Wed, 9 Nov 2022 07:24:38 +0400 -Subject: [PATCH 15/16] Add a default None value to the LeappRuntimeError field - ---- - leapp/exceptions.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/leapp/exceptions.py b/leapp/exceptions.py -index ef9d647..d6bbf00 100644 ---- a/leapp/exceptions.py -+++ b/leapp/exceptions.py -@@ -109,7 +109,7 @@ class UnknownCommandError(LeappError): - - - class LeappRuntimeError(LeappError): -- def __init__(self, message, exception_info): -+ def __init__(self, message, exception_info=None): - super().__init__(message) - self.exception_info = exception_info - --- -2.39.0 - diff --git a/SOURCES/0016-Fix-super-args-for-Leapp-exception-classes.patch b/SOURCES/0016-Fix-super-args-for-Leapp-exception-classes.patch deleted file mode 100644 index 2bb9c06..0000000 --- a/SOURCES/0016-Fix-super-args-for-Leapp-exception-classes.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2d7ec8f21ea70fd0dc9656cd63a761342cefeb8f Mon Sep 17 00:00:00 2001 -From: Roman Prilipskii -Date: Mon, 28 Nov 2022 07:12:43 +0400 -Subject: [PATCH 16/16] Fix super() args for Leapp exception classes - ---- - leapp/exceptions.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/leapp/exceptions.py b/leapp/exceptions.py -index d6bbf00..43c5905 100644 ---- a/leapp/exceptions.py -+++ b/leapp/exceptions.py -@@ -104,13 +104,13 @@ class CommandDefinitionError(LeappError): - - class UnknownCommandError(LeappError): - def __init__(self, command): -- super().__init__('Unknown command: {}'.format(command)) -+ super(UnknownCommandError, self).__init__('Unknown command: {}'.format(command)) - self.requested = command - - - class LeappRuntimeError(LeappError): - def __init__(self, message, exception_info=None): -- super().__init__(message) -+ super(LeappRuntimeError, self).__init__(message) - self.exception_info = exception_info - - --- -2.39.0 - diff --git a/SPECS/leapp.spec b/SPECS/leapp.spec index a19baa0..0f7ccbf 100644 --- a/SPECS/leapp.spec +++ b/SPECS/leapp.spec @@ -36,8 +36,8 @@ %endif Name: leapp -Version: 0.15.0 -Release: 4%{?dist} +Version: 0.15.1 +Release: 1%{?dist} Summary: OS & Application modernization framework License: ASL 2.0 @@ -65,22 +65,6 @@ Requires: leapp-repository # PATCHES HERE # Patch0001: filename.patch -Patch0001: 0001-Make-checks-for-missing-answers-more-strict.patch -Patch0002: 0002-Add-Makefile-target-for-building-RPMs-locally-and-in.patch -Patch0003: 0003-Add-possibility-to-use-docker-to-run-tests-and-build.patch -Patch0004: 0004-Document-workaround-for-the-broken-snactor.patch -Patch0005: 0005-Improve-wording.patch -Patch0006: 0006-Docs-update-the-leapp-deprecation-doc-add-v0.15.0.patch -Patch0007: 0007-snactor.sanity-check-Add-option-to-ignore-models.patch -Patch0008: 0008-Update-leapp-snactor-commands-workflow-sanity_check..patch -Patch0009: 0009-Tune-tmt-tests-regexes-to-align-with-QE-automation.patch -Patch0010: 0010-Change-rerun-all-to-rerun-sst.patch -Patch0011: 0011-Do-not-run-rhsm-tests-in-upstream.patch -Patch0012: 0012-Set-SOURCE_RELEASE-env-var.patch -Patch0013: 0013-change-the-permissions-for-var-lib-leapp-directory-f.patch -Patch0014: 0014-Expose-tracebacks-from-actor-exceptions.patch -Patch0015: 0015-Add-a-default-None-value-to-the-LeappRuntimeError-fi.patch -Patch0016: 0016-Fix-super-args-for-Leapp-exception-classes.patch %description @@ -176,22 +160,6 @@ Requires: findutils # APPLY REGISTERED PATCHES HERE # %%patch0001 -p1 -%patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 -%patch0011 -p1 -%patch0012 -p1 -%patch0013 -p1 -%patch0014 -p1 -%patch0015 -p1 -%patch0016 -p1 ################################################## @@ -275,9 +243,11 @@ install -m 0644 -p man/leapp.1 %{buildroot}%{_mandir}/man1/ # no files here %changelog -* Fri Jan 20 2023 Petr Stodulka - 0.15.0-4 +* Tue Feb 21 2023 Petr Stodulka - 0.15.1-1 +- Rebase to v0.15.1 - Change DAC for /var/lib/leapp to 0700 to make it accessible for root only - Propagate error messages from leapp actors to the main leapp process +- Prevent unicode errors when printing error messages - Resolves: rhbz#2162710 * Thu Sep 08 2022 Petr Stodulka - 0.15.0-2