aboutsummaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorKai Knoblich <kai@FreeBSD.org>2022-06-16 15:57:10 +0000
committerKai Knoblich <kai@FreeBSD.org>2022-06-16 16:28:33 +0000
commit89acacbfee22729e7d1bfcce383d455bb88adfc3 (patch)
tree4321cf9ad6097bd48f8e27098d9734e552bf3679 /www
parent9a9801cb0a6becfe3adfff9bfb259b772f41472e (diff)
downloadports-89acacbfee22729e7d1bfcce383d455bb88adfc3.tar.gz
ports-89acacbfee22729e7d1bfcce383d455bb88adfc3.zip
net-mgmt/netbox: Create Django 4.0 consumers
* Django 3.2 is currently the "default" version in the ports tree due its long term support until April 2024. Thus ports that are assigned to that version will exist until then. The following ports are required to make the upgrade of net-mgmt/netbox to the 3.2 release possible because it requires Django 4.0. All of the ports listed below were created on the basis of their respective original ports: - devel/py-dj40-django-rq - devel/py-dj40-graphene-django - www/py-dj40-django-auth-ldap - www/py-dj40-django-cors-headers - www/py-dj40-django-debug-toolbar - www/py-dj40-django-filter - www/py-dj40-django-graphiql-debug-toolbar - www/py-dj40-django-js-asset - www/py-dj40-django-mptt - www/py-dj40-django-prometheus - www/py-dj40-django-redis - www/py-dj40-django-tables2 - www/py-dj40-django-taggit - www/py-dj40-django-timezone-field - www/py-dj40-djangorestframework - www/py-dj40-drf-yasg * Simplify the related CONFLICTS_INSTALL entries as well. This also reduces editing of the Makefiles if another ports need to be "repo-copied" (e.g. for Django 4.1) based on the original ports in the future. [1] Reviewed by: se [1], sunpoet Differential Revision: https://reviews.freebsd.org/D35444
Diffstat (limited to 'www')
-rw-r--r--www/Makefile14
-rw-r--r--www/py-dj40-django-auth-ldap/Makefile38
-rw-r--r--www/py-dj40-django-auth-ldap/distinfo3
-rw-r--r--www/py-dj40-django-auth-ldap/files/patch-docs_conf.py20
-rw-r--r--www/py-dj40-django-auth-ldap/files/setup.py5
-rw-r--r--www/py-dj40-django-auth-ldap/pkg-descr6
-rw-r--r--www/py-dj40-django-cors-headers/Makefile21
-rw-r--r--www/py-dj40-django-cors-headers/distinfo3
-rw-r--r--www/py-dj40-django-cors-headers/pkg-descr4
-rw-r--r--www/py-dj40-django-debug-toolbar/Makefile23
-rw-r--r--www/py-dj40-django-debug-toolbar/distinfo3
-rw-r--r--www/py-dj40-django-debug-toolbar/pkg-descr5
-rw-r--r--www/py-dj40-django-filter/Makefile22
-rw-r--r--www/py-dj40-django-filter/distinfo3
-rw-r--r--www/py-dj40-django-filter/pkg-descr4
-rw-r--r--www/py-dj40-django-graphiql-debug-toolbar/Makefile24
-rw-r--r--www/py-dj40-django-graphiql-debug-toolbar/distinfo3
-rw-r--r--www/py-dj40-django-graphiql-debug-toolbar/pkg-descr4
-rw-r--r--www/py-dj40-django-js-asset/Makefile22
-rw-r--r--www/py-dj40-django-js-asset/distinfo3
-rw-r--r--www/py-dj40-django-js-asset/pkg-descr4
-rw-r--r--www/py-dj40-django-mptt/Makefile23
-rw-r--r--www/py-dj40-django-mptt/distinfo3
-rw-r--r--www/py-dj40-django-mptt/pkg-descr4
-rw-r--r--www/py-dj40-django-prometheus/Makefile34
-rw-r--r--www/py-dj40-django-prometheus/distinfo3
-rw-r--r--www/py-dj40-django-prometheus/pkg-descr16
-rw-r--r--www/py-dj40-django-redis/Makefile29
-rw-r--r--www/py-dj40-django-redis/distinfo3
-rw-r--r--www/py-dj40-django-redis/pkg-descr17
-rw-r--r--www/py-dj40-django-tables2/Makefile27
-rw-r--r--www/py-dj40-django-tables2/distinfo3
-rw-r--r--www/py-dj40-django-tables2/pkg-descr5
-rw-r--r--www/py-dj40-django-taggit/Makefile26
-rw-r--r--www/py-dj40-django-taggit/distinfo3
-rw-r--r--www/py-dj40-django-taggit/pkg-descr3
-rw-r--r--www/py-dj40-django-timezone-field/Makefile29
-rw-r--r--www/py-dj40-django-timezone-field/distinfo3
-rw-r--r--www/py-dj40-django-timezone-field/pkg-descr3
-rw-r--r--www/py-dj40-djangorestframework/Makefile22
-rw-r--r--www/py-dj40-djangorestframework/distinfo3
-rw-r--r--www/py-dj40-djangorestframework/pkg-descr4
-rw-r--r--www/py-dj40-drf-yasg/Makefile37
-rw-r--r--www/py-dj40-drf-yasg/distinfo3
-rw-r--r--www/py-dj40-drf-yasg/pkg-descr20
-rw-r--r--www/py-django-auth-ldap/Makefile3
-rw-r--r--www/py-django-cors-headers/Makefile3
-rw-r--r--www/py-django-debug-toolbar/Makefile3
-rw-r--r--www/py-django-filter/Makefile3
-rw-r--r--www/py-django-graphiql-debug-toolbar/Makefile2
-rw-r--r--www/py-django-js-asset/Makefile3
-rw-r--r--www/py-django-mptt/Makefile4
-rw-r--r--www/py-django-prometheus/Makefile3
-rw-r--r--www/py-django-redis/Makefile3
-rw-r--r--www/py-django-tables2/Makefile3
-rw-r--r--www/py-django-taggit/Makefile3
-rw-r--r--www/py-django-timezone-field/Makefile2
-rw-r--r--www/py-djangorestframework/Makefile2
-rw-r--r--www/py-drf-yasg/Makefile3
59 files changed, 572 insertions, 25 deletions
diff --git a/www/Makefile b/www/Makefile
index 813dd6bf6950..e65eb243e126 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1478,6 +1478,20 @@
SUBDIR += py-dj32-django-treebeard
SUBDIR += py-dj32-djangorestframework
SUBDIR += py-dj32-drf-yasg
+ SUBDIR += py-dj40-django-auth-ldap
+ SUBDIR += py-dj40-django-cors-headers
+ SUBDIR += py-dj40-django-debug-toolbar
+ SUBDIR += py-dj40-django-filter
+ SUBDIR += py-dj40-django-graphiql-debug-toolbar
+ SUBDIR += py-dj40-django-js-asset
+ SUBDIR += py-dj40-django-mptt
+ SUBDIR += py-dj40-django-prometheus
+ SUBDIR += py-dj40-django-redis
+ SUBDIR += py-dj40-django-tables2
+ SUBDIR += py-dj40-django-taggit
+ SUBDIR += py-dj40-django-timezone-field
+ SUBDIR += py-dj40-djangorestframework
+ SUBDIR += py-dj40-drf-yasg
SUBDIR += py-django
SUBDIR += py-django-admin-rangefilter
SUBDIR += py-django-advanced-filters
diff --git a/www/py-dj40-django-auth-ldap/Makefile b/www/py-dj40-django-auth-ldap/Makefile
new file mode 100644
index 000000000000..d9e1cf8e1604
--- /dev/null
+++ b/www/py-dj40-django-auth-ldap/Makefile
@@ -0,0 +1,38 @@
+PORTNAME= django-auth-ldap
+PORTVERSION= 4.1.0
+CATEGORIES= www security python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= LDAP integration for django.contrib.auth
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=3.4:devel/py-setuptools_scm@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ldap>=3.1:net/py-ldap@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist concurrent distutils
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+PORTDOCS= *
+OPTIONS_DEFINE= DOCS
+DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
+DOCS_VARS= PYDISTUTILS_BUILD_TARGET+="build_sphinx -a -E"
+
+# Workaround to make the port still buildable with "distutils"
+post-extract:
+ @${CP} ${FILESDIR}/setup.py ${WRKSRC}/
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ (cd ${WRKSRC}/build/sphinx/html && \
+ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \
+ "! -name .buildinfo -and ! -name objects.inv")
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-auth-ldap/distinfo b/www/py-dj40-django-auth-ldap/distinfo
new file mode 100644
index 000000000000..43490a063c0e
--- /dev/null
+++ b/www/py-dj40-django-auth-ldap/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1654945388
+SHA256 (django-auth-ldap-4.1.0.tar.gz) = 77f749d3b17807ce8eb56a9c9c8e5746ff316567f81d5ba613495d9c7495a949
+SIZE (django-auth-ldap-4.1.0.tar.gz) = 53254
diff --git a/www/py-dj40-django-auth-ldap/files/patch-docs_conf.py b/www/py-dj40-django-auth-ldap/files/patch-docs_conf.py
new file mode 100644
index 000000000000..d41916245ebc
--- /dev/null
+++ b/www/py-dj40-django-auth-ldap/files/patch-docs_conf.py
@@ -0,0 +1,20 @@
+Avoid the download of various intersphinx inventories during build. Only two
+intersphinx mappings are used and the documentation can be built/used without
+them.
+
+--- docs/conf.py.orig 2022-06-12 10:26:47 UTC
++++ docs/conf.py
+@@ -188,13 +188,3 @@ texinfo_documents = [
+ # -- Extension configuration -------------------------------------------------
+
+ # -- Options for intersphinx extension ---------------------------------------
+-
+-intersphinx_mapping = {
+- "python": ("https://docs.python.org/3/", None),
+- "django": (
+- "https://docs.djangoproject.com/en/stable/",
+- "https://docs.djangoproject.com/en/stable/_objects/",
+- ),
+- "pythonldap": ("https://www.python-ldap.org/en/latest/", None),
+- "tox": ("https://tox.wiki/en/latest/", None),
+-}
diff --git a/www/py-dj40-django-auth-ldap/files/setup.py b/www/py-dj40-django-auth-ldap/files/setup.py
new file mode 100644
index 000000000000..927cf403e2f6
--- /dev/null
+++ b/www/py-dj40-django-auth-ldap/files/setup.py
@@ -0,0 +1,5 @@
+# Taken from the previous release (= 3.0.0)
+
+from setuptools import setup
+
+setup()
diff --git a/www/py-dj40-django-auth-ldap/pkg-descr b/www/py-dj40-django-auth-ldap/pkg-descr
new file mode 100644
index 000000000000..74682fda4265
--- /dev/null
+++ b/www/py-dj40-django-auth-ldap/pkg-descr
@@ -0,0 +1,6 @@
+This is a Django authentication backend that authenticates against an LDAP
+service. Configuration can be as simple as a single distinguished name template,
+but there are many rich configuration options for working with users, groups,
+and permissions.
+
+WWW: https://github.com/django-auth-ldap/django-auth-ldap
diff --git a/www/py-dj40-django-cors-headers/Makefile b/www/py-dj40-django-cors-headers/Makefile
new file mode 100644
index 000000000000..fc9647dc12ab
--- /dev/null
+++ b/www/py-dj40-django-cors-headers/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= django-cors-headers
+PORTVERSION= 3.12.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Handles server headers required for Cross-Origin Resource Sharing
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=3.2:www/py-django40@${PY_FLAVOR}
+
+USES= python:3.7+
+USE_PYTHON= autoplist distutils
+
+NO_ARCH= yes
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-cors-headers/distinfo b/www/py-dj40-django-cors-headers/distinfo
new file mode 100644
index 000000000000..26998037b0e1
--- /dev/null
+++ b/www/py-dj40-django-cors-headers/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1652519963
+SHA256 (django-cors-headers-3.12.0.tar.gz) = 5f07e2ff8a95c887698e748588a4a0b2ad0ad1b5a292e2d33132f1253e2a97cb
+SIZE (django-cors-headers-3.12.0.tar.gz) = 21054
diff --git a/www/py-dj40-django-cors-headers/pkg-descr b/www/py-dj40-django-cors-headers/pkg-descr
new file mode 100644
index 000000000000..7248fec2ba2d
--- /dev/null
+++ b/www/py-dj40-django-cors-headers/pkg-descr
@@ -0,0 +1,4 @@
+A Django App that adds CORS (Cross-Origin Resource Sharing) headers to
+responses.
+
+WWW: https://github.com/adamchainz/django-cors-headers
diff --git a/www/py-dj40-django-debug-toolbar/Makefile b/www/py-dj40-django-debug-toolbar/Makefile
new file mode 100644
index 000000000000..b85ebb36fdb7
--- /dev/null
+++ b/www/py-dj40-django-debug-toolbar/Makefile
@@ -0,0 +1,23 @@
+PORTNAME= django-debug-toolbar
+PORTVERSION= 3.2.4
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Configurable set of panels to display debug information
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sqlparse>=0.2.0:databases/py-sqlparse@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-debug-toolbar/distinfo b/www/py-dj40-django-debug-toolbar/distinfo
new file mode 100644
index 000000000000..e5834ab3ad6d
--- /dev/null
+++ b/www/py-dj40-django-debug-toolbar/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1641046016
+SHA256 (django-debug-toolbar-3.2.4.tar.gz) = 644bbd5c428d3283aa9115722471769cac1bec189edf3a0c855fd8ff870375a9
+SIZE (django-debug-toolbar-3.2.4.tar.gz) = 128774
diff --git a/www/py-dj40-django-debug-toolbar/pkg-descr b/www/py-dj40-django-debug-toolbar/pkg-descr
new file mode 100644
index 000000000000..9a28df80297f
--- /dev/null
+++ b/www/py-dj40-django-debug-toolbar/pkg-descr
@@ -0,0 +1,5 @@
+The Django Debug Toolbar is a configurable set of panels that display various
+debug information about the current request/response and when clicked, display
+more details about the panel's content.
+
+WWW: https://github.com/jazzband/django-debug-toolbar
diff --git a/www/py-dj40-django-filter/Makefile b/www/py-dj40-django-filter/Makefile
new file mode 100644
index 000000000000..ad55d3551bd6
--- /dev/null
+++ b/www/py-dj40-django-filter/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= django-filter
+DISTVERSION= 21.1
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Dynamic filtering for querysets with Django
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-filter/distinfo b/www/py-dj40-django-filter/distinfo
new file mode 100644
index 000000000000..1a819fdaccb6
--- /dev/null
+++ b/www/py-dj40-django-filter/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1632927725
+SHA256 (django-filter-21.1.tar.gz) = 632a251fa8f1aadb4b8cceff932bb52fe2f826dd7dfe7f3eac40e5c463d6836e
+SIZE (django-filter-21.1.tar.gz) = 154188
diff --git a/www/py-dj40-django-filter/pkg-descr b/www/py-dj40-django-filter/pkg-descr
new file mode 100644
index 000000000000..8b454bf6899f
--- /dev/null
+++ b/www/py-dj40-django-filter/pkg-descr
@@ -0,0 +1,4 @@
+Django-filter is a reusable Django application allowing users to declaratively
+add dynamic QuerySet filtering from URL parameters.
+
+WWW: https://github.com/carltongibson/django-filter
diff --git a/www/py-dj40-django-graphiql-debug-toolbar/Makefile b/www/py-dj40-django-graphiql-debug-toolbar/Makefile
new file mode 100644
index 000000000000..83b0e0b8de06
--- /dev/null
+++ b/www/py-dj40-django-graphiql-debug-toolbar/Makefile
@@ -0,0 +1,24 @@
+PORTNAME= django-graphiql-debug-toolbar
+DISTVERSION= 0.2.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Django Debug Toolbar for GraphiQL IDE
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj40-graphene-django>=2.0.0:devel/py-dj40-graphene-django@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj40-django-debug-toolbar>=3.1:www/py-dj40-django-debug-toolbar@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist distutils
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-graphiql-debug-toolbar/distinfo b/www/py-dj40-django-graphiql-debug-toolbar/distinfo
new file mode 100644
index 000000000000..559e6602138b
--- /dev/null
+++ b/www/py-dj40-django-graphiql-debug-toolbar/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1630337959
+SHA256 (django-graphiql-debug-toolbar-0.2.0.tar.gz) = aec7a9e096594123d9fc359a583da794a0020b5391d941dda584ce1e667e0afd
+SIZE (django-graphiql-debug-toolbar-0.2.0.tar.gz) = 5000
diff --git a/www/py-dj40-django-graphiql-debug-toolbar/pkg-descr b/www/py-dj40-django-graphiql-debug-toolbar/pkg-descr
new file mode 100644
index 000000000000..328c55ac2ba0
--- /dev/null
+++ b/www/py-dj40-django-graphiql-debug-toolbar/pkg-descr
@@ -0,0 +1,4 @@
+This package is an extension for Django Debug Toolbar which enables support
+for debugging GraphiQL queries in Django Projects.
+
+WWW: https://github.com/flavors/django-graphiql-debug-toolbar
diff --git a/www/py-dj40-django-js-asset/Makefile b/www/py-dj40-django-js-asset/Makefile
new file mode 100644
index 000000000000..ef7598e56faf
--- /dev/null
+++ b/www/py-dj40-django-js-asset/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= django-js-asset
+DISTVERSION= 1.2.2
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Insert script tags with additional attributes for django.forms.Media
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>0:www/py-django40@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-js-asset/distinfo b/www/py-dj40-django-js-asset/distinfo
new file mode 100644
index 000000000000..95516ac977d9
--- /dev/null
+++ b/www/py-dj40-django-js-asset/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1586294408
+SHA256 (django-js-asset-1.2.2.tar.gz) = c163ae80d2e0b22d8fb598047cd0dcef31f81830e127cfecae278ad574167260
+SIZE (django-js-asset-1.2.2.tar.gz) = 4436
diff --git a/www/py-dj40-django-js-asset/pkg-descr b/www/py-dj40-django-js-asset/pkg-descr
new file mode 100644
index 000000000000..1b3c52191784
--- /dev/null
+++ b/www/py-dj40-django-js-asset/pkg-descr
@@ -0,0 +1,4 @@
+Insert script tags with additional attributes (such as "id" and "data" for
+CSP-compatible data injection) for the django.forms.Media package.
+
+WWW: https://github.com/matthiask/django-js-asset
diff --git a/www/py-dj40-django-mptt/Makefile b/www/py-dj40-django-mptt/Makefile
new file mode 100644
index 000000000000..54b0eb3bc879
--- /dev/null
+++ b/www/py-dj40-django-mptt/Makefile
@@ -0,0 +1,23 @@
+PORTNAME= django-mptt
+PORTVERSION= 0.13.4
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Utilities for implementing Modified Preorder Tree Traversal in Django
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}dj40-django-js-asset>0:www/py-dj40-django-js-asset@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist distutils
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-mptt/distinfo b/www/py-dj40-django-mptt/distinfo
new file mode 100644
index 000000000000..d16c6d82366f
--- /dev/null
+++ b/www/py-dj40-django-mptt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1632928296
+SHA256 (django-mptt-0.13.4.tar.gz) = 80c9fb34df7796a4e5af0cb6b8ade3697555b1aa438bd07a01f32b3ab5202b63
+SIZE (django-mptt-0.13.4.tar.gz) = 102901
diff --git a/www/py-dj40-django-mptt/pkg-descr b/www/py-dj40-django-mptt/pkg-descr
new file mode 100644
index 000000000000..965e7289f5b7
--- /dev/null
+++ b/www/py-dj40-django-mptt/pkg-descr
@@ -0,0 +1,4 @@
+Utilities for implementing Modified Preorder Tree Traversal with your Django
+Models and working with trees of Model instances.
+
+WWW: https://github.com/django-mptt/django-mptt
diff --git a/www/py-dj40-django-prometheus/Makefile b/www/py-dj40-django-prometheus/Makefile
new file mode 100644
index 000000000000..7aab23735366
--- /dev/null
+++ b/www/py-dj40-django-prometheus/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= django-prometheus
+PORTVERSION= 2.2.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Export Django monitoring metrics for Prometheus.io
+
+LICENSE= APACHE20
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}prometheus-client>=0.7:net-mgmt/py-prometheus-client@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist distutils
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+OPTIONS_GROUP= DATABASE CACHE
+OPTIONS_GROUP_CACHE= MEMCACHED REDIS
+OPTIONS_GROUP_DATABASE= MYSQL PGSQL
+
+MEMCACHED_DESC= Memcached distributed memory caching support
+
+MEMCACHED_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}python-memcached>=0:databases/py-python-memcached@${PY_FLAVOR}
+MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=0:databases/py-mysqlclient@${PY_FLAVOR}
+PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>=0:databases/py-psycopg2@${PY_FLAVOR}
+REDIS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj40-django-redis>=4.8:www/py-dj40-django-redis@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-prometheus/distinfo b/www/py-dj40-django-prometheus/distinfo
new file mode 100644
index 000000000000..65dd0e40195c
--- /dev/null
+++ b/www/py-dj40-django-prometheus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1641495767
+SHA256 (django-prometheus-2.2.0.tar.gz) = 240378a1307c408bd5fc85614a3a57f1ce633d4a222c9e291e2bbf325173b801
+SIZE (django-prometheus-2.2.0.tar.gz) = 24995
diff --git a/www/py-dj40-django-prometheus/pkg-descr b/www/py-dj40-django-prometheus/pkg-descr
new file mode 100644
index 000000000000..5bb2be69d186
--- /dev/null
+++ b/www/py-dj40-django-prometheus/pkg-descr
@@ -0,0 +1,16 @@
+This library exports Django monitoring metrics for Prometheus.io.
+
+It provides support to monitor the following databases types:
+
+* SQLite (via Django)
+* PostgreSQL
+* MySQL
+
+In addition, caches can also be monitored:
+
+* memcached
+* Redis
+
+It's even possible to export metrics of Django models and migrations.
+
+WWW: https://github.com/korfuri/django-prometheus
diff --git a/www/py-dj40-django-redis/Makefile b/www/py-dj40-django-redis/Makefile
new file mode 100644
index 000000000000..aaaaee92c0ea
--- /dev/null
+++ b/www/py-dj40-django-redis/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= django-redis
+PORTVERSION= 5.2.0
+CATEGORIES= www databases python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Full featured Redis cache/session backend for Django
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}redis>=3<4:databases/py-redis@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hiredis>=0:databases/py-hiredis@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}msgpack>=0:devel/py-msgpack@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+do-test:
+ @cd ${WRKSRC}/tests && ${PYTHON_CMD} runtests.py
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-redis/distinfo b/www/py-dj40-django-redis/distinfo
new file mode 100644
index 000000000000..e8022e0e5f97
--- /dev/null
+++ b/www/py-dj40-django-redis/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1641046018
+SHA256 (django-redis-5.2.0.tar.gz) = 8a99e5582c79f894168f5865c52bd921213253b7fd64d16733ae4591564465de
+SIZE (django-redis-5.2.0.tar.gz) = 44132
diff --git a/www/py-dj40-django-redis/pkg-descr b/www/py-dj40-django-redis/pkg-descr
new file mode 100644
index 000000000000..765564e7a725
--- /dev/null
+++ b/www/py-dj40-django-redis/pkg-descr
@@ -0,0 +1,17 @@
+Django-redis is a BSD Licensed, full featured Redis cache/session
+backend for Django.
+
+Why use django-redis?
+
+ * Modular client system (pluggable clients).
+ * Master-Slave support in the default client.
+ * Used in production in several projects as cache and session storage.
+ * Supports infinite timeouts.
+ * Python 3 support in same code base.
+ * Facilities for raw access to Redis client/connection pool.
+ * Highly configurable (can emulate memcached exception behavior, for
+ example).
+ * Unix sockets supported by default.
+ * Pluggable parsers.
+
+WWW: https://github.com/jazzband/django-redis
diff --git a/www/py-dj40-django-tables2/Makefile b/www/py-dj40-django-tables2/Makefile
new file mode 100644
index 000000000000..99dff8cee92f
--- /dev/null
+++ b/www/py-dj40-django-tables2/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= django-tables2
+DISTVERSION= 2.4.1
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Table/data-grid framework for Django
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=1.11:www/py-django40@${PY_FLAVOR}
+
+USES= python:3.7+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= TABLIB
+
+TABLIB_DESC= Enable support for exporting table datasets
+TABLIB_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tablib>=0:textproc/py-tablib@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-tables2/distinfo b/www/py-dj40-django-tables2/distinfo
new file mode 100644
index 000000000000..151f1103a4fd
--- /dev/null
+++ b/www/py-dj40-django-tables2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633552255
+SHA256 (django-tables2-2.4.1.tar.gz) = 6c72dd208358539e789e4c0efd7d151e43283a4aa4093a35f44c43489e7ddeaa
+SIZE (django-tables2-2.4.1.tar.gz) = 78516
diff --git a/www/py-dj40-django-tables2/pkg-descr b/www/py-dj40-django-tables2/pkg-descr
new file mode 100644
index 000000000000..e4a9e8e434f9
--- /dev/null
+++ b/www/py-dj40-django-tables2/pkg-descr
@@ -0,0 +1,5 @@
+django-tables2 simplifies the task of turning sets of data into HTML tables.
+It has native support for pagination and sorting, does for HTML tables what
+django.forms does for HTML forms.
+
+WWW: https://github.com/jieter/django-tables2
diff --git a/www/py-dj40-django-taggit/Makefile b/www/py-dj40-django-taggit/Makefile
new file mode 100644
index 000000000000..3307ba7ca174
--- /dev/null
+++ b/www/py-dj40-django-taggit/Makefile
@@ -0,0 +1,26 @@
+PORTNAME= django-taggit
+PORTVERSION= 2.1.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Reusable Django application for simple tagging
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj40-djangorestframework>0:www/py-dj40-djangorestframework@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist distutils
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+do-test:
+ @cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m django test --settings=tests.settings -v3
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-django-taggit/distinfo b/www/py-dj40-django-taggit/distinfo
new file mode 100644
index 000000000000..6fb77687abb6
--- /dev/null
+++ b/www/py-dj40-django-taggit/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1644942645
+SHA256 (django-taggit-2.1.0.tar.gz) = a9f41e4ad58efe4b28d86f274728ee87eb98eeae90c9eb4b4efad39e5068184e
+SIZE (django-taggit-2.1.0.tar.gz) = 55659
diff --git a/www/py-dj40-django-taggit/pkg-descr b/www/py-dj40-django-taggit/pkg-descr
new file mode 100644
index 000000000000..1c0759657dfc
--- /dev/null
+++ b/www/py-dj40-django-taggit/pkg-descr
@@ -0,0 +1,3 @@
+django-taggit a simpler approach to tagging with Django.
+
+WWW: https://github.com/jazzband/django-taggit
diff --git a/www/py-dj40-django-timezone-field/Makefile b/www/py-dj40-django-timezone-field/Makefile
new file mode 100644
index 000000000000..e95f9ad5da48
--- /dev/null
+++ b/www/py-dj40-django-timezone-field/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= django-timezone-field
+DISTVERSION= 5.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Provides database and form fields for pytz timezone objects for Django
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 30900
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}backports.zoneinfo>=0.2.1<0.3.0:devel/py-backports.zoneinfo@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/www/py-dj40-django-timezone-field/distinfo b/www/py-dj40-django-timezone-field/distinfo
new file mode 100644
index 000000000000..8933b4e95c22
--- /dev/null
+++ b/www/py-dj40-django-timezone-field/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1645108464
+SHA256 (django-timezone-field-5.0.tar.gz) = 15746ed367a5a32eda76cfa2886eeec1de8cda79f519b7c5e12f87ed7cdbd663
+SIZE (django-timezone-field-5.0.tar.gz) = 11838
diff --git a/www/py-dj40-django-timezone-field/pkg-descr b/www/py-dj40-django-timezone-field/pkg-descr
new file mode 100644
index 000000000000..83be226cc201
--- /dev/null
+++ b/www/py-dj40-django-timezone-field/pkg-descr
@@ -0,0 +1,3 @@
+Provides database and form fields for pytz timezone objects for Django.
+
+WWW: https://github.com/mfogel/django-timezone-field
diff --git a/www/py-dj40-djangorestframework/Makefile b/www/py-dj40-djangorestframework/Makefile
new file mode 100644
index 000000000000..2ca143bbb772
--- /dev/null
+++ b/www/py-dj40-djangorestframework/Makefile
@@ -0,0 +1,22 @@
+PORTNAME= djangorestframework
+PORTVERSION= 3.13.1
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Django REST framework
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-djangorestframework/distinfo b/www/py-dj40-djangorestframework/distinfo
new file mode 100644
index 000000000000..adfb1b731aff
--- /dev/null
+++ b/www/py-dj40-djangorestframework/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1651911373
+SHA256 (djangorestframework-3.13.1.tar.gz) = 0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee
+SIZE (djangorestframework-3.13.1.tar.gz) = 954950
diff --git a/www/py-dj40-djangorestframework/pkg-descr b/www/py-dj40-djangorestframework/pkg-descr
new file mode 100644
index 000000000000..fc24440c9a9b
--- /dev/null
+++ b/www/py-dj40-djangorestframework/pkg-descr
@@ -0,0 +1,4 @@
+Django REST framework is a powerful and flexible toolkit that makes
+it easy to build Web APIs.
+
+WWW: https://www.django-rest-framework.org/
diff --git a/www/py-dj40-drf-yasg/Makefile b/www/py-dj40-drf-yasg/Makefile
new file mode 100644
index 000000000000..88dfb6e52d37
--- /dev/null
+++ b/www/py-dj40-drf-yasg/Makefile
@@ -0,0 +1,37 @@
+PORTNAME= drf-yasg
+DISTVERSION= 1.20.0
+CATEGORIES= www python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}dj40-
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Yet Another Swagger Generator
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.rst
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=3.0.6:devel/py-setuptools_scm@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=2.2.16:www/py-django40@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj40-djangorestframework>=3.10.3:www/py-dj40-djangorestframework@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}coreapi>=2.3.3:devel/py-coreapi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}coreschema>=0.0.4:devel/py-coreschema@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}inflection>=0.3.1:devel/py-inflection@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.15.34:devel/py-ruamel.yaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}uritemplate>=3.0.0:net/py-uritemplate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= distutils autoplist
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= VALIDATION
+OPTIONS_DEFAULT= VALIDATION
+
+VALIDATION_DESC= Enable built-in OpenAPI validation mechanisms
+VALIDATION_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}swagger-spec-validator>=2.1.0:devel/py-swagger-spec-validator@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/www/py-dj40-drf-yasg/distinfo b/www/py-dj40-drf-yasg/distinfo
new file mode 100644
index 000000000000..20815e62ee72
--- /dev/null
+++ b/www/py-dj40-drf-yasg/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1604143828
+SHA256 (drf-yasg-1.20.0.tar.gz) = d50f197c7f02545d0b736df88c6d5cf874f8fea2507ad85ad7de6ae5bf2d9e5a
+SIZE (drf-yasg-1.20.0.tar.gz) = 1800321
diff --git a/www/py-dj40-drf-yasg/pkg-descr b/www/py-dj40-drf-yasg/pkg-descr
new file mode 100644
index 000000000000..e9ddcdf2d62c
--- /dev/null
+++ b/www/py-dj40-drf-yasg/pkg-descr
@@ -0,0 +1,20 @@
+Generate real Swagger/OpenAPI 2.0 specifications from a Django Rest
+Framework API.
+
+Features:
+
+- full support for nested serializers and schemas
+- response schemas and descriptions
+- model definitions compatible with codegen tools
+- customization hooks at all points in the spec generation process
+- JSON and YAML format for spec
+- bundles latest version of swagger-ui and redoc for viewing the generated
+ documentation
+- schema view is cacheable out of the box
+- generated Swagger schema can be automatically validated by
+ swagger-spec-validator or flex
+- supports Django REST Framework API versioning with URLPathVersioning
+ and NamespaceVersioning (other DRF or custom versioning schemes are
+ not currently supported)
+
+WWW: https://github.com/axnsan12/drf-yasg
diff --git a/www/py-django-auth-ldap/Makefile b/www/py-django-auth-ldap/Makefile
index fa7f36c00adc..e59fabcc7f19 100644
--- a/www/py-django-auth-ldap/Makefile
+++ b/www/py-django-auth-ldap/Makefile
@@ -22,8 +22,7 @@ USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
PORTDOCS= *
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-auth-ldap \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-auth-ldap
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
OPTIONS_DEFINE= DOCS
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
diff --git a/www/py-django-cors-headers/Makefile b/www/py-django-cors-headers/Makefile
index 3c6e3935a9d4..0a0dad37c778 100644
--- a/www/py-django-cors-headers/Makefile
+++ b/www/py-django-cors-headers/Makefile
@@ -17,7 +17,6 @@ USES= python:3.7+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-cors-headers \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-cors-headers
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.mk>
diff --git a/www/py-django-debug-toolbar/Makefile b/www/py-django-debug-toolbar/Makefile
index 6796fb69e87f..27d3c1460ddc 100644
--- a/www/py-django-debug-toolbar/Makefile
+++ b/www/py-django-debug-toolbar/Makefile
@@ -20,7 +20,6 @@ USE_PYTHON= autoplist concurrent distutils
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-debug-toolbar \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-debug-toolbar
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.mk>
diff --git a/www/py-django-filter/Makefile b/www/py-django-filter/Makefile
index 3dec720e4b24..bd1c8364906b 100644
--- a/www/py-django-filter/Makefile
+++ b/www/py-django-filter/Makefile
@@ -17,7 +17,6 @@ USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-filter \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-filter
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.mk>
diff --git a/www/py-django-graphiql-debug-toolbar/Makefile b/www/py-django-graphiql-debug-toolbar/Makefile
index afa1f43e7799..0a3d6593cde6 100644
--- a/www/py-django-graphiql-debug-toolbar/Makefile
+++ b/www/py-django-graphiql-debug-toolbar/Makefile
@@ -18,6 +18,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
USES= python
USE_PYTHON= autoplist distutils
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
+
NO_ARCH= yes
.include <bsd.port.mk>
diff --git a/www/py-django-js-asset/Makefile b/www/py-django-js-asset/Makefile
index 713a8ec30412..446a2865dba9 100644
--- a/www/py-django-js-asset/Makefile
+++ b/www/py-django-js-asset/Makefile
@@ -18,7 +18,6 @@ USES= python:3.6+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-js-asset \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-js-asset
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.mk>
diff --git a/www/py-django-mptt/Makefile b/www/py-django-mptt/Makefile
index a061dc0659a1..78e0ec21fd15 100644
--- a/www/py-django-mptt/Makefile
+++ b/www/py-django-mptt/Makefile
@@ -20,8 +20,6 @@ USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}django-happenings \
- ${PYTHON_PKGNAMEPREFIX}dj31-django-mptt \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-mptt
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.mk>
diff --git a/www/py-django-prometheus/Makefile b/www/py-django-prometheus/Makefile
index 6fceda73e461..4c070ad1788b 100644
--- a/www/py-django-prometheus/Makefile
+++ b/www/py-django-prometheus/Makefile
@@ -17,8 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
USES= python:3.6+
USE_PYTHON= autoplist distutils
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-prometheus \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-prometheus
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
diff --git a/www/py-django-redis/Makefile b/www/py-django-redis/Makefile
index a16290014400..b475bff7c8cf 100644
--- a/www/py-django-redis/Makefile
+++ b/www/py-django-redis/Makefile
@@ -20,8 +20,7 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hiredis>=0:databases/py-hiredis@${PY_FLAVOR
USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-redis \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-redis
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
diff --git a/www/py-django-tables2/Makefile b/www/py-django-tables2/Makefile
index 4257fbdf7008..3af38eba1a00 100644
--- a/www/py-django-tables2/Makefile
+++ b/www/py-django-tables2/Makefile
@@ -18,8 +18,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=1.11:www/py-django32@${PY_FLAVOR}
USES= python:3.7+
USE_PYTHON= distutils autoplist
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-tables2 \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-tables2
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
diff --git a/www/py-django-taggit/Makefile b/www/py-django-taggit/Makefile
index 2abf29e1270e..0dda4a11ac26 100644
--- a/www/py-django-taggit/Makefile
+++ b/www/py-django-taggit/Makefile
@@ -18,8 +18,7 @@ USES= python:3.6+
USE_PYTHON= autoplist distutils
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj31-django-taggit \
- ${PYTHON_PKGNAMEPREFIX}dj32-django-taggit
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
do-test:
@cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m django test --settings=tests.settings -v3
diff --git a/www/py-django-timezone-field/Makefile b/www/py-django-timezone-field/Makefile
index 61db65d0f8cb..450ed16fa1b6 100644
--- a/www/py-django-timezone-field/Makefile
+++ b/www/py-django-timezone-field/Makefile
@@ -18,7 +18,7 @@ USES= python:3.7+
USE_PYTHON= distutils autoplist
NO_ARCH= yes
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj32-django-timezone-field
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
.include <bsd.port.pre.mk>
diff --git a/www/py-djangorestframework/Makefile b/www/py-djangorestframework/Makefile
index 1a1d42072e62..11476632b163 100644
--- a/www/py-djangorestframework/Makefile
+++ b/www/py-djangorestframework/Makefile
@@ -17,7 +17,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2:www/py-django32@${PY_FLAVOR} \
USES= python:3.6+
USE_PYTHON= distutils autoplist
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}dj32-djangorestframework
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes
diff --git a/www/py-drf-yasg/Makefile b/www/py-drf-yasg/Makefile
index 8cc800b3649a..b8fab1093a61 100644
--- a/www/py-drf-yasg/Makefile
+++ b/www/py-drf-yasg/Makefile
@@ -25,8 +25,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django32>=2.2.16:www/py-django32@${PY_FLAVOR
USES= python:3.5+
USE_PYTHON= distutils autoplist
-CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}py-dj31-drf-yasg \
- ${PYTHON_PKGNAMEPREFIX}py-dj32-drf-yasg
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}*${PORTNAME}
NO_ARCH= yes