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
:=16ac8db95e719629ba61949b99f8a26feba946a81d185215b28379bb4116b0b4
20 PKG_MAINTAINER
:=W. Michael Petullo
<mike@flyn.org
>
21 PKG_LICENSE
:=BSD-3-Clause
22 PKG_LICENSE_FILES
:=COPYING
23 PKG_CPE_ID
:=cpe
:/a
:lighttpd
:lighttpd
25 # list config packages affecting MESON_ARGS
46 PKG_CONFIG_DEPENDS
:= \
47 $(patsubst %,CONFIG_PACKAGE_lighttpd-mod-
%,$(REBUILD_MODULES
)) \
48 CONFIG_LIGHTTPD_PCRE2 \
49 CONFIG_LIGHTTPD_CRYPTOLIB_NONE \
50 CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE \
51 CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS \
52 CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL
55 LIGHTTPD_PCRE2
:pcre2 \
56 LIGHTTPD_CRYPTOLIB_NETTLE
:nettle \
57 LIGHTTPD_CRYPTOLIB_MBEDTLS
:mbedtls \
58 LIGHTTPD_CRYPTOLIB_WOLFSSL
:wolfssl
60 include $(INCLUDE_DIR
)/package.mk
61 include $(INCLUDE_DIR
)/meson.mk
63 # choose crypto lib for lighttpd to use for crypto algorithms (default: nettle)
64 # (separate from lighttpd TLS modules, which are each standalone)
66 +LIGHTTPD_CRYPTOLIB_NETTLE
:libnettle \
67 +LIGHTTPD_CRYPTOLIB_MBEDTLS
:libmbedtls \
68 +LIGHTTPD_CRYPTOLIB_WOLFSSL
:libwolfssl
69 ifdef CONFIG_LIGHTTPD_CRYPTOLIB_MBEDTLS
70 TARGET_CPPFLAGS
+= -DFORCE_MBEDTLS_CRYPTO
71 else ifdef CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL
72 # (Note: if CONFIG_LIGHTTPD_CRYPTOLIB_WOLFSSL is set,
73 # then lighttpd-mod-mbedtls should not be selected to also be built)
74 TARGET_CPPFLAGS
+= -DFORCE_WOLFSSL_CRYPTO
77 define Package
/lighttpd
/Default
80 SUBMENU
:=Web Servers
/Proxies
81 URL
:=https
://www.lighttpd.net
/
84 define Package
/lighttpd
85 $(call Package
/lighttpd
/Default
)
87 DEPENDS
:=+libpthread
+LIGHTTPD_LOGROTATE
:logrotate \
88 +LIGHTTPD_PCRE2
:libpcre2 \
90 TITLE
:=A flexible and lightweight web server
93 define Package
/lighttpd
/config
95 bool
"SSL support (recommended)"
96 depends on PACKAGE_lighttpd
99 Implements SSL support in lighttpd
(using libopenssl
). This
100 option is enabled by default for backwards compatibility.
101 Select one TLS module below if you enable the SSL engine in
102 your lighttpd configuration file.
103 (mod_gnutls
, mod_mbedtls
, mod_nss
, mod_openssl
, mod_wolfssl
)
105 config LIGHTTPD_SSL_DEPENDS
107 depends on LIGHTTPD_SSL
108 default PACKAGE_lighttpd-mod-mbedtls || PACKAGE_lighttpd-mod-wolfssl || PACKAGE_lighttpd-mod-gnutls || PACKAGE_lighttpd-mod-nss
110 config LIGHTTPD_SSL_SELECT
112 depends on LIGHTTPD_SSL
113 default m if
!LIGHTTPD_SSL_DEPENDS
114 select PACKAGE_lighttpd-mod-openssl
116 config LIGHTTPD_PCRE2
117 bool
"PCRE2 support (recommended)"
118 depends on PACKAGE_lighttpd
121 PCRE2 regular expressions for lighttpd.conf conditions
125 prompt
"crypto library"
126 default LIGHTTPD_CRYPTOLIB_NETTLE
128 library to use for cryptographic algorithms
130 config LIGHTTPD_CRYPTOLIB_NONE
133 config LIGHTTPD_CRYPTOLIB_NETTLE
136 config LIGHTTPD_CRYPTOLIB_MBEDTLS
139 config LIGHTTPD_CRYPTOLIB_WOLFSSL
144 config LIGHTTPD_LOGROTATE
145 bool
"Logrotate support"
146 depends on PACKAGE_lighttpd
149 It adds support for logrotate functionality.
153 -Dwith_brotli
=disabled \
154 -Dwith_bzip
=disabled \
155 -Dwith_dbi
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_dbi
)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_dbi
),enabled
,disabled
) \
156 -Dwith_fam
=disabled \
157 -Dwith_gnutls
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-gnutls
),true
,false
) \
158 -Dwith_krb5
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_gssapi
),enabled
,disabled
) \
159 -Dwith_ldap
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_ldap
)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_ldap
),enabled
,disabled
) \
160 -Dwith_libunwind
=disabled \
161 -Dwith_lua
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-magnet
),true
,false
) \
163 -Dwith_maxminddb
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-maxminddb
),enabled
,disabled
) \
164 -Dwith_mbedtls
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-mbedtls
),true
,false
) \
165 -Dwith_mysql
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_mysql
),enabled
,disabled
) \
166 -Dwith_nettle
=$(if
$(CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE
),true
,false
) \
167 -Dwith_nss
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-nss
),true
,false
) \
168 -Dwith_openssl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-openssl
),true
,false
) \
169 -Dwith_pam
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_pam
),enabled
,disabled
) \
170 -Dwith_pcre2
=$(if
$(CONFIG_LIGHTTPD_PCRE2
),true
,false
) \
171 -Dwith_pgsql
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_pgsql
),enabled
,disabled
) \
172 -Dwith_sasl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-authn_sasl
),enabled
,disabled
) \
173 -Dwith_webdav_locks
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-webdav
),enabled
,disabled
) \
174 -Dwith_webdav_props
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-webdav
),enabled
,disabled
) \
175 -Dwith_wolfssl
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-wolfssl
),true
,false
) \
177 -Dwith_zlib
=$(if
$(CONFIG_PACKAGE_lighttpd-mod-deflate
),enabled
,disabled
) \
180 BASE_MODULES
:=dirlisting indexfile staticfile
182 define Package
/lighttpd
/conffiles
183 /etc
/lighttpd
/lighttpd.conf
186 define Package
/lighttpd
/install
187 $(INSTALL_DIR
) $(1)/etc
/lighttpd
188 $(INSTALL_DATA
) .
/files
/lighttpd.conf
$(1)/etc
/lighttpd
/
189 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/doc
/config
/conf.d
/mime.conf
$(1)/etc
/lighttpd
/
190 $(INSTALL_DIR
) $(1)/etc
/lighttpd
/conf.d
191 $(INSTALL_DIR
) $(1)/etc
/init.d
192 $(INSTALL_BIN
) .
/files
/lighttpd.init
$(1)/etc
/init.d
/lighttpd
193 $(INSTALL_DIR
) $(1)/usr
/lib
/lighttpd
194 for m in
$(BASE_MODULES
); do \
195 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lighttpd
/mod_
$$$${m}.so
$(1)/usr
/lib
/lighttpd
/ ; \
197 $(INSTALL_DIR
) $(1)/usr
/sbin
198 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/lighttpd
$(1)/usr
/sbin
/
200 ifneq ($(strip $(CONFIG_LIGHTTPD_LOGROTATE
)),)
201 $(INSTALL_DIR
) $(1)/etc
/logrotate.d
202 $(CP
) .
/files
/lighttpd.logrotate
$(1)/etc
/logrotate.d
/lighttpd.conf
207 define Package
/lighttpd-mod-
$(1)
208 $(call Package
/lighttpd
/Default
)
216 define Package
/lighttpd-mod-
$(1)/conffiles
217 /etc
/lighttpd
/conf.d
/$(4)-$(1).conf
220 ifneq ($(SDK
)$(CONFIG_PACKAGE_lighttpd-mod-
$(1)),)
221 define Package
/lighttpd-mod-
$(1)/install
222 $(INSTALL_DIR
) $$(1)/usr
/lib
/lighttpd
223 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lighttpd
/mod_
$(1).so
$$(1)/usr
/lib
/lighttpd
224 $(INSTALL_DIR
) $$(1)/etc
/lighttpd
/conf.d
225 if
[ -f
$(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
]; then \
226 $(CP
) $(PKG_BUILD_DIR
)/doc
/config
/conf.d
/$(1).conf
$$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
227 if
! grep
-qF
'mod_$(1)' $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; then \
228 sed
-i
"`sed '/^##/ !q' $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf | wc -l` i\
229 server.modules += ( \"mod_$(1)\" )" $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
232 echo
'server.modules += ( "mod_$(1)" )' > $$(1)/etc
/lighttpd
/conf.d
/$(4)-$(1).conf
; \
237 $$(eval
$$(call BuildPackage
,lighttpd-mod-
$(1)))
240 $(eval
$(call BuildPackage
,lighttpd
))
242 $(eval
$(call BuildPlugin
,auth
,Authentication
,$(cryptolibdep
),20))
243 $(eval
$(call BuildPlugin
,authn_dbi
,DBI-based authentication
,lighttpd-mod-auth libdbi
$(cryptolibdep
),20))
244 $(eval
$(call BuildPlugin
,authn_file
,File-based authentication
,lighttpd-mod-auth
$(cryptolibdep
),20))
245 $(eval
$(call BuildPlugin
,authn_gssapi
,Kerberos-based authentication
,lighttpd-mod-auth krb5-libs
$(cryptolibdep
),20))
246 $(eval
$(call BuildPlugin
,authn_ldap
,LDAP-based authentication
,lighttpd-mod-auth libopenldap
,20))
247 $(eval
$(call BuildPlugin
,authn_pam
,PAM-based authentication
,lighttpd-mod-auth libpam
,20))
248 $(eval
$(call BuildPlugin
,authn_sasl
,SASL-based authentication
,lighttpd-mod-auth libsasl2
,20))
250 $(eval
$(call BuildPlugin
,accesslog
,Access logging
,,30))
251 $(eval
$(call BuildPlugin
,ajp13
,AJP13 Tomcat connector
,,30))
252 $(eval
$(call BuildPlugin
,cgi
,CGI
,,30))
253 $(eval
$(call BuildPlugin
,deflate
,Compress dynamic output
,+PACKAGE_lighttpd-mod-deflate
:zlib
,30))
254 $(eval
$(call BuildPlugin
,extforward
,Extract client
,,30))
255 $(eval
$(call BuildPlugin
,gnutls
,TLS using gnutls
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-gnutls
:libgnutls
,30))
256 $(eval
$(call BuildPlugin
,magnet
,Magnet
,+PACKAGE_lighttpd-mod-magnet
:liblua
,30))
257 $(eval
$(call BuildPlugin
,maxminddb
,MaxMind DB
,+PACKAGE_lighttpd-mod-maxminddb
:libmaxminddb
,30))
258 $(eval
$(call BuildPlugin
,mbedtls
,TLS using mbedtls
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-mbedtls
:libmbedtls
,30))
259 $(eval
$(call BuildPlugin
,nss
,TLS using nss
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-nss
:libnss
,30))
260 $(eval
$(call BuildPlugin
,openssl
,TLS using openssl
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-openssl
:libopenssl
,30))
261 $(eval
$(call BuildPlugin
,proxy
,Proxy
,,30))
262 $(eval
$(call BuildPlugin
,rrdtool
,RRDtool
,rrdtool1
,30))
263 $(eval
$(call BuildPlugin
,sockproxy
,sockproxy
,,30))
264 $(eval
$(call BuildPlugin
,ssi
,SSI
,,30))
265 $(eval
$(call BuildPlugin
,status
,Server status display
,,30))
266 $(eval
$(call BuildPlugin
,userdir
,User directory
,,30))
267 $(eval
$(call BuildPlugin
,vhostdb
,Virtual Host Database
,,30))
268 $(eval
$(call BuildPlugin
,vhostdb_dbi
,Virtual Host Database
(DBI
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_dbi
:libdbi
,30))
269 $(eval
$(call BuildPlugin
,vhostdb_ldap
,Virtual Host Database
(LDAP
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_ldap
:libopenldap
,30))
270 $(eval
$(call BuildPlugin
,vhostdb_mysql
,Virtual Host Database
(MariaDB
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_mysql
:libmariadb
,30))
271 $(eval
$(call BuildPlugin
,vhostdb_pgsql
,Virtual Host Database
(PostgreSQL
),lighttpd-mod-vhostdb
+PACKAGE_lighttpd-mod-vhostdb_pgsql
:libpq
,30))
272 $(eval
$(call BuildPlugin
,webdav
,WebDAV
,+PACKAGE_lighttpd-mod-webdav
:libsqlite3
+PACKAGE_lighttpd-mod-webdav
:libuuid
+PACKAGE_lighttpd-mod-webdav
:libxml2
,30))
273 $(eval
$(call BuildPlugin
,webdav_min
,WebDAV
,,30))
274 $(eval
$(call BuildPlugin
,wolfssl
,TLS using wolfssl
,@LIGHTTPD_SSL
+PACKAGE_lighttpd-mod-wolfssl
:libwolfssl
,30))
275 $(eval
$(call BuildPlugin
,wstunnel
,Websocket tunneling
,$(cryptolibdep
),30))
277 # included in BASE_MODULES:=dirlisting indexfile staticfile
278 #$(eval $(call BuildPlugin,dirlisting,dirlisting,,30))
280 # included in base lighttpd executable;
281 # no longer loaded as separate dynamic modules
282 #$(eval $(call BuildPlugin,indexfile,indexfile,,30))
283 #$(eval $(call BuildPlugin,staticfile,staticfile,,30))
284 $(eval
$(call BuildPlugin
,access
,Access restrictions
,,30))
285 $(eval
$(call BuildPlugin
,alias
,Directory alias
,,30))
286 $(eval
$(call BuildPlugin
,evhost
,Enhanced Virtual-Hosting
,,30))
287 $(eval
$(call BuildPlugin
,expire
,Expire
,,30))
288 $(eval
$(call BuildPlugin
,fastcgi
,FastCGI
,,30))
289 $(eval
$(call BuildPlugin
,redirect
,URL redirection
,+LIGHTTPD_PCRE2
:libpcre2
,10))
290 $(eval
$(call BuildPlugin
,rewrite
,URL rewriting
,+LIGHTTPD_PCRE2
:libpcre2
,30))
291 $(eval
$(call BuildPlugin
,scgi
,SCGI
,,30))
292 $(eval
$(call BuildPlugin
,setenv
,Environment variable setting
,,30))
293 $(eval
$(call BuildPlugin
,simple_vhost
,Simple virtual hosting
,,30))