Add nodogsplash package for firmware builds
This commit is contained in:
parent
7b043850fe
commit
fde18de048
77
package/secubox/nodogsplash/Makefile
Normal file
77
package/secubox/nodogsplash/Makefile
Normal file
@ -0,0 +1,77 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=nodogsplash
|
||||
PKG_VERSION:=5.0.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/nodogsplash/nodogsplash/archive/refs/tags
|
||||
PKG_HASH:=908d3674e93726fdcefb4c3b6705c745753435df9d46425781a57e3f6b417797
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Captive Portals
|
||||
TITLE:=Nodogsplash captive portal
|
||||
URL:=https://github.com/nodogsplash/nodogsplash
|
||||
DEPENDS:=+libmicrohttpd +libjson-c +iptables-nft
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
Nodogsplash provides a simple captive portal solution that intercepts HTTP
|
||||
traffic and serves a customizable splash page before granting network access.
|
||||
This build ships the nodogsplash daemon, ndsctl utility, default templates,
|
||||
and an OpenWrt-style init script compatible with procd.
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
||||
TARGET_LDFLAGS += -Wl,--gc-sections
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||
CC="$(TARGET_CC)" \
|
||||
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
STRIP=no \
|
||||
ENABLE_STATE_FILE=yes \
|
||||
all
|
||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||
CC="$(TARGET_CC)" \
|
||||
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
STRIP=no \
|
||||
ENABLE_STATE_FILE=yes \
|
||||
DESTDIR="$(PKG_INSTALL_DIR)" \
|
||||
install
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/nodogsplash/nodogsplash.conf
|
||||
/etc/nodogsplash/htdocs/splash.html
|
||||
/etc/nodogsplash/htdocs/status.html
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nodogsplash $(1)/usr/bin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ndsctl $(1)/usr/bin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/nodogsplash/htdocs/images
|
||||
$(CP) $(PKG_INSTALL_DIR)/etc/nodogsplash/nodogsplash.conf $(1)/etc/nodogsplash/
|
||||
$(CP) $(PKG_INSTALL_DIR)/etc/nodogsplash/htdocs/* $(1)/etc/nodogsplash/htdocs/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/nodogsplash.init $(1)/etc/init.d/nodogsplash
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
||||
27
package/secubox/nodogsplash/files/nodogsplash.init
Normal file
27
package/secubox/nodogsplash/files/nodogsplash.init
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Nodogsplash captive portal
|
||||
|
||||
START=95
|
||||
STOP=15
|
||||
USE_PROCD=1
|
||||
|
||||
PROG=/usr/bin/nodogsplash
|
||||
CONF=/etc/nodogsplash/nodogsplash.conf
|
||||
|
||||
start_service() {
|
||||
[ -x "$PROG" ] || return 1
|
||||
if [ ! -f "$CONF" ]; then
|
||||
logger -t nodogsplash "Missing $CONF"
|
||||
return 1
|
||||
fi
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command "$PROG" -f "$CONF"
|
||||
procd_set_param file "$CONF"
|
||||
procd_set_param respawn 2000 3 5
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger nodogsplash
|
||||
}
|
||||
@ -593,6 +593,15 @@ copy_packages() {
|
||||
echo " ✓ Fixed Makefile include path"
|
||||
fi
|
||||
done
|
||||
|
||||
# Copy core packages (non-LuCI)
|
||||
for pkg in ../../package/secubox/nodogsplash/; do
|
||||
if [[ -d "$pkg" && -f "${pkg}Makefile" ]]; then
|
||||
local pkg_name=$(basename "$pkg")
|
||||
echo " 📁 $pkg_name"
|
||||
cp -r "$pkg" "$feed_dir/"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@ -629,6 +638,15 @@ copy_packages() {
|
||||
./scripts/feeds install "$pkg_name" 2>&1 | grep -v "WARNING:" || true
|
||||
fi
|
||||
done
|
||||
|
||||
# Install core packages (non-LuCI)
|
||||
for pkg in "$feed_dir"/nodogsplash/; do
|
||||
if [[ -d "$pkg" ]]; then
|
||||
local pkg_name=$(basename "$pkg")
|
||||
echo " Installing $pkg_name..."
|
||||
./scripts/feeds install "$pkg_name" 2>&1 | grep -v "WARNING:" || true
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
cd - > /dev/null
|
||||
@ -1030,6 +1048,16 @@ copy_secubox_to_openwrt() {
|
||||
fi
|
||||
done
|
||||
|
||||
# Copy additional core packages (non-LuCI)
|
||||
for pkg in ../../package/secubox/nodogsplash/; do
|
||||
if [[ -d "$pkg" ]]; then
|
||||
local pkg_name=$(basename "$pkg")
|
||||
echo " ✅ $pkg_name"
|
||||
cp -r "$pkg" package/secubox/
|
||||
pkg_count=$((pkg_count + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
cd - > /dev/null
|
||||
|
||||
print_success "Copied $pkg_count SecuBox packages"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user