Tweak net-mgmt/icingaweb2-module-businessprocess version 2.2.0_2
[dports.git] / net-mgmt / netbox / Makefile
1 PORTNAME=       netbox
2 DISTVERSIONPREFIX=      v
3 DISTVERSION=    3.2.9
4 CATEGORIES=     net-mgmt python
5
6 MAINTAINER=     kai@FreeBSD.org
7 COMMENT=        IP address management tool
8
9 LICENSE=        APACHE20
10 LICENSE_FILE=   ${WRKSRC}/LICENSE.txt
11
12 # NetBox has fixed Python package dependencies listed in "requirements.txt"
13 # which are not checked during build/runtime because they're usually installed
14 # via devel/py-pip.
15 #
16 # As a rule, slight deviations are usally not a problem, but there are a few
17 # Django packages that are known for regressions in conjunction with NetBox and
18 # should therefore only be updated with caution.
19 #
20 # - devel/py-dj40-django-rq
21 # - www/py-dj40-django-filter
22 # - www/py-dj40-django-tables2
23 # - www/py-dj40-djangorestframework (in conjunction with www/py-dj40-drf-yasg)
24 #
25 RUN_DEPENDS=    ${PYTHON_PKGNAMEPREFIX}django40>=4.0.7<4.1:www/py-django40@${PY_FLAVOR} \
26                 ${PYTHON_PKGNAMEPREFIX}dj40-django-cors-headers>=3.13.0<4:www/py-dj40-django-cors-headers@${PY_FLAVOR} \
27                 ${PYTHON_PKGNAMEPREFIX}dj40-django-debug-toolbar>=3.5.0<4:www/py-dj40-django-debug-toolbar@${PY_FLAVOR} \
28                 ${PYTHON_PKGNAMEPREFIX}dj40-django-filter>=22.1<23:www/py-dj40-django-filter@${PY_FLAVOR} \
29                 ${PYTHON_PKGNAMEPREFIX}dj40-django-graphiql-debug-toolbar>=0.2.0<1:www/py-dj40-django-graphiql-debug-toolbar@${PY_FLAVOR} \
30                 ${PYTHON_PKGNAMEPREFIX}dj40-django-mptt>=0.13.4<0.14:www/py-dj40-django-mptt@${PY_FLAVOR} \
31                 ${PYTHON_PKGNAMEPREFIX}dj40-django-prometheus>=2.2.0<2.3:www/py-dj40-django-prometheus@${PY_FLAVOR} \
32                 ${PYTHON_PKGNAMEPREFIX}dj40-django-redis>=5.2.0<6:www/py-dj40-django-redis@${PY_FLAVOR} \
33                 ${PYTHON_PKGNAMEPREFIX}dj40-django-rq>=2.5.1<2.6:devel/py-dj40-django-rq@${PY_FLAVOR} \
34                 ${PYTHON_PKGNAMEPREFIX}dj40-django-tables2>=2.4.1<2.5:www/py-dj40-django-tables2@${PY_FLAVOR} \
35                 ${PYTHON_PKGNAMEPREFIX}dj40-django-taggit>=2.1.0<3:www/py-dj40-django-taggit@${PY_FLAVOR} \
36                 ${PYTHON_PKGNAMEPREFIX}dj40-django-timezone-field>=5.0<6:www/py-dj40-django-timezone-field@${PY_FLAVOR} \
37                 ${PYTHON_PKGNAMEPREFIX}dj40-djangorestframework>=3.13.1<3.14.0:www/py-dj40-djangorestframework@${PY_FLAVOR} \
38                 ${PYTHON_PKGNAMEPREFIX}dj40-drf-yasg>=1.20.0<1.22:www/py-dj40-drf-yasg@${PY_FLAVOR} \
39                 ${PYTHON_PKGNAMEPREFIX}dj40-graphene-django>=2.15.0<3:devel/py-dj40-graphene-django@${PY_FLAVOR} \
40                 ${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
41                 ${PYTHON_PKGNAMEPREFIX}bleach>=5.0.1<6:www/py-bleach@${PY_FLAVOR} \
42                 ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0.1<4:devel/py-Jinja2@${PY_FLAVOR} \
43                 ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7<3.5:textproc/py-markdown@${PY_FLAVOR} \
44                 ${PYTHON_PKGNAMEPREFIX}markdown-include>=0.6.0<1:textproc/py-markdown-include@${PY_FLAVOR} \
45                 ${PYTHON_PKGNAMEPREFIX}mkdocs-material>=8.2.11<9:textproc/py-mkdocs-material@${PY_FLAVOR} \
46                 ${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.17.0<1:textproc/py-mkdocstrings@${PY_FLAVOR} \
47                 ${PYTHON_PKGNAMEPREFIX}netaddr>=0.8.0<1:net/py-netaddr@${PY_FLAVOR} \
48                 ${PYTHON_PKGNAMEPREFIX}pillow>=9.1.1:graphics/py-pillow@${PY_FLAVOR} \
49                 ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.3<3:databases/py-psycopg2@${PY_FLAVOR} \
50                 ${PYTHON_PKGNAMEPREFIX}sentry-sdk>=1.5.12<2:devel/py-sentry-sdk@${PY_FLAVOR} \
51                 ${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.0.0<6:www/py-social-auth-app-django@${PY_FLAVOR} \
52                 ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.2.0<5:security/py-social-auth-core@${PY_FLAVOR} \
53                 ${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \
54                 ${PYTHON_PKGNAMEPREFIX}tablib>=3.2.1<4:textproc/py-tablib@${PY_FLAVOR} \
55                 ${PYTHON_PKGNAMEPREFIX}tzdata>=2022.1:devel/py-tzdata@${PY_FLAVOR} \
56                 ${PYTHON_PKGNAMEPREFIX}yaml>=5.4.1<7:devel/py-yaml@${PY_FLAVOR} \
57                 ${PYTHON_PKGNAMEPREFIX}gunicorn>=20.1.0<21:www/py-gunicorn@${PY_FLAVOR}
58
59 USES=           cpe pgsql:10+ python:3.8+
60 CPE_VENDOR=     netbox_project
61 USE_GITHUB=     yes
62 GH_ACCOUNT=     netbox-community
63
64 SUB_FILES=      850.netbox-housekeeping.sample netbox_rq.sample netboxrc.sample pkg-message
65 SUB_LIST=       DATADIR=${DATADIR} PYTHON_CMD=${PYTHON_CMD} PYTHON_VER=${PYTHON_VER} WWWOWN=${WWWOWN}
66 NO_BUILD=       yes
67 NO_ARCH=        yes
68
69 OPTIONS_DEFINE= EXAMPLES
70
71 do-install:
72         cd ${WRKSRC}/netbox ; \
73         for src in $$( ${FIND} . ! -name '*.bak' ) ; do \
74                 dst=${STAGEDIR}${DATADIR}$${src#.} ; \
75                 if ${TEST} -d "$$src" ; then \
76                         ${MKDIR} "$$dst" ; \
77                 else \
78                         ${INSTALL_DATA} "$$src" "$$dst" ; \
79                 fi \
80         done
81         cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DATADIR}
82         ${INSTALL_DATA} ${WRKSRC}/mkdocs.yml ${STAGEDIR}${DATADIR}
83
84 post-install-EXAMPLES-on:
85         @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
86         ${INSTALL_DATA} ${WRKDIR}/850.netbox-housekeeping.sample ${STAGEDIR}${EXAMPLESDIR}
87         ${INSTALL_DATA} ${WRKDIR}/netbox_rq.sample ${STAGEDIR}${EXAMPLESDIR}
88         ${INSTALL_DATA} ${WRKDIR}/netboxrc.sample ${STAGEDIR}${EXAMPLESDIR}
89         ${INSTALL_DATA} ${WRKSRC}/contrib/apache.conf ${STAGEDIR}${EXAMPLESDIR}
90         ${INSTALL_DATA} ${WRKSRC}/contrib/gunicorn.py ${STAGEDIR}${EXAMPLESDIR}
91         ${INSTALL_DATA} ${WRKSRC}/contrib/nginx.conf ${STAGEDIR}${EXAMPLESDIR}
92
93 .include <bsd.port.mk>