blob: 8c2f58b1a120595dec8c93fac67c5de643eb643f (
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
# Created by: k@123.org
PORTNAME?= lighttpd
PORTVERSION= 1.4.64
PORTREVISION= 1
CATEGORIES?= www
MASTER_SITES?= https://download.lighttpd.net/lighttpd/releases-1.4.x/
MAINTAINER= pkubaj@FreeBSD.org
COMMENT?= Secure, fast, compliant, and flexible Web Server
.if !defined(_BUILDING_LIGHTTPD_MODULE)
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
.endif
LIB_DEPENDS+= libpcre2-8.so:devel/pcre2
USES= autoreconf compiler:c11 gmake libtool localbase pkgconfig tar:xz
USE_CSTD= gnu99
.if !defined(_BUILDING_LIGHTTPD_MODULE)
USES+= cpe
.endif
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --libdir=${PREFIX}/lib/lighttpd
INSTALL_TARGET= install-strip
.if !defined(_BUILDING_LIGHTTPD_MODULE)
TEST_TARGET= check
PORTDOCS= AUTHORS COPYING INSTALL NEWS README
USE_RC_SUBR= lighttpd
REQUIRE= LOGIN
OPTIONS_DEFINE= ATTR DBI DOCS IPV6 KRB5 LUA MAXMINDDB NETTLE LDAP SPAWNFCGI \
VALGRIND WEBDAV ZSTD
OPTIONS_GROUP= SSL
OPTIONS_GROUP_SSL= OPENSSL GNUTLS MBEDTLS NSS WOLFSSL
OPTIONS_DEFAULT= NETTLE LUA OPENSSL
OPTIONS_SUB= yes
ATTR_DESC= extended attributes support
DBI_DESC= DBI authentication (mod_authn_dbi)
KRB5_DESC= Kerberos authentication (mod_authn_gssapi)
LDAP_DESC= LDAP authentication (mod_authn_ldap)
LUA_DESC= lua support (mod_magnet)
MAXMINDDB_DESC= IP-based geolocation lookup (mod_maxminddb)
NETTLE_DESC= Crypto support from Nettle
SPAWNFCGI_DESC= Depend on spawn-fcgi utility
VALGRIND_DESC= valgrind support
WEBDAV_DESC= WebDAV support
ZSTD_DESC= mod_deflate support for zstd (Zstandard)
ATTR_CONFIGURE_WITH= attr
DBI_CONFIGURE_WITH= dbi=${LOCALBASE}
DBI_LIB_DEPENDS= libdbi.so:databases/libdbi
GNUTLS_CONFIGURE_WITH= gnutls=${LOCALBASE}
GNUTLS_LIBS= -lgnutls
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
IPV6_CONFIGURE_OFF= --disable-ipv6
KRB5_CONFIGURE_WITH= krb5
KRB5_CPPFLAGS= ${GSSAPICPPFLAGS}
KRB5_LDFLAGS= ${GSSAPILDFLAGS}
KRB5_LIBS= ${GSSAPILIBS}
KRB5_USES= gssapi:mit
LDAP_CONFIGURE_WITH= ldap
LDAP_USE= openldap=yes
LDAP_VARS= REQUIRE+=slapd
LUA_USES= lua
LUA_CONFIGURE_WITH= lua
LUA_CONFIGURE_ENV= LUA_CFLAGS="-I${LUA_INCDIR}" LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}"
MAXMINDDB_CONFIGURE_WITH= maxminddb=${LOCALBASE}
MAXMINDDB_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb
MBEDTLS_CONFIGURE_WITH= mbedtls=${LOCALBASE}
MBEDTLS_LIB_DEPENDS= libmbedtls.so:security/mbedtls
NETTLE_CONFIGURE_WITH= nettle=${LOCALBASE}
NETTLE_LIB_DEPENDS= libnettle.so:security/nettle
NSS_CONFIGURE_WITH= nss=${LOCALBASE}
NSS_CPPFLAGS= -I${LOCALBASE}/include/nspr
NSS_LIB_DEPENDS= libnss3.so:security/nss
OPENSSL_USES= ssl
OPENSSL_CONFIGURE_WITH= openssl
OPENSSL_CONFIGURE_ON= --with-openssl-includes=${OPENSSLINC} --with-openssl-libs=${OPENSSLLIB}
SPAWNFCGI_RUN_DEPENDS= spawn-fcgi:www/spawn-fcgi
VALGRIND_BUILD_DEPENDS= valgrind:devel/valgrind
VALGRIND_RUN_DEPENDS= valgrind:devel/valgrind
VALGRIND_CONFIGURE_WITH=valgrind
WEBDAV_USES= gnome
WEBDAV_USE= GNOME=libxml2
WEBDAV_LIB_DEPENDS= libuuid.so:misc/e2fsprogs-libuuid \
libsqlite3.so:databases/sqlite3
WEBDAV_CONFIGURE_WITH= webdav-props webdav-locks
WOLFSSL_CONFIGURE_WITH= wolfssl=${LOCALBASE}
WOLFSSL_LIB_DEPENDS= libwolfssl.so:security/wolfssl
ZSTD_CONFIGURE_WITH= zstd
ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd
LIGHTTPD_CONF_FILES= lighttpd.conf modules.conf
LIGHTTPD_CONF_D_FILES= access_log.conf \
auth.conf \
cgi.conf \
debug.conf \
dirlisting.conf \
evhost.conf \
expire.conf \
fastcgi.conf \
magnet.conf \
mime.conf \
proxy.conf \
rrdtool.conf \
scgi.conf \
secdownload.conf \
simple_vhost.conf \
ssi.conf \
status.conf \
userdir.conf \
webdav.conf
USERS= ${WWWOWN}
GROUPS= ${WWWGRP}
CACHEDIR= /var/cache/${PORTNAME}
LOGDIR= /var/log/${PORTNAME}
HOMEDIR= /var/run/${PORTNAME}
RUNDIR= /var/run
PLIST_SUB+= WWWOWN="${WWWOWN}" WWWGRP="${WWWGRP}"
PLIST_SUB+= CACHEDIR="${CACHEDIR}" HOMEDIR="${HOMEDIR}" LOGDIR="${LOGDIR}"
.endif # !defined(_BUILDING_LIGHTTPD_MODULE)
.include <bsd.port.options.mk>
.if !defined(_BUILDING_LIGHTTPD_MODULE)
SUB_LIST= REQUIRE="${REQUIRE}"
post-patch:
@${REINPLACE_CMD} -E -e \
's|^(server.document-root.*=).*|\1 "${PREFIX}/www" + "/data"|' \
-e "s|/etc/lighttpd|${ETCDIR}|g" \
-e 's|^(server.event-handler.*=).*|\1 "freebsd-kqueue"|' \
-e 's|^(server.network-backend.*=).*|\1 "writev"|' \
-e "s|^(server.username.*=).*|\1 \"${WWWOWN}\"|" \
-e "s|^(server.groupname.*=).*|\1 \"${WWWGRP}\"|" \
-e "s|^(var.log_root.*=).*|\1 \"${LOGDIR}\"|" \
-e "s|^(var.server_root.*=).*|\1 \"${WWWDIR}\"|" \
-e "s|^(var.home_dir.*=).*|\1 \"${HOMEDIR}\"|" \
-e "s|^(var.state_dir.*=).*|\1 \"${RUNDIR}\"|" \
-e "s|^(var.cache_dir.*=).*|\1 \"${CACHEDIR}\"|" \
${WRKSRC}/doc/config/lighttpd.conf
@${REINPLACE_CMD} -e "s|/etc/lighttpd|${ETCDIR}|g" \
${WRKSRC}/doc/config/conf.d/auth.conf
@${REINPLACE_CMD} -e "s|/usr/bin/python|${LOCALBASE}/bin/python|" \
${WRKSRC}/doc/config/conf.d/cgi.conf \
${WRKSRC}/tests/*.conf
@${ECHO} >> ${WRKSRC}/doc/config/lighttpd.conf
@${ECHO} "# IPv4 listening socket" >> \
${WRKSRC}/doc/config/lighttpd.conf
@${ECHO} "\$$SERVER[\"socket\"] == \"0.0.0.0:80\" { }" >> \
${WRKSRC}/doc/config/lighttpd.conf
post-install:
@${MKDIR} ${STAGEDIR}${ETCDIR}/conf.d ${STAGEDIR}${ETCDIR}/vhosts.d
.for FILE in ${LIGHTTPD_CONF_FILES}
${INSTALL_DATA} ${WRKSRC}/doc/config/${FILE} \
${STAGEDIR}${ETCDIR}/${FILE}.sample
.endfor
.for FILE in ${LIGHTTPD_CONF_D_FILES}
${INSTALL_DATA} ${WRKSRC}/doc/config/conf.d/${FILE} \
${STAGEDIR}${ETCDIR}/conf.d/${FILE}.sample
.endfor
${INSTALL_DATA} ${WRKSRC}/doc/config/vhosts.d/vhosts.template \
${STAGEDIR}${ETCDIR}/vhosts.d/vhosts.template
@${MKDIR} ${STAGEDIR}${WWWDIR}
@${MKDIR} -m 0700 ${STAGEDIR}${CACHEDIR}
@${MKDIR} -m 0700 ${STAGEDIR}${HOMEDIR}/sockets
@${MKDIR} -m 0700 ${STAGEDIR}${LOGDIR}
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR})
.endif # !defined(_BUILDING_LIGHTTPD_MODULE)
.include <bsd.port.mk>
|