diff --git a/.gitignore b/.gitignore index 00ef136..bd8b053 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,3 @@ /avocado-92.1.tar.gz /avocado-92.1-python312.patch /avocado-92.3.tar.gz -/avocado-112.0.tar.gz diff --git a/python-avocado.spec b/python-avocado.spec index 8dd8cf4..1a285d5 100644 --- a/python-avocado.spec +++ b/python-avocado.spec @@ -9,10 +9,10 @@ %global gittar avocado-%{version}.tar.gz %else %if ! 0%{?commit:1} - %global commit e4ede79f097dcc1dbd30e43ffe3b7daf52d2204d + %global commit 5b21f030001d6eed69c0357cc45b6128c73dc860 %endif %if ! 0%{?commit_date:1} - %global commit_date 20251010 + %global commit_date 20240819 %endif %global shortcommit %(c=%{commit};echo ${c:0:9}) %global gitrel .%{commit_date}git%{shortcommit} @@ -24,19 +24,17 @@ # the functional tests are time and resource sensitive and can # cause race conditions and random build failures. They are # enabled by default. -# You can disable them with rpmbuild ... --without tests -%bcond_without tests +%global with_tests 1 -# Only Fedora 36 and later have a suitable python3-resutlsdb_api -# package -%if 0%{?fedora} >= 36 +# resultsdb is not available for RHEL +%if ! 0%{?rhel} %global with_resultsdb 1 %else %global with_resultsdb 0 %endif Name: python-avocado -Version: 112.0 +Version: 92.3 Release: 1%{?gitrel}%{?dist} Summary: Framework with tools and libraries for Automated Testing # Found licenses: @@ -47,7 +45,7 @@ Summary: Framework with tools and libraries for Automated Testing # optional_plugins/html/avocado_result_html/templates/bootstrap.min.js: MIT # selftests/.data/jenkins-junit.xsd: MIT # Other files: GPLv2 and GPLv2+ -License: GPLv2+ and GPLv2 and MIT +License: GPL-2.0-or-later AND GPL-2.0-only AND MIT URL: https://avocado-framework.github.io/ Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar} BuildArch: noarch @@ -60,35 +58,23 @@ BuildRequires: python3-jinja2 BuildRequires: python3-lxml BuildRequires: python3-psutil BuildRequires: python3-setuptools -%if ! 0%{?rhel} -BuildRequires: python-aexpect -%endif %if %{with_resultsdb} BuildRequires: python3-resultsdb_api BuildRequires: python3-pycdlib %endif -%if %{with tests} -BuildRequires: python3-jsonschema -%if ! 0%{?rhel} >= 9 +%if 0%{?with_tests} BuildRequires: genisoimage -%endif BuildRequires: libcdio BuildRequires: psmisc %if ! 0%{?rhel} BuildRequires: perl-Test-Harness -BuildRequires: python3-xmlschema -BuildRequires: ansible-core %endif BuildRequires: glibc-all-langpacks BuildRequires: python3-netifaces BuildRequires: python3-yaml -BuildRequires: nmap-ncat -BuildRequires: gcc -BuildRequires: gdb -BuildRequires: gdb-gdbserver %endif -# with tests +# with_tests %description Avocado is a set of tools and libraries (what people call @@ -98,12 +84,12 @@ these days a framework) to perform automated testing. %prep %setup -q -n avocado-%{gitref} %if 0%{?rhel} -sed -e 's/"PyYAML>=4.2b2"/"PyYAML>=3.12"/' -i optional_plugins/varianter_yaml_to_mux/setup.py -%endif -%if 0%{?fedora} >= 42 -sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/html/setup.py -sed -e '/"markupsafe<3.0.0"/d' -i optional_plugins/ansible/setup.py +sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py %endif +# drop unnecessary install requirement +sed -e "s/'markupsafe<2.0.0', //" -i optional_plugins/html/setup.py +# loosen jinja2 version requirement +sed -e "s/'jinja2<3.0.0'/'jinja2'/" -i optional_plugins/html/setup.py %build %py3_build @@ -121,11 +107,6 @@ popd pushd optional_plugins/golang %py3_build popd -%if ! 0%{?rhel} -pushd optional_plugins/ansible - %py3_build -popd -%endif pushd optional_plugins/varianter_pict %py3_build popd @@ -135,33 +116,22 @@ popd pushd optional_plugins/result_upload %py3_build popd -pushd optional_plugins/mail - %py3_build -popd -%if ! 0%{?rhel} -pushd optional_plugins/spawner_remote - %py3_build -popd -%endif rst2man man/avocado.rst man/avocado.1 %install %py3_install for exe in \ avocado \ + avocado-runner \ avocado-runner-noop \ avocado-runner-dry-run \ avocado-runner-exec-test \ avocado-runner-python-unittest \ avocado-runner-avocado-instrumented \ avocado-runner-tap \ - avocado-runner-asset \ - avocado-runner-package \ - avocado-runner-pip \ - avocado-runner-podman-image \ + avocado-runner-requirement-asset \ + avocado-runner-requirement-package \ avocado-runner-sysinfo \ - avocado-runner-vmimage \ - avocado-external-runner \ avocado-software-manager do mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version} @@ -173,6 +143,9 @@ done rm -rf %{buildroot}%{python3_sitelib}/avocado/etc # ditto for libexec files rm -rf %{buildroot}%{python3_sitelib}/avocado/libexec +# adjust permissions for file containing shebang line needed for +# spawning tasks in podman containers +chmod -c +x %{buildroot}%{python3_sitelib}/avocado/core/nrunner.py pushd optional_plugins/html %py3_install popd @@ -187,11 +160,6 @@ popd pushd optional_plugins/golang %py3_install popd -%if ! 0%{?rhel} -pushd optional_plugins/ansible - %py3_install -popd -%endif pushd optional_plugins/varianter_pict %py3_install popd @@ -201,14 +169,6 @@ popd pushd optional_plugins/result_upload %py3_install popd -pushd optional_plugins/mail - %py3_install -popd -%if ! 0%{?rhel} -pushd optional_plugins/spawner_remote - %py3_install -popd -%endif # cleanup plugin test cruft rm -rf %{buildroot}%{python3_sitelib}/tests mkdir -p %{buildroot}%{_sysconfdir}/avocado @@ -232,12 +192,12 @@ cp -r examples/plugins %{buildroot}%{_docdir}/avocado/plugins cp -r examples/tests %{buildroot}%{_docdir}/avocado/tests cp -r examples/varianter_cit %{buildroot}%{_docdir}/avocado/varianter_cit cp -r examples/varianter_pict %{buildroot}%{_docdir}/avocado/varianter_pict +cp -r examples/wrappers %{buildroot}%{_docdir}/avocado/wrappers cp -r examples/yaml_to_mux %{buildroot}%{_docdir}/avocado/yaml_to_mux -mkdir -p %{buildroot}%{_datarootdir}/avocado -mv %{buildroot}%{python3_sitelib}/avocado/schemas %{buildroot}%{_datarootdir}/avocado find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';' -%if %{with tests} + +%if 0%{?with_tests} %check # LANG: to make the results predictable, we pin the language # that is used during test execution. @@ -248,7 +208,9 @@ find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} '; PYTHONPATH=%{buildroot}%{python3_sitelib}:. \ LANG=en_US.UTF-8 \ AVOCADO_CHECK_LEVEL=0 \ - %{python3} selftests/check.py --skip static-checks --disable-plugin-checks robot + %{python3} selftests/check.py --job-api --nrunner-interface \ + --unit --jobs --functional --optional-plugins \ + --disable-plugin-checks robot %endif @@ -274,6 +236,9 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-%{python3_version} %{_bindir}/avocado-3 %{_bindir}/avocado +%{_bindir}/avocado-runner-%{python3_version} +%{_bindir}/avocado-runner-3 +%{_bindir}/avocado-runner %{_bindir}/avocado-runner-noop-%{python3_version} %{_bindir}/avocado-runner-noop-3 %{_bindir}/avocado-runner-noop @@ -292,35 +257,24 @@ these days a framework) to perform automated testing. %{_bindir}/avocado-runner-tap-%{python3_version} %{_bindir}/avocado-runner-tap-3 %{_bindir}/avocado-runner-tap -%{_bindir}/avocado-runner-asset-%{python3_version} -%{_bindir}/avocado-runner-asset-3 -%{_bindir}/avocado-runner-asset -%{_bindir}/avocado-runner-package-%{python3_version} -%{_bindir}/avocado-runner-package-3 -%{_bindir}/avocado-runner-package -%{_bindir}/avocado-runner-pip-%{python3_version} -%{_bindir}/avocado-runner-pip-3 -%{_bindir}/avocado-runner-pip -%{_bindir}/avocado-runner-podman-image-%{python3_version} -%{_bindir}/avocado-runner-podman-image-3 -%{_bindir}/avocado-runner-podman-image +%{_bindir}/avocado-runner-requirement-asset-%{python3_version} +%{_bindir}/avocado-runner-requirement-asset-3 +%{_bindir}/avocado-runner-requirement-asset +%{_bindir}/avocado-runner-requirement-package-%{python3_version} +%{_bindir}/avocado-runner-requirement-package-3 +%{_bindir}/avocado-runner-requirement-package %{_bindir}/avocado-runner-sysinfo-%{python3_version} %{_bindir}/avocado-runner-sysinfo-3 %{_bindir}/avocado-runner-sysinfo -%{_bindir}/avocado-runner-vmimage-%{python3_version} -%{_bindir}/avocado-runner-vmimage-3 -%{_bindir}/avocado-runner-vmimage %{_bindir}/avocado-software-manager-%{python3_version} %{_bindir}/avocado-software-manager-3 %{_bindir}/avocado-software-manager -%{_bindir}/avocado-external-runner-%{python3_version} -%{_bindir}/avocado-external-runner-3 -%{_bindir}/avocado-external-runner %package -n python-avocado-common Summary: Avocado common files -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later %description -n python-avocado-common Common files (such as configuration) for the Avocado Testing Framework. @@ -336,10 +290,6 @@ Common files (such as configuration) for the Avocado Testing Framework. %dir %{_sysconfdir}/avocado/scripts/job %dir %{_sysconfdir}/avocado/scripts/job/pre.d %dir %{_sysconfdir}/avocado/scripts/job/post.d -%dir %{_sharedstatedir}/avocado/data -%dir %{_datarootdir}/avocado -%dir %{_datarootdir}/avocado/schemas -%{_datarootdir}/avocado/schemas/* %config(noreplace) %{_sysconfdir}/avocado/sysinfo/commands %config(noreplace) %{_sysconfdir}/avocado/sysinfo/files %config(noreplace) %{_sysconfdir}/avocado/sysinfo/profilers @@ -349,7 +299,7 @@ Common files (such as configuration) for the Avocado Testing Framework. %package -n python3-avocado-plugins-output-html Summary: Avocado HTML report plugin -License: GPLv2+ and MIT +License: GPL-2.0-or-later AND MIT Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-output-html @@ -365,7 +315,8 @@ arbitrary filesystem location. %if %{with_resultsdb} %package -n python3-avocado-plugins-resultsdb Summary: Avocado plugin to propagate job results to ResultsDB -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-resultsdb @@ -381,7 +332,8 @@ server. %package -n python3-avocado-plugins-varianter-yaml-to-mux Summary: Avocado plugin to generate variants out of yaml files -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-yaml-to-mux @@ -395,7 +347,8 @@ defined in a yaml file(s). %package -n python3-avocado-plugins-golang Summary: Avocado plugin for execution of golang tests -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} Requires: golang @@ -409,27 +362,10 @@ also run them. %{_bindir}/avocado-runner-golang -%if ! 0%{?rhel} -%package -n python3-avocado-plugins-ansible -Summary: Avocado Ansible Dependency plugin -License: GPLv2+ -Requires: python3-avocado == %{version}-%{release} -Requires: ansible-core - -%description -n python3-avocado-plugins-ansible -Adds to Avocado the ability to use ansible modules as dependecies for -tests. - -%files -n python3-avocado-plugins-ansible -%{python3_sitelib}/avocado_ansible* -%{python3_sitelib}/avocado_framework_plugin_ansible* -%{_bindir}/avocado-runner-ansible-module -%endif - - %package -n python3-avocado-plugins-varianter-pict Summary: Varianter with combinatorial capabilities by PICT -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-pict @@ -443,7 +379,8 @@ Pair-Wise algorithms, also known as Combinatorial Independent Testing. %package -n python3-avocado-plugins-varianter-cit Summary: Varianter with Combinatorial Independent Testing capabilities -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-varianter-cit @@ -458,7 +395,8 @@ collaboration with CVUT Prague. %package -n python3-avocado-plugins-result-upload Summary: Avocado plugin propagate job results to a remote host -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later Requires: python3-avocado == %{version}-%{release} %description -n python3-avocado-plugins-result-upload @@ -469,36 +407,11 @@ a dedicated sever. %{python3_sitelib}/avocado_result_upload/ %{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info -%package -n python3-avocado-plugins-result-mail -Summary: Avocado Mail Notification for Jobs -License: GPLv2+ -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-result-mail -The Mail result plugin enables you to receive email notifications -for job start and completion events within the Avocado testing framework. - -%files -n python3-avocado-plugins-result-mail -%{python3_sitelib}/avocado_result_mail* -%{python3_sitelib}/avocado_framework_plugin_result_mail* - -%if ! 0%{?rhel} -%package -n python3-avocado-plugins-spawner-remote -Summary: Avocado Plugin to spawn tests on a remote host -License: GPLv2+ -Requires: python3-avocado == %{version}-%{release} - -%description -n python3-avocado-plugins-spawner-remote -This optional plugin is intended to spawn tests on a remote host. - -%files -n python3-avocado-plugins-spawner-remote -%{python3_sitelib}/avocado_spawner_remote* -%{python3_sitelib}/avocado_framework_plugin_spawner_remote* -%endif %package -n python-avocado-examples Summary: Avocado Test Framework Example Tests -License: GPLv2+ +# Automatically converted from old format: GPLv2+ - review is highly recommended. +License: GPL-2.0-or-later # documentation does not require main package, but needs to be in lock-step if present Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release} @@ -515,12 +428,13 @@ examples of how to write tests on your own. %{_docdir}/avocado/tests %{_docdir}/avocado/varianter_cit %{_docdir}/avocado/varianter_pict +%{_docdir}/avocado/wrappers %{_docdir}/avocado/yaml_to_mux %package -n python-avocado-bash Summary: Avocado Test Framework Bash Utilities -License: GPLv2+ and GPLv2 +License: GPL-2.0-or-later AND GPL-2.0-only Requires: python-avocado-common == %{version}-%{release} %description -n python-avocado-bash @@ -538,34 +452,6 @@ Again Shell code (and possibly other similar shells). %changelog -* Fri Oct 10 2025 Cleber Rosa - 112.0-1 -- Sync with upstream release 112.0 -- Removed python3-elementpath build requirement -- Made the remote spawner a proper sub package -- Packaged JSON schema files -- Introduced new sub package for mail plugin -- Removed the pinning of markupsafe on Fedora 42 and later -- Packaged avocado-runner-pip -- Packaged avocado-runner-vmimage -- Provide requirements for running the functional test - nrunner.py:TaskRunStatusService.test_task_status_service_lost -- Require gcc, gdb and gdb-gdbserver for tests - -* Fri Jul 25 2025 Fedora Release Engineering - 92.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 92.3-5 -- Rebuilt for Python 3.14 - -* Mon Jan 20 2025 Miro HronĨok - 92.3-4 -- Loosen the PyYAML version requirement in python3-avocado-plugins-varianter-yaml-to-mux - -* Mon Jan 20 2025 Cleber Rosa - 92.3-3 -- convert remaining licenses to SPDX - -* Sat Jan 18 2025 Fedora Release Engineering - 92.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - * Mon Aug 19 2024 Cleber Rosa - 92.3-1 - Updated to 92.3 - Support building and running under Python 3.13 for F42 diff --git a/sources b/sources index 6494afc..4a738a2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (avocado-112.0.tar.gz) = 1872eda730f5cd28f0562732464ce14b2c7731cedb298fcc4b093a04235d26cc5e3db7f92c3ae3edcd6104ad2db4fce66fa7a6148da754e4bdb8120fa12a75a3 +SHA512 (avocado-92.3.tar.gz) = 97a0c113bc826537a02ebf6efcd7cf49b505a93e5fd9686c3a4c7e70902f2d367f78eb2fb23ddf9253b97f45e27b2e328fd6bd1c420ecbeb59e25e991b29c262 diff --git a/tests/tests.yml b/tests/tests.yml index be4a031..7ff61ce 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -3,8 +3,8 @@ - role: standard-test-avocado tests: - gdbtest.py:GdbTest.test_start_exit - - gdbtest.py:GdbTest.test_existing_commands - gdbtest.py:GdbTest.test_existing_commands_raw + - gdbtest.py:GdbTest.test_existing_commands - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit_raw - gdbtest.py:GdbTest.test_load_set_breakpoint_run_exit - gdbtest.py:GdbTest.test_generate_core @@ -15,13 +15,9 @@ - gdbtest.py:GdbTest.test_stream_messages - gdbtest.py:GdbTest.test_connect_multiple_clients - gdbtest.py:GdbTest.test_server_exit - - gdbtest.py:GdbTest.test_server_stdout - - gdbtest.py:GdbTest.test_server_stderr - gdbtest.py:GdbTest.test_multiple_servers - - gdbtest.py:GdbTest.test_interactive - - gdbtest.py:GdbTest.test_interactive_args - - gdbtest.py:GdbTest.test_exit_status - - gdbtest.py:GdbTest.test_interactive_stdout + - gdbtest.py:GdbTest.test_server_stderr + - gdbtest.py:GdbTest.test_server_stdout - gdbtest.py:GdbTest.test_remote required_packages: - gcc