Coova-Chilli on OpenWRT and LEDE 17.01 is based on the 1.3.0+20141128 version.
If you just clone the git repository from coova-chilli the Makefile and patches applies to coova-chilli-1.3.0+20141128
This page describes how to upgrade to the latest 1.4.
In order to compile the latest 1.4 on LEDE 17.01 some requirements are needed.
Under the feeds/packages/net/coova-chilli directory is the Makefile, Config.in, patches and files directories specific to your OpenWRT/LEDE coova-chilli build target platform.
This directory is also referenced as a symbolic link in package/feeds/packages/coova-chilli.
Open the package/feeds/packages/coova-chilli/Makefile and patch the following content:
# # Copyright (C) 2007-2017 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=coova-chilli PKG_VERSION:=1.4 PKG_MAINTAINER:=Xavier Maysonnave <x.maysonnave@auroville.org.in> PKG_LICENSE:=GPL-2.0+ PKG_LICENSE_FILES:=COPYING PKG_RELEASE:=4 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://github.com/coova/coova-chilli PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_VERSION:=1.4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_INSTALL:=1 PKG_CONFIG_DEPENDS := \ COOVACHILLI_DISABLE_CHILLIQUERY \ COOVACHILLI_DISABLE_LEAKYBUCKET \ COOVACHILLI_DISABLE_UAMANYIP \ COOVACHILLI_DISABLE_UAMUIPORT \ COOVACHILLI_DISABLE_ACCOUNTING_ONOFF \ COOVACHILLI_DISABLE_TAP \ COOVACHILLI_DISABLE_TCPRESET \ COOVACHILLI_DISABLE_RADPROXY \ COOVACHILLI_ENABLE_JSON \ COOVACHILLI_DISABLE_DEBUG \ COOVACHILLI_DISABLE_DHCPRADIUS \ COOVACHILLI_ENABLE_WPAD \ COOVACHILLI_ENABLE_GARDENACCOUNTING \ COOVACHILLI_ENABLE_GARDENEXT \ COOVACHILLI_ENABLE_INSPECT \ COOVACHILLI_DISABLE_COA \ COOVACHILLI_ENABLE_DHCPOPT \ COOVACHILLI_ENABLE_DEBUG2 \ COOVACHILLI_ENABLE_SESSGARDEN \ COOVACHILLI_ENABLE_SESSPROXY \ COOVACHILLI_ENABLE_SESSDHCP \ COOVACHILLI_ENABLE_SESSDNS \ COOVACHILLI_ENABLE_CHILLIXML \ COOVACHILLI_ENABLE_PROXYVSA \ COOVACHILLI_ENABLE_IPWHITELIST \ COOVACHILLI_ENABLE_UAMDOMAINFILE \ COOVACHILLI_ENABLE_REDIRDNSREQ \ COOVACHILLI_DISABLE_IEEE8021Q \ COOVACHILLI_ENABLE_LARGELIMITS \ COOVACHILLI_WITH_NFQUEUE \ COOVACHILLI_WITH_AVL \ COOVACHILLI_WITH_NFCOOVA \ COOVACHILLI_WITHOUT_SFHASH \ COOVACHILLI_WITH_LOOKUP3 \ COOVACHILLI_WITH_PATRICIA \ COOVACHILLI_ENABLE_AUTHEDALLOWED \ COOVACHILLI_WITHOUT_IPV6 \ COOVACHILLI_WITH_PCAP \ COOVACHILLI_WITH_CURL \ COOVACHILLI_WITH_MMAP \ COOVACHILLI_WITH_POLL \ COOVACHILLI_WITH_IPC_MSG \ COOVACHILLI_ENABLE_BINSTATUSFILE \ COOVACHILLI_ENABLE_STATUSFILE \ COOVACHILLI_ENABLE_CHILLIPROXY \ COOVACHILLI_ENABLE_MULTIROUTE \ COOVACHILLI_ENABLE_MULTILAN \ COOVACHILLI_ENABLE_CHILLIRADSEC \ COOVACHILLI_ENABLE_CHILLIREDIR \ COOVACHILLI_ENABLE_CHILLISCRIPT \ COOVACHILLI_ENABLE_CLUSTER \ COOVACHILLI_ENABLE_SESSIONSTATE \ COOVACHILLI_ENABLE_SESSIONID \ COOVACHILLI_ENABLE_APSESSIONID \ COOVACHILLI_DISABLE_COOVACHILLICONFIG \ COOVACHILLI_ENABLE_MDNS \ COOVACHILLI_ENABLE_NETBIOS \ COOVACHILLI_ENABLE_IEEE8023 \ COOVACHILLI_ENABLE_PPPOE \ COOVACHILLI_ENABLE_L2TPPPP \ COOVACHILLI_ENABLE_EAPOL \ COOVACHILLI_ENABLE_MINIPORTAL \ COOVACHILLI_ENABLE_MINICONFIG \ COOVACHILLI_ENABLE_EWTAPI \ COOVACHILLI_ENABLE_LIBJSON \ COOVACHILLI_ENABLE_SSDP \ COOVACHILLI_ENABLE_LAYER3 \ COOVACHILLI_ENABLE_MODULES \ COOVACHILLI_ENABLE_EXTADMVSA \ COOVACHILLI_ENABLE_REDIRINJECT \ COOVACHILLI_ENABLE_NETNAT \ COOVACHILLI_ENABLE_USERAGENT \ COOVACHILLI_ENABLE_ACCEPTLANGUAGE \ COOVACHILLI_ENABLE_LOCATION \ COOVACHILLI_ENABLE_FORCEDNS \ COOVACHILLI_DNSLOG \ COOVACHILLI_DISABLE_SSL \ COOVACHILLI_ENABLE_OPENSSL \ COOVACHILLI_ENABLE_MATRIXSSL \ COOVACHILLI_ENABLE_MATRIXSSL_CLI \ COOVACHILLI_ENABLE_CYASSL include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/kernel.mk define Package/coova-chilli SUBMENU:=Captive Portals SECTION:=net CATEGORY:=Network DEPENDS:=+kmod-tun +librt +COOVACHILLI_MATRIXSSL:libmatrixssl +COOVACHILLI_CYASSL:libcyassl +COOVACHILLI_OPENSSL:libopenssl TITLE:=Wireless LAN HotSpot controller (Coova Chilli Version) URL:=http://www.coova.org/CoovaChilli MENU:=1 endef define Package/coova-chilli/description CoovaChilli is an open source access controller for wireless LAN access points and is based on ChilliSpot. It is used for authenticating users of a wireless (or wired) LAN. It supports web based login (UAM) which is today's standard for public HotSpots and it supports Wireless Protected Access (WPA) which is the standard of the future. Authentication, authorization and accounting (AAA) is handled by your favorite radius server. endef define Package/coova-chilli/config source "$(SOURCE)/Config.in" endef define KernelPackage/ipt-coova URL:=http://www.coova.org/CoovaChilli SUBMENU:=Netfilter Extensions DEPENDS:=coova-chilli +kmod-ipt-core +libxtables TITLE:=Coova netfilter module FILES:=$(PKG_BUILD_DIR)/src/linux/xt_*.$(LINUX_KMOD_SUFFIX) AUTOLOAD:=$(call AutoProbe,xt_coova) endef define KernelPackage/ipt-coova/description Netfilter kernel module for CoovaChilli Includes: - coova endef DISABLE_NLS= TARGET_CFLAGS += $(FPIC) CONFIGURE_VARS += \ ARCH="$(LINUX_KARCH)" \ KERNEL_DIR="$(LINUX_DIR)" MAKE_FLAGS += \ ARCH="$(LINUX_KARCH)" \ KERNEL_DIR="$(LINUX_DIR)" MAKE_INSTALL_FLAGS += \ ARCH="$(LINUX_KARCH)" \ KERNEL_DIR="$(LINUX_DIR)" \ INSTALL_MOD_PATH="$(PKG_INSTALL_DIR)" define Build/Prepare $(call Build/Prepare/Default) ( cd $(PKG_BUILD_DIR) ; \ [ -f ./configure ] || { \ ./bootstrap ; \ } \ ) endef define Build/Configure $(call Build/Configure/Default, \ $(if $(CONFIG_COOVACHILLI_DISABLE_CHILLIQUERY),--disable-chilliquery) \ $(if $(CONFIG_COOVACHILLI_DISABLE_LEAKYBUCKET),--disable-leakybucket) \ $(if $(CONFIG_COOVACHILLI_DISABLE_UAMANYIP),--disable-uamanyip) \ $(if $(CONFIG_COOVACHILLI_DISABLE_UAMUIPORT),--disable-uamuiport) \ $(if $(CONFIG_COOVACHILLI_DISABLE_ACCOUNTING_ONOFF),--disable-accounting-onoff) \ $(if $(CONFIG_COOVACHILLI_DISABLE_TAP),--disable-tap) \ $(if $(CONFIG_COOVACHILLI_DISABLE_TCPRESET),--disable-tcpreset) \ $(if $(CONFIG_COOVACHILLI_DISABLE_RADPROXY),--disable-radproxy) \ $(if $(CONFIG_COOVACHILLI_ENABLE_JSON),--enable-json) \ $(if $(CONFIG_COOVACHILLI_DISABLE_DEBUG),--disable-debug) \ $(if $(CONFIG_COOVACHILLI_DISABLE_DHCPRADIUS),--disable-dhcpradius) \ $(if $(CONFIG_COOVACHILLI_ENABLE_WPAD),--enable-wpad) \ $(if $(CONFIG_COOVACHILLI_ENABLE_GARDENACCOUNTING),--enable-gardenaccounting,) \ $(if $(CONFIG_COOVACHILLI_ENABLE_GARDENEXT),--enable-gardenext) \ $(if $(CONFIG_COOVACHILLI_ENABLE_INSPECT),--enable-inspect) \ $(if $(CONFIG_COOVACHILLI_DISABLE_COA),--disable-coa) \ $(if $(CONFIG_COOVACHILLI_ENABLE_DHCPOPT),--enable-dhcpopt) \ $(if $(CONFIG_COOVACHILLI_ENABLE_DEBUG2),--enable-debug2) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSGARDEN),--enable-sessgarden) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSPROXY),--enable-sessproxy) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSDHCP),--enable-sessdhcp) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSDNS),--enable-sessdns) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CHILLIXML),--enable-chillixml) \ $(if $(CONFIG_COOVACHILLI_ENABLE_PROXYVSA),--enable-proxyvsa,) \ $(if $(CONFIG_COOVACHILLI_ENABLE_IPWHITELIST),--enable-ipwhitelist) \ $(if $(CONFIG_COOVACHILLI_ENABLE_UAMDOMAINFILE),--enable-uamdomainfile) \ $(if $(CONFIG_COOVACHILLI_ENABLE_REDIRDNSREQ),--enable-redirdnsreq) \ $(if $(CONFIG_COOVACHILLI_DISABLE_IEEE8021Q),--disable-ieee8021q) \ $(if $(CONFIG_COOVACHILLI_ENABLE_LARGELIMITS),--enable-largelimits) \ $(if $(CONFIG_COOVACHILLI_ENABLE_OPENSSL),--with-openssl) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MATRIXSSL),--with-matrixssl) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MATRIXSSL_CLI),--with-matrixssl-cli) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CYASSL),--with-cyassl) \ $(if $(CONFIG_COOVACHILLI_WITH_NFQUEUE),--with-nfqueue) \ $(if $(CONFIG_COOVACHILLI_WITH_AVL),--with-avl) \ $(if $(CONFIG_COOVACHILLI_WITH_NFCOOVA),--with-nfcoova) \ $(if $(CONFIG_COOVACHILLI_WITHOUT_SFHASH),--without-sfhash) \ $(if $(CONFIG_COOVACHILLI_WITH_LOOKUP3),--with-lookup3) \ $(if $(CONFIG_COOVACHILLI_WITH_PATRICIA),--with-patricia) \ $(if $(CONFIG_COOVACHILLI_ENABLE_AUTHEDALLOWED),--enable-authedallowed) \ $(if $(CONFIG_COOVACHILLI_WITHOUT_IPV6),--without-ipv6) \ $(if $(CONFIG_COOVACHILLI_WITH_PCAP),--with-pcap) \ $(if $(CONFIG_COOVACHILLI_WITH_CURL),--with-curl) \ $(if $(CONFIG_COOVACHILLI_WITH_MMAP),--with-mmap) \ $(if $(CONFIG_COOVACHILLI_WITH_POLL),--with-poll) \ $(if $(CONFIG_COOVACHILLI_WITH_IPC_MSG),--with-ipc-msg) \ $(if $(CONFIG_COOVACHILLI_ENABLE_BINSTATUSFILE),--enable-binstatusfile) \ $(if $(CONFIG_COOVACHILLI_ENABLE_STATUSFILE),--enable-statusfile) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CHILLIPROXY),--enable-chillyproxy) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MULTIROUTE),--enable-multiroute) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MULTILAN),--enable-multilan) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CHILLIRADSEC),--enable-chilliradsec) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CHILLIREDIR),--enable-chilliredir) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CHILLISCRIPT),--enable-chilliscript) \ $(if $(CONFIG_COOVACHILLI_ENABLE_CLUSTER),--enable-cluster) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSIONSTATE),--enable-sessionstate) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SESSIONID),--enable-sessionid) \ $(if $(CONFIG_COOVACHILLI_ENABLE_APSESSIONID),--enable-apsessionid) \ $(if $(CONFIG_COOVACHILLI_DISABLE_COOVACHILLICONFIG),--disable-coovachilliconfig) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MDNS),--enable-mdns) \ $(if $(CONFIG_COOVACHILLI_ENABLE_NETBIOS),--enable-netbios) \ $(if $(CONFIG_COOVACHILLI_ENABLE_IEEE8023),--enable-ieee8023) \ $(if $(CONFIG_COOVACHILLI_ENABLE_PPPOE),--enable-pppoe) \ $(if $(CONFIG_COOVACHILLI_ENABLE_L2TPPPP),--enable-l2tpppp) \ $(if $(CONFIG_COOVACHILLI_ENABLE_EAPOL),--enable-eapol) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MINIPORTAL),--enable-miniportal) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MINICONFIG),--enable-miniconfig) \ $(if $(CONFIG_COOVACHILLI_ENABLE_EWTAPI),--enable-ewtapi) \ $(if $(CONFIG_COOVACHILLI_ENABLE_LIBJSON),--enable-libjson) \ $(if $(CONFIG_COOVACHILLI_ENABLE_SSDP),--enable-ssdp) \ $(if $(CONFIG_COOVACHILLI_ENABLE_LAYER3),--enable-layer3) \ $(if $(CONFIG_COOVACHILLI_ENABLE_MODULES),--enable-modules) \ $(if $(CONFIG_COOVACHILLI_ENABLE_EXTADMVSA),--enable-extadmvsa) \ $(if $(CONFIG_COOVACHILLI_ENABLE_REDIRINJECT),--enable-redirinject) \ $(if $(CONFIG_COOVACHILLI_ENABLE_NETNAT),--enable-netnat) \ $(if $(CONFIG_COOVACHILLI_ENABLE_USERAGENT),--enable-useragent) \ $(if $(CONFIG_COOVACHILLI_ENABLE_ACCEPTLANGUAGE),--enable-acceptlanguage) \ $(if $(CONFIG_COOVACHILLI_ENABLE_LOCATION),--enable-location) \ $(if $(CONFIG_COOVACHILLI_ENABLE_FORCEDNS),--enable-forcedns) \ $(if $(CONFIG_PACKAGE_kmod-ipt-coova),--with-nfcoova) \ ) endef define Package/coova-chilli/conffiles /etc/config/chilli endef define Package/coova-chilli/install $(INSTALL_DIR) $(1)/etc $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/chilli.conf $(1)/etc/ $(INSTALL_DIR) $(1)/etc/chilli $(CP) $(PKG_INSTALL_DIR)/etc/chilli/* $(1)/etc/chilli/ $(INSTALL_DIR) $(1)/etc/hotplug.d/iface $(INSTALL_DATA) ./files/chilli.hotplug $(1)/etc/hotplug.d/iface/30-chilli $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/chilli* $(1)/usr/sbin/ $(INSTALL_DIR) $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/ $(if $(CONFIG_PACKAGE_kmod-ipt-coova), \ $(INSTALL_DIR) $(1)/usr/lib/iptables; \ $(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib*.so $(1)/usr/lib/iptables/ \ ) $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) files/chilli.init $(1)/etc/init.d/chilli $(INSTALL_DIR) $(1)/etc/config $(INSTALL_DATA) files/chilli.config $(1)/etc/config/chilli $(INSTALL_DIR) $(1)/lib/firewall $(CP) files/chilli.firewall $(1)/lib/firewall/chilli.sh endef $(eval $(call BuildPackage,coova-chilli)) $(eval $(call KernelPackage,ipt-coova)) |
Under the package/feeds/packages/coova-chilli/patches directory.
Remove the patches applicable for coova-chilli-1.3.0+20141128
Only the file 200-fix_compile_kmod.patch should remain in the patches directory.
Open it and patch the following content:
--- a/src/linux/Makefile 2016-12-15 22:58:43.000000000 +0530 +++ b/src/linux/Makefile.new 2017-04-17 14:34:42.982149206 +0530 @@ -22,11 +22,11 @@ $(CC) $(CFLAGS) -shared -o $@ $^; lib%.o: lib%.c - $(CC) $(CFLAGS) -fPIC -O2 -Wall -D_INIT=lib$*_init -c -o $@ $<; + $(CC) $(CFLAGS) -D_INIT=lib$*_init -c -o $@ $<; install: modules_install libxt_coova.so - mkdir -p $(DESTDIR)/lib/xtables/ - cp libxt_coova.so $(DESTDIR)/lib/xtables/ + mkdir -p $(DESTDIR)/usr/lib/iptables/ + cp libxt_coova.so $(DESTDIR)/usr/lib/iptables/ distdir: |
OpenWRT and LEDE 17.01 doesn't expose all the compile options of Coova-Chilli.
Here is an enhancement of compile options exposed to the OpenWRT/LEDE builder.
Following the compile definitions from https://github.com/coova/coova-chilli/blob/master/configure.ac
Open the packages/feeds/package/coova-chilli/Config.in file and patch the following content:
# CoovaChilli advanced configuration menu "Configuration" depends on PACKAGE_coova-chilli config COOVACHILLI_PROXY bool "Enable support for chilli proxy. Required for AAA Proxy through http" default n config COOVACHILLI_REDIR bool "Enable support for redir server. Required for uamregex" default n config COOVACHILLI_MINIPORTAL bool "Enable support Coova miniportal" default n config COOVACHILLI_USERAGENT bool "Enable recording user-agent" default n config COOVACHILLI_DNSLOG bool "Enable support to log DNS name queries" default n config COOVACHILLI_UAMDOMAINFILE bool "Enable loading of mass uamdomains from file" default n config COOVACHILLI_LARGELIMITS bool "Enable larger limits for use with non-embedded systems" default n choice prompt "SSL library" default COOVACHILLI_NOSSL config COOVACHILLI_NOSSL bool "No SSL support" config COOVACHILLI_MATRIXSSL bool "MatrixSSL" config COOVACHILLI_CYASSL bool "CyaSSL" config COOVACHILLI_OPENSSL bool "OpenSSL" endchoice endmenu |
https://wiki.openwrt.org/doc/howto/wireless.hotspot.coova-chilli