1
0
forked from pool/python-Django
python-Django/python-Django.spec
Daniel Garcia 7fe88e78a2 - Update to 4.2.6 (bsc#1215978, CVE-2023-43665)
* CVE-2023-43665: Denial-of-service possibility in
    django.utils.text.Truncator
    The input processed by Truncator, when operating in HTML mode, has
    been limited to the first five million characters in order to
    avoid potential performance and memory issues.
  * Fixed a regression in Django 4.2.5 where overriding the deprecated
    DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings in tests
    caused the main STORAGES to mutate (#34821).
  * Fixed a regression in Django 4.2 that caused unnecessary casting
    of string based fields (CharField, EmailField, TextField,
    CICharField, CIEmailField, and CITextField) used with the __isnull
    lookup on PostgreSQL. As a consequence, indexes using an __isnull
    expression or condition created before Django 4.2 wouldn’t be used
    by the query planner, leading to a performance regression
    (#34840).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:django/python-Django?expand=0&rev=147
2023-10-16 08:50:29 +00:00

155 lines
5.5 KiB
RPMSpec

#
# spec file for package python-Django
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define skip_python2 1
%define skip_python36 1
# Selenium and memcached are not operational
%bcond_with selenium
%bcond_with memcached
%{?sle15_python_module_pythons}
Name: python-Django
# We want support LTS versions of Django - numbered 2.2 -> 3.2 -> 4.2 etc
Version: 4.2.6
Release: 0
Summary: A high-level Python Web framework
License: BSD-3-Clause
URL: https://www.djangoproject.com
Source: https://www.djangoproject.com/m/releases/4.2/Django-%{version}.tar.gz
Source1: https://media.djangoproject.com/pgp/Django-%{version}.checksum.txt
Source2: %{name}.keyring
Source99: python-Django-rpmlintrc
# PATCH-FIX-UPSTREAM https://github.com/django/django/commit/da2f8e8257d1bea4215381684ca4abfcee333c43 Refs #34118 -- Improved sanitize_address() error message for tuple with empty strings.
Patch: sanitize_address.patch
BuildRequires: %{python_module Jinja2 >= 2.9.2}
BuildRequires: %{python_module Pillow >= 6.2.0}
BuildRequires: %{python_module PyYAML}
BuildRequires: %{python_module argon2-cffi >= 19.1.0}
BuildRequires: %{python_module asgiref >= 3.6.0}
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module bcrypt}
BuildRequires: %{python_module docutils}
BuildRequires: %{python_module geoip2}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pytz}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module sqlparse >= 0.3.1}
BuildRequires: %{python_module tblib >= 1.5.0}
BuildRequires: %{pythons}
BuildRequires: fdupes
BuildRequires: gpg2
BuildRequires: python-rpm-macros
BuildRequires: %{python_module backports.zoneinfo if (%python-base with python38-base)}
Requires: python
Requires: python-Pillow >= 6.2.0
Requires: python-argon2-cffi >= 19.1.0
Requires: python-asgiref >= 3.6.0
%if "%{python_flavor}" == "python38"
Requires: python-backports.zoneinfo
%endif
Requires: python-bcrypt
Requires: python-pytz
Requires: python-setuptools
Requires: python-sqlparse >= 0.3.1
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: python-Jinja2 >= 2.9.2
Recommends: python-PyYAML
Recommends: python-geoip2
Recommends: python-pylibmc
Recommends: python-pymemcache
Provides: python-django = %{version}
Obsoletes: python-django < %{version}
Provides: python-South = %{version}
Obsoletes: python-South < %{version}
BuildArch: noarch
%if %{with memcached}
BuildRequires: %{python_module pylibmc}
BuildRequires: %{python_module pymemcache}
%endif
%if %{with selenium}
# python-selenium is supported only on the Intel architecture.
# Additionally chromedriver is only available on x86_64.
%ifarch %{ix86} x86_64
BuildRequires: %{python_module selenium}
BuildRequires: chromedriver
BuildRequires: xvfb-run
%endif
%endif
%python_subpackages
%description
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
%prep
# The publisher doesn't sign the source tarball, but a signatures file
# containing multiple hashes.
gpg --import %{SOURCE2}
gpg --verify %{SOURCE1}
#
# Verify hashes in that file against source tarball.
echo "`grep -e '^[0-9a-f]\{32\} Django-%{version}.tar.gz' %{SOURCE1} | cut -c1-32` %{SOURCE0}" | md5sum -c
echo "`grep -e '^[0-9a-f]\{40\} Django-%{version}.tar.gz' %{SOURCE1} | cut -c1-40` %{SOURCE0}" | sha1sum -c
echo "`grep -e '^[0-9a-f]\{64\} Django-%{version}.tar.gz' %{SOURCE1} | cut -c1-64` %{SOURCE0}" | sha256sum -c
%autosetup -p1 -n Django-%{version}
%build
%python_build
%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/django-admin
%{python_expand install -D -m 0644 extras/django_bash_completion %{buildroot}%%{_datadir}/bash-completion/completions/django_bash_completion-%{$python_bin_suffix}.sh
# Fix wrong-script-interpreter
sed -i "s|^#!%{_bindir}/env python$|#!%{_bindir}/$python|" \
%{buildroot}%{$python_sitelib}/django/conf/project_template/manage.py-tpl
}
%python_compileall
%{python_expand #
%fdupes %{buildroot}%{$python_sitelib}/django/
%fdupes %{buildroot}%{$python_sitelib}/Django-%{version}-py*.egg-info/
}
%check
export LANG=en_US.UTF8
export PYTHONDONTWRITEBYTECODE=1
%if %{with selenium}
export PATH=%{_libdir}/chromium:$PATH
%python_expand PYTHONPATH=.:%{buildroot}%{$python_sitelib} xvfb-run $python tests/runtests.py -v 2 --selenium=chrome
%else
%python_expand PYTHONPATH=.:%{buildroot}%{$python_sitelib} $python tests/runtests.py -v 2
%endif
%post
%{python_install_alternative django-admin}
%postun
%{python_uninstall_alternative django-admin}
%files %{python_files}
%doc AUTHORS README.rst
%license LICENSE
%python_alternative %{_bindir}/django-admin
%{_datadir}/bash-completion/completions/django_bash_completion-%{python_bin_suffix}.sh
%{python_sitelib}/django
%{python_sitelib}/Django-%{version}-py*.egg-info
%changelog