treewide: run "make check FIXUP=1"
[feed/packages.git] / net / lighttpd / Makefile
1 #
2 # Copyright (C) 2006-2015 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.45
12 PKG_RELEASE:=7
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://download.lighttpd.net/lighttpd/releases-1.4.x
16 PKG_HASH:=1c97225deea33eefba6d4158c2cef27913d47553263516bbe9d2e2760fc43a3f
17
18 PKG_LICENSE:=BSD-3c
19 PKG_LICENSE_FILES:=COPYING
20
21 PKG_FIXUP:=autoreconf
22 PKG_INSTALL:=1
23
24 include $(INCLUDE_DIR)/package.mk
25
26 define Package/lighttpd/Default
27 SUBMENU:=Web Servers/Proxies
28 SECTION:=net
29 CATEGORY:=Network
30 URL:=http://www.lighttpd.net/
31 MAINTAINER:=W. Michael Petullo <mike@flyn.org>
32 endef
33
34 define Package/lighttpd
35 $(call Package/lighttpd/Default)
36 MENU:=1
37 DEPENDS:=+LIGHTTPD_SSL:libopenssl +libpcre +libpthread
38 TITLE:=A flexible and lightweight web server
39 endef
40
41 define Package/lighttpd/config
42 config LIGHTTPD_SSL
43 bool "SSL support"
44 depends on PACKAGE_lighttpd
45 default y
46 help
47 Implements SSL support in lighttpd (using libopenssl). This
48 option is required if you enable the SSL engine in your
49 lighttpd confguration file.
50 endef
51
52 CONFIGURE_ARGS+= \
53 --libdir=/usr/lib/lighttpd \
54 --sysconfdir=/etc/lighttpd \
55 --enable-shared \
56 --enable-static \
57 --disable-rpath \
58 --without-attr \
59 --without-bzip2 \
60 --without-fam \
61 --with-pcre \
62 --without-valgrind \
63 $(call autoconf_bool,CONFIG_IPV6,ipv6)
64
65 CONFIGURE_VARS+= \
66 PCRE_LIB="-lpcre" \
67
68 ifneq ($(strip $(CONFIG_LIGHTTPD_SSL)),)
69 CONFIGURE_ARGS+= \
70 --with-openssl="$(STAGING_DIR)/usr"
71 else
72 CONFIGURE_ARGS+= \
73 --without-openssl
74 endif
75
76 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-authn_gssapi),)
77 CONFIGURE_ARGS+= --with-krb5
78 else
79 CONFIGURE_ARGS+= --without-krb5
80 endif
81
82 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-authn_ldap),)
83 CONFIGURE_ARGS+= --with-ldap
84 else
85 CONFIGURE_ARGS+= --without-ldap
86 endif
87
88 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-authn_mysql),)
89 CONFIGURE_ARGS+= --with-mysql
90 else
91 CONFIGURE_ARGS+= --without-mysql
92 endif
93
94 #ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-geoip),)
95 # CONFIGURE_ARGS+= --with-geoip
96 #else
97 # CONFIGURE_ARGS+= --without-geoip
98 #endif
99
100 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-cml)$(CONFIG_PACKAGE_lighttpd-mod-magnet),)
101 CONFIGURE_ARGS+= --with-lua
102 else
103 CONFIGURE_ARGS+= --without-lua
104 endif
105
106 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-mysql_vhost),)
107 CONFIGURE_ARGS+= --with-mysql
108 else
109 CONFIGURE_ARGS+= --without-mysql
110 endif
111
112 #ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-cml)$(CONFIG_PACKAGE_lighttpd-mod-trigger_b4_dl),)
113 # CONFIGURE_ARGS+= --with-memcached
114 #else
115 # CONFIGURE_ARGS+= --without-memcached
116 #endif
117
118 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-trigger_b4_dl),)
119 CONFIGURE_ARGS+= --with-gdbm
120 else
121 CONFIGURE_ARGS+= --without-gdbm
122 endif
123
124 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-webdav),)
125 CONFIGURE_ARGS+= \
126 --with-webdav-locks \
127 --with-webdav-props
128 # XXX: needed by sqlite3 to prevent segfaults in mod_webdav.so
129 CONFIGURE_VARS+= \
130 LIBS="-lpthread"
131 else
132 CONFIGURE_ARGS+= \
133 --without-webdav-locks \
134 --without-webdav-props
135 endif
136
137 define Build/Configure
138 $(call Build/Configure/Default)
139 # XXX: override pcre (mis)detection by ./configure when cross-compiling
140 echo "#define HAVE_LIBPCRE 1" >>$(PKG_BUILD_DIR)/config.h
141 echo "#define HAVE_PCRE_H 1" >>$(PKG_BUILD_DIR)/config.h
142 endef
143
144 define Package/lighttpd/conffiles
145 /etc/lighttpd/lighttpd.conf
146 endef
147
148 define Package/lighttpd/install
149 $(INSTALL_DIR) $(1)/etc/lighttpd
150 $(INSTALL_DATA) ./files/lighttpd.conf $(1)/etc/lighttpd/
151 $(INSTALL_DATA) $(PKG_BUILD_DIR)/doc/config/conf.d/mime.conf $(1)/etc/lighttpd/
152 $(INSTALL_DIR) $(1)/etc/lighttpd/conf.d
153 $(INSTALL_DIR) $(1)/etc/init.d
154 $(INSTALL_BIN) ./files/lighttpd.init $(1)/etc/init.d/lighttpd
155 $(INSTALL_DIR) $(1)/usr/lib/lighttpd
156 for m in dirlisting indexfile staticfile; do \
157 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$$$${m}.so $(1)/usr/lib/lighttpd/ ; \
158 done
159 $(INSTALL_DIR) $(1)/usr/sbin
160 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lighttpd $(1)/usr/sbin/
161 endef
162
163 define BuildPlugin
164 define Package/lighttpd-mod-$(1)
165 $(call Package/lighttpd/Default)
166 DEPENDS:=lighttpd
167 ifneq ($(3),)
168 DEPENDS+= $(3)
169 endif
170 TITLE:=$(2) module
171 endef
172
173 ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-$(1)),)
174 define Package/lighttpd-mod-$(1)/install
175 $(INSTALL_DIR) $$(1)/usr/lib/lighttpd
176 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$(1).so $$(1)/usr/lib/lighttpd
177 $(INSTALL_DIR) $$(1)/etc/lighttpd/conf.d
178 if [ -f $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf ]; then \
179 $(CP) $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \
180 else \
181 echo 'server.modules += ( "mod_$(1)" )' > $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \
182 fi
183 endef
184 endif
185
186 $$(eval $$(call BuildPackage,lighttpd-mod-$(1)))
187 endef
188
189 $(eval $(call BuildPackage,lighttpd))
190
191 # First, permit redirect from HTTP to HTTPS.
192 $(eval $(call BuildPlugin,redirect,URL redirection,+PACKAGE_lighttpd-mod-redirect:libpcre,10))
193
194 # Next, permit authentication.
195 $(eval $(call BuildPlugin,auth,Authentication,,20))
196 $(eval $(call BuildPlugin,authn_file,File-based authentication,,20))
197 $(eval $(call BuildPlugin,authn_gssapi,Kerberos-based authentication,+PACKAGE_lighttpd-mod-authn_gssapi:krb5-libs,20))
198 $(eval $(call BuildPlugin,authn_ldap,LDAP-based authentication,+PACKAGE_lighttpd-mod-authn_ldap:libopenldap,20))
199 $(eval $(call BuildPlugin,authn_mysql,Mysql-based authentication,+PACKAGE_lighttpd-mod-authn_mysql:libmysqlclient,20))
200
201 # Finally, everything else.
202 $(eval $(call BuildPlugin,access,Access restrictions,,30))
203 $(eval $(call BuildPlugin,accesslog,Access logging,,30))
204 $(eval $(call BuildPlugin,alias,Directory alias,,30))
205 $(eval $(call BuildPlugin,cgi,CGI,,30))
206 #$(eval $(call BuildPlugin,cml,Cache Meta Language,+PACKAGE_lighttpd-mod-cml:liblua +PACKAGE_lighttpd-mod-cml:libmemcached,30))
207 $(eval $(call BuildPlugin,cml,Cache Meta Language,+PACKAGE_lighttpd-mod-cml:liblua,30))
208 $(eval $(call BuildPlugin,compress,Compress output,+PACKAGE_lighttpd-mod-compress:zlib,30))
209 $(eval $(call BuildPlugin,deflate,Compress dynamic output,+PACKAGE_lighttpd-mod-deflate:zlib,30))
210 $(eval $(call BuildPlugin,evasive,Evasive,,30))
211 $(eval $(call BuildPlugin,evhost,Enhanced Virtual-Hosting,,30))
212 $(eval $(call BuildPlugin,expire,Expire,,30))
213 $(eval $(call BuildPlugin,extforward,Extract client,,30))
214 $(eval $(call BuildPlugin,fastcgi,FastCGI,,30))
215 $(eval $(call BuildPlugin,flv_streaming,FLV streaming,,30))
216 #$(eval $(call BuildPlugin,geoip,Geolocation,+PACKAGE_lighttpd-mod-geoip:libgeoip,30))
217 $(eval $(call BuildPlugin,magnet,Magnet,+PACKAGE_lighttpd-mod-magnet:liblua,30))
218 $(eval $(call BuildPlugin,mysql_vhost,Mysql virtual hosting,+PACKAGE_lighttpd-mod-mysql_vhost:libmysqlclient,30))
219 $(eval $(call BuildPlugin,proxy,Proxy,,30))
220 $(eval $(call BuildPlugin,rewrite,URL rewriting,+PACKAGE_lighttpd-mod-rewrite:libpcre,30))
221 $(eval $(call BuildPlugin,rrdtool,RRDtool,,30))
222 $(eval $(call BuildPlugin,scgi,SCGI,,30))
223 $(eval $(call BuildPlugin,secdownload,Secure and fast download,,30))
224 $(eval $(call BuildPlugin,setenv,Environment variable setting,,30))
225 $(eval $(call BuildPlugin,simple_vhost,Simple virtual hosting,,30))
226 $(eval $(call BuildPlugin,ssi,SSI,+PACKAGE_lighttpd-mod-ssi:libpcre,30))
227 $(eval $(call BuildPlugin,status,Server status display,,30))
228 #$(eval $(call BuildPlugin,trigger_b4_dl,Trigger before download,+PACKAGE_lighttpd-mod-trigger_b4_dl:libpcre +PACKAGE_lighttpd-mod-trigger_b4_dl:libgdbm +PACKAGE_lighttpd-mod-trigger_b4_dl:libmemcached,30))
229 $(eval $(call BuildPlugin,trigger_b4_dl,Trigger before download,+PACKAGE_lighttpd-mod-trigger_b4_dl:libpcre +PACKAGE_lighttpd-mod-trigger_b4_dl:libgdbm,30))
230 $(eval $(call BuildPlugin,userdir,User directory,,30))
231 $(eval $(call BuildPlugin,usertrack,User tracking,,30))
232 $(eval $(call BuildPlugin,webdav,WebDAV,+PACKAGE_lighttpd-mod-webdav:libsqlite3 +PACKAGE_lighttpd-mod-webdav:libuuid +PACKAGE_lighttpd-mod-webdav:libxml2,30))
233