Przeglądaj źródła

openwrt: update makefile

Nick Peng 4 miesięcy temu
rodzic
commit
8838ba1bd9
1 zmienionych plików z 88 dodań i 10 usunięć
  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.
 #
 
 include $(TOPDIR)/rules.mk
 
 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_URL:=https://www.github.com/pymumu/smartdns.git
+PKG_SOURCE_VERSION:=64fc9f20fba0e14cb118fe7f145557971cafd858
 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_LICENSE:=GPL-3.0-or-later
@@ -20,19 +26,29 @@ PKG_LICENSE_FILES:=LICENSE
 
 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
 
 MAKE_VARS += VER=$(PKG_VERSION) 
 MAKE_PATH:=src
 
-define Package/smartdns
+define Package/smartdns/default
   SECTION:=net
   CATEGORY:=Network
-  TITLE:=smartdns server
-  DEPENDS:=+libpthread +libopenssl
+  SUBMENU:=IP Addresses and Names
   URL:=https://www.github.com/pymumu/smartdns/
 endef
 
+define Package/smartdns
+  $(Package/smartdns/default)
+  TITLE:=smartdns server
+  DEPENDS:=+libpthread +libopenssl +libatomic
+endef
+
 define Package/smartdns/description
 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.
@@ -51,15 +67,77 @@ endef
 define Package/smartdns/install
 	$(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/ip-set $(1)/etc/smartdns/download
 	$(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_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/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
 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 RustBinPackage,smartdns-ui))
+$(eval $(call BuildPackage,smartdns-ui))
+