diff --git a/net/uspot/Makefile b/net/uspot/Makefile new file mode 100644 index 000000000..9d6dd6485 --- /dev/null +++ b/net/uspot/Makefile @@ -0,0 +1,96 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=uspot +PKG_RELEASE:=1 + +PKG_LICENSE:=GPL-2.0 +PKG_MAINTAINER:=Thibaut VARĂˆNE + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/f00b4r0/uspot.git +PKG_SOURCE_DATE:=2023-11-30 +PKG_SOURCE_VERSION:=7e1e21b0f8425205d719b99a392fa893b3e512e6 +PKG_MIRROR_HASH:=494c616159b16d978fe00348ebe50c77a48f1db98d624ed613f3cca2d39e3a6e + +CMAKE_SOURCE_SUBDIR:=src + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/uspot + SUBMENU:=Captive Portals + SECTION:=net + CATEGORY:=Network + TITLE:=uspot hotspot daemon + DEPENDS:=+conntrack \ + +libblobmsg-json +liblucihttp-ucode +libradcli +libubox +libubus +libuci \ + +spotfilter \ + +ucode +ucode-mod-math +ucode-mod-nl80211 +ucode-mod-rtnl +uhttpd-mod-ucode +ucode-mod-uloop + +endef + +define Package/uspot/description + This package implements a captive portal supporting click-to-continue, + simple credential-based as well as RADIUS authentication. + It is UAM capable, and has limited support for RFC5176 + RADIUS Dynamic Authorization Extensions. + It is meant to be a drop-in replacement for CoovaChilli, + leveraging the performance and flexibility of the nftables firewall + without the need for extra kernel modules. +endef + +define Package/uspot/conffiles +/etc/config/uspot +endef + +define Package/uspot-www + SUBMENU:=Captive Portals + SECTION:=net + CATEGORY:=Network + TITLE:=uspot default user interface files + DEPENDS:=+uspot +endef + +define Package/uspot-www/description + This package provides CSS and HTML templates for uspot UI. + This package must be installed with uspot unless a local alternative is provided. +endef + +define Package/uspotfilter + SECTION:=net + CATEGORY:=Network + TITLE:=uspot implementation of spotfilter + PROVIDES:=spotfilter + CONFLICTS:=spotfilter + DEPENDS:=+conntrack +nftables-json +ucode +ucode-mod-rtnl +ucode-mod-uloop +endef + +define Package/uspotfilter/description + This package provides the nftables firewall interface to spotfilter. + It is compatible with firewall4. +endef + +define Package/uspot/install + $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/share $(1)/usr/lib/ucode $(1)/etc/init.d $(1)/etc/config + $(INSTALL_BIN) $(PKG_BUILD_DIR)/radius-client $(1)/usr/bin/radius-client + $(INSTALL_BIN) $(PKG_BUILD_DIR)/uspot-das $(1)/usr/bin/uspot-das + $(INSTALL_DATA) $(PKG_BUILD_DIR)/libuam.so $(1)/usr/lib/ucode/uam.so + $(INSTALL_CONF) $(PKG_BUILD_DIR)/files/etc/config/uspot $(1)/etc/config/uspot + $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/etc/init.d/uspot $(1)/etc/init.d/uspot + $(CP) $(PKG_BUILD_DIR)/files/usr/bin $(1)/usr/ + $(CP) $(PKG_BUILD_DIR)/files/usr/share/uspot $(1)/usr/share/ +endef + +define Package/uspot-www/install + $(CP) $(PKG_BUILD_DIR)/files/www-uspot $(1)/ +endef + +define Package/uspotfilter/install + $(INSTALL_DIR) $(1)/usr/share $(1)/etc/init.d + $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/etc/init.d/spotfilter $(1)/etc/init.d/spotfilter + $(CP) $(PKG_BUILD_DIR)/files/usr/share/uspotfilter $(1)/usr/share/ +endef + +$(eval $(call BuildPackage,uspot)) +$(eval $(call BuildPackage,uspot-www)) +$(eval $(call BuildPackage,uspotfilter))