You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
9.8 KiB

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