Child pages
  • Coova-Chilli_1.4_HHLB

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagetext
linenumberstrue
#
# 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_ENABLE_MATRIXSSL:libmatrixssl \
	+COOVACHILLI_ENABLE_CYASSL:libcyassl \
	+COOVACHILLI_ENABLE_OPENSSL:libopenssl \
	+COOVACHILLI_ENABLE_LIBJSON:libjson-c \
	+COOVACHILLI_WITH_NFQUEUE:libnetfilter-queue \
	+COOVACHILLI_WITH_NFQUEUE:libnfnetlink \
	+COOVACHILLI_WITH_NFQUEUE:libmnl \
	+COOVACHILLI_WITH_PCAP:libpcap \
	+COOVACHILLI_WITH_CURL:libcares
  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))

...