View | Details | Raw Unified | Return to bug 281304 | Differences between
and this patch

Collapse All | Expand All

(-)b/GIDs (-1 / +1 lines)
Lines 752-758 bosun:*:807: Link Here
752
clixon:*:808:
752
clixon:*:808:
753
# free: 809
753
# free: 809
754
# free: 810
754
# free: 810
755
# free: 811
755
calibreweb:*:811:
756
foreman_proxy:*:812:
756
foreman_proxy:*:812:
757
hitch:*:813:
757
hitch:*:813:
758
puppet:*:814:
758
puppet:*:814:
(-)b/UIDs (-1 / +1 lines)
Lines 758-764 bosun:*:807:807::0:0:Bosun Daemon:/nonexistent:/usr/sbin/nologin Link Here
758
clixon:*:808:808::0:0:Clixon Daemon:/nonexistent:/usr/sbin/nologin
758
clixon:*:808:808::0:0:Clixon Daemon:/nonexistent:/usr/sbin/nologin
759
# free: 809
759
# free: 809
760
# free: 810
760
# free: 810
761
# free: 811
761
calibreweb:*:811:811::0:0:Calibre-Web Daemon:/nonexistent:/usr/sbin/nologin
762
foreman_proxy:*:812:812::0:0:Foreman Smart Proxy:/usr/local/share/foreman-proxy:/usr/sbin/nologin
762
foreman_proxy:*:812:812::0:0:Foreman Smart Proxy:/usr/local/share/foreman-proxy:/usr/sbin/nologin
763
hitch:*:813:813::0:0:Hitch TLS Proxy:/nonexistent:/usr/sbin/nologin
763
hitch:*:813:813::0:0:Hitch TLS Proxy:/nonexistent:/usr/sbin/nologin
764
puppet:*:814:814::0:0:Puppet Daemon:/nonexistent:/usr/sbin/nologin
764
puppet:*:814:814::0:0:Puppet Daemon:/nonexistent:/usr/sbin/nologin
(-)b/archivers/Makefile (+5 lines)
Lines 195-207 Link Here
195
    SUBDIR += py-bz2file
195
    SUBDIR += py-bz2file
196
    SUBDIR += py-compressed-rtf
196
    SUBDIR += py-compressed-rtf
197
    SUBDIR += py-cramjam
197
    SUBDIR += py-cramjam
198
    SUBDIR += py-inflate64
198
    SUBDIR += py-laszip
199
    SUBDIR += py-laszip
199
    SUBDIR += py-libarchive-c
200
    SUBDIR += py-libarchive-c
200
    SUBDIR += py-lz4
201
    SUBDIR += py-lz4
201
    SUBDIR += py-lzma
202
    SUBDIR += py-lzma
202
    SUBDIR += py-lzstring
203
    SUBDIR += py-lzstring
204
    SUBDIR += py-multivolumefile
203
    SUBDIR += py-patool
205
    SUBDIR += py-patool
206
    SUBDIR += py-py7zr
207
    SUBDIR += py-pybcj
204
    SUBDIR += py-pyminizip
208
    SUBDIR += py-pyminizip
209
    SUBDIR += py-pyppmd
205
    SUBDIR += py-python-lhafile
210
    SUBDIR += py-python-lhafile
206
    SUBDIR += py-python-lzo
211
    SUBDIR += py-python-lzo
207
    SUBDIR += py-python-rpm-packaging
212
    SUBDIR += py-python-rpm-packaging
(-)b/archivers/py-inflate64/Makefile (+24 lines)
Added Link Here
1
PORTNAME=	inflate64
2
PORTVERSION=	1.0.0
3
CATEGORIES=	archivers python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Deflate64 compression/decompression library
9
WWW=		https://codeberg.org/miurahr/inflate64
10
11
LICENSE=	LGPL21
12
LICENSE_FILE=	${WRKSRC}/COPYING
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist pep517
20
21
post-install:
22
	${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/inflate64/_inflate64*.so
23
24
.include <bsd.port.mk>
(-)b/archivers/py-inflate64/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (inflate64-1.0.0.tar.gz) = 3278827b803cf006a1df251f3e13374c7d26db779e5a33329cc11789b804bc2d
3
SIZE (inflate64-1.0.0.tar.gz) = 895853
(-)b/archivers/py-inflate64/pkg-descr (+3 lines)
Added Link Here
1
The inflate64 is a python package to provide Deflater and
2
Inflater class to compress and decompress with Enhanced
3
Deflate compression algorithm.
(-)b/archivers/py-multivolumefile/Makefile (+21 lines)
Added Link Here
1
PORTNAME=	multivolumefile
2
PORTVERSION=	0.2.3
3
CATEGORIES=	archivers python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Multi volume file wrapper library
9
WWW=		https://codeberg.org/miurahr/multivolume
10
11
LICENSE=	LGPL21
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist pep517
20
21
.include <bsd.port.mk>
(-)b/archivers/py-multivolumefile/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (multivolumefile-0.2.3.tar.gz) = a0648d0aafbc96e59198d5c17e9acad7eb531abea51035d08ce8060dcad709d6
3
SIZE (multivolumefile-0.2.3.tar.gz) = 77984
(-)b/archivers/py-multivolumefile/pkg-descr (+3 lines)
Added Link Here
1
MultiVolumefile is a python library to provide a file-object
2
wrapping multiple files as virtually like as a single file.
3
It inherits io.RawIOBase class and support some of its standard methods.
(-)b/archivers/py-py7zr/Makefile (+31 lines)
Added Link Here
1
PORTNAME=	py7zr
2
PORTVERSION=	0.22.0
3
CATEGORIES=	archivers python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Pure python 7-zip library
9
WWW=		https://py7zr.readthedocs.io/
10
11
LICENSE=	GPLv3
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}brotli>=0:archivers/py-brotli@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}brotlicffi>=0:archivers/py-brotlicffi@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}inflate64>=0:archivers/py-inflate64@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}multivolumefile>=0:archivers/py-multivolumefile@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}psutil>=0:sysutils/py-psutil@${PY_FLAVOR} \
22
		${PYTHON_PKGNAMEPREFIX}pybcj>=0:archivers/py-pybcj@${PY_FLAVOR} \
23
		${PYTHON_PKGNAMEPREFIX}pycryptodomex>=0:security/py-pycryptodomex@${PY_FLAVOR} \
24
		${PYTHON_PKGNAMEPREFIX}pyppmd>=0:archivers/py-pyppmd@${PY_FLAVOR} \
25
		${PYTHON_PKGNAMEPREFIX}texttable>=0:textproc/py-texttable@${PY_FLAVOR} \
26
		${PYTHON_PKGNAMEPREFIX}zstd>=0:archivers/py-zstd@${PY_FLAVOR}
27
28
USES=		python
29
USE_PYTHON=	autoplist pep517
30
31
.include <bsd.port.mk>
(-)b/archivers/py-py7zr/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (py7zr-0.22.0.tar.gz) = c6c7aea5913535184003b73938490f9a4d8418598e533f9ca991d3b8e45a139e
3
SIZE (py7zr-0.22.0.tar.gz) = 4992926
(-)b/archivers/py-py7zr/pkg-descr (+3 lines)
Added Link Here
1
py7zr is a library and utility to support 7zip archive
2
compression, decompression, encryption and decryption
3
written by Python programming language.
(-)b/archivers/py-pybcj/Makefile (+21 lines)
Added Link Here
1
PORTNAME=	pybcj
2
PORTVERSION=	1.0.2
3
CATEGORIES=	archivers python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	BCJ filter library
9
WWW=		https://codeberg.org/miurahr/pybcj
10
11
LICENSE=	GPLv3
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist pep517
20
21
.include <bsd.port.mk>
(-)b/archivers/py-pybcj/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (pybcj-1.0.2.tar.gz) = c7f5bef7f47723c53420e377bc64d2553843bee8bcac5f0ad076ab1524780018
3
SIZE (pybcj-1.0.2.tar.gz) = 2111002
(-)b/archivers/py-pybcj/pkg-descr (+5 lines)
Added Link Here
1
In data compression, BCJ, short for Branch-Call-Jump, refers
2
to a technique that improves the compression of machine code of
3
executable binaries by replacing relative branch addresses with
4
absolute ones. This allows a LZMA compressor to identify duplicate
5
targets and archive higher compression rate.
(-)b/archivers/py-pyppmd/Makefile (+21 lines)
Added Link Here
1
PORTNAME=	pyppmd
2
PORTVERSION=	1.1.0
3
CATEGORIES=	archivers python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	PPMd compression/decompression library
9
WWW=		https://pyppmd.readthedocs.io/en/latest/
10
11
LICENSE=	LGPL21
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist pep517
20
21
.include <bsd.port.mk>
(-)b/archivers/py-pyppmd/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (pyppmd-1.1.0.tar.gz) = 1d38ce2e4b7eb84b53bc8a52380b94f66ba6c39328b8800b30c2b5bf31693973
3
SIZE (pyppmd-1.1.0.tar.gz) = 1348949
(-)b/archivers/py-pyppmd/pkg-descr (+5 lines)
Added Link Here
1
pyppmd module provides classes and functions for compressing
2
and decompressing text data, using PPM (Prediction by partial
3
matching) compression algorithm which has several variations
4
of implementations. PPMd is the implementation by Dmitry
5
Shkarin. PyPPMD use Igor Pavlov's range coder introduced in 7-zip.
(-)b/textproc/Makefile (+2 lines)
Lines 1659-1664 Link Here
1659
    SUBDIR += py-tabletext
1659
    SUBDIR += py-tabletext
1660
    SUBDIR += py-tablib
1660
    SUBDIR += py-tablib
1661
    SUBDIR += py-terminaltables
1661
    SUBDIR += py-terminaltables
1662
    SUBDIR += py-text2digits
1662
    SUBDIR += py-textdistance
1663
    SUBDIR += py-textdistance
1663
    SUBDIR += py-textfsm
1664
    SUBDIR += py-textfsm
1664
    SUBDIR += py-textract
1665
    SUBDIR += py-textract
Lines 1698-1703 Link Here
1698
    SUBDIR += py-whoosh
1699
    SUBDIR += py-whoosh
1699
    SUBDIR += py-wordcloud
1700
    SUBDIR += py-wordcloud
1700
    SUBDIR += py-wordnet
1701
    SUBDIR += py-wordnet
1702
    SUBDIR += py-wordninja
1701
    SUBDIR += py-wstools
1703
    SUBDIR += py-wstools
1702
    SUBDIR += py-wtf-peewee
1704
    SUBDIR += py-wtf-peewee
1703
    SUBDIR += py-wtforms
1705
    SUBDIR += py-wtforms
(-)b/textproc/py-sphinxcontrib-spelling/Makefile (+33 lines)
Added Link Here
1
PORTNAME=	sphinxcontrib-spelling
2
DISTVERSION=	8.0.0
3
CATEGORIES=	textproc python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Sphinx spelling extension
9
WWW=		https://github.com/sphinx-contrib/spelling
10
11
LICENSE=	BSD2CLAUSE
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}enchant>0:textproc/py-enchant@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
19
20
USES=		python
21
USE_PYTHON=	autoplist pep517
22
23
NO_ARCH=	yes
24
25
PORTDOCS=	AUTHORS PKG-INFO README
26
27
OPTIONS_DEFINE=	DOCS
28
29
post-install-DOCS-on:
30
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
31
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
32
33
.include <bsd.port.mk>
(-)b/textproc/py-sphinxcontrib-spelling/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (sphinxcontrib-spelling-8.0.0.tar.gz) = 199d0a16902ad80c387c2966dc9eb10f565b1fb15ccce17210402db7c2443e5c
3
SIZE (sphinxcontrib-spelling-8.0.0.tar.gz) = 37610
(-)b/textproc/py-sphinxcontrib-spelling/pkg-descr (+3 lines)
Added Link Here
1
This package contains sphinxcontrib.spelling, a spelling
2
checker for Sphinx-based documentation. It uses PyEnchant
3
to produce a report showing misspelled words.
(-)b/textproc/py-text2digits/Makefile (+29 lines)
Added Link Here
1
PORTNAME=	text2digits
2
PORTVERSION=	0.1.0
3
CATEGORIES=	textproc python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Small library to convert text numbers to digits in a string
9
WWW=		https://github.com/ShailChoksi/text2digits
10
11
LICENSE=	MIT
12
13
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
14
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
15
16
USES=		python
17
USE_PYTHON=	autoplist pep517
18
19
NO_ARCH=	yes
20
21
PORTDOCS=	PKG-INFO README
22
23
OPTIONS_DEFINE=	DOCS
24
25
post-install-DOCS-on:
26
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
27
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
28
29
.include <bsd.port.mk>
(-)b/textproc/py-text2digits/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (text2digits-0.1.0.tar.gz) = a01d8dc8d57179d888ba589df40e02730f3bf2dd892ab22c37538e4799728bb2
3
SIZE (text2digits-0.1.0.tar.gz) = 9113
(-)b/textproc/py-text2digits/pkg-descr (+2 lines)
Added Link Here
1
A small library to convert text numbers to
2
digits in a string.
(-)b/textproc/py-wordninja/Makefile (+30 lines)
Added Link Here
1
PORTNAME=	wordninja
2
PORTVERSION=	2.0.0
3
CATEGORIES=	textproc python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Probabilistically split concatenated words
9
WWW=		https://github.com/keredson/wordninja
10
11
LICENSE=	MIT
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
16
17
USES=		python
18
USE_PYTHON=	autoplist pep517
19
20
NO_ARCH=	yes
21
22
PORTDOCS=	PKG-INFO README.md
23
24
OPTIONS_DEFINE=	DOCS
25
26
post-install-DOCS-on:
27
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
28
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
29
30
.include <bsd.port.mk>
(-)b/textproc/py-wordninja/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (wordninja-2.0.0.tar.gz) = 1a1cc7ec146ad19d6f71941ee82aef3d31221700f0d8bf844136cf8df79d281a
3
SIZE (wordninja-2.0.0.tar.gz) = 541572
(-)b/textproc/py-wordninja/pkg-descr (+2 lines)
Added Link Here
1
Probabilistically split concatenated words using NLP
2
based on English Wikipedia uni-gram frequencies.
(-)b/www/Makefile (+5 lines)
Lines 1483-1493 Link Here
1483
    SUBDIR += py-cachecontrol
1483
    SUBDIR += py-cachecontrol
1484
    SUBDIR += py-cachelib
1484
    SUBDIR += py-cachelib
1485
    SUBDIR += py-caldav
1485
    SUBDIR += py-caldav
1486
    SUBDIR += py-calibreweb
1486
    SUBDIR += py-channels
1487
    SUBDIR += py-channels
1487
    SUBDIR += py-channels-redis
1488
    SUBDIR += py-channels-redis
1488
    SUBDIR += py-cheroot
1489
    SUBDIR += py-cheroot
1489
    SUBDIR += py-cherrypy
1490
    SUBDIR += py-cherrypy
1490
    SUBDIR += py-cinemagoer
1491
    SUBDIR += py-cinemagoer
1492
    SUBDIR += py-comicapi
1491
    SUBDIR += py-crossplane
1493
    SUBDIR += py-crossplane
1492
    SUBDIR += py-css-html-js-minify
1494
    SUBDIR += py-css-html-js-minify
1493
    SUBDIR += py-css-parser
1495
    SUBDIR += py-css-parser
Lines 1663-1668 Link Here
1663
    SUBDIR += py-flask-collect
1665
    SUBDIR += py-flask-collect
1664
    SUBDIR += py-flask-compress
1666
    SUBDIR += py-flask-compress
1665
    SUBDIR += py-flask-cors
1667
    SUBDIR += py-flask-cors
1668
    SUBDIR += py-flask-dance
1666
    SUBDIR += py-flask-flatpages
1669
    SUBDIR += py-flask-flatpages
1667
    SUBDIR += py-flask-json
1670
    SUBDIR += py-flask-json
1668
    SUBDIR += py-flask-jwt
1671
    SUBDIR += py-flask-jwt
Lines 1790-1795 Link Here
1790
    SUBDIR += py-proxy_tools
1793
    SUBDIR += py-proxy_tools
1791
    SUBDIR += py-puppetboard
1794
    SUBDIR += py-puppetboard
1792
    SUBDIR += py-py-restclient
1795
    SUBDIR += py-py-restclient
1796
    SUBDIR += py-pydrive2
1793
    SUBDIR += py-pygsheets
1797
    SUBDIR += py-pygsheets
1794
    SUBDIR += py-pyjwt
1798
    SUBDIR += py-pyjwt
1795
    SUBDIR += py-pyjwt1
1799
    SUBDIR += py-pyjwt1
Lines 1835-1840 Link Here
1835
    SUBDIR += py-routes
1839
    SUBDIR += py-routes
1836
    SUBDIR += py-rules
1840
    SUBDIR += py-rules
1837
    SUBDIR += py-scgi
1841
    SUBDIR += py-scgi
1842
    SUBDIR += py-scholarly
1838
    SUBDIR += py-scrapy
1843
    SUBDIR += py-scrapy
1839
    SUBDIR += py-seafdav
1844
    SUBDIR += py-seafdav
1840
    SUBDIR += py-seafobj
1845
    SUBDIR += py-seafobj
(-)b/www/py-calibreweb/Makefile (+144 lines)
Added Link Here
1
PORTNAME=	calibreweb
2
PORTVERSION=	0.6.24
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Web interface for viewing and downloading eBooks from a Calibre DB
9
WWW=		https://github.com/janeczku/calibre-web
10
11
LICENSE=	GPLv3
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}apscheduler>=0:devel/py-apscheduler@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}bleach>=0:www/py-bleach@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}chardet>=0:textproc/py-chardet@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}flask-babel>=0:devel/py-flask-babel@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}Flask-HTTPAuth>=0:security/py-flask-httpauth@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}Flask-Principal>=0:www/py-flask-principal@${PY_FLAVOR} \
22
		${PYTHON_PKGNAMEPREFIX}flask_limiter>=0:www/py-flask-limiter@${PY_FLAVOR} \
23
		${PYTHON_PKGNAMEPREFIX}flask_wtf>=0:www/py-flask-wtf@${PY_FLAVOR} \
24
		${PYTHON_PKGNAMEPREFIX}iso-639>=0:textproc/py-iso-639@${PY_FLAVOR} \
25
		${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
26
		${PYTHON_PKGNAMEPREFIX}netifaces-plus>=0:net/py-netifaces-plus@${PY_FLAVOR} \
27
		${PYTHON_PKGNAMEPREFIX}pypdf>=0:print/py-pypdf@${PY_FLAVOR} \
28
		${PYTHON_PKGNAMEPREFIX}python-magic>=0:devel/py-python-magic@${PY_FLAVOR} \
29
		${PYTHON_PKGNAMEPREFIX}regex>=0:textproc/py-regex@${PY_FLAVOR} \
30
		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
31
		${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} \
32
		${PYTHON_PKGNAMEPREFIX}tornado>=0:www/py-tornado@${PY_FLAVOR} \
33
		${PYTHON_PKGNAMEPREFIX}unidecode>=0:converters/py-unidecode@${PY_FLAVOR} \
34
		${PYTHON_PKGNAMEPREFIX}urllib3>=0:net/py-urllib3@${PY_FLAVOR} \
35
		${PYTHON_PKGNAMEPREFIX}Wand>=0:graphics/py-wand@${PY_FLAVOR}
36
37
USES=		python
38
USE_PYTHON=	autoplist pep517
39
USE_RC_SUBR=	${PORTNAME}
40
41
NO_ARCH=	yes
42
43
SUB_FILES=	pkg-message
44
SUB_LIST=	GROUP=${GROUPS} \
45
		PORTNAME=${PORTNAME} \
46
		PYTHON_CMD=${PYTHON_CMD} \
47
		RC_NAME=calibreweb \
48
		USER=${USERS}
49
50
USERS=		${PORTNAME}
51
GROUPS=		${PORTNAME}
52
53
PORTDOCS=	PKG-INFO README.md
54
55
OPTIONS_DEFINE=		CALIBRE COMICS DOCS GDRIVE GMAIL GREADS KOBO LDAP \
56
			METADATA OAUTH
57
OPTIONS_SINGLE=		IMAGICK SQLA
58
OPTIONS_SINGLE_IMAGICK=	IMAGICK6_NOX11 IMAGICK6_X11 IMAGICK7_NOX11 IMAGICK7_X11
59
OPTIONS_SINGLE_SQLA=	SQLA14 SQLA20
60
OPTIONS_DEFAULT=	IMAGICK7_X11 SQLA20
61
62
CALIBRE_DESC=		Calibre Desktop Conversion and Metadata Editing
63
CALIBRE_RUN_DEPENDS=	calibre>=0:deskutils/calibre
64
65
COMICS_DESC=		Comic Metadata Support
66
COMICS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}comicapi>=0:www/py-comicapi@${PY_FLAVOR} \
67
			${PYTHON_PKGNAMEPREFIX}natsort>=0:devel/py-natsort@${PY_FLAVOR}
68
69
GDRIVE_DESC=		Google Drive Support
70
GDRIVE_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gevent>=0:devel/py-gevent@${PY_FLAVOR} \
71
			${PYTHON_PKGNAMEPREFIX}google-api-python-client>=0:www/py-google-api-python-client@${PY_FLAVOR} \
72
			${PYTHON_PKGNAMEPREFIX}google-auth-httplib2>=0:security/py-google-auth-httplib2@${PY_FLAVOR} \
73
			${PYTHON_PKGNAMEPREFIX}greenlet>=0:devel/py-greenlet@${PY_FLAVOR} \
74
			${PYTHON_PKGNAMEPREFIX}oauth2client>=0:security/py-oauth2client@${PY_FLAVOR} \
75
			${PYTHON_PKGNAMEPREFIX}pyasn1-modules>=0:devel/py-pyasn1-modules@${PY_FLAVOR} \
76
			${PYTHON_PKGNAMEPREFIX}PyDrive2>=0:www/py-pydrive2@${PY_FLAVOR} \
77
			${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
78
			${PYTHON_PKGNAMEPREFIX}rsa>=0:security/py-rsa@${PY_FLAVOR} \
79
			${PYTHON_PKGNAMEPREFIX}uritemplate>=0:net/py-uritemplate@${PY_FLAVOR}
80
81
GMAIL_DESC=		GMail
82
GMAIL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}google-api-python-client>=0:www/py-google-api-python-client@${PY_FLAVOR} \
83
			${PYTHON_PKGNAMEPREFIX}google-auth-oauthlib>=0:security/py-google-auth-oauthlib@${PY_FLAVOR}
84
85
GREADS_DESC=		Goodreads API
86
GREADS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Goodreads>=0:www/py-goodreads@${PY_FLAVOR} \
87
			${PYTHON_PKGNAMEPREFIX}Levenshtein>=0:devel/py-Levenshtein@${PY_FLAVOR}
88
89
IMAGICK_DESC=		${IMAGEMAGICK_DESC}
90
IMAGICK6_NOX11_DESC=	ImageMagick6 without X11 support
91
IMAGICK6_NOX11_USES=	magick:6,run,nox11
92
IMAGICK6_X11_DESC=	ImageMagick6 with X11 support
93
IMAGICK6_X11_USES=	magick:6,run
94
IMAGICK7_NOX11_DESC=	ImageMagick7 without X11 support
95
IMAGICK7_NOX11_USES=	magick:7,run,nox11
96
IMAGICK7_X11_DESC=	ImageMagick7 with X11 support
97
IMAGICK7_X11_USES=	magick:7,run
98
99
KOBO_DESC=		Kobo Device Support
100
KOBO_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}jsonschema>=0:devel/py-jsonschema@${PY_FLAVOR} \
101
			kepubify>=0:textproc/kepubify
102
103
LDAP_DESC=		LDAP Login Support
104
LDAP_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Flask-SimpleLDAP>=0:www/py-flask-simpleldap@${PY_FLAVOR} \
105
			${PYTHON_PKGNAMEPREFIX}python-ldap>=0:net/py-python-ldap@${PY_FLAVOR} \
106
			${PYTHON_PKGNAMEPREFIX}sqlalchemy-utils>=0:databases/py-sqlalchemy-utils@${PY_FLAVOR}
107
LDAP_IMPLIES=		SQLA14
108
109
METADATA_DESC=		Metadata Extraction Support
110
METADATA_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
111
			${PYTHON_PKGNAMEPREFIX}faust-cchardet>=0:textproc/py-faust-cchardet@${PY_FLAVOR} \
112
			${PYTHON_PKGNAMEPREFIX}html2text>=0:textproc/py-html2text@${PY_FLAVOR} \
113
			${PYTHON_PKGNAMEPREFIX}markdown2>=0:textproc/py-markdown2@${PY_FLAVOR} \
114
			${PYTHON_PKGNAMEPREFIX}mutagen>=0:audio/py-mutagen@${PY_FLAVOR} \
115
			${PYTHON_PKGNAMEPREFIX}py7zr>=0:archivers/py-py7zr@${PY_FLAVOR} \
116
			${PYTHON_PKGNAMEPREFIX}pycountry>=0:textproc/py-pycountry@${PY_FLAVOR} \
117
			${PYTHON_PKGNAMEPREFIX}python-dateutil>=0:devel/py-python-dateutil@${PY_FLAVOR} \
118
			${PYTHON_PKGNAMEPREFIX}rarfile>=0:archivers/py-rarfile@${PY_FLAVOR} \
119
			${PYTHON_PKGNAMEPREFIX}scholarly>=0:www/py-scholarly@${PY_FLAVOR} \
120
			unrar>=0:archivers/unrar
121
122
OAUTH_DESC=		OAuth Login
123
OAUTH_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flask-dance>=0:www/py-flask-dance@${PY_FLAVOR}
124
125
SQLA_DESC=		SQLAchemy Database Toolkit for Python
126
SQLA14_DESC=		Use SQLAlchemy 1.4.*
127
SQLA14_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=0:databases/py-sqlalchemy14@${PY_FLAVOR}
128
SQLA20_DESC=		Use SQLAlchemy 2.0.*
129
SQLA20_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy20>=0:databases/py-sqlalchemy20@${PY_FLAVOR}
130
131
POST_PLIST=	fix-plist
132
133
pre-install-DOCS-on:
134
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
135
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
136
137
post-install:
138
# Remove .HOMEDIR so we can specify the location for the config files
139
	(cd ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/calibreweb/cps && ${RM} .HOMEDIR)
140
141
fix-plist:
142
	@${REINPLACE_CMD} -e "s|.*HOMEDIR$$||" ${TMPPLIST}
143
144
.include <bsd.port.mk>
(-)b/www/py-calibreweb/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (calibreweb-0.6.24.tar.gz) = 883c956ceb93a9bfa758428904d4122e64a1cf4778e5b6df14b8e50f465b6f9e
3
SIZE (calibreweb-0.6.24.tar.gz) = 7126198
(-)b/www/py-calibreweb/files/calibreweb.in (+93 lines)
Added Link Here
1
#!/bin/sh
2
#
3
# PROVIDE: %%PORTNAME%%
4
# REQUIRE: LOGIN
5
# KEYWORD: shutdown
6
#
7
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
8
# to enable this service:
9
#
10
# %%RC_NAME%%_enable (bool):        Set to NO by default.
11
#                       Set it to YES to enable it.
12
# %%RC_NAME%%_ip_addr:      IP Address used to listen for connections
13
#                       Default: 0.0.0.0
14
# %%RC_NAME%%_conf_dir:     Directory where %%RC_NAME%% configuration
15
#                       data is stored.
16
#                       Default: %%PREFIX%%/%%RC_NAME%%
17
# %%RC_NAME%%_settings:     Directory and file name of %%RC_NAME%% settings
18
#                       db is stored.
19
#                       Default: %%PREFIX%%/%%RC_NAME%%/app.db
20
# %%RC_NAME%%_gdrive:       Directory and file name of %%RC_NAME%% gdrive
21
#                       db is stored.
22
#                       Default: %%PREFIX%%/%%RC_NAME%%/gdrive.db
23
# %%RC_NAME%%_cert:         Directory and file name of %%RC_NAME%% gdrive
24
#                       db is stored.
25
#                       Default: None
26
# %%RC_NAME%%_key:          Directory and file name of %%RC_NAME%% gdrive
27
#                       db is stored.
28
#                       Default: None
29
# %%RC_NAME%%_flags:        Additonal flags as needed
30
#                       Default: None
31
# %%RC_NAME%%_user:         The user account %%RC_NAME%% daemon runs as what
32
#                       you want it to be. It uses '%%RC_NAME%%' user by
33
#                       default. Do not set it as empty or it will run
34
#                       as root.
35
# %%RC_NAME%%_group:        The group account %%RC_NAME%% daemon runs as what
36
#                       you want it to be. It uses '%%RC_NAME%%' group by
37
#                       default. Do not set it as empty or it will run
38
#                       as wheel.
39
# %%RC_NAME%%_pid:      Set the name of the %%RC_NAME%% pidfile
40
#                       Default: %%PORTNAME%%.pid
41
# %%RC_NAME%%_pid_dir:      Set the directory of the %%RC_NAME%% pidfile
42
#                       Default: /var/run/%%PORTNAME%%
43
# %%RC_NAME%%_log:      Set the name of the %%RC_NAME%% logfile
44
#                       Default: %%PORTNAME%%.log
45
# %%RC_NAME%%_log_dir:      Set the directory of the %%RC_NAME%% logfile
46
#                       Default: /var/log/%%PORTNAME%%
47
48
. /etc/rc.subr
49
50
name=%%RC_NAME%%
51
rcvar=%%RC_NAME%%_enable
52
load_rc_config ${name}
53
54
: ${%%RC_NAME%%_enable:=NO}
55
: ${%%RC_NAME%%_user:=%%USER%%}
56
: ${%%RC_NAME%%_group:=%%GROUP%%}
57
: ${%%RC_NAME%%_ip_addr="0.0.0.0"}
58
: ${%%RC_NAME%%_conf_dir="%%DATADIR%%"}
59
: ${%%RC_NAME%%_settings="${%%RC_NAME%%_conf_dir}/app.db"}
60
: ${%%RC_NAME%%_gdrive="${%%RC_NAME%%_conf_dir}/gdrive.db"}
61
: ${%%RC_NAME%%_pid:="%%PORTNAME%%.pid"}
62
: ${%%RC_NAME%%_pid_dir:="/var/run/%%PORTNAME%%"}
63
: ${%%RC_NAME%%_log:="%%PORTNAME%%.log"}
64
: ${%%RC_NAME%%_log_dir:="/var/log/%%PORTNAME%%"}
65
66
pidfile=${%%RC_NAME%%_pid_dir}/${%%RC_NAME%%_pid}
67
logfile=${%%RC_NAME%%_log_dir}/${%%RC_NAME%%_log}
68
69
start_precmd="${name}_prestart"
70
71
procname="%%PREFIX%%/bin/cps"
72
command_interpreter="%%PYTHON_CMD%%"
73
command="/usr/sbin/daemon"
74
command_args="-p $pidfile $procname \
75
		${%%RC_NAME%%_ip_addr:+-i ${%%RC_NAME%%_ip_addr}} \
76
		${%%RC_NAME%%_settings:+-p ${%%RC_NAME%%_settings}} \
77
		${%%RC_NAME%%_gdrive:+-g ${%%RC_NAME%%_gdrive}} \
78
		${%%RC_NAME%%_cert:+-c ${%%RC_NAME%%_cert}} \
79
		${%%RC_NAME%%_key:+-k ${%%RC_NAME%%_key}} \
80
		${logfile:+-o $logfile} \
81
		${%%RC_NAME%%_flags}"
82
83
%%RC_NAME%%_prestart()
84
{
85
	PATH=${PATH}:%%PREFIX%%/bin:%%PREFIX%%/sbin
86
87
	for calwebdir in ${%%RC_NAME%%_pid_dir} ${%%RC_NAME%%_log_dir} ${%%RC_NAME%%_conf_dir}; do
88
		[ -d ${calwebdir} ] || install -d -g ${%%RC_NAME%%_group} -o ${%%RC_NAME%%_user} ${calwebdir}
89
	done
90
}
91
92
run_rc_command $1
93
(-)b/www/py-calibreweb/files/patch-src_calibreweb_cps_config__sql.py (+29 lines)
Added Link Here
1
--- src/calibreweb/cps/config_sql.py.orig	2024-09-04 14:04:59 UTC
2
+++ src/calibreweb/cps/config_sql.py
3
@@ -483,6 +483,8 @@ def autodetect_calibre_binaries():
4
                         "C:\\program files(x86)\\calibre\\",
5
                         "C:\\program files(x86)\\calibre2\\",
6
                         "C:\\program files\\calibre2\\"]
7
+    elif sys.platform.startswith("freebsd"):
8
+        calibre_path = ["/usr/local/bin/"]
9
     else:
10
         calibre_path = ["/opt/calibre/"]
11
     for element in calibre_path:
12
@@ -513,6 +515,8 @@ def autodetect_unrar_binary():
13
     if sys.platform == "win32":
14
         calibre_path = ["C:\\program files\\WinRar\\unRAR.exe",
15
                         "C:\\program files(x86)\\WinRar\\unRAR.exe"]
16
+    elif sys.platform.startswith("freebsd"):
17
+        calibre_path = ["/usr/local/bin/unrar"]
18
     else:
19
         calibre_path = ["/usr/bin/unrar"]
20
     for element in calibre_path:
21
@@ -525,6 +529,8 @@ def autodetect_kepubify_binary():
22
     if sys.platform == "win32":
23
         calibre_path = ["C:\\program files\\kepubify\\kepubify-windows-64Bit.exe",
24
                         "C:\\program files(x86)\\kepubify\\kepubify-windows-64Bit.exe"]
25
+    elif sys.platform.startswith("freebsd"):
26
+        calibre_path = ["/usr/local/bin/kepubify"]
27
     else:
28
         calibre_path = ["/opt/kepubify/kepubify-linux-64bit", "/opt/kepubify/kepubify-linux-32bit"]
29
     for element in calibre_path:
(-)b/www/py-calibreweb/files/pkg-message.in (+18 lines)
Added Link Here
1
[
2
{ type: install
3
  message: <<EOM
4
To automatically start Calibre-Web at boot time:
5
# sysrc calibreweb_enable="YES"
6
7
To then manually start Calibre-Web without rebooting:
8
# service calibreweb start
9
10
Once started, visit the following webpage to configure:
11
http://localhost:8083/
12
13
Default User: admin
14
Default Password: admin123
15
EOM
16
}
17
]
18
(-)b/www/py-calibreweb/pkg-descr (+3 lines)
Added Link Here
1
Calibre-Web is a web app that offers a clean and intuitive
2
interface for browsing, reading, and downloading eBooks using
3
a valid Calibre database.
(-)b/www/py-comicapi/Makefile (+50 lines)
Added Link Here
1
PORTNAME=	comicapi
2
PORTVERSION=	3.2.0
3
CATEGORIES=	www python
4
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
5
6
MAINTAINER=	matthew@wener.org
7
COMMENT=	Comic archive (cbr/cbz) and metadata utilities
8
WWW=		https://github.com/comictagger/comicapi
9
10
LICENSE=	APACHE20
11
LICENSE_FILE=	${WRKSRC}/LICENSE
12
13
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}importlib-metadata>=0:devel/py-importlib-metadata@${PY_FLAVOR} \
14
		${PYTHON_PKGNAMEPREFIX}natsort>=0:devel/py-natsort@${PY_FLAVOR} \
15
		${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}pycountry>=0:textproc/py-pycountry@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}rapidfuzz>=0:devel/py-rapidfuzz@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}text2digits>=0:textproc/py-text2digits@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}wordninja>=0:textproc/py-wordninja@${PY_FLAVOR}
20
21
USES=		python
22
USE_PYTHON=	autoplist distutils pytest
23
24
USE_GITHUB=	yes
25
GH_ACCOUNT=	comictagger
26
GH_TAGNAME=	2bf8332
27
28
NO_ARCH=	yes
29
30
OPTIONS_DEFINE=		7Z CBR ICU
31
OPTIONS_DEFAUlT=	ICU
32
33
7Z_DESC=	7-Zip
34
7Z_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}py7zr>=0:archivers/py-py7zr@${PY_FLAVOR}
35
36
CBR_DESC=		CBR
37
CBR_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}rarfile>=0:archivers/py-rarfile@${PY_FLAVOR} \
38
			unrar>=0:archivers/unrar
39
40
ICU_DESC=		ICU
41
ICU_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pyicu>=0:devel/py-pyicu@${PY_FLAVOR}
42
43
TEST_ENV=	${MAKE_ENV} \
44
		PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
45
46
# The two sorting tests may fail based on system locale
47
do-test:
48
	@cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v
49
50
.include <bsd.port.mk>
(-)b/www/py-comicapi/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (comictagger-comicapi-3.2.0-2bf8332_GH0.tar.gz) = a96a0cdca8f5efc3337fe194f59b86e369e23d12e0fcec81e3c34b9e652c1f18
3
SIZE (comictagger-comicapi-3.2.0-2bf8332_GH0.tar.gz) = 17401837
(-)b/www/py-comicapi/pkg-descr (+2 lines)
Added Link Here
1
Comic archive (cbr/cbz) and metadata utilities.
2
Extracted from the comictagger project.
(-)b/www/py-flask-dance/Makefile (+82 lines)
Added Link Here
1
PORTNAME=	flask-dance
2
PORTVERSION=	7.1.0
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
DISTNAME=	flask_dance-${PORTVERSION}
7
8
MAINTAINER=	matthew@wener.org
9
COMMENT=	Doing the OAuth dance with style using Flask, requests, and oauthlib
10
WWW=		https://flask-dance.readthedocs.io/
11
12
LICENSE=	MIT
13
LICENSE_FILE=	${WRKSRC}/LICENSE
14
15
BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flit-core>=0:devel/py-flit-core@${PY_FLAVOR}
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flask>=0:www/py-flask@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}oauthlib>=0:security/py-oauthlib@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}requests-oauthlib>=0:www/py-requests-oauthlib@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}urlobject>=0:www/py-urlobject@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}werkzeug>=0:www/py-werkzeug@${PY_FLAVOR}
22
TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}betamax>=0:www/py-betamax@${PY_FLAVOR} \
23
		${PYTHON_PKGNAMEPREFIX}coverage>=0:devel/py-coverage@${PY_FLAVOR} \
24
		${PYTHON_PKGNAMEPREFIX}flask-caching>=0:www/py-flask-caching@${PY_FLAVOR} \
25
		${PYTHON_PKGNAMEPREFIX}Flask-Login>=0:www/py-flask-login@${PY_FLAVOR} \
26
		${PYTHON_PKGNAMEPREFIX}flask-sqlalchemy>=0:databases/py-flask-sqlalchemy@${PY_FLAVOR} \
27
		${PYTHON_PKGNAMEPREFIX}freezegun>=0:devel/py-freezegun@${PY_FLAVOR} \
28
		${PYTHON_PKGNAMEPREFIX}oauthlib>=0:security/py-oauthlib@${PY_FLAVOR} \
29
		${PYTHON_PKGNAMEPREFIX}pytest-mock>=0:devel/py-pytest-mock@${PY_FLAVOR} \
30
		${PYTHON_PKGNAMEPREFIX}responses>=0:devel/py-responses@${PY_FLAVOR}
31
32
USES=		python
33
USE_PYTHON=	autoplist pep517 pytest
34
35
NO_ARCH=	yes
36
37
PORTDOCS=	*
38
39
TEST_ENV=	${MAKE_ENV} \
40
		PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
41
42
OPTIONS_DEFINE=		DOCS SIGNALS
43
OPTIONS_RADIO=		SQLA
44
OPTIONS_RADIO_SQLA=	SQLA14 SQLA20
45
46
DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}betamax>=0:www/py-betamax@${PY_FLAVOR} \
47
			${PYTHON_PKGNAMEPREFIX}Flask-Sphinx-Themes>=0:www/py-flask-sphinx-themes@${PY_FLAVOR} \
48
			${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR} \
49
			${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR} \
50
			${PYTHON_PKGNAMEPREFIX}sphinxcontrib-seqdiag>=0:textproc/py-sphinxcontrib-seqdiag@${PY_FLAVOR} \
51
			${PYTHON_PKGNAMEPREFIX}sphinxcontrib-spelling>=0:textproc/py-sphinxcontrib-spelling@${PY_FLAVOR} \
52
			${RUN_DEPENDS}
53
DOCS_IMPLIES=		SQLA14
54
55
SIGNALS_DESC=		Signals Support
56
SIGNALS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}blinker>=0:devel/py-blinker@${PY_FLAVOR}
57
58
SQLA14_DESC=		Use SQLAlchemy 1.4.*
59
SQLA14_BUILD_DEPENDS=	${SQLA14_RUN_DEPENDS}
60
SQLA14_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=0:databases/py-sqlalchemy14@${PY_FLAVOR}
61
SQLA20_DESC=		Use SQLAlchemy 2.0.*
62
SQLA20_BUILD_DEPENDS=	${SQLA14_RUN_DEPENDS}
63
SQLA20_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy20>=0:databases/py-sqlalchemy20@${PY_FLAVOR}
64
65
TEST_IMPLIES=	SQLA14
66
67
pre-build-DOCS-on:
68
	@(cd ${BUILD_WRKSRC}; \
69
	${SETENVI} ${WRK_ENV} \
70
	sphinx-build-${PYTHON_VER} \
71
		-b html -d _build/doctress docs/ build/sphinx/html)
72
73
post-install-DOCS-on:
74
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
75
	(cd ${WRKSRC}/build/sphinx/html && \
76
		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \
77
		"! -name .buildinfo -and ! -name objects.inv -and ! -name _images")
78
79
do-test:
80
	@cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v
81
82
.include <bsd.port.mk>
(-)b/www/py-flask-dance/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1725150078
2
SHA256 (flask_dance-7.1.0.tar.gz) = 6d0510e284f3d6ff05af918849791b17ef93a008628ec33f3a80578a44b51674
3
SIZE (flask_dance-7.1.0.tar.gz) = 140993
(-)b/www/py-flask-dance/pkg-descr (+4 lines)
Added Link Here
1
Doing the OAuth dance with style using Flask, requests,
2
and oauthlib. Currently,only OAuth consumers are supported,
3
but this project could easily support OAuth providers in the
4
future, as well.
(-)b/www/py-flask-simpleldap/Makefile (+47 lines)
Added Link Here
1
PORTNAME=	Flask-SimpleLDAP
2
PORTVERSION=	2.0.0
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	LDAP authentication for Flask
9
WWW=		https://github.com/alexferl/flask-simpleldap
10
11
LICENSE=	MIT
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}blinker>=0:devel/py-blinker@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}flask>=0:www/py-flask@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}itsdangerous>=0:security/py-itsdangerous@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}markupsafe>=0:textproc/py-markupsafe@${PY_FLAVOR} \
22
		${PYTHON_PKGNAMEPREFIX}pyasn1-modules>=0:devel/py-pyasn1-modules@${PY_FLAVOR} \
23
		${PYTHON_PKGNAMEPREFIX}pyasn1>=0:devel/py-pyasn1@${PY_FLAVOR} \
24
		${PYTHON_PKGNAMEPREFIX}python-ldap>=0:net/py-python-ldap@${PY_FLAVOR} \
25
		${PYTHON_PKGNAMEPREFIX}werkzeug>=0:www/py-werkzeug@${PY_FLAVOR}
26
TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flask>=0:www/py-flask@${PY_FLAVOR}
27
28
USES=		python
29
USE_PYTHON=	autoplist pep517 pytest
30
31
NO_ARCH=	yes
32
33
PORTDOCS=	PKG-INFO README.md
34
35
TEST_ENV=	${MAKE_ENV} \
36
		PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
37
38
OPTIONS_DEFINE=	DOCS
39
40
do-test:
41
	@cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v
42
43
post-install-DOCS-on:
44
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
45
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
46
47
.include <bsd.port.mk>
(-)b/www/py-flask-simpleldap/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (Flask-SimpleLDAP-2.0.0.tar.gz) = d829f8163bae6d61d841707fa8a88bdcaae4862332c1acc13864b24ca82eaf25
3
SIZE (Flask-SimpleLDAP-2.0.0.tar.gz) = 8825
(-)b/www/py-flask-simpleldap/pkg-descr (+2 lines)
Added Link Here
1
Flask-SimpleLDAP provides LDAP authentication for Flask and
2
is compatible with and tested on Python 3.8+.
(-)b/www/py-flask-sphinx-themes/Makefile (+31 lines)
Added Link Here
1
PORTNAME=	Flask-Sphinx-Themes
2
DISTVERSION=	1.0.2
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Sphinx themes for Flask and related projects
9
WWW=		https://github.com/pallets/flask-sphinx-themes
10
11
LICENSE=	BSD2CLAUSE
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist pep517
20
21
NO_ARCH=	yes
22
23
PORTDOCS=	PKG-INFO README.rst
24
25
OPTIONS_DEFINE=	DOCS
26
27
post-install-DOCS-on:
28
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
29
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
30
31
.include <bsd.port.mk>
(-)b/www/py-flask-sphinx-themes/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1725150078
2
SHA256 (Flask-Sphinx-Themes-1.0.2.tar.gz) = bb23d7dd1a8ad9f47315bcb0439373c7feb24bcb0a1f8c52bb075f06489bb285
3
SIZE (Flask-Sphinx-Themes-1.0.2.tar.gz) = 9066
(-)b/www/py-flask-sphinx-themes/pkg-descr (+2 lines)
Added Link Here
1
This repository contains Sphinx themes for Flask and
2
Flask related projects.
(-)b/www/py-free-proxy/Makefile (+33 lines)
Added Link Here
1
PORTNAME=	free-proxy
2
PORTVERSION=	1.1.1
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
DISTNAME=	free_proxy-${PORTVERSION}
7
8
MAINTAINER=	matthew@wener.org
9
COMMENT=	Proxy scraper for further use
10
WWW=		https://github.com/jundymek/free-proxy
11
12
LICENSE=	MIT
13
LICENSE_FILE=	${WRKSRC}/LICENSE
14
15
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
16
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
17
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR}
19
20
USES=		python
21
USE_PYTHON=	autoplist pep517
22
23
NO_ARCH=	yes
24
25
PORTDOCS=	PKG-INFO README.md
26
27
OPTIONS_DEFINE=	DOCS
28
29
post-install-DOCS-on:
30
	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
31
	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
32
33
.include <bsd.port.mk>
(-)b/www/py-free-proxy/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (free_proxy-1.1.1.tar.gz) = 2b20eb863972b42984292cee17132f4c9ddb8fef0a9bee9bc15215a08e6899fb
3
SIZE (free_proxy-1.1.1.tar.gz) = 5121
(-)b/www/py-free-proxy/pkg-descr (+3 lines)
Added Link Here
1
Get free working proxy from https://www.sslproxies.org/,
2
https://www.us-proxy.org/, https://free-proxy-list.net/uk-proxy.html
3
and https://free-proxy-list.net and use it in your script.
(-)b/www/py-goodreads/Makefile (+21 lines)
Added Link Here
1
PORTNAME=	Goodreads
2
PORTVERSION=	0.3.2
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
DISTNAME=	goodreads-${PORTVERSION}
7
8
MAINTAINER=	matthew@wener.org
9
COMMENT=	Python interface for the Goodreads API
10
WWW=		https://github.com/sefakilic/goodreads/
11
12
LICENSE=	MIT
13
14
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}rauth>=0:devel/py-rauth@${PY_FLAVOR} \
15
		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
16
		${PYTHON_PKGNAMEPREFIX}xmltodict>=0:devel/py-xmltodict@${PY_FLAVOR}
17
18
USES=		python
19
USE_PYTHON=	autoplist distutils
20
21
.include <bsd.port.mk>
(-)b/www/py-goodreads/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (goodreads-0.3.2.tar.gz) = 3a0b311a0b1a6b35bbff09b9e67e80a76ecb77720b2e81a682ac5e018ad35445
3
SIZE (goodreads-0.3.2.tar.gz) = 12619
(-)b/www/py-goodreads/pkg-descr (+3 lines)
Added Link Here
1
This package provides a Python interface for the Goodreads API.
2
Using it, you can do pretty much anything that Goodreads allows to
3
do with their own data.
(-)b/www/py-pydrive2/Makefile (+58 lines)
Added Link Here
1
PORTNAME=	PyDrive2
2
PORTVERSION=	1.20.0
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
DISTNAME=	pydrive2-${PORTVERSION}
7
8
MAINTAINER=	matthew@wener.org
9
COMMENT=	PyDrive2 is a wrapper library of google-api-python-client
10
WWW=		https://github.com/iterative/PyDrive2
11
12
LICENSE=	APACHE20
13
LICENSE_FILE=	${WRKSRC}/LICENSE
14
15
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
16
		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
18
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}google-api-python-client>=0:www/py-google-api-python-client@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}oauth2client>=0:security/py-oauth2client@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}openssl>=0:security/py-openssl@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR}
22
23
USES=		python
24
USE_PYTHON=	autoplist pep517
25
26
NO_ARCH=	yes
27
28
PORTDOCS=	*
29
PORTEXAMPLES=	*
30
31
OPTIONS_DEFINE=	DOCS EXAMPLES FSSPEC
32
33
DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}furo>0:textproc/py-furo@${PY_FLAVOR} \
34
			${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
35
36
FSSPEC_DESC=		Filesystem interfaces for Python
37
FSSPEC_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}appdirs>=0:devel/py-appdirs@${PY_FLAVOR} \
38
			${PYTHON_PKGNAMEPREFIX}fsspec>=0:devel/py-fsspec@${PY_FLAVOR} \
39
			${PYTHON_PKGNAMEPREFIX}funcy>=0:devel/py-funcy@${PY_FLAVOR} \
40
			${PYTHON_PKGNAMEPREFIX}tqdm>=0:misc/py-tqdm@${PY_FLAVOR}
41
42
pre-build-DOCS-on:
43
	@(cd ${BUILD_WRKSRC}; \
44
	${SETENVI} ${WRK_ENV} \
45
	sphinx-build-${PYTHON_VER} \
46
		-b html -d _build/doctress docs/ build/sphinx/html)
47
48
do-install-EXAMPLES-on:
49
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
50
	(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
51
52
do-install-DOCS-on:
53
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
54
	(cd ${WRKSRC}/build/sphinx/html && \
55
		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \
56
		"! -name .buildinfo -and ! -name .nojekyll -and ! -name objects.inv")
57
58
.include <bsd.port.mk>
(-)b/www/py-pydrive2/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (pydrive2-1.20.0.tar.gz) = 168ba6eb6d83c9b082f05bc8cb95ee93ce62389db3b559ff0e769b5bb8b2b10a
3
SIZE (pydrive2-1.20.0.tar.gz) = 63247
(-)b/www/py-pydrive2/pkg-descr (+2 lines)
Added Link Here
1
PyDrive2 is a wrapper library of google-api-python-client
2
that simplifies many common Google Drive API V2 tasks.
(-)b/www/py-scholarly/Makefile (+33 lines)
Added Link Here
1
PORTNAME=	scholarly
2
PORTVERSION=	1.7.11
3
CATEGORIES=	www python
4
MASTER_SITES=	PYPI
5
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
6
7
MAINTAINER=	matthew@wener.org
8
COMMENT=	Simple access to Google Scholar authors and citations
9
WWW=		https://github.com/scholarly-python-package/scholarly
10
11
LICENSE=	UNLICENSE
12
LICENSE_FILE=	${WRKSRC}/LICENSE.txt
13
14
BUILD_DEPENDS=	${PY_SETUPTOOLS} \
15
		${PYTHON_PKGNAMEPREFIX}wheel>=:devel/py-wheel@${PY_FLAVOR}
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}arrow>=0:devel/py-arrow@${PY_FLAVOR} \
17
		${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
18
		${PYTHON_PKGNAMEPREFIX}bibtexparser>=0:textproc/py-bibtexparser@${PY_FLAVOR} \
19
		${PYTHON_PKGNAMEPREFIX}deprecated>=0:devel/py-deprecated@${PY_FLAVOR} \
20
		${PYTHON_PKGNAMEPREFIX}fake-useragent>=0:www/py-fake-useragent@${PY_FLAVOR} \
21
		${PYTHON_PKGNAMEPREFIX}free-proxy>=0:www/py-free-proxy@${PY_FLAVOR} \
22
		${PYTHON_PKGNAMEPREFIX}httpx>=0:www/py-httpx@${PY_FLAVOR} \
23
		${PYTHON_PKGNAMEPREFIX}python-dotenv>=0:www/py-python-dotenv@${PY_FLAVOR} \
24
		${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
25
		${PYTHON_PKGNAMEPREFIX}selenium>=0:www/py-selenium@${PY_FLAVOR} \
26
		${PYTHON_PKGNAMEPREFIX}stem>=0:security/py-stem@${PY_FLAVOR}
27
28
USES=		python
29
USE_PYTHON=	autoplist pep517
30
31
NO_ARCH=	yes
32
33
.include <bsd.port.mk>
(-)b/www/py-scholarly/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1724809518
2
SHA256 (scholarly-1.7.11.tar.gz) = 2c983dd44d9d9398a6f2605102ae6e5586023b41ebbaec1461917ee48eb153f0
3
SIZE (scholarly-1.7.11.tar.gz) = 38819
(-)b/www/py-scholarly/pkg-descr (-1 / +3 lines)
Added Link Here
0
- 
1
scholarly is a module that allows you to retrieve author and
2
publication information from Google Scholar in a friendly,
3
Pythonic way without having to solve CAPTCHAs.

Return to bug 281304