Line 0
Link Here
|
|
|
1 |
# New ports collection makefile for: freeradius |
2 |
# Date created: May 9 2002 |
3 |
# Whom: Brian Somers <brian@FreeBSD.org> |
4 |
# |
5 |
# $FreeBSD: ports/net/freeradius2/Makefile,v 1.85 2010/03/27 19:33:51 dougb Exp $ |
6 |
# |
7 |
# $Id$ |
8 |
# |
9 |
|
10 |
PORTNAME= freeradius |
11 |
DISTVERSION= 2.1.9 |
12 |
CATEGORIES= net |
13 |
MASTER_SITES= ftp://ftp.freeradius.org/pub/freeradius/%SUBDIR%/ \ |
14 |
ftp://ftp.ntua.gr/pub/net/radius/freeradius/%SUBDIR%/ \ |
15 |
ftp://ftp.uk.freeradius.org/pub/radius/%SUBDIR%/ \ |
16 |
http://ftp.cc.uoc.gr/mirrors/ftp.freeradius.org/%SUBDIR%/ \ |
17 |
http://freeradius.portal-to-web.de/%SUBDIR%/ |
18 |
MASTER_SITE_SUBDIR= . old |
19 |
DISTNAME= freeradius-server-${DISTVERSION} |
20 |
|
21 |
MAINTAINER= rpsfa@rit.edu |
22 |
COMMENT= A free RADIUS server implementation |
23 |
|
24 |
LIB_DEPENDS= gdbm.3:${PORTSDIR}/databases/gdbm |
25 |
|
26 |
USE_GMAKE= yes |
27 |
#RUN_DEPENDS= gmake:${PORTSDIR}/devel/gmake |
28 |
|
29 |
USE_BZIP2= yes |
30 |
|
31 |
LOGDIR?= /var/log |
32 |
|
33 |
CONFLICTS= gnu-radius-[0-9].* openradius-[0-9].* radiusd-cistron-[0-9].* \ |
34 |
freeradius-mysql-[0-9].* freeradius-[013-9].* |
35 |
|
36 |
USE_RC_SUBR= radiusd.sh |
37 |
USE_AUTOTOOLS= libltdl:22 libtool:22 autoconf:262 |
38 |
USE_GMAKE= yes |
39 |
USE_OPENSSL= yes |
40 |
MAKE_ARGS+= LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" |
41 |
CFLAGS+= -I${LOCALBASE}/include -L${LOCALBASE}/lib |
42 |
MAKE_JOBS_UNSAFE= yes |
43 |
|
44 |
PLIST_SUB= PORTVERSION=${DISTVERSION} |
45 |
|
46 |
OPTIONS= USER "Run as user freeradius, group freeradius" on \ |
47 |
KERBEROS "With Kerberos support" off \ |
48 |
HEIMDAL "With Heimdal Kerberos support" off \ |
49 |
LDAP "With LDAP database support" off \ |
50 |
MYSQL "With MySQL database support" off \ |
51 |
PGSQL "With PostgreSQL database support" off \ |
52 |
UNIXODBC "With unixODBC database support" off \ |
53 |
FIREBIRD "With Firebird database support (EXPERIMENTAL)" off \ |
54 |
PERL "With Perl support" on \ |
55 |
PYTHON "With Python support" on \ |
56 |
OCI8 "With Oracle support (currently experimental)" off \ |
57 |
RUBY "With Ruby support (EXPERIMENTAL)" off \ |
58 |
DHCP "With DHCP support (EXPERIMENTAL)" off \ |
59 |
EXPERIMENTAL "Build experimental modules" off |
60 |
|
61 |
.include <bsd.port.options.mk> |
62 |
|
63 |
# Default requirements for rc script |
64 |
_REQUIRE= NETWORKING SERVERS |
65 |
|
66 |
.ifdef(WITH_USER) |
67 |
SUB_LIST+= RUN_AS_USER="yes" |
68 |
.else |
69 |
SUB_LIST+= RUN_AS_USER="no" |
70 |
.endif |
71 |
|
72 |
# User and group to use if USER option is chosen |
73 |
RADIUS_USER= freeradius |
74 |
RADIUS_GROUP= freeradius |
75 |
|
76 |
USERS= ${RADIUS_USER} |
77 |
GROUPS= ${RADIUS_GROUP} |
78 |
|
79 |
.if defined(WITH_HEIMDAL) && !defined(WITH_KERBEROS) |
80 |
WITH_KERBEROS= yes |
81 |
.endif |
82 |
|
83 |
.ifdef(WITH_KERBEROS) |
84 |
.ifdef(WITH_HEIMDAL) |
85 |
LIB_DEPENDS+= krb5.23:${PORTSDIR}/security/heimdal |
86 |
CONFIGURE_ARGS+=--enable-heimdal-krb5 |
87 |
.else |
88 |
LIB_DEPENDS+= krb5.3:${PORTSDIR}/security/krb5 |
89 |
.endif |
90 |
CONFIGURE_ARGS+=--with-rlm_krb5 |
91 |
CONFIGURE_ARGS+=--with-rlm-krb5-lib-dir=${LOCALBASE}/lib |
92 |
CONFIGURE_ARGS+=--with-rlm-krb5-include-dir=${LOCALBASE}/include |
93 |
PLIST_SUB+= KRB5="" |
94 |
.else |
95 |
CONFIGURE_ARGS+=--without-rlm_krb5 |
96 |
PLIST_SUB+= KRB5="@comment " |
97 |
.endif |
98 |
|
99 |
.ifdef(WITH_LDAP) |
100 |
USE_OPENLDAP= YES |
101 |
CONFIGURE_ARGS+=--with-rlm_ldap |
102 |
PLIST_SUB+= LDAP="" |
103 |
_REQUIRE+= slapd |
104 |
.else |
105 |
CONFIGURE_ARGS+=--without-rlm_ldap |
106 |
PLIST_SUB+= LDAP="@comment " |
107 |
.endif |
108 |
|
109 |
.ifdef(WITH_MYSQL) |
110 |
USE_MYSQL= YES |
111 |
CONFIGURE_ARGS+=--with-rlm_sql_mysql |
112 |
PLIST_SUB+= MYSQL="" |
113 |
_REQUIRE+= mysql |
114 |
.else |
115 |
CONFIGURE_ARGS+=--without-rlm_sql_mysql |
116 |
PLIST_SUB+= MYSQL="@comment " |
117 |
.endif |
118 |
|
119 |
.ifdef(WITH_PGSQL) |
120 |
USE_PGSQL= YES |
121 |
CONFIGURE_ARGS+=--with-rlm_sql_postgresql |
122 |
PLIST_SUB+= PGSQL="" |
123 |
_REQUIRE+= postgresql |
124 |
.else |
125 |
CONFIGURE_ARGS+=--without-rlm_sql_postgresql |
126 |
PLIST_SUB+= PGSQL="@comment " |
127 |
.endif |
128 |
|
129 |
.ifdef(WITH_UNIXODBC) |
130 |
CONFIGURE_ARGS+=--with-rlm_sql_unixodbc |
131 |
PLIST_SUB+= UNIXODBC="" |
132 |
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC |
133 |
.else |
134 |
CONFIGURE_ARGS+=--without-rlm_sql_unixodbc |
135 |
PLIST_SUB+= UNIXODBC="@comment " |
136 |
.endif |
137 |
|
138 |
.ifdef(WITH_FIREBIRD) |
139 |
USE_FIREBIRD= YES |
140 |
CONFIGURE_ARGS+=--with-rlm_sql_firebird |
141 |
PLIST_SUB+= FIREBIRD="" |
142 |
.else |
143 |
CONFIGURE_ARGS+=--without-rlm_sql_firebird |
144 |
PLIST_SUB+= FIREBIRD="@comment " |
145 |
.endif |
146 |
|
147 |
# Firebird module is still experimental |
148 |
.if defined(WITH_FIREBIRD) && !defined(WITH_EXPERIMENTAL) |
149 |
WITH_EXPERIMENTAL= yes |
150 |
.endif |
151 |
|
152 |
.ifdef(WITH_PERL) |
153 |
USE_PERL5= yes |
154 |
CONFIGURE_ARGS+=--with-rlm_perl |
155 |
PLIST_SUB+= RLMPERL="" |
156 |
# temporary workaround for libtool issue until FR 2.2.x is released |
157 |
CFLAGS+= -DHAVE_LT_DLADVISE_INIT |
158 |
.else |
159 |
CONFIGURE_ARGS+=--without-perl --without-rlm_perl |
160 |
PLIST_SUB+= RLMPERL="@comment " |
161 |
.endif |
162 |
|
163 |
.ifdef(WITH_PYTHON) |
164 |
USE_PYTHON= yes |
165 |
CONFIGURE_ARGS+=--with-rlm_python \ |
166 |
--with-rlm-python-lib-dir=${PYTHON_LIBDIR} \ |
167 |
--with-rlm-python-include-dir=${PYTHON_INCLUDEDIR} |
168 |
PLIST_SUB+= RLMPYTHON="" |
169 |
.else |
170 |
CONFIGURE_ARGS+=--without-rlm_python |
171 |
PLIST_SUB+= RLMPYTHON="@comment " |
172 |
.endif |
173 |
|
174 |
.ifdef(WITH_RUBY) |
175 |
USE_RUBY= yes |
176 |
CONFIGURE_ARGS+=--with-rlm_ruby |
177 |
PLIST_SUB+= RLMRUBY="" |
178 |
.else |
179 |
CONFIGURE_ARGS+=--without-rlm_ruby |
180 |
PLIST_SUB+= RLMRUBY="@comment " |
181 |
.endif |
182 |
|
183 |
# rlm_ruby module is still experimental |
184 |
.if defined(WITH_RUBY) && !defined(WITH_EXPERIMENTAL) |
185 |
WITH_EXPERIMENTAL= yes |
186 |
.endif |
187 |
|
188 |
.ifdef(WITH_DHCP) |
189 |
CONFIGURE_ARGS+=--with-dhcp |
190 |
.else |
191 |
CONFIGURE_ARGS+=--without-dhcp |
192 |
.endif |
193 |
|
194 |
# DHCP is still experimental |
195 |
.if defined(WITH_DHCP) && !defined(WITH_EXPERIMENTAL) |
196 |
WITH_EXPERIMENTAL= yes |
197 |
.endif |
198 |
|
199 |
# No SMB option yet; rlm_smb is still unbuildable |
200 |
.ifdef(WITH_SMB) |
201 |
LIB_DEPENDS= smbclient.0:${PORTSDIR}/net/samba-libsmbclient |
202 |
CONFIGURE_ARGS+=--with-rlm_smb |
203 |
CONFIGURE_ARGS+=--with-rlm-smb-lib-dir=${LOCALBASE}/lib |
204 |
CONFIGURE_ARGS+=--with-rlm-smb-include-dir=${LOCALBASE}/include |
205 |
PLIST_SUB+= SMB="" |
206 |
.else |
207 |
CONFIGURE_ARGS+=--without-rlm_smb |
208 |
PLIST_SUB+= SMB="@comment " |
209 |
.endif |
210 |
|
211 |
# SMB module is still experimental |
212 |
.if defined(WITH_SMB) && !defined(WITH_EXPERIMENTAL) |
213 |
WITH_EXPERIMENTAL= yes |
214 |
.endif |
215 |
|
216 |
# Oracle support is experimental under FreeBSD |
217 |
.ifdef(WITH_OCI8) |
218 |
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-exec.c |
219 |
CONFIGURE_ENV= ORACLE_HOME="${ORACLE_HOME}" |
220 |
ORACLE_HOME?= ${LOCALBASE}/oracle8-client |
221 |
BUILD_DEPENDS+= ${ORACLE_HOME}/lib/libclntst8.a:${PORTSDIR}/databases/oracle8-client |
222 |
CONFIGURE_ARGS+=--with-oracle-home-dir=${ORACLE_HOME}/rdbms/demo |
223 |
PLIST_SUB+= OCI8="" |
224 |
.else |
225 |
CONFIGURE_ARGS+=--without-rlm_sql_oracle |
226 |
PLIST_SUB+= OCI8="@comment " |
227 |
.endif |
228 |
|
229 |
.ifdef(WITH_EXPERIMENTAL) |
230 |
CONFIGURE_ARGS+=--with-experimental-modules |
231 |
PLIST_SUB+= EXPM="" |
232 |
.else |
233 |
PLIST_SUB+= EXPM="@comment " |
234 |
.endif |
235 |
|
236 |
.ifdef(WITH_DEVELOPER) |
237 |
CONFIGURE_ARGS+=--enable-developer |
238 |
# Turn off compiler optimisations |
239 |
CFLAGS!= ${ECHO} ${CFLAGS} | ${SED} -Ee 's:-O[0-9]?[[:space:]]*::g' |
240 |
.endif |
241 |
|
242 |
.include <bsd.port.pre.mk> |
243 |
|
244 |
.if ${ARCH} == "sparc64" && ${OSVERSION} < 700000 |
245 |
BROKEN= Does not build on sparc64-6 |
246 |
.endif |
247 |
|
248 |
FREERADIUS_LIBDIR= lib/freeradius-${PORTVERSION} |
249 |
PLIST_SUB+= LIBDIR="${FREERADIUS_LIBDIR}" |
250 |
USE_LDCONFIG= ${PREFIX}/${FREERADIUS_LIBDIR} |
251 |
|
252 |
CONFIGURE_ARGS+=--quiet \ |
253 |
--prefix=${PREFIX} \ |
254 |
--libdir=${PREFIX}/${FREERADIUS_LIBDIR} \ |
255 |
--localstatedir=/var \ |
256 |
--with-system-libtool |
257 |
.ifdef(NOPORTDOCS) |
258 |
CONFIGURE_ARGS+=--without-docdir |
259 |
PLIST_SUB+= PORTDOCS="@comment " |
260 |
SUB_LIST+= PORTDOCS="@comment " |
261 |
.else |
262 |
CONFIGURE_ARGS+=--with-docdir=${DOCSDIR} |
263 |
PLIST_SUB+= PORTDOCS="" |
264 |
SUB_LIST+= PORTDOCS="" |
265 |
.endif |
266 |
CONFIGURE_ARGS+=--with-logdir=${LOGDIR} \ |
267 |
--with-openssl-includes=${OPENSSLINC} |
268 |
# This conditionality avoids -L/usr/lib in the radiusd build step when |
269 |
# building with base system OpenSSL |
270 |
.if ${OPENSSLLIB} != "/usr/lib" |
271 |
CONFIGURE_ARGS+=--with-openssl-libraries=${OPENSSLLIB} |
272 |
.endif |
273 |
CONFIGURE_ARGS+=--without-rlm_eap_ikev2 \ |
274 |
--without-rlm_eap_tnc \ |
275 |
--without-rlm_eap2 \ |
276 |
--without-rlm_opendirectory \ |
277 |
--without-rlm_sql_db2 \ |
278 |
--without-rlm_sql_iodbc \ |
279 |
--without-rlm_sql_sqlite \ |
280 |
--without-rlm_sql_sybase \ |
281 |
--with-vmps |
282 |
|
283 |
.if ${ARCH} == amd64 |
284 |
CONFIGURE_ARGS+= --with-pic |
285 |
.endif |
286 |
|
287 |
SUB_LIST+= RADIUS_USER="${RADIUS_USER}" \ |
288 |
RADIUS_GROUP="${RADIUS_GROUP}" \ |
289 |
RADDB_WORK="${WRKSRC}/raddb" \ |
290 |
RADDB="${PREFIX}/etc/raddb" \ |
291 |
LOGDIR="${LOGDIR}" \ |
292 |
LIBDIR="${PREFIX}/${FREERADIUS_LIBDIR}" |
293 |
SUB_FILES+= pkg-install pkg-deinstall pkg-message |
294 |
|
295 |
MAN1= radclient.1 radeapclient.1 radlast.1 radtest.1 radwho.1 \ |
296 |
radzap.1 |
297 |
MAN5= acct_users.5 clients.conf.5 dictionary.5 radiusd.conf.5 \ |
298 |
radrelay.conf.5 rlm_acct_unique.5 rlm_always.5 \ |
299 |
rlm_attr_filter.5 rlm_attr_rewrite.5 rlm_chap.5 rlm_counter.5 \ |
300 |
rlm_detail.5 rlm_digest.5 rlm_expr.5 rlm_files.5 rlm_mschap.5 \ |
301 |
rlm_pap.5 rlm_passwd.5 rlm_policy.5 rlm_realm.5 rlm_sql.5 \ |
302 |
rlm_sql_log.5 rlm_unix.5 unlang.5 users.5 |
303 |
MAN8= radiusd.8 radmin.8 raddebug.8 radrelay.8 radsqlrelay.8 \ |
304 |
radwatch.8 rlm_ippool_tool.8 |
305 |
|
306 |
SUB_LIST+= REQUIRE="${_REQUIRE}" |
307 |
|
308 |
post-patch: |
309 |
# Patch Makefile / Makefile.in throughout the source tree to install raddb |
310 |
# contents in ${EXAMPLESDIR}/raddb rather than the raddbdir from configure |
311 |
@${FIND} -E ${WRKSRC} -regex '.*/Makefile(\.in)?$$' -exec \ |
312 |
${REINPLACE_CMD} -e "s:\$$(R)\$$(raddbdir):${EXAMPLESDIR}/raddb:g" {} \; |
313 |
# Clean up after the last operation (so as not to get unwanted files when installing doc/) |
314 |
@${FIND} -E ${WRKSRC} -regex '.*/Makefile(\.in)?\.(orig|bak)$$' -delete |
315 |
# Patch raddb/certs/bootstrap to use gmake instead of make |
316 |
@${REINPLACE_CMD} -Ee "s:^make:${GMAKE}:" \ |
317 |
${WRKSRC}/raddb/certs/bootstrap |
318 |
# Patch raddb/certs/Makefile for the full path to the openssl binary (using |
319 |
# ports OpenSSL if installed) |
320 |
@${REINPLACE_CMD} -E \ |
321 |
-e "s:^([[:space:]])+openssl:\1${OPENSSLBASE}/bin/openssl:g" \ |
322 |
${WRKSRC}/raddb/certs/Makefile |
323 |
# Clean up after the last two operations (so as not to get unwanted files in |
324 |
# raddb) |
325 |
@${FIND} -E ${WRKSRC}/raddb/certs \ |
326 |
-regex '.*/(bootstrap|Makefile)\.(orig|bak)$$' \ |
327 |
-delete |
328 |
# If DHCPis enabled, enable the DHCP dictionary |
329 |
.ifdef(WITH_DHCP) |
330 |
@${REINPLACE_CMD} -Ee 's:^#(.+ dictionary\.dhcp)$$:\1:g' \ |
331 |
${WRKSRC}/share/dictionary |
332 |
# Clean up (so as not to get an unwanted file in share) |
333 |
@${FIND} -E ${WRKSRC}/share \ |
334 |
-regex '.*/dictionary\.(orig|bak)$$' \ |
335 |
-delete |
336 |
.endif |
337 |
# Patch scripts/Makefile not to install (unnecessary) rc.radiusd |
338 |
@${REINPLACE_CMD} -Ee 's:^(.+rc\.radiusd.+)$$:#\1:g' \ |
339 |
${WRKSRC}/scripts/Makefile |
340 |
|
341 |
pre-configure: |
342 |
# Replace -pthread with ${PTHREAD_LIBS} in configure(.in) files |
343 |
@${FIND} -E ${WRKSRC} -regex '.*/configure(\.in)?$$' -exec \ |
344 |
${REINPLACE_CMD} -e "s:-pthread:${PTHREAD_LIBS}:g" {} \; |
345 |
# Force the rebuild of some configures from configure.in, as we're patching |
346 |
# the configure.in |
347 |
# NOTE: ${WRKSRC}/configure is rebuilt automatically once autoconf:262 is |
348 |
# added to USE_AUTOTOOLS |
349 |
@cd ${WRKSRC}/src/modules/rlm_ldap && ${AUTOCONF} -I ${WRKSRC} |
350 |
@cd ${WRKSRC}/src/modules/rlm_sql/drivers/rlm_sql_mysql \ |
351 |
&& ${AUTOCONF} -I ${WRKSRC} |
352 |
@cd ${WRKSRC}/src/modules/rlm_perl && ${AUTOCONF} -I ${WRKSRC} |
353 |
@cd ${WRKSRC}/src/modules/rlm_python && ${AUTOCONF} -I ${WRKSRC} |
354 |
|
355 |
pre-install: |
356 |
# Run pkg-install PRE-INSTALL |
357 |
@${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} \ |
358 |
PRE-INSTALL |
359 |
|
360 |
post-install: |
361 |
# If ${PREFIX}/etc/raddb isn't a directory (or a symlink), make a copy |
362 |
# of ${EXAMPLESDIR}/raddb as ${PREFIX}/etc/raddb, then bootstrap the |
363 |
# certificates |
364 |
@if ! [ -d ${PREFIX}/etc/raddb -o -L ${PREFIX}/etc/raddb ]; then \ |
365 |
${CP} -RP ${EXAMPLESDIR}/raddb ${PREFIX}/etc/raddb; \ |
366 |
${ECHO_MSG} '===> Bootstrapping default certificates, please wait...'; \ |
367 |
${PREFIX}/etc/raddb/certs/bootstrap >/dev/null 2>&1; \ |
368 |
fi |
369 |
# Set ${PREFIX}/etc/raddb and all the files and folders in it to g-w,o-rwx |
370 |
# (FreeRADIUS will probably complain if this is not done) |
371 |
@${CHMOD} -R g-w,o-rwx ${PREFIX}/etc/raddb |
372 |
# Run pkg-install POST-INSTALL |
373 |
@${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} \ |
374 |
POST-INSTALL |
375 |
# Display the contents of pkg-message |
376 |
@${CAT} ${PKGMESSAGE} |
377 |
|
378 |
.include <bsd.port.post.mk> |