aboutsummaryrefslogtreecommitdiff
path: root/security/kanidm/Makefile
blob: 704285a67033717851f686f0d19e1e2c028a55ac (plain) (blame)
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
PORTNAME=	kanidm
DISTVERSIONPREFIX=	v
DISTVERSION=	1.8.6
CATEGORIES=	security net

# implicit-approval+: dtxdf
MAINTAINER=	bofh@FreeBSD.org
COMMENT=	Simple and secure identity management platform ${${FLAVOR}_COMMENT}
WWW=		https://kanidm.com \
		https://github.com/kanidm/kanidm/

LICENSE=	MPL20
LICENSE_FILE=	${WRKSRC}/LICENSE.md

IGNORE_FreeBSD_13=		Does not build on FreeBSD 13.x due to OpenSSL 1.1.1
ONLY_FOR_ARCHS=	aarch64 amd64

FLAVORS=	client server
FLAVOR?=	${FLAVORS:[1]}
client_PKGNAMESUFFIX=	-client
client_COMMENT=		(client only)
client_PLIST=	${.CURDIR}/pkg-plist.client
server_PKGNAMESUFFIX=	-server
server_COMMENT=		(server only)
server_PLIST=	${.CURDIR}/pkg-plist.server

USES=		cargo ssl llvm
USE_GITHUB=	yes

MAKE_ENV=    LIBCLANG_PATH=${LLVM_PREFIX}/lib

.if ${FLAVOR} == server
CARGO_BUILD_ARGS=	-p daemon
USE_RC_SUBR=	kanidmd
.endif

.if ${FLAVOR} == client
CARGO_BUILD_ARGS=	-p kanidm_tools -p kanidm_unix_int -p nss_kanidm -p pam_kanidm
USE_RC_SUBR=	kanidm_unixd kanidm_unixd_tasks
.endif

CARGO_INSTALL=	no
CARGO_ENV=	KANIDM_BUILD_PROFILE=release_freebsd

CLIENT_CACHEDIR=/var/cache/kanidm-unixd
CLIENT_LIBDIR=/var/lib/kanidm-unixd
CLIENT_RUNDIR=/var/run/kanidm-unixd

SERVER_LIBDIR=/var/lib/kanidmd
SERVER_RUNDIR=/var/run/kanidmd

.if ${FLAVOR} == server
USERS=		kanidmd
GROUPS=		kanidmd

SUB_LIST=	USER=${USERS} \
		GROUP=${GROUPS} \
		ETCDIR=${PREFIX}/etc/kanidm \
		RUNDIR=/var/run/kanidmd \
		LIBDIR=/var/lib/kanidmd \
		SHAREDIR=${PREFIX}/share/kanidm
.endif

.if ${FLAVOR} == client
USERS=		kanidm
GROUPS=		kanidm

SUB_LIST=	USER=${USERS} \
		GROUP=${GROUPS} \
		ETCDIR=${PREFIX}/etc/kanidm \
		RUNDIR=/var/run/kanidm-unixd \
		CACHEDIR=/var/cache/kanidm-unixd \
		LIBDIR=/var/lib/kanidm-unixd
.endif

do-install:
.if ${FLAVOR} == server
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidmd ${STAGEDIR}${PREFIX}/libexec
	${MKDIR} ${STAGEDIR}${ETCDIR}
	${MKDIR} ${STAGEDIR}${SERVER_LIBDIR}
	${MKDIR} ${STAGEDIR}${SERVER_RUNDIR}
	${MKDIR} ${STAGEDIR}${DATADIR}/ui/hpkg
	(cd ${WRKSRC}/server/core/static/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/ui/hpkg/)
.endif

.if ${FLAVOR} == client
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm-unix ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm_ssh_authorizedkeys ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm_ssh_authorizedkeys_direct ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm_unixd ${STAGEDIR}${PREFIX}/libexec
	${INSTALL_PROGRAM} ${WRKDIR}/target/release/kanidm_unixd_tasks ${STAGEDIR}${PREFIX}/libexec
	${INSTALL_LIB} ${WRKDIR}/target/release/libnss_kanidm.so ${STAGEDIR}${PREFIX}/lib/nss_kanidm.so.1
	${INSTALL_LIB} ${WRKDIR}/target/release/libpam_kanidm.so ${STAGEDIR}${PREFIX}/lib
	${MKDIR} ${STAGEDIR}${ETCDIR}
	${MKDIR} ${STAGEDIR}${CLIENT_CACHEDIR}
	${MKDIR} ${STAGEDIR}${CLIENT_LIBDIR}
	${MKDIR} ${STAGEDIR}${CLIENT_RUNDIR}
.endif

.include <bsd.port.mk>