Blob Blame History Raw
# Sphinx-generated HTML documentation is not suitable for packaging; see
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
#
# We can generate PDF documentation as a substitute.
%bcond doc_pdf 1

Name:           python-helpdev
Version:        0.6.10
Release:        %autorelease
Summary:        HelpDev – Extracts information about the Python environment easily

# The GitLab archive contains tests and documentation; the PyPI sdist doesn’t.
%global forgeurl https://gitlab.com/dpizetta/helpdev
%global tag v%{version}
%forgemeta

License:        MIT
URL:            %{forgeurl}
Source:         %{forgesource}

BuildArch:      noarch
 
BuildRequires:  python3-devel

# Selected test dependencies from req-test.txt; most entries in that file are
# for linters, code coverage, etc. Note that we use pytest directly because tox
# doesn’t add anything useful for us in this package.
BuildRequires:  %{py3_dist pytest}

# The generated man page is pretty good in this case; it’s probably not worth
# hand-writing one.
BuildRequires:  help2man

%if %{with doc_pdf}
# We don’t generate documentation dependencies from req-doc.txt because:
# - There is extra cruft in there (setuptools, wheel, etc.): no big deal
# - We don’t need sphinx_rtd_theme because we aren’t building HTML
# - We need to specify the extra BR’s for building LaTeX/PDF manually anyway
BuildRequires:  make
BuildRequires:  python3dist(sphinx)
BuildRequires:  python3-sphinx-latex
BuildRequires:  latexmk
%endif

%global common_description %{expand:
Helping users and developers to get information about the environment to report
bugs or even test your system without spending a day on it. It can get
information about hardware, OS, paths, Python distribution and packages,
including Qt-things.}

%description %{common_description}


%package -n python3-helpdev
Summary:        %{summary}

%description -n python3-helpdev %{common_description}


%package doc
Summary:        Documentation and examples for HelpDev

%description doc
This package includes documentation and examples for HelpDev.


%prep
%forgesetup

# importlib.metadata is in python3.8
# https://gitlab.com/dpizetta/helpdev/merge_requests/1
sed -i "s|'importlib_metadata', ||" setup.py
sed -i "s|import importlib_metadata|import importlib.metadata as importlib_metadata|" helpdev/__init__.py


%generate_buildrequires
%pyproject_buildrequires


%build
%pyproject_wheel

%if %{with doc_pdf}
PYTHONPATH="${PWD}" %make_build -C docs latex \
    SPHINXOPTS='-j%{?_smp_build_ncpus}'
%make_build -C build/docs/latex LATEXMKOPTS='-quiet'
%endif


%install
%pyproject_install
%pyproject_save_files helpdev

# Generating the man page in %%install allows us to use the installed entry
# point; horrible hacks would be required to do this in %%build.
install -d '%{buildroot}%{_mandir}/man1'
PYTHONPATH='%{buildroot}%{python3_sitelib}' help2man \
    --no-info --output='%{buildroot}%{_mandir}/man1/helpdev.1' \
    '%{buildroot}%{_bindir}/helpdev'


%check
%pytest -v


%files -n python3-helpdev -f %{pyproject_files}
%{_bindir}/helpdev
%{_mandir}/man1/helpdev.1*


%files doc
%license LICENSE.rst

%doc CHANGES.rst
%doc README.rst

# Text files, mostly sample output
%doc examples/

%if %{with doc_pdf}
%doc build/docs/latex/helpdev.pdf
%endif


%changelog
%autochangelog