diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 02c0702..e0fc652 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /Jinja2-*.tar.gz +/jinja2-*.tar.gz diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..e6427de --- /dev/null +++ b/plans.fmf @@ -0,0 +1,4 @@ +discover: + how: fmf +execute: + how: tmt diff --git a/python-jinja2.spec b/python-jinja2.spec index ee51979..410f2c0 100644 --- a/python-jinja2.spec +++ b/python-jinja2.spec @@ -1,38 +1,27 @@ -%if 0%{?fedora} -%global with_python3 1 -%endif +%global srcname jinja2 + +Name: python-jinja2 +Version: 3.1.6 +Release: 6%{?dist} +Summary: General purpose template engine +License: BSD-3-Clause +URL: https://palletsprojects.com/p/jinja/ +Source0: %{pypi_source %srcname} # Enable building without docs to avoid a circular dependency between this # and python-sphinx: -%global with_docs 1 - -Name: python-jinja2 -Version: 2.8.1 -Release: 1%{?dist} -Summary: General purpose template engine -Group: Development/Languages -License: BSD -URL: http://jinja.pocoo.org/ -Source0: https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-%{version}.tar.gz +%if 0%{?rhel} || 0%{?flatpak} +%bcond_with docs +%else +%bcond_without docs +%endif +# The dependency on trio is undesired on RHEL +%bcond asyncio_tests %{undefined rhel} BuildArch: noarch -BuildRequires: python2-devel -BuildRequires: python2-setuptools -BuildRequires: python-markupsafe -BuildRequires: python2-pytest -%if 0%{?with_docs} -BuildRequires: python-sphinx -%endif # with_docs -%if 0%{?with_python3} -BuildRequires: python3-devel -BuildRequires: python3-setuptools -BuildRequires: python3-markupsafe -#BuildRequires: python3-pytest -%endif # with_python3 - -%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. @@ -40,126 +29,290 @@ 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 -%package -n python2-jinja2 -Summary: General purpose template engine for python2 -Group: Development/Languages -Requires: python2-babel >= 0.8 -Requires: python-markupsafe -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. - -%if 0%{?with_python3} %package -n python3-jinja2 -Summary: General purpose template engine for python3 -Group: Development/Languages -Requires: python3-markupsafe -Requires: python3-setuptools -# babel isn't py3k ready yet, and is only a weak dependency -#Requires: python3-babel >= 0.8 -%{?python_provide:%python_provide python3-jinja2} +Summary: %{summary} +BuildRequires: python3-devel +BuildRequires: python3-pytest +%if %{with asyncio_tests} +BuildRequires: python3-trio +%endif +%if %{with docs} +BuildRequires: %{_bindir}/sphinx-build-3 +BuildRequires: make +BuildRequires: python3-Pallets-Sphinx-Themes >= 2 +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. -%endif # with_python3 +%pyproject_extras_subpkg -n python3-jinja2 i18n %prep -%setup -q -n Jinja2-%{version} -# cleanup -find . -name '*.pyo' -o -name '*.pyc' -delete +%autosetup -p1 -n %{srcname}-%{version} + + +%generate_buildrequires +%pyproject_buildrequires -x i18n -# fix EOL -sed -i 's|\r$||g' LICENSE %build -%py2_build - -# for now, we build docs using Python 2.x and use that for both -# packages. -%if 0%{?with_docs} -make -C docs html PYTHONPATH=$(pwd) -%endif # with_docs - -%if 0%{?with_python3} -%py3_build -%endif # with_python3 +%pyproject_wheel +%if %{with docs} +make -C docs html PYTHONPATH=$(pwd)/src SPHINXBUILD=sphinx-build-3 +# remove hidden file +rm -rvf docs/_build/html/.buildinfo +%endif %install -%py2_install - -# remove hidden file -rm -rf docs/_build/html/.buildinfo - -%if 0%{?with_python3} -%py3_install -%endif # with_python3 +%pyproject_install +%pyproject_save_files jinja2 %check -# there are currently no tests in the jinja2 tarball -# make test - -%if 0%{?with_python3} -# there are currently no tests in the jinja2 tarball -# make test -%endif # with_python3 +# test_elif_deep is flaky for an unknown reason +# https://github.com/pallets/jinja/issues/2079 +%pytest tests -k "not test_elif_deep" %{!?with_asyncio_tests:--ignore tests/test_async.py --ignore tests/test_async_filters.py} -%files -n python2-jinja2 -%doc AUTHORS -%doc CHANGES -%license LICENSE -%if 0%{?with_docs} +%files -n python3-jinja2 -f %{pyproject_files} +%doc README.md +%doc docs/examples +%license LICENSE.txt +%if %{with docs} %doc docs/_build/html -%endif # with_docs -%doc ext -%doc examples -%{python2_sitelib}/jinja2 -%{python2_sitelib}/Jinja2-%{version}-py?.?.egg-info -%exclude %{python2_sitelib}/jinja2/_debugsupport.c - - -%if 0%{?with_python3} -%files -n python3-jinja2 -%doc AUTHORS -%doc CHANGES -%license LICENSE -%if 0%{?with_docs} -# docs are built with python2 -%doc docs/_build/html -%endif # with_docs -%doc ext -%doc examples -%{python3_sitelib}/jinja2 -%{python3_sitelib}/Jinja2-%{version}-py?.?.egg-info -%exclude %{python3_sitelib}/jinja2/_debugsupport.c -%endif # with_python3 +%endif %changelog +* Fri Sep 19 2025 Python Maint - 3.1.6-6 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 3.1.6-5 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 3.1.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 3.1.6-3 +- Rebuilt for Python 3.14 + +* Mon Jun 02 2025 Python Maint - 3.1.6-2 +- Bootstrap for Python 3.14 + +* Sun Mar 9 2025 Thomas Moschny - 3.1.6-1 +- Update to 3.1.6. + +* Sat Jan 18 2025 Fedora Release Engineering - 3.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jan 08 2025 Miro Hrončok - 3.1.5-1 +- Update to 3.1.5 +- Security fix for CVE-2024-56201 +- Fixes: rhzb#2333688 +- Fixes: rhzb#2336377 + +* Fri Jul 19 2024 Fedora Release Engineering - 3.1.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jun 08 2024 Python Maint - 3.1.4-4 +- Rebuilt for Python 3.13 + +* Fri Jun 07 2024 Python Maint - 3.1.4-3 +- Bootstrap for Python 3.13 + +* Thu May 23 2024 Miro Hrončok - 3.1.4-2 +- Python 3.13 fixes +- Fixes: rhzb#2245265 + +* Tue May 07 2024 Lumír Balhar - 3.1.4-1 +- Update to 3.1.4 (rhbz#2279211,rhbz#2279491) + +* Fri Jan 26 2024 Fedora Release Engineering - 3.1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 3.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 11 2024 Michel Lind - 3.1.3-1 +- Update to 3.1.3 to fix CVE-2024-22195 + +* Tue Aug 08 2023 Karolina Surma - 3.1.2-6 +- Declare the license as an SPDX expression + +* Fri Jul 21 2023 Fedora Release Engineering - 3.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jun 16 2023 Python Maint - 3.1.2-4 +- Rebuilt for Python 3.12 + +* Tue Jun 13 2023 Python Maint - 3.1.2-3 +- Bootstrap for Python 3.12 + +* Fri May 19 2023 Yaakov Selkowitz - 3.1.2-2 +- Disable docs by default in RHEL builds + +* Mon May 01 2023 Sandro Mani - 3.1.2-1 +- Update to 3.1.2 + +* Fri Jan 20 2023 Fedora Release Engineering - 3.0.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Nov 14 2022 Lumír Balhar - 3.0.3-6 +- Fix compatibility with pytest 7.2 + +* Fri Jul 22 2022 Fedora Release Engineering - 3.0.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 3.0.3-4 +- Rebuilt for Python 3.11 + +* Mon Jun 13 2022 Python Maint - 3.0.3-3 +- Bootstrap for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 3.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Nov 15 2021 Thomas Moschny - 3.0.3-1 +- Update to 3.0.3. + +* 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 + +* Fri Jul 23 2021 Fedora Release Engineering - 3.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 22 2021 Lumír Balhar - 3.0.1-1 +- Update to 3.0.1 +- Resolves: rhbz#1961862 + +* Fri Jun 04 2021 Python Maint - 2.11.3-3 +- Rebuilt for Python 3.10 + +* Wed Jun 02 2021 Python Maint - 2.11.3-2 +- Bootstrap for Python 3.10 + +* Sat Feb 6 2021 Thomas Moschny - 2.11.3-1 +- Update to 2.11.3. +- Add patches to build with Python 3.10 (#1907442). + +* Wed Jan 27 2021 Fedora Release Engineering - 2.11.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 21 2020 Miro Hrončok - 2.11.2-7 +- Drop python2-jinja2 on Fedora 34+ + +* Wed Jul 29 2020 Fedora Release Engineering - 2.11.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun May 24 2020 Miro Hrončok - 2.11.2-5 +- Rebuilt for Python 3.9 + +* Fri May 22 2020 Miro Hrončok - 2.11.2-4 +- Bootstrap for Python 3.9 + +* Fri May 22 2020 Thomas Moschny - 2.11.2-3 +- Re-add python2 subpackage (#1832057). + +* Wed May 6 2020 Thomas Moschny - 2.11.2-2 +- Drop python2 subpackage from F33 on (#1832057). + +* Wed Apr 15 2020 Thomas Moschny - 2.11.2-1 +- Re-add dependency on python-setuptools. + +* Wed Apr 15 2020 Dan Horák - 2.11.2-1 +- Update to 2.11.2 + +* Mon Apr 06 2020 Igor Raits - 2.11.1-2 +- Drop unneeded R: pythonX-setuptools + +* Sat Feb 8 2020 Thomas Moschny - 2.11.1-1 +- Update to 2.11.1. + +* Thu Jan 30 2020 Fedora Release Engineering - 2.10.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Nov 20 2019 Thomas Moschny - 2.10.3-2 +- Add missing BR on make. + +* Mon Nov 11 2019 Lumír Balhar - 2.10.3-1 +- New upstream version (2.10.3) + +* Thu Oct 03 2019 Miro Hrončok - 2.10.1-5 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Sat Aug 17 2019 Miro Hrončok - 2.10.1-4 +- Rebuilt for Python 3.8 + +* Thu Aug 15 2019 Miro Hrončok - 2.10.1-3 +- Bootstrap for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 2.10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 10 2019 Thomas Moschny - 2.10.1-1 +- Update to 2.10.1. +- Update specfile. + +* Wed Feb 27 2019 Phil Wyett - 2.10-8 +- Fix FTBS due to bad conditional +- Add version requirement for markupsafe + +* Sat Feb 02 2019 Fedora Release Engineering - 2.10-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 2.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Miro Hrončok - 2.10-5 +- Rebuilt for Python 3.7 + +* Thu Jun 14 2018 Miro Hrončok - 2.10-4 +- Bootstrap for Python 3.7 + +* Mon Apr 16 2018 Charalampos Stratakis - 2.10-3 +- Don't build the Python 2 subpackage on EL > 7 + +* Fri Feb 09 2018 Fedora Release Engineering - 2.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Nov 16 2017 Thomas Moschny - 2.10-1 +- Update to 2.10. +- Use %%bcond. +- Move BRs to their respective subpackages. + +* Fri Oct 20 2017 Troy Dawson - 2.9.6-4 +- Really cleanup spec file conditionals + +* Fri Sep 29 2017 Troy Dawson - 2.9.6-3 +- Cleanup spec file conditionals + +* Thu Jul 27 2017 Fedora Release Engineering - 2.9.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Apr 5 2017 Thomas Moschny - 2.9.6-1 +- Update to 2.9.6. + +* Sat Feb 11 2017 Fedora Release Engineering - 2.9.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun Jan 29 2017 Thomas Moschny - 2.9.5-1 +- Update to 2.9.5. + +* Fri Jan 13 2017 Thomas Moschny - 2.9.4-1 +- Update to 2.9.4. + * Sat Dec 31 2016 Thomas Moschny - 2.8.1-1 - Update to 2.8.1. diff --git a/sources b/sources index bbfe628..17e3310 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Jinja2-2.8.1.tar.gz) = 0a2e2aa94f5c2f04f79d59d34d5324d2a440385b71192e85e960c761b4a073400e4ab0458e57305650f696a474593d6fbf398fb1d9518be261bb2a5cb866e163 +SHA512 (jinja2-3.1.6.tar.gz) = bddd5e142f1462426c57b2efafdfafdfc6b66de257668707940896feae71eabdf19e0b6e34ef49b965153baf9b1eb59bb5a97349bb287ea0921dd2a751e967ab diff --git a/tests/smoke.fmf b/tests/smoke.fmf new file mode 100644 index 0000000..19656ca --- /dev/null +++ b/tests/smoke.fmf @@ -0,0 +1,7 @@ +description: | + Runs very simple jinja2 template which should always work +test: python3 smoke.py +framework: shell +require: +- python3 +- python3-jinja2 diff --git a/tests/smoke.py b/tests/smoke.py new file mode 100644 index 0000000..99a000c --- /dev/null +++ b/tests/smoke.py @@ -0,0 +1,9 @@ +import jinja2 + + +TEMPLATE = "Text {{ variable }}" + +environment = jinja2.Environment() +template = environment.from_string(TEMPLATE) +output = template.render(variable="demo") +assert output == "Text demo", f"got: {output}"