summaryrefslogtreecommitdiff
path: root/security/sssd/Makefile
blob: d9327a78b1d8777d20d760c1b0fbce82b01613e2 (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
PORTNAME=	sssd
PORTVERSION=	1.16.5
PORTREVISION=	9
CATEGORIES=	security
MASTER_SITES=	https://releases.pagure.org/SSSD/${PORTNAME}/

MAINTAINER=	jhixson@FreeBSD.org
COMMENT=	System Security Services Daemon
WWW=		https://pagure.io/SSSD/sssd

LICENSE=	GPLv3+
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libpopt.so:devel/popt \
		libtalloc.so:devel/talloc \
		libtevent.so:devel/tevent \
		libtdb.so:databases/tdb \
		libldb.so:databases/ldb22 \
		libcares.so:dns/c-ares \
		libdbus-1.so:devel/dbus \
		libdhash.so:devel/ding-libs \
		libpcre.so:devel/pcre \
		libunistring.so:devel/libunistring \
		libnss3.so:security/nss \
		libsasl2.so:security/cyrus-sasl2 \
		libinotify.so:devel/libinotify \
		libplds4.so:devel/nspr
BUILD_DEPENDS=	xmlcatalog:textproc/libxml2 \
		docbook-xsl>=1:textproc/docbook-xsl \
		xsltproc:textproc/libxslt \
		xmlcatmgr:textproc/xmlcatmgr \
		krb5>=1.10:security/krb5 \
		nsupdate:dns/bind-tools

FLAVORS=	default smb
FLAVOR?=	${FLAVORS:[1]}
smb_PKGNAMESUFFIX=	-smb

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--without-selinux --without-semanage \
		--without-libnl --without-nfsv4-idmapd-plugin \
		--without-autofs --without-secrets --without-kcm \
		--without-python2-bindings --with-python-prefix=${PREFIX} \
		--with-init-dir=no \
		--disable-cifs-idmap-plugin \
		--with-unicode-lib=libunistring \
		--with-ldb-lib-dir=${LOCALBASE}/lib/shared-modules/ldb \
		--with-xml-catalog-path=${LOCALBASE}/share/xml/catalog \
		--datadir=${DATADIR} --docdir=${DOCSDIR} --localstatedir=/var \
		--with-db-path=/var/db/sss/db --with-mcache-path=/var/db/sss/mc \
		--with-pubconf-path=/var/db/sss/pubconf  \
		--with-gpo-cache-path=/var/db/sss/gpo_cache  \
		--with-pid-path=/var/run --with-pipe-path=/var/run/sss/pipes \
		--with-krb5-conf=/etc/krb5.conf \
		--enable-pammoddir=${PREFIX}/lib
CFLAGS+=	-fstack-protector-all
PLIST_SUB=	PYTHON_VER=${PYTHON_VER}
#DEBUG_FLAGS=	-g
MAKE_ENV+=	LINGUAS="bg de eu es fr hu id it ja nb nl pl pt ru sv tg tr uk zh_CN zh_TW"
SUB_FILES=	pkg-message

TEST_TARGET=	check

USES=		autoreconf cpe gettext gmake iconv ldap libtool pathfix pkgconfig \
		python shebangfix gssapi:mit
USE_LDCONFIG=	yes
INSTALL_TARGET=	install-strip
CPE_VENDOR=	fedoraproject

BINARY_ALIAS=	python3=python${PYTHON_VER}
SHEBANG_FILES=	src/tools/sss_obfuscate \
		src/sbus/sbus_codegen

USE_RC_SUBR=	${PORTNAME}
PORTDATA=	*

OPTIONS_DEFINE=	DOCS SMB
OPTIONS_SUB=	yes

SMB_DESC=		Install IPA and AD providers (requires Samba4)
SMB_USES=		samba:lib
SMB_CONFIGURE_WITH=	samba smb-idmap-interface-version=6
SMB_LIB_DEPENDS=	libndr-nbt.so.0:net/samba413 \
			libndr-krb5pac.so.0:net/samba413 \
			libndr-standard.so.0:net/samba413 \
			libndr.so.1:net/samba413 \
			libsamba-util.so.0:net/samba413 \
			libsmbclient.so.0:net/samba413

.if ${FLAVOR} == smb
OPTIONS_DEFAULT+=	SMB
.endif

post-patch:
	@${REINPLACE_CMD} -e 's|NSS_STATUS_NOTFOUND|NS_NOTFOUND|g' \
		-e 's|NSS_STATUS_UNAVAIL|NS_UNAVAIL|g' \
		-e 's|NSS_STATUS_TRYAGAIN|NS_TRYAGAIN|g' \
		-e '/ETIME/d' \
		-e 's|NSS_STATUS_SUCCESS|NS_SUCCESS|g' \
		${WRKSRC}/src/sss_client/common.c
	@${REINPLACE_CMD} \
		-e 's|pam_modutil_getlogin(pamh)|getlogin()|g' \
		${WRKSRC}/src/sss_client/pam_sss.c
	@${REINPLACE_CMD} \
		-e 's|install-data-hook install-dist_initSCRIPTS|install-dist_initSCRIPTS|g' \
		-e 's|install-data-hook|notinstall-data-hook|g' \
		${WRKSRC}/Makefile.am
	@${REINPLACE_CMD} -e 's|/etc/sssd/|${ETCDIR}/|g' \
		-e 's|/etc/openldap/|${LOCALBASE}/etc/openldap/|g' \
		${WRKSRC}/src/man/*xml
	@${REINPLACE_CMD} -e 's|/usr/bin/|${PREFIX}/bin/|g' \
		-e 's|/var/lib/sss/pubconf/|/var/db/sss/pubconf/|g' \
		${WRKSRC}/src/man/sss_ssh_knownhostsproxy.1.xml \
		${WRKSRC}/src/man/*/sss_ssh_knownhostsproxy.1.xml \
		${WRKSRC}/src/man/po/*.po
	@${CP} ${FILESDIR}/bsdnss.c ${WRKSRC}/src/sss_client/bsdnss.c
	@${CP} ${FILESDIR}/sss_bsd_errno.h ${WRKSRC}/src/util/sss_bsd_errno.h

post-install:
	${INSTALL_DATA} ${WRKSRC}/src/examples/sssd-example.conf \
		${STAGEDIR}${ETCDIR}/sssd.conf.sample
	${LN} -sf nss_sss.so ${STAGEDIR}${PREFIX}/lib/nss_sss.so.1

# clean unused man dirs
.for i in es/man1 nl/man1 nl/man5 pt/man1 pt/man5 sv/man1
	@${RMDIR} ${STAGEDIR}${PREFIX}/man/${i}
.endfor

.include <bsd.port.mk>