From bde19aa6eb29545d46380336c9afc2273e9df06d Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Sat, 7 Jul 2018 01:03:48 +0800 Subject: [PATCH] Support optware --- package/openwrt/Makefile | 34 +++++++++++++++++ package/optware/S50smartdns | 63 +++++++++++++++++++++++++++++++ package/optware/control/conffiles | 1 + package/optware/control/control | 11 ++++++ package/optware/control/postinst | 10 +++++ package/optware/control/prerm | 3 ++ package/optware/debian-binary | 1 + package/optware/make.sh | 28 ++++++++++++++ 8 files changed, 151 insertions(+) create mode 100644 package/openwrt/Makefile create mode 100644 package/optware/S50smartdns create mode 100644 package/optware/control/conffiles create mode 100644 package/optware/control/control create mode 100644 package/optware/control/postinst create mode 100644 package/optware/control/prerm create mode 100644 package/optware/debian-binary create mode 100644 package/optware/make.sh diff --git a/package/openwrt/Makefile b/package/openwrt/Makefile new file mode 100644 index 0000000..e5aa7f9 --- /dev/null +++ b/package/openwrt/Makefile @@ -0,0 +1,34 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=smarttdns +PKG_VERSION:=2018.7.1.1607 +PKG_RELEASE:=$(PKG_SOURCE_VERSION) + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/smartdns + SECTION:=net + CATEGORY:=Network + TITLE:=smartdns + URL:=https://github.com/pymumu/smartdns + MAINTAINER:=Nick Peng + DEPENDS:= +endef + +define Package/smartdns/description + smartdns server, find fastest ip. +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + cp -r ../* $(PKG_BUILD_DIR) +endef + +define Package/smartdns/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/smartdns $(1)/usr/sbin +endef + +$(eval $(call BuildPackage, smartdns)) diff --git a/package/optware/S50smartdns b/package/optware/S50smartdns new file mode 100644 index 0000000..cd9aef1 --- /dev/null +++ b/package/optware/S50smartdns @@ -0,0 +1,63 @@ +#! /bin/sh + +SMARTDNS_BIN=/opt/usr/sbin/smartdns +SMARTDNS_CONF=/opt/etc/smartdns/smartdns.conf +SMARTDNS_PID="/var/run/smartdns.pid" +SMARTDNS_PORT=535 + +set_iptable() +{ + iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT +} + +clear_iptable() +{ + iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT +} + +case "$1" in + start) + set_iptable + if [ $? -ne 0 ]; then + exit 1 + fi + + $SMARTDNS_BIN -c $SMARTDNS_CONF -p $SMARTDNS_PID + if [ $? -ne 0 ]; then + clear_iptable + fi + ;; + status) + pid="`cat $SMARTDNS_PID 2>/dev/null`" + if [ -z "$pid" ]; then + echo "smartdns not running." + return 0 + fi + + if [ -d "/proc/$pid" ]; then + echo "smartdns running" + return 0; + fi + echo "smartdns not running." + return 0; + ;; + stop) + clear_iptable + pid="`cat $SMARTDNS_PID 2>/dev/null`" + kill -TERM $pid 2>/dev/null + ;; + force-reload|restart) + $0 stop + $0 start + ;; + enable) + nvram set apps_state_enable=2 + nvram set apps_state_error=0 + nvram set apps_state_install=5 + nvram set apps_state_action=install + nvram set apps_u2ec_ex=2 + ;; + *) + ;; +esac + diff --git a/package/optware/control/conffiles b/package/optware/control/conffiles new file mode 100644 index 0000000..9f772ed --- /dev/null +++ b/package/optware/control/conffiles @@ -0,0 +1 @@ +/opt/etc/smartdns/smartdns.conf diff --git a/package/optware/control/control b/package/optware/control/control new file mode 100644 index 0000000..18866e5 --- /dev/null +++ b/package/optware/control/control @@ -0,0 +1,11 @@ +Package: smartdns +Architecture: mipsbig +Priority: optional +Section: net +Version: 2018.7.6-1921 +Maintainer: pymumu +Source: http://127.0.0.1/ +Description: A smart dns server +Suggests: +Conflicts: +Enabled: yes diff --git a/package/optware/control/postinst b/package/optware/control/postinst new file mode 100644 index 0000000..1462610 --- /dev/null +++ b/package/optware/control/postinst @@ -0,0 +1,10 @@ +#! /bin/sh + +chmod +x /opt/usr/sbin/smartdns +chmod +x /opt/etc/init.d/S50smartdns + + + + + + diff --git a/package/optware/control/prerm b/package/optware/control/prerm new file mode 100644 index 0000000..bfaa2fe --- /dev/null +++ b/package/optware/control/prerm @@ -0,0 +1,3 @@ +#! /bin/sh + +/opt/etc/init.d/S50smartdns stop diff --git a/package/optware/debian-binary b/package/optware/debian-binary new file mode 100644 index 0000000..cd5ac03 --- /dev/null +++ b/package/optware/debian-binary @@ -0,0 +1 @@ +2.0 diff --git a/package/optware/make.sh b/package/optware/make.sh new file mode 100644 index 0000000..752d005 --- /dev/null +++ b/package/optware/make.sh @@ -0,0 +1,28 @@ +#/bin/sh + +CURR_DIR=`pwd` + +SMARTDNS_BIN=$CURR_DIR/../../src/smartdns +SMARTDNS_CONF=$CURR_DIR/../../etc/smartdns/smartdns.conf +ROOT=/tmp/smartdns-optware +rm -fr $ROOT + +mkdir -p $ROOT +cp * $ROOT/ -af +cd $ROOT/ +mkdir $ROOT/opt/usr/sbin -p +mkdir $ROOT/opt/etc/init.d -p +mkdir $ROOT/opt/etc/smartdns/ -p + +cp $SMARTDNS_CONF $ROOT/opt/etc/smartdns/ +cp S50smartdns $ROOT/opt/etc/init.d/ +cp $SMARTDNS_BIN $ROOT/opt/usr/sbin + +cd $ROOT/control +chmod +x * +tar zcf ../control.tar.gz ./ +cd $ROOT + +tar zcf data.tar.gz opt +tar zcf $CURR_DIR/smartdns.2018.7.6-1933.mipsbig.ipk control.tar.gz data.tar.gz debian-binary +rm -fr $ROOT/ \ No newline at end of file