git: 444f1e832350 - main - www/py-django50: New port

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Fri, 08 Dec 2023 18:14:04 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=444f1e832350920374d0cdacbba4ec70eaa2520a

commit 444f1e832350920374d0cdacbba4ec70eaa2520a
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2023-12-08 17:56:07 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-12-08 18:13:50 +0000

    www/py-django50: New port
    
    Django is a high-level Python Web framework that encourages rapid
    development and clean, pragmatic design.
    
    Developed and used over the past two years by a fast-moving online-news
    operation, Django was designed from scratch to handle two challenges:
    the intensive deadlines of a newsroom and the stringent requirements of
    experienced Web developers. It has convenient niceties for developing
    content-management systems, but it's an excellent tool for building any
    Web site.
    
    Currently this is marked to IGNORE with default python version 3.9. If
    someone needs to use this they have to build it with:
    DEFAULT_VERSIONS=python=3.10
    
    This is mainly the work from wen@ but was reverted as it broke the bulk
    build.
---
 www/Makefile              |  1 +
 www/py-django50/Makefile  | 74 +++++++++++++++++++++++++++++++++++++++++++++++
 www/py-django50/distinfo  |  3 ++
 www/py-django50/pkg-descr |  8 +++++
 4 files changed, 86 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index bfe0a55fd042..95103c842a6c 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1626,6 +1626,7 @@
     SUBDIR += py-django32
     SUBDIR += py-django41
     SUBDIR += py-django42
+    SUBDIR += py-django50
     SUBDIR += py-django_compressor
     SUBDIR += py-djangocms-admin-style
     SUBDIR += py-djangoql
diff --git a/www/py-django50/Makefile b/www/py-django50/Makefile
new file mode 100644
index 000000000000..2b4443aafaf4
--- /dev/null
+++ b/www/py-django50/Makefile
@@ -0,0 +1,74 @@
+PORTNAME=	django
+PORTVERSION=	5.0
+CATEGORIES=	www python
+MASTER_SITES=	PYPI \
+		https://media.djangoproject.com/releases/${PORTVERSION:R}/
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX=	50
+DISTNAME=	Django-${PORTVERSION}
+DIST_SUBDIR=	python
+
+MAINTAINER=	python@FreeBSD.org
+COMMENT=	High-level Python Web Framework
+WWW=		https://www.djangoproject.com/
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}asgiref>=3.7.0:www/py-asgiref@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sqlparse>=0.3.1:databases/py-sqlparse@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}tblib>0:devel/py-tblib@${PY_FLAVOR}
+
+USES=		cpe python shebangfix
+USE_PYTHON=	autoplist distutils
+
+NO_ARCH=	yes
+
+DOCSDIR=	${PREFIX}/share/doc/py-django
+PLIST_FILES=	man/man1/django-admin.1.gz
+PORTDOCS=	*
+
+SHEBANG_FILES=	django/conf/project_template/manage.py-tpl
+
+CONFLICTS_INSTALL=	${PYTHON_PKGNAMEPREFIX}django[0-9][0-9]
+
+CPE_VENDOR=	djangoproject
+
+# Upstream archive contains files with UTF-8 names
+# EXTRACT_CMD=	${SETENV} LC_ALL=en_US.UTF-8 /usr/bin/bsdtar
+
+OPTIONS_DEFINE=	DOCS HTMLDOCS
+OPTIONS_GROUP=	DATABASE
+OPTIONS_GROUP_DATABASE=	PGSQL MYSQL SQLITE
+OPTIONS_DEFAULT=SQLITE
+HTMLDOCS_DESC=	Install HTML documentation (requires Sphinx)
+
+HTMLDOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
+HTMLDOCS_IMPLIES=	DOCS
+PGSQL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR}
+MYSQL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}mysqlclient>=1.3.13:databases/py-mysqlclient@${PY_FLAVOR}
+SQLITE_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 31000
+IGNORE=         Requires Python-3.10 or later
+.endif
+
+post-build-HTMLDOCS-on:
+	cd ${WRKSRC}/docs && ${MAKE} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
+
+post-install:
+	${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}/${MAN1PREFIX}/man/man1
+	@${ECHO_MSG}	""
+	@${ECHO_MSG}	"	* See http://docs.djangoproject.com/ for complete documentation"
+	@${ECHO_MSG}	""
+
+post-install-HTMLDOCS-on:
+	${MKDIR} ${STAGEDIR}/${DOCSDIR}
+	${CP} -R ${WRKSRC}/docs/_build/html ${STAGEDIR}/${DOCSDIR}
+
+do-test:
+	@cd ${WRKSRC} && ${PYTHON_CMD} tests/runtests.py --settings=test_sqlite
+
+.include <bsd.port.post.mk>
diff --git a/www/py-django50/distinfo b/www/py-django50/distinfo
new file mode 100644
index 000000000000..9b31bdea5e2d
--- /dev/null
+++ b/www/py-django50/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1701788127
+SHA256 (python/Django-5.0.tar.gz) = 7d29e14dfbc19cb6a95a4bd669edbde11f5d4c6a71fdaa42c2d40b6846e807f7
+SIZE (python/Django-5.0.tar.gz) = 10585390
diff --git a/www/py-django50/pkg-descr b/www/py-django50/pkg-descr
new file mode 100644
index 000000000000..1f0e73eddef2
--- /dev/null
+++ b/www/py-django50/pkg-descr
@@ -0,0 +1,8 @@
+Django is a high-level Python Web framework that encourages rapid development
+and clean, pragmatic design.
+
+Developed and used over the past two years by a fast-moving online-news
+operation, Django was designed from scratch to handle two challenges: the
+intensive deadlines of a newsroom and the stringent requirements of experienced
+Web developers. It has convenient niceties for developing content-management
+systems, but it's an excellent tool for building any Web site.