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"
|
echo " ✓ Fixed Makefile include path"
|
||||||
fi
|
fi
|
||||||
done
|
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
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
@ -629,6 +638,15 @@ copy_packages() {
|
|||||||
./scripts/feeds install "$pkg_name" 2>&1 | grep -v "WARNING:" || true
|
./scripts/feeds install "$pkg_name" 2>&1 | grep -v "WARNING:" || true
|
||||||
fi
|
fi
|
||||||
done
|
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
|
fi
|
||||||
|
|
||||||
cd - > /dev/null
|
cd - > /dev/null
|
||||||
@ -1030,6 +1048,16 @@ copy_secubox_to_openwrt() {
|
|||||||
fi
|
fi
|
||||||
done
|
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
|
cd - > /dev/null
|
||||||
|
|
||||||
print_success "Copied $pkg_count SecuBox packages"
|
print_success "Copied $pkg_count SecuBox packages"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user