blob: 3da28c52ae30de00e893b72b8ce98c816e915ea9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# $NetBSD: Makefile,v 1.70 2022/12/12 14:35:14 gdt Exp $
DISTNAME= matrix-synapse-1.73.0
CATEGORIES= chat
MASTER_SITES= ${MASTER_SITE_GITHUB:=matrix-org/}
GITHUB_PROJECT= synapse
GITHUB_TAG= v${PKGVERSION_NOREV}
MAINTAINER= gdt@NetBSD.org
HOMEPAGE= https://github.com/matrix-org/synapse/
COMMENT= Reference homeserver for the Matrix decentralised comms protocol
LICENSE= apache-2.0
# Build tools:
TOOL_DEPENDS+= ${PYPKGPREFIX}-poetry-[0-9]*:../../devel/py-poetry
TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools-rust-[0-9]*:../../devel/py-setuptools-rust
# Dependencies as defined by synapse's build system (in theory):
# \todo Go over poetry.lock
DEPENDS+= ${PYPKGPREFIX}-asn1-modules>=0.0.7:../../security/py-asn1-modules
DEPENDS+= ${PYPKGPREFIX}-asn1>=0.1.9:../../security/py-asn1
DEPENDS+= ${PYPKGPREFIX}-pydantic>=1.9.1:../../devel/py-pydantic
DEPENDS+= ${PYPKGPREFIX}-attrs>=19.2.0:../../devel/py-attrs
DEPENDS+= ${PYPKGPREFIX}-bcrypt>=3.1.0:../../security/py-bcrypt
DEPENDS+= ${PYPKGPREFIX}-bleach>=1.4.3:../../www/py-bleach
DEPENDS+= ${PYPKGPREFIX}-canonicaljson>=1.4.0:../../devel/py-canonicaljson
DEPENDS+= ${PYPKGPREFIX}-curses-[0-9]*:../../devel/py-curses
DEPENDS+= ${PYPKGPREFIX}-frozendict>=1:../../devel/py-frozendict
DEPENDS+= ${PYPKGPREFIX}-idna>=2.5:../../www/py-idna
DEPENDS+= ${PYPKGPREFIX}-ijson>=3.0:../../devel/py-ijson
DEPENDS+= ${PYPKGPREFIX}-jinja2>=3.0:../../textproc/py-jinja2
DEPENDS+= ${PYPKGPREFIX}-jsonschema>=3.0.0:../../textproc/py-jsonschema
DEPENDS+= ${PYPKGPREFIX}-lxml>=3.5.0:../../textproc/py-lxml
DEPENDS+= ${PYPKGPREFIX}-macaroons>=0.13.0:../../devel/py-macaroons
DEPENDS+= ${PYPKGPREFIX}-matrix-common>=1.2.0:../../chat/py-matrix-common
DEPENDS+= ${PYPKGPREFIX}-msgpack>=0.5.2:../../devel/py-msgpack
DEPENDS+= ${PYPKGPREFIX}-nacl>=1.2.1:../../security/py-nacl
DEPENDS+= ${PYPKGPREFIX}-netaddr>=0.7.18:../../net/py-netaddr
DEPENDS+= ${PYPKGPREFIX}-phonenumbers>=8.2.0:../../textproc/py-phonenumbers
DEPENDS+= ${PYPKGPREFIX}-Pillow-[0-9]*:../../graphics/py-Pillow
DEPENDS+= ${PYPKGPREFIX}-prometheus_client>=0.4.0:../../net/py-prometheus_client
DEPENDS+= ${PYPKGPREFIX}-psycopg2>=2.7:../../databases/py-psycopg2
DEPENDS+= ${PYPKGPREFIX}-service_identity>=18.1.0:../../security/py-service_identity
DEPENDS+= ${PYPKGPREFIX}-signedjson>=1.1.0:../../security/py-signedjson
DEPENDS+= ${PYPKGPREFIX}-sortedcontainers>=1.4.4:../../devel/py-sortedcontainers
# NB: synapse needs features missing in NetBSD base system sqlite, and probably
# missing in other builds.
DEPENDS+= ${PYPKGPREFIX}-sqlite3>=0:../../databases/py-sqlite3
DEPENDS+= ${PYPKGPREFIX}-treq>=15.1:../../devel/py-treq
DEPENDS+= ${PYPKGPREFIX}-twisted>=18.9.0:../../net/py-twisted
DEPENDS+= ${PYPKGPREFIX}-typing-extensions>=3.10.0:../../devel/py-typing-extensions
DEPENDS+= ${PYPKGPREFIX}-unpaddedbase64>=1.1.0:../../devel/py-unpaddedbase64
DEPENDS+= ${PYPKGPREFIX}-yaml>=3.11:../../textproc/py-yaml
TEST_DEPENDS+= ${PYPKGPREFIX}-parameterized-[0-9]*:../../devel/py-parameterized
TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
PYTHON_VERSIONS_INCOMPATIBLE= 27 # py-unpaddedbase64
USE_LANGUAGES= c99
REPLACE_PYTHON+= synapse/_scripts/*.py
USE_TOOLS+= perl:run
REPLACE_PERL+= scripts/sync_room_to_group.pl
# Avoid the pyNN- prefix in config, doc, and so on.
HUMAN_PKGNAME= matrix-synapse
PKG_SYSCONFSUBDIR= ${HUMAN_PKGNAME}
DOCDIR= ${PREFIX}/share/doc/${HUMAN_PKGNAME}
SYNAPSE_USER?= synapse
SYNAPSE_GROUP?= ${SYNAPSE_USER}
SYNAPSE_DATA?= ${VARBASE}/db/${HUMAN_PKGNAME}
BUILD_DEFS+= SYNAPSE_USER SYNAPSE_GROUP SYNAPSE_DATA VARBASE
OWN_DIRS_PERMS+= ${SYNAPSE_DATA} ${SYNAPSE_USER} ${SYNAPSE_GROUP} 0770
PKG_USERS_VARS= SYNAPSE_USER
PKG_GROUPS_VARS= SYNAPSE_GROUP
PKG_GROUPS= ${SYNAPSE_GROUP}
PKG_USERS= ${SYNAPSE_USER}:${SYNAPSE_GROUP}
PKG_GECOS.${SYNAPSE_USER}= Synapse daemon user
PKG_HOME.${SYNAPSE_USER}= ${SYNAPSE_DATA}
PKG_SHELL.${SYNAPSE_USER}= ${NOLOGIN}
RCD_SCRIPTS= matrix-synapse
FILES_SUBST+= SYNAPSE_DATA=${SYNAPSE_DATA:Q}
FILES_SUBST+= SYNAPSE_USER=${SYNAPSE_USER:Q}
FILES_SUBST+= SYNAPSE_GROUP=${SYNAPSE_GROUP:Q}
MESSAGE_SUBST+= PYTHONBIN=${PYTHONBIN:Q}
MESSAGE_SUBST+= SYNAPSE_DATA=${SYNAPSE_DATA:Q}
SYNAPSE_DEFAULT_CREATOR_PL?= 100
SUBST_CLASSES+= pl
SUBST_STAGE.pl= post-configure
SUBST_FILES.pl= synapse/handlers/room.py
SUBST_VARS.pl= SYNAPSE_DEFAULT_CREATOR_PL
BUILD_DEFS+= SYNAPSE_DEFAULT_CREATOR_PL
post-patch:
# Otherwise, this file is installed and pollutes PLIST.
rm ${WRKSRC}/synapse/handlers/room.py.orig
post-install:
${INSTALL_DATA_DIR} ${DESTDIR}${DOCDIR}
${INSTALL_DATA} files/README.pkgsrc.txt ${DESTDIR}${DOCDIR}
${INSTALL_DATA} files/README.pkgsrc.NetBSD.txt ${DESTDIR}${DOCDIR}
# \todo Grok upstream's new test scheme and port to it.
# test status as of 1.51.0
# 51 warnings, 1 error
do-test:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} pytest-${PYVERSSUFFIX}
# guide says "Prepend .include "cargo-depends.mk" to any other .includes."
# To start:
# make CARGO_ARGS="build --release" build && make print-cargo-depends > cargo-depends.mk
# To update:
# make; make print-cargo-depends > cargo-depends.mk && make distinfo
.include "cargo-depends.mk"
.include "../../lang/python/application.mk"
.include "../../lang/python/wheel.mk"
RUST_REQ= 1.51.0
.include "../../lang/rust/cargo.mk"
PYTHON_VERSIONED_DEPENDENCIES+= OpenSSL
.include "../../lang/python/versioned_dependencies.mk"
.include "../../mk/bsd.pkg.mk"
|