aboutsummaryrefslogtreecommitdiff
path: root/security/heimdal-devel/Makefile
blob: d5614bb91c3064acd71543ece8a99f24e8bc36ad (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
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
131
132
133
PORTNAME=	heimdal
PORTVERSION=	${HEIMDAL_COMMIT_DATE}
CATEGORIES=	security
PKGNAMESUFFIX=	-devel
HASH=		8f9c2d115
HEIMDAL_COMMIT_DATE=	2022.11.18

MAINTAINER=	cy@FreeBSD.org
COMMENT=	Popular BSD-licensed implementation of Kerberos 5
WWW=		https://www.h5l.org/

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

USE_GITHUB=	yes
GH_TAGNAME=	${HASH}

CONFLICTS=	krb5 krb5-*

USES=		autoreconf:build cpe gettext-runtime gssapi:bootstrap,heimdal \
		libtool pathfix pkgconfig python:build readline makeinfo ssl
CPE_VENDOR=	${PORTNAME}_project
USE_LDCONFIG=	${GSSAPILIBDIR}

# Needs clang-format which is only provided by the port.
# Else asm1_fails resulting in a command not found error.
BUILD_DEPENDS=	clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} \
		p5-JSON>0:converters/p5-JSON

LIB_DEPENDS=	liblockfile.so:devel/liblockfile

GNU_CONFIGURE=	yes
CONFIGURE_ENV=	ac_cv_header_fnmatch_h=yes \
		ac_cv_header_db_h=no \
		ac_cv_header_db3_db_h=no \
		ac_cv_header_db4_db_h=no \
		ac_cv_header_db5_db_h=no \
		ac_cv_header_db6_db_h=no \
		ac_cv_prog_COMPILE_ET=${WRKSRC}/lib/com_err/compile_et
CONFIGURE_ARGS=	--with-berkeley-db \
		--with-libintl \
		--with-libintl-include="${LOCALBASE}/include" \
		--with-libintl-lib="${LOCALBASE}/lib" \
		--libdir="${GSSAPILIBDIR}" \
		--includedir="${GSSAPIINCDIR}" \
		--with-kcm \
		--with-openssl \
		--with-openssl-include="${OPENSSLINC}" \
		--with-openssl-lib="${OPENSSLLIB}" \
		--enable-otp \
		--enable-pthread-support \
		--with-readline="${LOCALBASE}" \
		--with-hdbdir="/var/${PORTNAME}" \
		--sysconfdir="${PREFIX}/etc" \
		CLANG_FORMAT="${LOCALBASE}/bin/clang-format${LLVM_DEFAULT}" \
		--enable-kx509 \
		--without-microhttpd
# XXX --with-readline picks up libreadline even if found in /usr/lib.
MAKE_ENV=	INSTALL_CATPAGES=no
INSTALL_TARGET=	install-strip
.if !exists(/etc/rc.d/ipropd_master)
USE_RC_SUBR=	ipropd_master ipropd_slave
.endif
INFO=		heimdal hx509

MAKE_JOBS_UNSAFE=	yes

OPTIONS_DEFINE=	IPV6 BDB LMDB SQLITE LDAP PKINIT DIGEST KX509 CRACKLIB
OPTIONS_DEFAULT=IPV6 BDB                  PKINIT DIGEST KX509
OPTIONS_SUB=	yes

IPV6_CONFIGURE_WITH=	ipv6

BDB_DESC=		Enable BerkeleyDB KDC backend support
BDB_USES=		bdb:5 localbase
BDB_CONFIGURE_ENV=	ac_cv_header_db${BDB_VER}_db_h=yes \
			ac_cv_func_db_create=yes \
			ac_cv_funclib_db_create="-l${BDB_LIB_NAME}"
BDB_CONFIGURE_ON=	--disable-ndbm-db
BDB_CONFIGURE_ENV_OFF=	ac_cv_header_db_h=yes \
			ac_cv_func_db_create=no \
			ac_cv_funclib_db_create=no
BDB_CONFIGURE_OFF=	--enable-ndbm-db

LMDB_DESC=		Enable LMDB KDC backend support
LMDB_CONFIGURE_ENABLE=	mdb_db
LMDB_LIB_DEPENDS=	liblmdb.so:databases/lmdb

SQLITE_DESC=		Enable SQLite KDC backend support
SQLITE_USES=		sqlite
SQLITE_CONFIGURE_ON=	--with-sqlite3-include="${LOCALBASE}/include" \
			--with-sqlite3-lib="${LOCALBASE}/lib"
SQLITE_CONFIGURE_WITH=	sqlite3

LDAP_DESC=		Enable OpenLDAP KDC backend support
LDAP_USE=		OPENLDAP=yes
LDAP_CONFIGURE_ON=	--with-openldap-include="${LOCALBASE}/include" \
			--with-openldap-lib="${LOCALBASE}/lib"
LDAP_CONFIGURE_WITH=	openldap

PKINIT_DESC=		Enable PK-INIT support
PKINIT_CONFIGURE_ENABLE=pk-init

DIGEST_DESC=		Enable DIGEST support
DIGEST_CONFIGURE_ENABLE=digest

KX509_DESC=		Enable kx509 support
KX509_CONFIGURE_ENABLE=	kx509

CRACKLIB_DESC=		Use CrackLib for password quality checking
CRACKLIB_LIB_DEPENDS=	libcrack.so:security/cracklib

.include <bsd.port.options.mk>

post-extract:
	@${MKDIR} ${WRKSRC}/kpasswdd-cracklib
	${INSTALL_DATA} ${FILESDIR}/kpasswdd-cracklib.c \
	    ${WRKSRC}/kpasswdd-cracklib
	${INSTALL_DATA} ${FILESDIR}/kpasswdd-Makefile \
	    ${WRKSRC}/kpasswdd-cracklib/Makefile

pre-configure:
	cd ${WRKSRC} && ./autogen.sh

post-build-CRACKLIB-on:
	cd ${WRKSRC}/kpasswdd-cracklib && \
	    ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} ${BUILD_TARGET}

post-install-CRACKLIB-on:
	cd ${WRKSRC}/kpasswdd-cracklib && \
	    ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} ${INSTALL_TARGET}

.include <bsd.port.mk>