git: e60e59f8edea - main - filesystems/py-tahoe-lafs: New port: Secure, decentralized, fault-tolerant file store

From: Jesús Daniel Colmenares Oviedo <dtxdf_at_FreeBSD.org>
Date: Tue, 03 Jun 2025 20:33:39 UTC
The branch main has been updated by dtxdf:

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

commit e60e59f8edea19fffb553251d6e86a59484f1ec4
Author:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
AuthorDate: 2025-06-03 18:10:14 +0000
Commit:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
CommitDate: 2025-06-03 20:32:49 +0000

    filesystems/py-tahoe-lafs: New port: Secure, decentralized, fault-tolerant file store
    
    Tahoe-LAFS (Tahoe Least-Authority File Store) is the first free
    software / open-source storage technology that distributes your
    data across multiple servers. Even if some servers fail or are taken
    over by an attacker, the entire file store continues to function
    correctly, preserving your privacy and security.
    
    PR:             287130
    Approved by:    acm (mentor)
---
 filesystems/Makefile                |  1 +
 filesystems/py-tahoe-lafs/Makefile  | 61 +++++++++++++++++++++++++++++++++++++
 filesystems/py-tahoe-lafs/distinfo  |  3 ++
 filesystems/py-tahoe-lafs/pkg-descr |  5 +++
 4 files changed, 70 insertions(+)

diff --git a/filesystems/Makefile b/filesystems/Makefile
index c61eae0c5e36..98184422de0a 100644
--- a/filesystems/Makefile
+++ b/filesystems/Makefile
@@ -100,6 +100,7 @@
     SUBDIR += py-prometheus-zfs
     SUBDIR += py-pyfakefs
     SUBDIR += py-s3fs
+    SUBDIR += py-tahoe-lafs
     SUBDIR += py-zfs-autobackup
     SUBDIR += rar2fs
     SUBDIR += rubygem-chef-winrm-fs
diff --git a/filesystems/py-tahoe-lafs/Makefile b/filesystems/py-tahoe-lafs/Makefile
new file mode 100644
index 000000000000..13e091b02404
--- /dev/null
+++ b/filesystems/py-tahoe-lafs/Makefile
@@ -0,0 +1,61 @@
+PORTNAME=	tahoe-lafs
+DISTVERSION=	1.20.0
+CATEGORIES=	filesystems python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	tahoe_lafs-${PORTVERSION}
+
+MAINTAINER=	dtxdf@FreeBSD.org
+COMMENT=	Secure, decentralized, fault-tolerant file store
+WWW=		https://tahoe-lafs.org
+
+LICENSE=	GPLv2+ TGGPL
+LICENSE_COMB=	dual
+LICENSE_NAME_TGGPL=	Transitive Grace Period Public Licence 1.0
+LICENSE_FILE_GPLv2+ =	${WRKSRC}/COPYING.GPL
+LICENSE_FILE_TGGPL=	${WRKSRC}/COPYING.TGPPL.rst
+LICENSE_PERMS_TGGPL=	auto-accept dist-mirror dist-sell pkg-mirror pkg-sell
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatch-vcs>0:devel/py-hatch-vcs@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}attrs>=0:devel/py-attrs@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}autobahn>=0:www/py-autobahn@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}cbor2>=0:devel/py-cbor2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}click>=0:devel/py-click@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}collections-extended>=0:devel/py-collections-extended@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}distro>=0:sysutils/py-distro@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}eliot>=0:devel/py-eliot@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}filelock>=0:sysutils/py-filelock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}foolscap>=0:devel/py-foolscap@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}future>=0:devel/py-future@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}klein>=0:www/py-klein@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}magic-wormhole>=0:net/py-magic-wormhole@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}netifaces>=0:net/py-netifaces@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}openssl>=0:security/py-openssl@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}psutil>=0:sysutils/py-psutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pycddl>=0:textproc/py-pycddl@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyrsistent>=0:devel/py-pyrsistent@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyutil>=0:devel/py-pyutil@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}treq>=0:www/py-treq@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}twisted>=0:devel/py-twisted@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}werkzeug>=0:www/py-werkzeug@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}zfec>=0:converters/py-zfec@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}zope.interface>=0:devel/py-zope.interface@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist cryptography pep517
+
+NO_ARCH=	yes
+
+OPTIONS_DEFINE=		I2P TOR
+OPTIONS_DEFAULT=	I2P TOR
+
+I2P_DESC=	Enable support for I2P
+TOR_DESC=	Enable support for Tor
+
+I2P_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}txi2p-tahoe>=0:devel/py-txi2p-tahoe@${PY_FLAVOR}
+TOR_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}txtorcon>=0:security/py-txtorcon@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/filesystems/py-tahoe-lafs/distinfo b/filesystems/py-tahoe-lafs/distinfo
new file mode 100644
index 000000000000..4082b9fe462f
--- /dev/null
+++ b/filesystems/py-tahoe-lafs/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1748363208
+SHA256 (tahoe_lafs-1.20.0.tar.gz) = d121fab784c8ada895d7463ef80e65697e295aa6c44f509a3dce4013ca6f5768
+SIZE (tahoe_lafs-1.20.0.tar.gz) = 2237761
diff --git a/filesystems/py-tahoe-lafs/pkg-descr b/filesystems/py-tahoe-lafs/pkg-descr
new file mode 100644
index 000000000000..094e24425017
--- /dev/null
+++ b/filesystems/py-tahoe-lafs/pkg-descr
@@ -0,0 +1,5 @@
+Tahoe-LAFS (Tahoe Least-Authority File Store) is the first free
+software / open-source storage technology that distributes your
+data across multiple servers. Even if some servers fail or are taken
+over by an attacker, the entire file store continues to function
+correctly, preserving your privacy and security.