2 # Copyright (C) 2006-2018 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
13 # release candidate ~rcX testing; remove for release
14 #PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
16 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.xz
17 PKG_SOURCE_URL
:=https
://download.lighttpd.net
/lighttpd
/releases-1.4.x
18 PKG_HASH
:=8b721ca939d312afaa6ef31dcbd6afb5161ed385ac828e6fccd4c5b76be189d6
20 PKG_MAINTAINER
:=Glenn Strauss
<gstrauss@gluelogic.com
>
21 PKG_LICENSE
:=BSD-3-Clause
22 PKG_LICENSE_FILES
:=COPYING
23 PKG_CPE_ID
:=cpe
:/a
:lighttpd
:lighttpd
26 # list config packages affecting MESON_ARGS
47 PKG_CONFIG_DEPENDS
:= \
48 $(patsubst %,CONFIG_PACKAGE_lighttpd-mod-
%,$(REBUILD_MODULES
)) \
49 CONFIG_LIGHTTPD_PCRE2 \
50 CONFIG_LIGHTTPD_CRYPTOLIB_NONE \
51 CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE \
52 CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS \
53 CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL
56 LIGHTTPD_PCRE2
:pcre2 \
57 LIGHTTPD_CRYPTOLIB_NETTLE
:nettle \
58 LIGHTTPD_CRYPTOLIB_MBEDTLS
:mbedtls \
59 LIGHTTPD_CRYPTOLIB_WOLFSSL
:wolfssl
61 include $(INCLUDE_DIR
)/package.mk
62 include $(INCLUDE_DIR
)/meson.mk
64 # choose crypto lib for lighttpd to use for crypto algorithms (default: nettle)
65 # (separate from lighttpd TLS modules, which are each standalone)
67 +LIGHTTPD_CRYPTOLIB_NETTLE
:libnettle \
68 +LIGHTTPD_CRYPTOLIB_MBEDTLS
:libmbedtls \
69 +LIGHTTPD_CRYPTOLIB_WOLFSSL
:libwolfssl
70 ifdef CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS
71 TARGET_CPPFLAGS
+= -DFORCE_MBEDTLS_CRYPTO
72 else ifdef CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL
73 # (Note: if CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL is set,
74 # then lighttpd-mod-mbedtls should not be selected to also be built)
75 TARGET_CPPFLAGS
+= -DFORCE_WOLFSSL_CRYPTO
78 define Package
/lighttpd
/Default
81 SUBMENU
:=Web Servers
/Proxies
82 URL
:=https
://www.lighttpd.net
/
85 define Package
/lighttpd
86 $(call Package
/lighttpd
/Default
)
88 DEPENDS
:=+libpthread
+LIGHTTPD_LOGROTATE
:logrotate \
89 +LIGHTTPD_PCRE2
:libpcre2 \
91 TITLE
:=A flexible and lightweight web server
94 define Package
/lighttpd
/config
96 bool
"SSL support (recommended)"
97 depends on PACKAGE_lighttpd
100 Implements SSL support in lighttpd
(using libopenssl
). This
101 option is enabled by default for backwards compatibility.
102 Select one TLS module below if you enable the SSL engine in
103 your lighttpd configuration file.
104 (mod_gnutls
, mod_mbedtls
, mod_nss
, mod_openssl
, mod_wolfssl
)
106 config LIGHTTPD_SSL_DEPENDS
108 depends on LIGHTTPD_SSL
109 default PACKAGE_lighttpd-mod-mbedtls || PACKAGE_lighttpd-mod-wolfssl || PACKAGE_lighttpd-mod-gnutls || PACKAGE_lighttpd-mod-nss
111 config LIGHTTPD_SSL_SELECT
113 depends on LIGHTTPD_SSL
114 default m if
!LIGHTTPD_SSL_DEPENDS
115 select PACKAGE_lighttpd-mod-openssl
117 config LIGHTTPD_PCRE2
118 bool
"PCRE2 support (recommended)"
119 depends on PACKAGE_lighttpd
122 PCRE2 regular expressions for lighttpd.conf conditions
126 prompt
"crypto library"
127 default LIGHTTPD_CRYPTOLIB_NETTLE
129 library to use for cryptographic algorithms
131 config LIGHTTPD_CRYPTOLIB_NONE
134 config LIGHTTPD_CRYPTOLIB_NETTLE
137 config LIGHTTPD_CRYPTOLIB_MBEDTLS
140 config LIGHTTPD_CRYPTOLIB_WOLFSSL
145 config LIGHTTPD_LOGROTATE
146 bool
"Logrotate support"
147 depends on PACKAGE_lighttpd
150 It adds support for logrotate functionality.
154 -Dwith_brotli
=disabled \
155 -Dwith_bzip
=disabled \
156 -Dwith_dbi
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_dbi
)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_dbi
),enabled
,disabled
) \
157 -Dwith_fam
=disabled \
158 -Dwith_gnutls
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-gnutls
),true
,false
) \
159 -Dwith_krb5
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_gssapi
),enabled
,disabled
) \
160 -Dwith_ldap
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_ldap
)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_ldap
),enabled
,disabled
) \
161 -Dwith_libunwind
=disabled \
162 -Dwith_lua
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-magnet
),true
,false
) \
164 -Dwith_maxminddb
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-maxminddb
),enabled
,disabled
) \
165 -Dwith_mbedtls
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-mbedtls
),true
,false
) \
166 -Dwith_mysql
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_mysql
),enabled
,disabled
) \
167 -Dwith_nettle
=$(if
$(CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE
),true
,false
) \
168 -Dwith_nss
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-nss
),true
,false
) \
169 -Dwith_openssl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-openssl
),true
,false
) \
170 -Dwith_pam
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_pam
),enabled
,disabled
) \
171 -Dwith_pcre2
=$(if
$(CONFIG_LIGHTTPD_PCRE2
),true
,false
) \
172 -Dwith_pgsql
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_pgsql
),enabled
,disabled
) \
173 -Dwith_sasl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_sasl
),enabled
,disabled
) \
174 -Dwith_webdav_locks
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-webdav
),enabled
,disabled
) \
175 -Dwith_webdav_props
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-webdav
),enabled
,disabled
) \
176 -Dwith_wolfssl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-wolfssl
),true
,false
) \
178 -Dwith_zlib
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-deflate
),enabled
,disabled
) \
181 BASE_MODULES
:=dirlisting h2
183 define Package
/lighttpd
/conffiles
184 /etc
/lighttpd
/lighttpd.conf
187 define Package
/lighttpd
/install
188 $(INSTALL_DIR
) $(1)/etc
/lighttpd
189 $(INSTALL_DATA
) .
/files
/lighttpd.conf
$(1)/etc
/lighttpd
/
190 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/doc
/config
/conf.d
/mime.conf
$(1)/etc
/lighttpd
/
191 $(INSTALL_DIR
) $(1)/etc
/lighttpd
/conf.d
192 $(INSTALL_DIR
) $(1)/etc
/init.d
193 $(INSTALL_BIN
) .
/files
/lighttpd.init
$(1)/etc
/init.d
/lighttpd
194 $(INSTALL_DIR
) $(1)/usr
/lib
/lighttpd
195 for m in
$(BASE_MODULES
); do \
196 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lighttpd
/mod_
$$$${m}.so
$(1)/usr
/lib
/lighttpd
/ ; \
198 $(INSTALL_DIR
) $(1)/usr
/sbin
199 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/lighttpd
$(1)/usr
/sbin
/
201 ifneq ($(strip $(CONFIG_LIGHTTPD_LOGROTATE
)),)
202 $(INSTALL_DIR
) $(1)/etc
/logrotate.d
203 $(CP
) .
/files
/lighttpd.logrotate
$(1)/etc
/logrotate.d
/lighttpd.conf
208 define Package
/lighttpd-mod-
$(1)
209 $(call Package
/lighttpd
/Default
)
217 define Package
/lighttpd-mod-
$(1)/conffiles
218 /etc
/lighttpd
/conf.d
/$(4)-$(1).conf
221 ifneq ($(SDK
)$(CONFIG_PACKAGE_lighttpd-mod-
$(1)),)
222 define Package
/lighttpd-mod-
$(1)/install
223 $(INSTALL_DIR
) $$(1)/usr
/lib
/lighttpd
224 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lighttpd
/mod_
$(1).so
$$(1)/usr
/lib
/lighttpd
225 $(INSTALL_DIR
) $$(1)/etc
/lighttpd
/conf.d
226 if
[ -f
$(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
]; then \
227 $(CP
) $(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
$$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
228 if
! grep
-qF
'mod_$(1)' $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; then \
229 sed
-i
"`sed '/^##/ !q' $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf | wc -l` i\
230 server.modules += ( \"mod_$(1)\" )" $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
233 echo
'server.modules += ( "mod_$(1)" )' > $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
238 $$(eval
$$(call BuildPackage
,lighttpd-mod-
$(1)))
241 $(eval
$(call BuildPackage
,lighttpd
))
243 $(eval
$(call BuildPlugin
,auth
,Authentication
,$(cryptolibdep
),20))
244 $(eval
$(call BuildPlugin
,authn_dbi
,DBI-based authentication
,lighttpd-mod-auth libdbi
$(cryptolibdep
),20))
245 $(eval
$(call BuildPlugin
,authn_file
,File-based authentication
,lighttpd-mod-auth
$(cryptolibdep
),20))
246 $(eval
$(call BuildPlugin
,authn_gssapi
,Kerberos-based authentication
,lighttpd-mod-auth krb5-libs
$(cryptolibdep
),20))
247 $(eval
$(call BuildPlugin
,authn_ldap
,LDAP-based authentication
,lighttpd-mod-auth libopenldap
,20))
248 $(eval
$(call BuildPlugin
,authn_pam
,PAM-based authentication
,lighttpd-mod-auth libpam
,20))
249 $(eval
$(call BuildPlugin
,authn_sasl
,SASL-based authentication
,lighttpd-mod-auth libsasl2
,20))
251 $(eval
$(call BuildPlugin
,accesslog
,Access logging
,,30))
252 $(eval
$(call BuildPlugin
,ajp13
,AJP13 Tomcat connector
,,30))
253 $(eval
$(call BuildPlugin
,cgi
,CGI
,,30))
254 $(eval
$(call BuildPlugin
,deflate
,Compress dynamic output
,+PACKAGE_lighttpd-mod-deflate
:zlib
,30))
255 $(eval
$(call BuildPlugin
,extforward
,Extract client
,,30))
256 $(eval
$(call BuildPlugin
,gnutls
,TLS using gnutls
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-gnutls
:libgnutls
,30))
257 $(eval
$(call BuildPlugin
,magnet
,Magnet
,+PACKAGE_lighttpd-mod-magnet
:liblua
,30))
258 $(eval
$(call BuildPlugin
,maxminddb
,MaxMind DB
,+PACKAGE_lighttpd-mod-maxminddb
:libmaxminddb
,30))
259 $(eval
$(call BuildPlugin
,mbedtls
,TLS using mbedtls
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-mbedtls
:libmbedtls
,30))
260 $(eval
$(call BuildPlugin
,nss
,TLS using nss
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-nss
:libnss
,30))
261 $(eval
$(call BuildPlugin
,openssl
,TLS using openssl
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-openssl
:libopenssl
,30))
262 $(eval
$(call BuildPlugin
,proxy
,Proxy
,,30))
263 $(eval
$(call BuildPlugin
,rrdtool
,RRDtool
,rrdtool1
,30))
264 $(eval
$(call BuildPlugin
,sockproxy
,sockproxy
,,30))
265 $(eval
$(call BuildPlugin
,ssi
,SSI
,,30))
266 $(eval
$(call BuildPlugin
,status
,Server status display
,,30))
267 $(eval
$(call BuildPlugin
,userdir
,User directory
,,30))
268 $(eval
$(call BuildPlugin
,vhostdb
,Virtual Host Database
,,30))
269 $(eval
$(call BuildPlugin
,vhostdb_dbi
,Virtual Host Database
(DBI
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_dbi
:libdbi
,30))
270 $(eval
$(call BuildPlugin
,vhostdb_ldap
,Virtual Host Database
(LDAP
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_ldap
:libopenldap
,30))
271 $(eval
$(call BuildPlugin
,vhostdb_mysql
,Virtual Host Database
(MariaDB
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_mysql
:libmariadb
,30))
272 $(eval
$(call BuildPlugin
,vhostdb_pgsql
,Virtual Host Database
(PostgreSQL
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_pgsql
:libpq
,30))
273 $(eval
$(call BuildPlugin
,webdav
,WebDAV
,+PACKAGE_lighttpd-mod-webdav
:libsqlite3
+PACKAGE_lighttpd-mod-webdav
:libxml2
,30))
274 $(eval
$(call BuildPlugin
,webdav_min
,WebDAV
,,30))
275 $(eval
$(call BuildPlugin
,wolfssl
,TLS using wolfssl
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-wolfssl
:libwolfssl
,30))
276 $(eval
$(call BuildPlugin
,wstunnel
,Websocket tunneling
,$(cryptolibdep
),30))
278 # (similar to BuildPlugin, but without associated .so)
280 define Package
/lighttpd-mod-
$(1)
281 $(call Package
/lighttpd
/Default
)
289 define Package
/lighttpd-mod-
$(1)/conffiles
290 /etc
/lighttpd
/conf.d
/$(4)-$(1).conf
293 ifneq ($(SDK
)$(CONFIG_PACKAGE_lighttpd-mod-
$(1)),)
294 define Package
/lighttpd-mod-
$(1)/install
295 $(INSTALL_DIR
) $$(1)/etc
/lighttpd
/conf.d
296 if
[ -f
$(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
]; then \
297 $(CP
) $(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
$$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
298 if
! grep
-qF
'mod_$(1)' $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; then \
299 sed
-i
"`sed '/^##/ !q' $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf | wc -l` i\
300 server.modules += ( \"mod_$(1)\" )" $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
303 echo
'server.modules += ( "mod_$(1)" )' > $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
308 $$(eval
$$(call BuildPackage
,lighttpd-mod-
$(1)))
311 # included in BASE_MODULES:=dirlisting h2
312 #$(eval $(call BuildPlugin,dirlisting,dirlisting,,30))
313 #$(eval $(call BuildPlugin,h2,HTTP/2,,30))
315 # included in base lighttpd executable;
316 # no longer loaded as separate dynamic modules
317 # no longer in BASE_MODULES
318 #$(eval $(call BuiltinPlugin,indexfile,indexfile,,30))
319 #$(eval $(call BuiltinPlugin,staticfile,staticfile,,30))
321 # included in base lighttpd executable;
322 # no longer loaded as separate dynamic modules
323 # though still need to be enabled in config
324 $(eval
$(call BuiltinPlugin
,access
,Access restrictions
,,30))
325 $(eval
$(call BuiltinPlugin
,alias
,Directory alias
,,30))
326 $(eval
$(call BuiltinPlugin
,evhost
,Enhanced Virtual-Hosting
,,30))
327 $(eval
$(call BuiltinPlugin
,expire
,Expire
,,30))
328 $(eval
$(call BuiltinPlugin
,fastcgi
,FastCGI
,,30))
329 $(eval
$(call BuiltinPlugin
,redirect
,URL redirection
,+LIGHTTPD_PCRE2
:libpcre2
,10))
330 $(eval
$(call BuiltinPlugin
,rewrite
,URL rewriting
,+LIGHTTPD_PCRE2
:libpcre2
,30))
331 $(eval
$(call BuiltinPlugin
,scgi
,SCGI
,,30))
332 $(eval
$(call BuiltinPlugin
,setenv
,Environment variable setting
,,30))
333 $(eval
$(call BuiltinPlugin
,simple_vhost
,Simple virtual hosting
,,30))