Spec file cleanup identified during package review to bring back

non-modular version of package.

Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
This commit is contained in:
Merlin Mathesius 2021-07-01 15:45:39 -05:00
commit 21ebe30b86
2 changed files with 149 additions and 144 deletions

View file

@ -0,0 +1,24 @@
From 8e2d7da5868ca2ae1c66c24a3e5c2957daffc7d7 Mon Sep 17 00:00:00 2001
From: Merlin Mathesius <mmathesi@redhat.com>
Date: Thu, 1 Jul 2021 15:04:14 -0500
Subject: [PATCH] Specify the complete relative path to passtest.py in
HtmlResultTest.test_output_compatible_setup_2 so it finds the script to run.
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
---
optional_plugins/html/tests/test_html_result.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/optional_plugins/html/tests/test_html_result.py b/optional_plugins/html/tests/test_html_result.py
index b123a669aa..e074d3bc3a 100644
--- a/optional_plugins/html/tests/test_html_result.py
+++ b/optional_plugins/html/tests/test_html_result.py
@@ -53,7 +53,7 @@ def test_output_compatible_setup_2(self):
tmpfile3 = os.path.join(tmpdir, "result.html")
cmd_line = ('avocado run --job-results-dir %s --disable-sysinfo '
'--xunit %s --json %s --html %s --tap-include-logs '
- 'passtest.py' % (self.tmpdir.name, tmpfile, tmpfile2, tmpfile3))
+ 'examples/tests/passtest.py' % (self.tmpdir.name, tmpfile, tmpfile2, tmpfile3))
result = process.run(cmd_line, ignore_status=True)
output = result.stdout + result.stderr
expected_rc = exit_codes.AVOCADO_ALL_OK

View file

@ -1,6 +1,3 @@
%global srcname avocado
%global pkgname avocado
# Conditional for release vs. snapshot builds. Set to 1 for release build.
%if ! 0%{?rel_build:1}
%global rel_build 1
@ -9,7 +6,7 @@
# Settings used for build from snapshots.
%if 0%{?rel_build}
%global gitref %{version}
%global gittar %{srcname}-%{version}.tar.gz
%global gittar avocado-%{version}.tar.gz
%else
%if ! 0%{?commit:1}
%global commit 5c5e83340a6041cf470186c48be9d50cb07f9486
@ -20,7 +17,7 @@
%global shortcommit %(c=%{commit};echo ${c:0:9})
%global gitrel .%{commit_date}git%{shortcommit}
%global gitref %{commit}
%global gittar %{srcname}-%{shortcommit}.tar.gz
%global gittar avocado-%{shortcommit}.tar.gz
%endif
# Selftests are provided but may need to be skipped because many of
@ -29,25 +26,30 @@
# enabled by default.
%global with_tests 1
# resultsdb is only available for Fedora
%if 0%{?fedora}
# resultsdb is not available for RHEL
%if ! 0%{?rhel}
%global with_resultsdb 1
%else
%global with_resultsdb 0
%endif
Name: python-%{pkgname}
Name: python-avocado
Version: 89.0
Release: 1%{?gitrel}%{?dist}
Release: 2%{?gitrel}%{?dist}
Summary: Framework with tools and libraries for Automated Testing
Group: Development/Tools
# Found licenses:
# avocado/core/tapparser.py: MIT
# avocado/utils/external/gdbmi_parser.py: MIT
# avocado/utils/external/spark.py: MIT
# optional_plugins/html/avocado_result_html/templates/bootstrap.min.css: MIT
# 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 MIT
URL: http://avocado-framework.github.io/
Source0: https://github.com/avocado-framework/%{srcname}/archive/%{gitref}.tar.gz#/%{gittar}
License: GPLv2+ and GPLv2 and MIT
URL: https://avocado-framework.github.io/
Source0: https://github.com/avocado-framework/avocado/archive/%{gitref}/%{gittar}
# Patch from https://github.com/avocado-framework/avocado/pull/4759
Patch0: avocado-89.0-passtest-path-fix.patch
BuildArch: noarch
BuildRequires: kmod
@ -56,28 +58,21 @@ BuildRequires: python3-devel
BuildRequires: python3-docutils
BuildRequires: python3-jinja2
BuildRequires: python3-lxml
BuildRequires: python3-mock
BuildRequires: python3-psutil
BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: python3-sphinx
%if 0%{?fedora}
BuildRequires: python3-pycdlib
%endif
%if %{with_resultsdb}
BuildRequires: python3-resultsdb_api
BuildRequires: python3-pycdlib
%endif
%if 0%{?with_tests}
BuildRequires: genisoimage
BuildRequires: libcdio
BuildRequires: psmisc
%if 0%{?fedora}
%if ! 0%{?rhel}
BuildRequires: perl-Test-Harness
%endif
%if 0%{?fedora} >= 30 || 0%{?rhel}
BuildRequires: glibc-all-langpacks
%endif
BuildRequires: python3-netifaces
BuildRequires: python3-yaml
%endif
@ -89,7 +84,8 @@ these days a framework) to perform automated testing.
%prep
%setup -q -n %{srcname}-%{gitref}
%setup -q -n avocado-%{gitref}
%patch0 -p 1
%if 0%{?rhel}
sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to_mux/setup.py
%endif
@ -99,11 +95,11 @@ sed -e "s/'PyYAML>=4.2b2'/'PyYAML>=3.12'/" -i optional_plugins/varianter_yaml_to
pushd optional_plugins/html
%py3_build
popd
pushd optional_plugins/resultsdb
%if %{with_resultsdb}
pushd optional_plugins/resultsdb
%py3_build
%endif
popd
%endif
pushd optional_plugins/varianter_yaml_to_mux
%py3_build
popd
@ -137,23 +133,26 @@ for exe in \
avocado-runner-requirement-package \
avocado-software-manager
do
%{__mv} %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version}
%{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3
%{__ln_s} $exe-%{python3_version} %{buildroot}%{_bindir}/$exe
mv %{buildroot}%{_bindir}/$exe %{buildroot}%{_bindir}/$exe-%{python3_version}
ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe-3
ln -s $exe-%{python3_version} %{buildroot}%{_bindir}/$exe
done
# configuration is held at /etc/avocado only and part of the
# python-avocado-common package
%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/etc
rm -rf %{buildroot}%{python3_sitelib}/avocado/etc
# ditto for libexec files
%{__rm} -rf %{buildroot}%{python3_sitelib}/avocado/libexec
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
pushd optional_plugins/resultsdb
%if %{with_resultsdb}
pushd optional_plugins/resultsdb
%py3_install
%endif
popd
%endif
pushd optional_plugins/varianter_yaml_to_mux
%py3_install
popd
@ -170,90 +169,65 @@ pushd optional_plugins/result_upload
%py3_install
popd
# cleanup plugin test cruft
%{__rm} -rf %{buildroot}%{python3_sitelib}/tests
%{__mkdir} -p %{buildroot}%{_sysconfdir}/avocado
%{__cp} -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts
%{__cp} -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo
%{__mkdir} -p %{buildroot}%{_libexecdir}/avocado
%{__cp} avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils
%{__cp} avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug
%{__cp} avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error
%{__cp} avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info
%{__cp} avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn
%{__mkdir_p} %{buildroot}%{_mandir}/man1
%{__install} -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1
%{__install} -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data
rm -rf %{buildroot}%{python3_sitelib}/tests
mkdir -p %{buildroot}%{_sysconfdir}/avocado
cp -r avocado/etc/avocado/scripts %{buildroot}%{_sysconfdir}/avocado/scripts
cp -r avocado/etc/avocado/sysinfo %{buildroot}%{_sysconfdir}/avocado/sysinfo
mkdir -p %{buildroot}%{_libexecdir}/avocado
cp avocado/libexec/avocado-bash-utils %{buildroot}%{_libexecdir}/avocado/avocado-bash-utils
cp avocado/libexec/avocado_debug %{buildroot}%{_libexecdir}/avocado/avocado_debug
cp avocado/libexec/avocado_error %{buildroot}%{_libexecdir}/avocado/avocado_error
cp avocado/libexec/avocado_info %{buildroot}%{_libexecdir}/avocado/avocado_info
cp avocado/libexec/avocado_warn %{buildroot}%{_libexecdir}/avocado/avocado_warn
mkdir -p %{buildroot}%{_mandir}/man1
install -m 0644 man/avocado.1 %{buildroot}%{_mandir}/man1/avocado.1
mkdir -p %{buildroot}%{_pkgdocdir}
install -m 0644 README.rst %{buildroot}%{_pkgdocdir}
install -d -m 0755 %{buildroot}%{_sharedstatedir}/avocado/data
# place examples in documentation directory
%{__install} -d -m 0755 %{buildroot}%{_docdir}/avocado
%{__cp} -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts
%{__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
find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec %{__chmod} -c -x {} ';'
install -d -m 0755 %{buildroot}%{_docdir}/avocado
cp -r examples/gdb-prerun-scripts %{buildroot}%{_docdir}/avocado/gdb-prerun-scripts
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
find %{buildroot}%{_docdir}/avocado -type f -name '*.py' -exec chmod -c -x {} ';'
%check
%if 0%{?with_tests}
%{__python3} setup.py develop --user
pushd optional_plugins/html
%{__python3} setup.py develop --user
popd
%if %{with_resultsdb}
pushd optional_plugins/resultsdb
%{__python3} setup.py develop --user
popd
%endif
# with_resultsdb
pushd optional_plugins/varianter_yaml_to_mux
%{__python3} setup.py develop --user
popd
pushd optional_plugins/golang
%{__python3} setup.py develop --user
popd
pushd optional_plugins/varianter_pict
%{__python3} setup.py develop --user
popd
pushd optional_plugins/varianter_cit
%{__python3} setup.py develop --user
popd
pushd optional_plugins/result_upload
%{__python3} setup.py develop --user
popd
%check
# LANG: to make the results predictable, we pin the language
# that is used during test execution.
# AVOCADO_CHECK_LEVEL: package build environments have the least
# amount of resources we have observed so far. Let's avoid tests that
# require too much resources or are time sensitive
USER_BASE=`%{__python3} -m site --user-base`
PATH=$USER_BASE/bin:$PATH LANG=en_US.UTF-8 AVOCADO_CHECK_LEVEL=0 %{__python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot
PATH=%{buildroot}%{_bindir}:%{buildroot}%{_libexecdir}/avocado:$PATH \
PYTHONPATH=%{buildroot}%{python3_sitelib}:. \
LANG=en_US.UTF-8 \
AVOCADO_CHECK_LEVEL=0 \
%{python3} selftests/check.py --disable-static-checks --disable-plugin-checks=robot
%endif
%package -n python3-%{pkgname}
%package -n python3-avocado
Summary: %{summary}
License: GPLv2 and MIT
%{?python_provide:%python_provide python3-%{pkgname}}
Requires: python-%{pkgname}-common == %{version}-%{release}
Requires: python-avocado-common == %{version}-%{release}
Requires: gdb
Requires: gdb-gdbserver
Requires: procps-ng
Requires: python3
Requires: python3-setuptools
Requires: python3-six
%if 0%{?fedora}
%if ! 0%{?rhel}
Requires: python3-pycdlib
%endif
%description -n python3-%{pkgname}
%description -n python3-avocado
Avocado is a set of tools and libraries (what people call
these days a framework) to perform automated testing.
%files -n python3-%{pkgname}
%files -n python3-avocado
%license LICENSE
%doc README.rst
%{_pkgdocdir}/README.rst
%{python3_sitelib}/avocado/
%{python3_sitelib}/avocado_framework-%{version}-py%{python3_version}.egg-info
%{_bindir}/avocado-%{python3_version}
@ -294,13 +268,15 @@ these days a framework) to perform automated testing.
%{_bindir}/avocado-software-manager
%package -n python-%{pkgname}-common
%package -n python-avocado-common
Summary: Avocado common files
License: GPLv2+
%description -n python-%{pkgname}-common
%description -n python-avocado-common
Common files (such as configuration) for the Avocado Testing Framework.
%files -n python-%{pkgname}-common
%files -n python-avocado-common
%license LICENSE
%{_mandir}/man1/avocado.1.gz
%dir %{_docdir}/avocado
%dir %{_sharedstatedir}/avocado
@ -317,125 +293,124 @@ Common files (such as configuration) for the Avocado Testing Framework.
%{_sysconfdir}/avocado/scripts/job/post.d/README
%package -n python3-%{pkgname}-plugins-output-html
%package -n python3-avocado-plugins-output-html
Summary: Avocado HTML report plugin
%{?python_provide:%python_provide python3-%{pkgname}-plugins-output-html}
Requires: python3-%{pkgname} == %{version}-%{release}
Requires: python3-jinja2
License: GPLv2+ and MIT
Requires: python3-avocado == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-output-html
%description -n python3-avocado-plugins-output-html
Adds to avocado the ability to generate an HTML report at every job results
directory. It also gives the user the ability to write a report on an
arbitrary filesystem location.
%files -n python3-%{pkgname}-plugins-output-html
%files -n python3-avocado-plugins-output-html
%{python3_sitelib}/avocado_result_html/
%{python3_sitelib}/avocado_framework_plugin_result_html-%{version}-py%{python3_version}.egg-info
%if %{with_resultsdb}
%package -n python3-%{pkgname}-plugins-resultsdb
%package -n python3-avocado-plugins-resultsdb
Summary: Avocado plugin to propagate job results to ResultsDB
%{?python_provide:%python_provide python3-%{pkgname}-plugins-resultsdb}
Requires: python3-%{pkgname} == %{version}-%{release}
Requires: python3-resultsdb_api
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-resultsdb
%description -n python3-avocado-plugins-resultsdb
Allows Avocado to send job results directly to a ResultsDB
server.
%files -n python3-%{pkgname}-plugins-resultsdb
%files -n python3-avocado-plugins-resultsdb
%{python3_sitelib}/avocado_resultsdb/
%{python3_sitelib}/avocado_framework_plugin_resultsdb-%{version}-py%{python3_version}.egg-info
%endif
# with_resultsdb
%package -n python3-%{pkgname}-plugins-varianter-yaml-to-mux
%package -n python3-avocado-plugins-varianter-yaml-to-mux
Summary: Avocado plugin to generate variants out of yaml files
%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-yaml-to-mux}
Requires: python3-%{pkgname} == %{version}-%{release}
Requires: python3-yaml
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-varianter-yaml-to-mux
%description -n python3-avocado-plugins-varianter-yaml-to-mux
Can be used to produce multiple test variants with test parameters
defined in a yaml file(s).
%files -n python3-%{pkgname}-plugins-varianter-yaml-to-mux
%files -n python3-avocado-plugins-varianter-yaml-to-mux
%{python3_sitelib}/avocado_varianter_yaml_to_mux/
%{python3_sitelib}/avocado_framework_plugin_varianter_yaml_to_mux-%{version}-py%{python3_version}.egg-info
%package -n python3-%{pkgname}-plugins-golang
%package -n python3-avocado-plugins-golang
Summary: Avocado plugin for execution of golang tests
%{?python_provide:%python_provide python3-%{pkgname}-plugins-golang}
Requires: python3-%{pkgname} == %{version}-%{release}
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
Requires: golang
%description -n python3-%{pkgname}-plugins-golang
%description -n python3-avocado-plugins-golang
Allows Avocado to list golang tests, and if golang is installed,
also run them.
%files -n python3-%{pkgname}-plugins-golang
%files -n python3-avocado-plugins-golang
%{python3_sitelib}/avocado_golang/
%{python3_sitelib}/avocado_framework_plugin_golang-%{version}-py%{python3_version}.egg-info
%{_bindir}/avocado-runner-golang
%package -n python3-%{pkgname}-plugins-varianter-pict
Summary: Varianter with combinatorial capabilities by PICT
%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-pict}
Requires: python3-%{pkgname} == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-varianter-pict
%package -n python3-avocado-plugins-varianter-pict
Summary: Varianter with combinatorial capabilities by PICT
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
%description -n python3-avocado-plugins-varianter-pict
This plugin uses a third-party tool to provide variants created by
Pair-Wise algorithms, also known as Combinatorial Independent Testing.
%files -n python3-%{pkgname}-plugins-varianter-pict
%files -n python3-avocado-plugins-varianter-pict
%{python3_sitelib}/avocado_varianter_pict/
%{python3_sitelib}/avocado_framework_plugin_varianter_pict-%{version}-py%{python3_version}.egg-info
%package -n python3-%{pkgname}-plugins-varianter-cit
%package -n python3-avocado-plugins-varianter-cit
Summary: Varianter with Combinatorial Independent Testing capabilities
%{?python_provide:%python_provide python3-%{pkgname}-plugins-varianter-cit}
Requires: python3-%{pkgname} == %{version}-%{release}
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-varianter-cit
%description -n python3-avocado-plugins-varianter-cit
A varianter plugin that generates variants using Combinatorial
Independent Testing (AKA Pair-Wise) algorithm developed in
collaboration with CVUT Prague.
%files -n python3-%{pkgname}-plugins-varianter-cit
%files -n python3-avocado-plugins-varianter-cit
%{python3_sitelib}/avocado_varianter_cit/
%{python3_sitelib}/avocado_framework_plugin_varianter_cit-%{version}-py%{python3_version}.egg-info
%package -n python3-%{pkgname}-plugins-result-upload
%package -n python3-avocado-plugins-result-upload
Summary: Avocado plugin propagate job results to a remote host
%{?python_provide:%python_provide python3-%{pkgname}-plugins-result-upload}
Requires: python3-%{pkgname} == %{version}-%{release}
License: GPLv2+
Requires: python3-avocado == %{version}-%{release}
%description -n python3-%{pkgname}-plugins-result-upload
%description -n python3-avocado-plugins-result-upload
This optional plugin is intended to upload the Avocado Job results to
a dedicated sever.
%files -n python3-%{pkgname}-plugins-result-upload
%files -n python3-avocado-plugins-result-upload
%{python3_sitelib}/avocado_result_upload/
%{python3_sitelib}/avocado_framework_plugin_result_upload-%{version}-py%{python3_version}.egg-info
%package -n python-%{pkgname}-examples
%package -n python-avocado-examples
Summary: Avocado Test Framework Example Tests
License: GPLv2
License: GPLv2+
# documentation does not require main package, but needs to be in lock-step if present
Conflicts: python3-%{pkgname} < %{version}-%{release}, python3-%{pkgname} > %{version}-%{release}
Conflicts: python3-avocado < %{version}-%{release}, python3-avocado > %{version}-%{release}
%description -n python-%{pkgname}-examples
%description -n python-avocado-examples
The set of example tests present in the upstream tree of the Avocado framework.
Some of them are used as functional tests of the framework, others serve as
examples of how to write tests on your own.
%files -n python-%{pkgname}-examples
%files -n python-avocado-examples
%license LICENSE
%dir %{_docdir}/avocado
%{_docdir}/avocado/gdb-prerun-scripts
%{_docdir}/avocado/plugins
@ -446,15 +421,17 @@ examples of how to write tests on your own.
%{_docdir}/avocado/yaml_to_mux
%package -n python-%{pkgname}-bash
%package -n python-avocado-bash
Summary: Avocado Test Framework Bash Utilities
Requires: python-%{pkgname}-common == %{version}-%{release}
License: GPLv2+ and GPLv2
Requires: python-avocado-common == %{version}-%{release}
%description -n python-%{pkgname}-bash
%description -n python-avocado-bash
A small set of utilities to interact with Avocado from the Bourne
Again Shell code (and possibly other similar shells).
%files -n python-%{pkgname}-bash
%files -n python-avocado-bash
%license LICENSE
%dir %{_libexecdir}/avocado
%{_libexecdir}/avocado/avocado-bash-utils
%{_libexecdir}/avocado/avocado_debug
@ -464,6 +441,10 @@ Again Shell code (and possibly other similar shells).
%changelog
* Tue Jun 29 2021 Merlin Mathesius <mmathesi@redhat.com> - 89.0-2
- Spec file cleanup identified during package review to bring back
non-modular version of package.
* Tue Jun 22 2021 Cleber Rosa <cleber@redhat.com> - 89.0-1
- Sync with upstream release 89.0.
- Packaged avocado-runner-dry-run and avocado-runner-requirement-asset