mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-31 10:45:13 +08:00
🎉 Sync 2026-09-27 21:03:26
This commit is contained in:
1 parent
f4559bbed1
commit
065763f7fd
673 files changed
+261285
-34160
No files matched your search
@@ -0,0 +1,179 @@
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 3
|
||||
# of the License, or (at your option) any later version.
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=safeshield
|
||||
PKG_VERSION:=0.3.24
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Beomjun Kang <kals323@gmail.com>
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/safeshield
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=SafeShield DNS Block Service
|
||||
URL:=https://github.com/Junatum/safeshield
|
||||
DEPENDS:= \
|
||||
+jshn \
|
||||
+jsonfilter \
|
||||
+uci \
|
||||
+uclient-fetch \
|
||||
+dnsmasq \
|
||||
+gzip \
|
||||
+coreutils-sort \
|
||||
+coreutils-cksum \
|
||||
+!BUSYBOX_DEFAULT_SHA256SUM:coreutils-sha256sum \
|
||||
+!BUSYBOX_DEFAULT_AWK:gawk \
|
||||
+!BUSYBOX_DEFAULT_GREP:grep \
|
||||
+!BUSYBOX_DEFAULT_SED:sed \
|
||||
+procd \
|
||||
+rpcd \
|
||||
+rpcd-mod-ucode \
|
||||
+ucode \
|
||||
+ucode-mod-fs \
|
||||
+ucode-mod-ubus \
|
||||
+ucode-mod-uci
|
||||
EXTRA_DEPENDS:=dnsmasq (>=2.93)
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/safeshield/description
|
||||
SafeShield is a Lightweight, DNS-based protection for OpenWrt — block ads and phishing sites.
|
||||
endef
|
||||
|
||||
define Package/safeshield/conffiles
|
||||
/etc/config/safeshield
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/safeshield/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/etc/init.d/safeshield $(1)/etc/init.d/safeshield
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/libexec
|
||||
$(INSTALL_BIN) ./files/usr/libexec/safeshield-refreshd $(1)/usr/libexec/safeshield-refreshd
|
||||
$(INSTALL_BIN) ./files/usr/libexec/safeshield-statsd $(1)/usr/libexec/safeshield-statsd
|
||||
$(INSTALL_BIN) ./files/usr/libexec/safeshield-stats-poll $(1)/usr/libexec/safeshield-stats-poll
|
||||
$(INSTALL_BIN) ./files/usr/libexec/safeshield-stats-identities $(1)/usr/libexec/safeshield-stats-identities
|
||||
$(INSTALL_BIN) ./files/usr/libexec/safeshield-statistics-uploader $(1)/usr/libexec/safeshield-statistics-uploader
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/etc/config/safeshield $(1)/etc/config/safeshield
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/90_safeshield_identity $(1)/etc/uci-defaults/90_safeshield_identity
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/safeshield
|
||||
$(INSTALL_BIN) ./files/usr/lib/safeshield/core.sh $(1)/usr/lib/safeshield/core.sh
|
||||
$(INSTALL_BIN) ./files/usr/lib/safeshield/log.sh $(1)/usr/lib/safeshield/log.sh
|
||||
$(INSTALL_BIN) ./files/usr/lib/safeshield/status.sh $(1)/usr/lib/safeshield/status.sh
|
||||
$(INSTALL_BIN) ./files/usr/lib/safeshield/utils.sh $(1)/usr/lib/safeshield/utils.sh
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/config.sh $(1)/usr/lib/safeshield/config.sh
|
||||
$(INSTALL_BIN) ./files/usr/lib/safeshield/identity.sh $(1)/usr/lib/safeshield/identity.sh
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/dns.sh $(1)/usr/lib/safeshield/dns.sh
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/blocklist.sh $(1)/usr/lib/safeshield/blocklist.sh
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/status-store.uc $(1)/usr/lib/safeshield/status-store.uc
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/statistics.sh $(1)/usr/lib/safeshield/statistics.sh
|
||||
$(INSTALL_DIR) $(1)/usr/lib/safeshield/statistics
|
||||
$(INSTALL_DATA) ./files/usr/lib/safeshield/statistics/*.awk $(1)/usr/lib/safeshield/statistics/
|
||||
echo '$(PKG_VERSION)-r$(PKG_RELEASE)' > $(1)/usr/lib/safeshield/version
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/rpcd/ucode
|
||||
$(INSTALL_BIN) ./files/usr/share/rpcd/ucode/safeshield.uc $(1)/usr/share/rpcd/ucode/safeshield.uc
|
||||
$(INSTALL_DIR) $(1)/usr/share/rpcd/ucode/safeshield
|
||||
$(INSTALL_DATA) ./files/usr/share/rpcd/ucode/safeshield/*.uc $(1)/usr/share/rpcd/ucode/safeshield/
|
||||
$(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d
|
||||
$(INSTALL_DATA) ./files/usr/share/rpcd/acl.d/safeshield.json $(1)/usr/share/rpcd/acl.d/safeshield.json
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/safeshield $(1)/lib/upgrade/keep.d/safeshield
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/licenses/safeshield
|
||||
$(INSTALL_DATA) ./LICENSE $(1)/usr/share/licenses/safeshield/GPL-3.0.txt
|
||||
$(INSTALL_DATA) ./THIRD_PARTY_NOTICES.md $(1)/usr/share/licenses/safeshield/THIRD_PARTY_NOTICES.md
|
||||
endef
|
||||
|
||||
define Package/safeshield/postinst
|
||||
#!/bin/sh
|
||||
IPKG_INSTROOT="$${IPKG_INSTROOT:-}"
|
||||
export IPKG_INSTROOT
|
||||
PKG_NAME='safeshield'
|
||||
export PKG_NAME
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
mkdir -p /etc/safeshield
|
||||
if [ -r /usr/lib/safeshield/identity.sh ]; then
|
||||
(
|
||||
# apk may execute package lifecycle scripts with nounset enabled.
|
||||
# Runtime helpers are intentionally compatible with normal OpenWrt
|
||||
# /bin/sh semantics, so isolate them from the package-manager shell.
|
||||
set +u
|
||||
. /lib/functions.sh 2>/dev/null || true
|
||||
. /lib/functions/system.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/utils.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/log.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/status.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/config.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/identity.sh 2>/dev/null || true
|
||||
. /usr/lib/safeshield/blocklist.sh 2>/dev/null || true
|
||||
ss_load_config >/dev/null 2>&1 || true
|
||||
model="$(ss_detect_device_model 2>/dev/null || cat /tmp/sysinfo/model 2>/dev/null || echo OpenWrt)"
|
||||
arch="$(ss_detect_device_arch 2>/dev/null || uname -m 2>/dev/null || echo unknown)"
|
||||
ss_identity_ensure "$model" "$arch" >/dev/null 2>&1 || true
|
||||
)
|
||||
fi
|
||||
if [ ! -f /etc/safeshield/allowlist ]; then
|
||||
cat << 'EOF' > /etc/safeshield/allowlist
|
||||
# SafeShield allowlist
|
||||
# Add domains to always allow (one per line)
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Create default blocklist if not exists
|
||||
if [ ! -f /etc/safeshield/blocklist ]; then
|
||||
cat << 'EOF' > /etc/safeshield/blocklist
|
||||
# SafeShield blocklist
|
||||
# Add domains to always block (one per line)
|
||||
EOF
|
||||
fi
|
||||
|
||||
chmod 644 /etc/safeshield/allowlist
|
||||
chmod 644 /etc/safeshield/blocklist
|
||||
|
||||
# Enable and restart service
|
||||
/etc/init.d/safeshield enable >/dev/null 2>&1 || true
|
||||
/etc/init.d/safeshield restart >/dev/null 2>&1 || true
|
||||
|
||||
# Reload rpcd for LuCI integration
|
||||
if [ -x /etc/init.d/rpcd ]; then
|
||||
/etc/init.d/rpcd reload >/dev/null 2>&1 || \
|
||||
/etc/init.d/rpcd restart >/dev/null 2>&1 || true
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
endef
|
||||
|
||||
define Package/safeshield/prerm
|
||||
#!/bin/sh
|
||||
IPKG_INSTROOT="$${IPKG_INSTROOT:-}"
|
||||
export IPKG_INSTROOT
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
echo -n "Stopping safeshield service... "
|
||||
/etc/init.d/safeshield stop >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
|
||||
echo -n "Removing rc.d symlink for safeshield... "
|
||||
/etc/init.d/safeshield disable >/dev/null 2>&1 && echo "OK" || echo "FAIL"
|
||||
fi
|
||||
exit 0
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,safeshield))
|
||||
Reference in new issue
Block a user