94 lines
4.7 KiB
Makefile
94 lines
4.7 KiB
Makefile
PORTNAME= peering-manager
|
|
DISTVERSIONPREFIX= v
|
|
DISTVERSION= 1.10.4
|
|
CATEGORIES= net-mgmt python
|
|
|
|
MAINTAINER= bofh@FreeBSD.org
|
|
COMMENT= BGP sessions management tool
|
|
WWW= https://peering-manager.net/
|
|
|
|
LICENSE= APACHE20
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
RUN_DEPENDS= \
|
|
${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1:devel/py-Jinja2@${PY_FLAVOR} \
|
|
bgpq4>0:net-mgmt/bgpq4 \
|
|
${PYTHON_PKGNAMEPREFIX}django52>=5.2:www/py-django52@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.16:www/py-djangorestframework@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-debug-toolbar>=6.1:www/py-django-debug-toolbar@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-filter>=25.2:www/py-django-filter@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-netfields>=1.3:www/py-django-netfields@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-prometheus>=2.4:www/py-django-prometheus@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-redis>=6.0:www/py-django-redis@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-rq>=3.2:devel/py-django-rq@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-tables2>=2.8:www/py-django-tables2@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}django-taggit>=6.1:www/py-django-taggit@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}drf-spectacular>=0.29:www/py-drf-spectacular@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}drf-spectacular-sidecar>=2025:www/py-drf-spectacular-sidecar@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}dulwich>=0.25:devel/py-dulwich@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}markdown>=3.10:textproc/py-markdown@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}napalm>=5.1:net-mgmt/py-napalm@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}packaging>=25.0:devel/py-packaging@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}psycopg>=3.3:databases/py-psycopg@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}psycopg-pool>=3.3:databases/py-psycopg-pool@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}pyixapi>=0.2:net-mgmt/py-pyixapi@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}pynetbox>=7.5:net-mgmt/py-pynetbox@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0:devel/py-pyyaml@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}requests>=2.32:www/py-requests@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.7:www/py-social-auth-app-django@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}gunicorn>=23.0.0:www/py-gunicorn@${PY_FLAVOR} \
|
|
${PYTHON_PKGNAMEPREFIX}pytz>=2026:devel/py-pytz@${PY_FLAVOR}
|
|
|
|
USES= cpe pgsql:14+ python:3.11-3.14
|
|
CPE_VENDOR= ${PORTNAME}
|
|
CPE_PRODUCT= ${PORTNAME:S/-/_/}
|
|
USE_GITHUB= yes
|
|
USE_RC_SUBR= peering_manager_rq
|
|
|
|
NO_ARCH= yes
|
|
NO_BUILD= yes
|
|
SUB_FILES= gunicorn.conf.py 850.peeringmanager-housekeeping
|
|
SUB_LIST= WWWDIR=${WWWDIR} PORTNAME=${PORTNAME} WSGI_APP=peering_manager.wsgi PYTHON_CMD=${PYTHON_CMD} PYTHON_VER=${PYTHON_VER}
|
|
|
|
PORTDOCS= *
|
|
|
|
OPTIONS_DEFINE= DOCS
|
|
OPTIONS_DEFAULT=REDIS
|
|
OPTIONS_RADIO= KVBACKENDS
|
|
OPTIONS_RADIO_KVBACKENDS= REDIS VALKEY
|
|
|
|
KVBACKENDS_DESC=Key Value Storage Backends
|
|
REDIS_DESC= Redis Key Value Backend support
|
|
VALKEY_DESC= Valkey Key Value Backend support
|
|
|
|
REDIS_RUN_DEPENDS= redis>=8.2.1:databases/redis
|
|
VALKEY_RUN_DEPENDS= valkey>=1.0:databases/valkey
|
|
|
|
FIND_EXPR= "! -name *.orig ! -name .gitattributes ! -name .gitignore ! -name .gitattributes ! -name .isort.cfg ! -name .pre-commit-config.yaml ! -name .readthedocs.yaml ! -name CHANGELOG.md ! -name LICENSE ! -name README.md ! -name mkdocs.yaml ! -name poetry.lock ! -name pyproject.toml ! -name requirements.txt ! -name configuration.example.py ! -path */.github ! -path */.github/* ! -path */docs ! -path */docs/* -prune"
|
|
|
|
do-install:
|
|
${MKDIR} ${STAGEDIR}${WWWDIR}
|
|
${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
|
|
${ECHO} "@owner www" >> ${TMPPLIST}
|
|
${ECHO} "@group www" >> ${TMPPLIST}
|
|
(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR} ${FIND_EXPR})
|
|
${FIND} -s ${STAGEDIR}${PREFIX}/www/${PORTNAME} -not -type d | ${SORT} | \
|
|
${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST}
|
|
${FIND} -s ${STAGEDIR}${PREFIX}/www/${PORTNAME} -type d -empty | ${SORT} -r | \
|
|
${SED} -e 's|^${STAGEDIR}${PREFIX}/|@dir |' >> ${TMPPLIST}
|
|
${INSTALL_DATA} ${WRKDIR}/gunicorn.conf.py ${STAGEDIR}${WWWDIR}/gunicorn.conf.py.sample
|
|
${INSTALL_DATA} ${WRKSRC}/peering_manager/configuration.example.py ${STAGEDIR}${WWWDIR}/peering_manager/configuration.py.sample
|
|
${INSTALL_DATA} ${WRKDIR}/850.peeringmanager-housekeeping ${STAGEDIR}${PREFIX}/etc/periodic/daily/850.peeringmanager-housekeeping
|
|
${ECHO} "@sample ${WWWDIR}/gunicorn.conf.py.sample" >> ${TMPPLIST}
|
|
${ECHO} "@sample ${WWWDIR}/peering_manager/configuration.py.sample" >> ${TMPPLIST}
|
|
${ECHO} "etc/periodic/daily/850.peeringmanager-housekeeping" >> ${TMPPLIST}
|
|
|
|
do-install-DOCS-on:
|
|
@${MKDIR} ${STAGEDIR}${DOCSDIR}
|
|
cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}
|
|
.for f in CHANGELOG.md README.md
|
|
${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
|
|
.endfor
|
|
|
|
.include <bsd.port.mk>
|