summaryrefslogtreecommitdiff
path: root/security/kanidm/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'security/kanidm/Makefile')
-rw-r--r--security/kanidm/Makefile99
1 files changed, 99 insertions, 0 deletions
diff --git a/security/kanidm/Makefile b/security/kanidm/Makefile
new file mode 100644
index 000000000000..54b16724b18c
--- /dev/null
+++ b/security/kanidm/Makefile
@@ -0,0 +1,99 @@
+PORTNAME= kanidm
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.7.3
+PORTREVISION= 1
+CATEGORIES= security net
+
+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
+.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}
+.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>