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 fd2a6c1..410f2c0 100644 --- a/python-jinja2.spec +++ b/python-jinja2.spec @@ -1,41 +1,27 @@ -%global srcname Jinja2 +%global srcname jinja2 Name: python-jinja2 -Version: 2.11.2 -Release: 1%{?dist} +Version: 3.1.6 +Release: 6%{?dist} Summary: General purpose template engine -License: BSD +License: BSD-3-Clause URL: https://palletsprojects.com/p/jinja/ -Source0: %{pypi_source} - -%if 0%{?fedora} || 0%{?rhel} > 7 -# Enable python3 build by default -%bcond_without python3 -%else -%bcond_with python3 -%endif - -%if 0%{?rhel} > 7 -# Disable python2 build by default -%bcond_with python2 -%else -%bcond_without python2 -%endif +Source0: %{pypi_source %srcname} # 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 +%if 0%{?rhel} || 0%{?flatpak} +%bcond_with docs %else -%bcond_with async +%bcond_without docs %endif +# The dependency on trio is undesired on RHEL +%bcond asyncio_tests %{undefined rhel} 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. @@ -43,143 +29,205 @@ 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 asyncio_tests} +BuildRequires: python3-trio +%endif %if %{with docs} BuildRequires: %{_bindir}/sphinx-build-3 BuildRequires: make -BuildRequires: python3-Pallets-Sphinx-Themes +BuildRequires: python3-Pallets-Sphinx-Themes >= 2 BuildRequires: python3-sphinxcontrib-log-cabinet BuildRequires: python3-sphinx-issues %endif -Requires: python3-babel >= 0.8 -Requires: python3-markupsafe >= 0.23 -Requires: python3-setuptools -%{?python_provide:%python_provide python3-jinja2} -%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 -%autosetup -n %{srcname}-%{version} +%autosetup -p1 -n %{srcname}-%{version} + + +%generate_buildrequires +%pyproject_buildrequires -x i18n -# cleanup -find . -name '*.pyo' -o -name '*.pyc' -delete %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 +# 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} -%if %{with python2} -%files -n python2-jinja2 -%doc CHANGES.rst -%doc ext -%doc examples -%license LICENSE.rst +%files -n python3-jinja2 -f %{pyproject_files} +%doc README.md +%doc docs/examples +%license LICENSE.txt %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 -%doc CHANGES.rst -%doc ext -%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 +* 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. diff --git a/sources b/sources index 1a05893..17e3310 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Jinja2-2.11.2.tar.gz) = baf62118702a7e113e6a22d9af58a5fa66af8017ded08f18705107a4cb93c9727c7fa118436aadfe0729d7f496241ca7bcce27863c5b19deaee3852eda68c082 +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}"