Merge pull request #14627 from gstrauss/lighttpd-1.4.59
[feed/packages.git] / net / lighttpd / Makefile
1 #
2 # Copyright (C) 2006-2018 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=lighttpd
11 PKG_VERSION:=1.4.59
12 PKG_RELEASE:=1
13 # release candidate ~rcX testing; remove for release
14 #PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-1.4.59
15
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:=fb953db273daef08edb6e202556cae8a3d07eed6081c96bd9903db957d1084d5
19
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
24
25 PKG_INSTALL:=1
26 PKG_BUILD_DEPENDS:=meson/host
27 PKG_CONFIG_DEPENDS:=CONFIG_LIGHTTPD_SSL $(patsubst %,CONFIG_PACKAGE_lighttpd-mod-%,$(REBUILD_MODULES))
28
29 REBUILD_MODULES=authn_gssapi authn_ldap authn_mysql cml magnet mysql_vhost trigger_b4_dl webdav
30
31 include $(INCLUDE_DIR)/package.mk
32 include ../../devel/meson/meson.mk
33
34 define Package/lighttpd/Default
35 SECTION:=net
36 CATEGORY:=Network
37 SUBMENU:=Web Servers/Proxies
38 URL:=https://www.lighttpd.net/
39 endef
40
41 define Package/lighttpd
42 $(call Package/lighttpd/Default)
43 MENU:=1
44 DEPENDS:=+libnettle +libpcre +libpthread +LIGHTTPD_LOGROTATE:logrotate
45 TITLE:=A flexible and lightweight web server
46 endef
47
48 define Package/lighttpd/config
49 config LIGHTTPD_SSL
50 bool "SSL support"
51 depends on PACKAGE_lighttpd
52 default y
53 help
54 Implements SSL support in lighttpd (using libopenssl). This
55 option is enabled by default for backwards compatibility.
56 Select one TLS module below if you enable the SSL engine in
57 your lighttpd configuration file.
58 (mod_gnutls, mod_mbedtls, mod_nss, mod_openssl, mod_wolfssl)
59
60 config LIGHTTPD_SSL_DEPENDS
61 bool
62 depends on LIGHTTPD_SSL
63 default PACKAGE_lighttpd-mod-mbedtls || PACKAGE_lighttpd-mod-wolfssl || PACKAGE_lighttpd-mod-gnutls || PACKAGE_lighttpd-mod-nss
64
65 config LIGHTTPD_SSL_SELECT
66 tristate
67 depends on LIGHTTPD_SSL
68 default m if !LIGHTTPD_SSL_DEPENDS
69 select PACKAGE_lighttpd-mod-openssl
70
71 config LIGHTTPD_LOGROTATE
72 bool "Logrotate support"
73 depends on PACKAGE_lighttpd
74 default n
75 help
76 It adds support for logrotate functionality.
77 endef
78
79 MESON_ARGS += \
80 -Dwith_brotli=false \
81 -Dwith_bzip=false \
82 -Dwith_dbi=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_dbi)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_dbi),true,false) \
83 -Dwith_fam=false \
84 -Dwith_gdbm=$(if $(CONFIG_PACKAGE_lighttpd-mod-trigger_b4_dl),true,false) \
85 -Dwith_geoip=false \
86 -Dwith_gnutls=$(if $(CONFIG_PACKAGE_lighttpd-mod-gnutls),true,false) \
87 -Dwith_krb5=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_gssapi),true,false) \
88 -Dwith_ldap=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_ldap)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_ldap),true,false) \
89 -Dwith_libev=false \
90 -Dwith_libunwind=false \
91 -Dwith_lua=$(if $(CONFIG_PACKAGE_lighttpd-mod-cml)$(CONFIG_PACKAGE_lighttpd-mod-magnet),true,false) \
92 -Dwith_maxminddb=$(if $(CONFIG_PACKAGE_lighttpd-mod-maxminddb),true,false) \
93 -Dwith_mbedtls=$(if $(CONFIG_PACKAGE_lighttpd-mod-mbedtls),true,false) \
94 -Dwith_memcached=false \
95 -Dwith_mysql=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_mysql)$(CONFIG_PACKAGE_lighttpd-mod-mysql_vhost)$(CONFIG_PACKAGE_lighttpd-mod-vhostdb_mysql),true,false) \
96 -Dwith_nettle=true \
97 -Dwith_nss=$(if $(CONFIG_PACKAGE_lighttpd-mod-nss),true,false) \
98 -Dwith_openssl=$(if $(CONFIG_PACKAGE_lighttpd-mod-openssl),true,false) \
99 -Dwith_pam=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_pam),true,false) \
100 -Dwith_pcre=true \
101 -Dwith_pgsql=$(if $(CONFIG_PACKAGE_lighttpd-mod-vhostdb_pgsql),true,false) \
102 -Dwith_sasl=$(if $(CONFIG_PACKAGE_lighttpd-mod-authn_sasl),true,false) \
103 -Dwith_webdav_locks=$(if $(CONFIG_PACKAGE_lighttpd-mod-webdav),true,false) \
104 -Dwith_webdav_props=$(if $(CONFIG_PACKAGE_lighttpd-mod-webdav),true,false) \
105 -Dwith_wolfssl=$(if $(CONFIG_PACKAGE_lighttpd-mod-wolfssl),true,false) \
106 -Dwith_xattr=false \
107 -Dwith_zlib=$(if $(CONFIG_PACKAGE_lighttpd-mod-deflate),true,false) \
108 -Dwith_zstd=false
109
110 BASE_MODULES:=dirlisting indexfile staticfile
111
112 define Package/lighttpd/conffiles
113 /etc/lighttpd/lighttpd.conf
114 endef
115
116 define Package/lighttpd/install
117 $(INSTALL_DIR) $(1)/etc/lighttpd
118 $(INSTALL_DATA) ./files/lighttpd.conf $(1)/etc/lighttpd/
119 $(INSTALL_DATA) $(PKG_BUILD_DIR)/doc/config/conf.d/mime.conf $(1)/etc/lighttpd/
120 $(INSTALL_DIR) $(1)/etc/lighttpd/conf.d
121 $(INSTALL_DIR) $(1)/etc/init.d
122 $(INSTALL_BIN) ./files/lighttpd.init $(1)/etc/init.d/lighttpd
123 $(INSTALL_DIR) $(1)/usr/lib/lighttpd
124 for m in $(BASE_MODULES); do \
125 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$$$${m}.so $(1)/usr/lib/lighttpd/ ; \
126 done
127 $(INSTALL_DIR) $(1)/usr/sbin
128 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lighttpd $(1)/usr/sbin/
129
130 ifneq ($(strip $(CONFIG_LIGHTTPD_LOGROTATE)),)
131 $(INSTALL_DIR) $(1)/etc/logrotate.d
132 $(CP) ./files/lighttpd.logrotate $(1)/etc/logrotate.d/lighttpd.conf
133 endif
134 endef
135
136 define BuildPlugin
137 define Package/lighttpd-mod-$(1)
138 $(call Package/lighttpd/Default)
139 DEPENDS:=lighttpd
140 ifneq ($(3),)
141 DEPENDS+= $(3)
142 endif
143 TITLE:=$(2) module
144 endef
145
146 define Package/lighttpd-mod-$(1)/conffiles
147 /etc/lighttpd/conf.d/$(4)-$(1).conf
148 endef
149
150 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-$(1)),)
151 define Package/lighttpd-mod-$(1)/install
152 $(INSTALL_DIR) $$(1)/usr/lib/lighttpd
153 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$(1).so $$(1)/usr/lib/lighttpd
154 $(INSTALL_DIR) $$(1)/etc/lighttpd/conf.d
155 if [ -f $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf ]; then \
156 $(CP) $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \
157 if ! grep -qF 'mod_$(1)' $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf; then \
158 sed -i "`sed '/^##/ !q' $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf | wc -l` i\
159 server.modules += ( \"mod_$(1)\" )" $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \
160 fi \
161 else \
162 echo 'server.modules += ( "mod_$(1)" )' > $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \
163 fi
164 endef
165 endif
166
167 $$(eval $$(call BuildPackage,lighttpd-mod-$(1)))
168 endef
169
170 $(eval $(call BuildPackage,lighttpd))
171
172 # First, permit redirect from HTTP to HTTPS.
173 $(eval $(call BuildPlugin,redirect,URL redirection,+PACKAGE_lighttpd-mod-redirect:libpcre,10))
174
175 # Next, permit authentication.
176 $(eval $(call BuildPlugin,auth,Authentication,+PACKAGE_lighttpd-mod-auth:libnettle,20))
177 $(eval $(call BuildPlugin,authn_dbi,DBI-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_dbi:libnettle +PACKAGE_lighttpd-mod-authn_dbi:libdbi,20))
178 $(eval $(call BuildPlugin,authn_file,File-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_file:libnettle,20))
179 $(eval $(call BuildPlugin,authn_gssapi,Kerberos-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_gssapi:krb5-libs,20))
180 $(eval $(call BuildPlugin,authn_ldap,LDAP-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_ldap:libopenldap,20))
181 $(eval $(call BuildPlugin,authn_mysql,Mysql-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_mysql:libnettle +PACKAGE_lighttpd-mod-authn_mysql:libmariadb,20))
182 $(eval $(call BuildPlugin,authn_pam,PAM-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_pam:libpam,20))
183 $(eval $(call BuildPlugin,authn_sasl,SASL-based authentication,lighttpd-mod-auth +PACKAGE_lighttpd-mod-authn_sasl:libsasl2,20))
184
185 # Finally, everything else.
186 $(eval $(call BuildPlugin,access,Access restrictions,,30))
187 $(eval $(call BuildPlugin,accesslog,Access logging,,30))
188 $(eval $(call BuildPlugin,ajp13,AJP13 Tomcat connector,,30))
189 $(eval $(call BuildPlugin,alias,Directory alias,,30))
190 $(eval $(call BuildPlugin,cgi,CGI,,30))
191 $(eval $(call BuildPlugin,cml,Cache Meta Language,+PACKAGE_lighttpd-mod-cml:liblua +PACKAGE_lighttpd-mod-cml:libnettle,30))
192 $(eval $(call BuildPlugin,deflate,Compress dynamic output,+PACKAGE_lighttpd-mod-deflate:zlib,30))
193 $(eval $(call BuildPlugin,evasive,Evasive,,30))
194 $(eval $(call BuildPlugin,evhost,Enhanced Virtual-Hosting,,30))
195 $(eval $(call BuildPlugin,expire,Expire,,30))
196 $(eval $(call BuildPlugin,extforward,Extract client,,30))
197 $(eval $(call BuildPlugin,fastcgi,FastCGI,,30))
198 $(eval $(call BuildPlugin,flv_streaming,FLV streaming,,30))
199 $(eval $(call BuildPlugin,gnutls,TLS using gnutls,@LIGHTTPD_SSL +PACKAGE_lighttpd-mod-gnutls:libgnutls,30))
200 $(eval $(call BuildPlugin,magnet,Magnet,+PACKAGE_lighttpd-mod-magnet:liblua,30))
201 $(eval $(call BuildPlugin,maxminddb,MaxMind DB,+PACKAGE_lighttpd-mod-maxminddb:libmaxminddb,30))
202 $(eval $(call BuildPlugin,mbedtls,TLS using mbedtls,@LIGHTTPD_SSL +PACKAGE_lighttpd-mod-mbedtls:libmbedtls,30))
203 $(eval $(call BuildPlugin,nss,TLS using nss,@LIGHTTPD_SSL +PACKAGE_lighttpd-mod-nss:libnss,30))
204 $(eval $(call BuildPlugin,openssl,TLS using openssl,@LIGHTTPD_SSL +PACKAGE_lighttpd-mod-openssl:libopenssl,30))
205 $(eval $(call BuildPlugin,proxy,Proxy,,30))
206 $(eval $(call BuildPlugin,rewrite,URL rewriting,+PACKAGE_lighttpd-mod-rewrite:libpcre,30))
207 $(eval $(call BuildPlugin,rrdtool,RRDtool,,30))
208 $(eval $(call BuildPlugin,scgi,SCGI,,30))
209 $(eval $(call BuildPlugin,secdownload,Secure and fast download,+PACKAGE_lighttpd-mod-secdownload:libnettle,30))
210 $(eval $(call BuildPlugin,setenv,Environment variable setting,,30))
211 $(eval $(call BuildPlugin,simple_vhost,Simple virtual hosting,,30))
212 $(eval $(call BuildPlugin,sockproxy,sockproxy,,30))
213 $(eval $(call BuildPlugin,ssi,SSI,+PACKAGE_lighttpd-mod-ssi:libpcre,30))
214 $(eval $(call BuildPlugin,staticfile,staticfile,,30))
215 $(eval $(call BuildPlugin,status,Server status display,,30))
216 $(eval $(call BuildPlugin,trigger_b4_dl,Trigger before download,+PACKAGE_lighttpd-mod-trigger_b4_dl:libpcre +PACKAGE_lighttpd-mod-trigger_b4_dl:libgdbm,30))
217 $(eval $(call BuildPlugin,uploadprogress,Upload Progress,,30))
218 $(eval $(call BuildPlugin,userdir,User directory,,30))
219 $(eval $(call BuildPlugin,usertrack,User tracking,+PACKAGE_lighttpd-mod-usertrack:libnettle,30))
220 $(eval $(call BuildPlugin,vhostdb,Virtual Host Database,,30))
221 $(eval $(call BuildPlugin,vhostdb_dbi,Virtual Host Database (DBI),lighttpd-mod-vhostdb +PACKAGE_lighttpd-mod-vhostdb_dbi:libdbi,30))
222 $(eval $(call BuildPlugin,vhostdb_ldap,Virtual Host Database (LDAP),lighttpd-mod-vhostdb +PACKAGE_lighttpd-mod-vhostdb_ldap:libopenldap,30))
223 $(eval $(call BuildPlugin,vhostdb_mysql,Virtual Host Database (MariaDB),lighttpd-mod-vhostdb +PACKAGE_lighttpd-mod-vhostdb_mysql:libmariadb,30))
224 $(eval $(call BuildPlugin,vhostdb_pgsql,Virtual Host Database (PostgreSQL),lighttpd-mod-vhostdb +PACKAGE_lighttpd-mod-vhostdb_pgsql:libpq,30))
225 $(eval $(call BuildPlugin,mysql_vhost,Mysql virtual hosting,lighttpd-mod-vhostdb +PACKAGE_lighttpd-mod-mysql_vhost:libmariadb,30))
226 $(eval $(call BuildPlugin,webdav,WebDAV,+PACKAGE_lighttpd-mod-webdav:libsqlite3 +PACKAGE_lighttpd-mod-webdav:libuuid +PACKAGE_lighttpd-mod-webdav:libxml2,30))
227 $(eval $(call BuildPlugin,wolfssl,TLS using wolfssl,@LIGHTTPD_SSL +PACKAGE_lighttpd-mod-wolfssl:libwolfssl,30))
228 $(eval $(call BuildPlugin,wstunnel,Websocket tunneling,+PACKAGE_lighttpd-mod-wstunnel:libnettle,30))