浏览代码

openwrt: update makefile

Nick Peng 4 月之前
父节点
当前提交
8838ba1bd9
共有 1 个文件被更改,包括 88 次插入10 次删除
  1. 88 10
      package/openwrt/Makefile

+ 88 - 10
package/openwrt/Makefile

@@ -1,18 +1,24 @@
 #
 #
-# Copyright (c) 2018-2025 Nick Peng ([email protected])
+# Copyright (c) 2018-2023 Nick Peng ([email protected])
 # This is free software, licensed under the GNU General Public License v3.
 # This is free software, licensed under the GNU General Public License v3.
 #
 #
 
 
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=smartdns
 PKG_NAME:=smartdns
-PKG_VERSION:=1.2023.41
-PKG_RELEASE:=1
+PKG_VERSION:=1.2025.46.2
+PKG_RELEASE:=3
 
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://www.github.com/pymumu/smartdns.git
 PKG_SOURCE_URL:=https://www.github.com/pymumu/smartdns.git
+PKG_SOURCE_VERSION:=64fc9f20fba0e14cb118fe7f145557971cafd858
 PKG_MIRROR_HASH:=skip
 PKG_MIRROR_HASH:=skip
-PKG_SOURCE_VERSION:=60a3719ec739be2cc1e11724ac049b09a75059cb
+
+SMARTDNS_WEBUI_VERSION:=1.0.0
+SMAETDNS_WEBUI_SOURCE_PROTO:=git
+SMARTDNS_WEBUI_SOURCE_URL:=https://github.com/pymumu/smartdns-webui.git
+SMARTDNS_WEBUI_SOURCE_VERSION:=35cbf4a1940f5dd32670c69bd5cc02437ad073e7
+SMARTDNS_WEBUI_FILE:=smartdns-webui-$(SMARTDNS_WEBUI_VERSION).tar.gz
 
 
 PKG_MAINTAINER:=Nick Peng <[email protected]>
 PKG_MAINTAINER:=Nick Peng <[email protected]>
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE:=GPL-3.0-or-later
@@ -20,19 +26,29 @@ PKG_LICENSE_FILES:=LICENSE
 
 
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_PARALLEL:=1
 
 
+# node compile is slow, so do not use it, download node manually.
+# PACKAGE_smartdns-ui:node/host
+PKG_BUILD_DEPENDS:=PACKAGE_smartdns-ui:rust/host 
+
+include ../../lang/rust/rust-package.mk
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/package.mk
 
 
 MAKE_VARS += VER=$(PKG_VERSION) 
 MAKE_VARS += VER=$(PKG_VERSION) 
 MAKE_PATH:=src
 MAKE_PATH:=src
 
 
-define Package/smartdns
+define Package/smartdns/default
   SECTION:=net
   SECTION:=net
   CATEGORY:=Network
   CATEGORY:=Network
-  TITLE:=smartdns server
-  DEPENDS:=+libpthread +libopenssl
+  SUBMENU:=IP Addresses and Names
   URL:=https://www.github.com/pymumu/smartdns/
   URL:=https://www.github.com/pymumu/smartdns/
 endef
 endef
 
 
+define Package/smartdns
+  $(Package/smartdns/default)
+  TITLE:=smartdns server
+  DEPENDS:=+libpthread +libopenssl +libatomic
+endef
+
 define Package/smartdns/description
 define Package/smartdns/description
 SmartDNS is a local DNS server which accepts DNS query requests from local network clients,
 SmartDNS is a local DNS server which accepts DNS query requests from local network clients,
 gets DNS query results from multiple upstream DNS servers concurrently, and returns the fastest IP to clients.
 gets DNS query results from multiple upstream DNS servers concurrently, and returns the fastest IP to clients.
@@ -51,15 +67,77 @@ endef
 define Package/smartdns/install
 define Package/smartdns/install
 	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d 
 	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d 
 	$(INSTALL_DIR) $(1)/etc/smartdns $(1)/etc/smartdns/domain-set $(1)/etc/smartdns/conf.d/
 	$(INSTALL_DIR) $(1)/etc/smartdns $(1)/etc/smartdns/domain-set $(1)/etc/smartdns/conf.d/
-	$(INSTALL_DIR) $(1)/etc/smartdns/ip-set $(1)/etc/smartdns/download
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smartdns $(1)/usr/sbin/smartdns
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smartdns $(1)/usr/sbin/smartdns
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/package/openwrt/files/etc/init.d/smartdns $(1)/etc/init.d/smartdns
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/package/openwrt/files/etc/init.d/smartdns $(1)/etc/init.d/smartdns
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/address.conf $(1)/etc/smartdns/address.conf
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/address.conf $(1)/etc/smartdns/address.conf
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/blacklist-ip.conf $(1)/etc/smartdns/blacklist-ip.conf
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/blacklist-ip.conf $(1)/etc/smartdns/blacklist-ip.conf
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/custom.conf $(1)/etc/smartdns/custom.conf
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/custom.conf $(1)/etc/smartdns/custom.conf
-	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/domain-block.list $(1)/etc/smartdns/domain-block.list
-	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/domain-forwarding.list $(1)/etc/smartdns/domain-forwarding.list
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/files/etc/config/smartdns $(1)/etc/config/smartdns
 	$(INSTALL_CONF) $(PKG_BUILD_DIR)/package/openwrt/files/etc/config/smartdns $(1)/etc/config/smartdns
 endef
 endef
 
 
+define Package/smartdns-ui
+  $(Package/smartdns/default)
+  TITLE:=smartdns dashboard
+  DEPENDS:=+smartdns $(RUST_ARCH_DEPENDS)
+endef
+
+define Package/smartdns-ui/description
+A dashboard ui for smartdns server.
+endef
+
+define Package/smartdns-ui/conffiles
+/etc/config/smartdns
+endef
+
+define Package/smartdns-ui/install
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(INSTALL_DIR) $(1)/etc/smartdns/conf.d/
+	$(INSTALL_DIR) $(1)/usr/share/smartdns/wwwroot
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/plugin/smartdns-ui/target/libsmartdns_ui.so $(1)/usr/lib/libsmartdns_ui.so
+	$(CP) $(PKG_BUILD_DIR)/smartdns-webui/out/* $(1)/usr/share/smartdns/wwwroot
+endef
+
+define Build/Compile/smartdns-webui
+	which npm || (echo "npm not found, please install npm first" && exit 1)
+	npm install --prefix $(PKG_BUILD_DIR)/smartdns-webui/
+	npm run build --prefix $(PKG_BUILD_DIR)/smartdns-webui/
+endef
+
+define Build/Compile/smartdns-ui
+	cargo install --force --locked bindgen-cli
+	CARGO_BUILD_ARGS="$(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") --profile $(CARGO_PKG_PROFILE)"
+	+$(CARGO_PKG_VARS) CARGO_BUILD_ARGS="$(CARGO_BUILD_ARGS)" CC=$(TARGET_CC) \
+	PATH="$$(PATH):$(CARGO_HOME)/bin" \
+	make -C $(PKG_BUILD_DIR)/plugin/smartdns-ui
+endef
+
+define Download/smartdns-webui
+	FILE:=$(SMARTDNS_WEBUI_FILE)
+	PROTO:=$(SMAETDNS_WEBUI_SOURCE_PROTO)
+	URL:=$(SMARTDNS_WEBUI_SOURCE_URL)
+	MIRROR_HASH:=b3f4f73b746ee169708f6504c52b33d9bbeb7c269b731bd7de4f61d0ad212d74
+	VERSION:=$(SMARTDNS_WEBUI_SOURCE_VERSION)
+	HASH:=$(SMARTDNS_WEBUI_HASH)
+	SUBDIR:=smartdns-webui
+endef
+$(eval $(call Download,smartdns-webui))
+
+ifdef CONFIG_PACKAGE_smartdns-ui
+define Build/Prepare
+	$(call Build/Prepare/Default)
+	$(TAR) -C $(PKG_BUILD_DIR)/ -xf $(DL_DIR)/$(SMARTDNS_WEBUI_FILE)
+endef
+endif
+
+define Build/Compile
+	$(call Build/Compile/Default,smartdns)
+ifdef CONFIG_PACKAGE_smartdns-ui
+	$(call Build/Compile/smartdns-ui)
+	$(call Build/Compile/smartdns-webui)
+endif
+endef
+
 $(eval $(call BuildPackage,smartdns))
 $(eval $(call BuildPackage,smartdns))
+$(eval $(call RustBinPackage,smartdns-ui))
+$(eval $(call BuildPackage,smartdns-ui))
+