Files
ports/security/kanidm/Makefile
T

106 lines
3.0 KiB
Makefile

PORTNAME= kanidm
DISTVERSIONPREFIX= v
DISTVERSION= 1.10.4
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
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64 powerpc64le
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
.if ${FLAVOR} == client
RUN_DEPENDS+=tpm2-tss>0:security/tpm2-tss
.endif
USES= cargo 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>