From 652a40287ba43d4c3d03bb642927986a5f6191c0 Mon Sep 17 00:00:00 2001 From: Thomas Moschny Date: Mon, 15 Nov 2021 21:11:41 +0100 Subject: [PATCH] Use new Python packaging guidelines. Jinja2 version 3 does not support Python 2 anymore. --- python-jinja2.spec | 140 ++++++++------------------------------------- 1 file changed, 23 insertions(+), 117 deletions(-) diff --git a/python-jinja2.spec b/python-jinja2.spec index 2c5b330..cbb6c8a 100644 --- a/python-jinja2.spec +++ b/python-jinja2.spec @@ -2,7 +2,7 @@ Name: python-jinja2 Version: 3.0.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: General purpose template engine License: BSD URL: https://palletsprojects.com/p/jinja/ @@ -13,34 +13,14 @@ Patch1: https://github.com/pallets/jinja/pull/1525.patch # Tests: Adapt expected traceback regexes for Python 3.11.0a1 Patch2: https://github.com/pallets/jinja/pull/1527.patch -%if 0%{?fedora} || 0%{?rhel} > 7 -# Enable python3 build by default -%bcond_without python3 -%else -%bcond_with python3 -%endif - -%if 0%{?fedora} > 33 || 0%{?rhel} > 7 -# Disable python2 build by default -%bcond_with python2 -%else -%bcond_without python2 -%endif - # Enable building without docs to avoid a circular dependency between this # and python-sphinx: %bcond_without docs -%if 0%{?fedora} || 0%{?rhel} > 7 -%bcond_without async -%else -%bcond_with async -%endif - BuildArch: noarch -%description -Jinja2 is a template engine written in pure Python. It provides a +%global _description %{expand: +Jinja2 is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment. @@ -48,42 +28,13 @@ If you have any exposure to other text-based template languages, such as Smarty or Django, you should feel right at home with Jinja2. It's both designer and developer friendly by sticking to Python's principles and adding functionality useful for templating -environments. +environments.} +%description %_description -%if %{with python2} -%package -n python2-jinja2 -Summary: General purpose template engine for python2 -BuildRequires: python2-devel -BuildRequires: python2-setuptools -BuildRequires: python2-babel >= 0.8 -BuildRequires: python2-markupsafe >= 0.23 -Requires: python2-babel >= 0.8 -Requires: python2-markupsafe >= 0.23 -Requires: python2-setuptools -%{?python_provide:%python_provide python2-jinja2} - -%description -n python2-jinja2 -Jinja2 is a template engine written in pure Python. It provides a -Django inspired non-XML syntax but supports inline expressions and an -optional sandboxed environment. - -If you have any exposure to other text-based template languages, such -as Smarty or Django, you should feel right at home with Jinja2. It's -both designer and developer friendly by sticking to Python's -principles and adding functionality useful for templating -environments. -%endif # with python2 - - -%if %{with python3} %package -n python3-jinja2 -Summary: General purpose template engine for python3 +Summary: %{summary} BuildRequires: python3-devel -BuildRequires: python3-setuptools -BuildRequires: python3-babel >= 0.8 -BuildRequires: python3-markupsafe >= 0.23 -BuildRequires: python3-pytest %if %{with docs} BuildRequires: %{_bindir}/sphinx-build-3 BuildRequires: make @@ -92,96 +43,51 @@ BuildRequires: python3-sphinxcontrib-log-cabinet BuildRequires: python3-sphinx-issues %endif -%description -n python3-jinja2 -Jinja2 is a template engine written in pure Python. It provides a -Django inspired non-XML syntax but supports inline expressions and an -optional sandboxed environment. +%description -n python3-jinja2 %_description -If you have any exposure to other text-based template languages, such -as Smarty or Django, you should feel right at home with Jinja2. It's -both designer and developer friendly by sticking to Python's -principles and adding functionality useful for templating -environments. - -%{?python_extras_subpkg:%python_extras_subpkg -n python3-jinja2 -i%{python3_sitelib}/Jinja2-*.egg-info i18n} -%endif # with python3 +%pyproject_extras_subpkg -n python3-jinja2 i18n %prep %autosetup -p1 -n %{srcname}-%{version} -# cleanup -find . -name '*.pyo' -o -name '*.pyc' -delete + +%generate_buildrequires +%pyproject_buildrequires -x i18n + %build -%if %{with python2} -%py2_build -%endif # with python2 - -%if %{with python3} -%py3_build +%pyproject_wheel %if %{with docs} make -C docs html PYTHONPATH=$(pwd)/src SPHINXBUILD=sphinx-build-3 # remove hidden file -rm -rf docs/_build/html/.buildinfo -%endif # with docs -%endif # with python3 +rm -rvf docs/_build/html/.buildinfo +%endif %install -%if %{with python2} -%py2_install - -# these files are valid only on Python 3.6+ -rm %{buildroot}%{python2_sitelib}/jinja2/asyncsupport.py -rm %{buildroot}%{python2_sitelib}/jinja2/asyncfilters.py -%endif # with python2 - -%if %{with python3} -%py3_install - -%if ! %{with async} -# these files are valid only on Python 3.6+ -rm %{buildroot}%{python3_sitelib}/jinja2/asyncsupport.py -rm %{buildroot}%{python3_sitelib}/jinja2/asyncfilters.py -%endif # ! with async -%endif # with python3 +%pyproject_install +%pyproject_save_files jinja2 %check -%if %{with python3} -PYTHONPATH=$(pwd)/src %{__python3} -m pytest tests -%endif # with python3 +%pytest tests -%if %{with python2} -%files -n python2-jinja2 -%doc CHANGES.rst -%doc ext -%doc examples -%license LICENSE.rst -%if %{with docs} -%doc docs/_build/html -%endif -%{python2_sitelib}/jinja2/ -%{python2_sitelib}/Jinja2-*.egg-info/ -%endif # with python2 - - -%if %{with python3} -%files -n python3-jinja2 +%files -n python3-jinja2 -f %{pyproject_files} %doc CHANGES.rst %doc examples %license LICENSE.rst %if %{with docs} %doc docs/_build/html %endif -%{python3_sitelib}/jinja2/ -%{python3_sitelib}/Jinja2-*.egg-info/ -%endif # with python3 %changelog +* Mon Nov 15 2021 Thomas Moschny - 3.0.1-4 +- Use new Python packaging guidelines. +- Jinja2 version 3 does not support Python 2 anymore. + * Wed Nov 10 2021 Karolina Surma - 3.0.1-3 - Don't explicitly declare runtime dependencies when building for Python 3 - Declare jinja2+i18n extra to map the upstream package structure