Import deskutils/py-paperless version 2.7.0
[dports.git] / deskutils / py-paperless / Makefile
1 # $FreeBSD$
2
3 PORTNAME=       paperless
4 PORTVERSION=    2.7.0
5 CATEGORIES=     deskutils python
6 PKGNAMEPREFIX=  ${PYTHON_PKGNAMEPREFIX}
7
8 MAINTAINER=     grembo@FreeBSD.org
9 COMMENT=        Index and archive scanned paper documents
10
11 LICENSE=        GPLv3
12 LICENSE_FILE=   ${WRKSRC}/LICENSE
13
14 BUILD_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}dateparser>=0.7.1:devel/py-dateparser@${PY_FLAVOR} \
15                 ${PYTHON_PKGNAMEPREFIX}dj21-django-cors-headers>=2.4.0:www/py-dj21-django-cors-headers@${PY_FLAVOR} \
16                 ${PYTHON_PKGNAMEPREFIX}dj21-django-crispy-forms>=1.7.2:www/py-dj21-django-crispy-forms@${PY_FLAVOR} \
17                 ${PYTHON_PKGNAMEPREFIX}dj21-django-extensions>=2.1.6:www/py-dj21-django-extensions@${PY_FLAVOR} \
18                 ${PYTHON_PKGNAMEPREFIX}dj21-django-filter>=2.0.0:www/py-dj21-django-filter@${PY_FLAVOR} \
19                 ${PYTHON_PKGNAMEPREFIX}dj21-djangoql>=0.12.4:www/py-dj21-djangoql@${PY_FLAVOR} \
20                 ${PYTHON_PKGNAMEPREFIX}dj21-djangorestframework>=3.9.0:www/py-dj21-djangorestframework@${PY_FLAVOR} \
21                 ${PYTHON_PKGNAMEPREFIX}fuzzywuzzy>=0.15.1:devel/py-fuzzywuzzy@${PY_FLAVOR} \
22                 ${PYTHON_PKGNAMEPREFIX}langdetect>=1.0.7:textproc/py-langdetect@${PY_FLAVOR} \
23                 ${PYTHON_PKGNAMEPREFIX}pdftotext>=2.1.1:textproc/py-pdftotext@${PY_FLAVOR} \
24                 ${PYTHON_PKGNAMEPREFIX}pyocr>=0.5.3:graphics/py-pyocr@${PY_FLAVOR} \
25                 ${PYTHON_PKGNAMEPREFIX}python-dotenv>=0.10.1:www/py-python-dotenv@${PY_FLAVOR} \
26                 ${PYTHON_PKGNAMEPREFIX}python-gnupg>=0.4.3:security/py-python-gnupg@${PY_FLAVOR} \
27                 ${PYTHON_PKGNAMEPREFIX}python-magic>=0.4.10:devel/py-python-magic@${PY_FLAVOR}
28 RUN_DEPENDS:=   ${BUILD_DEPENDS}
29 RUN_DEPENDS+=   gpg2:security/gnupg \
30                 optipng:graphics/optipng \
31                 tesseract:graphics/tesseract \
32                 unpaper:graphics/unpaper
33
34 USES=           python:3.5+ shebangfix
35 USE_GITHUB=     yes
36 GH_ACCOUNT=     the-paperless-project
37 GH_PROJECT=     paperless
38 USE_RC_SUBR=    paperless-consumer
39
40 SHEBANG_FILES=  ${WRKSRC}/src/manage.py
41
42 SUB_FILES=      README nginx.conf paperless.7 pkg-message sshd_config uwsgi.ini
43 SUB_LIST=       PKGBASE=${PKGBASE} PYTHON_CMD=${PYTHON_CMD} \
44                 PYTHONPREFIX_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \
45                 ECHO=${ECHO} EGREP=${EGREP} TOUCH=${TOUCH} \
46                 CHOWN=${CHOWN} RM=${RM:Q}
47
48 NO_ARCH=        yes
49
50 USERS=          paperless
51 GROUPS=         paperless
52
53 OPTIONS_DEFINE=         DOCS EXAMPLES
54 OPTIONS_SINGLE=         IMAGICK
55 OPTIONS_SINGLE_IMAGICK= IMAGICK6_NOX11 IMAGICK6_X11 IMAGICK7_NOX11 IMAGICK7_X11
56 OPTIONS_DEFAULT=        IMAGICK6_X11
57
58 IMAGICK_DESC=           ${IMAGEMAGICK_DESC}
59 IMAGICK6_NOX11_DESC=    ImageMagick6 without X11 support
60 IMAGICK6_X11_DESC=      ImageMagick6 with X11 support
61 IMAGICK7_NOX11_DESC=    ImageMagick7 without X11 support
62 IMAGICK7_X11_DESC=      ImageMagick7 with X11 support
63
64 DOCS_BUILD_DEPENDS=     ${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
65 DOCS_USES=              gmake
66
67 IMAGICK6_X11_RUN_DEPENDS=       convert:graphics/ImageMagick6
68 IMAGICK6_NOX11_RUN_DEPENDS=     convert:graphics/ImageMagick6-nox11
69 IMAGICK7_X11_RUN_DEPENDS=       convert:graphics/ImageMagick7
70 IMAGICK7_NOX11_RUN_DEPENDS=     convert:graphics/ImageMagick7-nox11
71
72 PAPERLESS_STATICDIR=    ${WRKSRC}/static
73
74 do-build:
75         @${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \
76                 -d ${PYTHONPREFIX_SITELIBDIR} \
77                 -f ${WRKSRC}/src
78         @${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \
79                 -d ${PYTHONPREFIX_SITELIBDIR} \
80                 -f ${WRKSRC}/src
81         @${RM} -r ${PAPERLESS_STATICDIR}
82         @${SETENV} \
83                 PAPERLESS_STATICDIR=${PAPERLESS_STATICDIR} \
84                 ${PYTHON_CMD} ${WRKSRC}/src/manage.py collectstatic
85
86 do-build-DOCS-on:
87         cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \
88                 ${MAKE_CMD} ${MAKE_ARGS} html SPHINXBUILD=sphinx-build-${PYTHON_VER}
89
90 do-install:
91         @${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/paperless
92         @cd ${WRKSRC}/resources && \
93                 ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
94         @cd ${WRKSRC}/src && \
95                 ${COPYTREE_SHARE} . ${STAGEDIR}${PYTHON_SITELIBDIR}/paperless
96         @${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/paperless/manage.py \
97                 ${STAGEDIR}${PREFIX}/bin/paperless
98         @${MKDIR} ${STAGEDIR}${WWWDIR}
99         @cd ${WRKSRC} && \
100                 ${COPYTREE_SHARE} static ${STAGEDIR}${WWWDIR}
101         @${SED} -e 's|%%WWWDIR%%|${WWWDIR}|g;' \
102                 ${WRKSRC}/paperless.conf.example \
103                 > ${STAGEDIR}${PREFIX}/etc/paperless.conf.sample
104         @${MKDIR} ${STAGEDIR}/var/db/paperless/consume/input \
105                 ${STAGEDIR}/var/db/paperless/media \
106                 ${STAGEDIR}/var/db/paperless/sqlite
107         ${INSTALL_MAN} ${WRKDIR}/paperless.7 ${STAGEDIR}${MANPREFIX}/man/man7
108
109 # Klammern aussenrum?
110 post-install-DOCS-on:
111         @${MKDIR} ${STAGEDIR}${DOCSDIR}/presentation
112         @cd ${WRKSRC}/docs/_build/html && \
113                 ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}
114         @cd ${WRKSRC}/presentation && \
115                 ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/presentation
116
117 post-install-EXAMPLES-on:
118         @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
119         ${INSTALL_DATA} \
120                 ${WRKDIR}/README \
121                 ${WRKDIR}/nginx.conf \
122                 ${WRKDIR}/sshd_config \
123                 ${WRKDIR}/uwsgi.ini \
124                 ${STAGEDIR}${EXAMPLESDIR}
125
126 .include <bsd.port.mk>