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