Closed sbwml closed 1 year ago
不知道有没有人注意到从源码构建 naiveproxy 是一件非常耗时的事情,尤其在 github actions 这种性能有限的环境下,从源码 naiveproxy 至少需要一个多小时才能完成这一个 pkg,假如在构建 OpenWrt 固件时启用了 ALL_KMODS 和 额外增加一些比较耗时的插件,github runner 一不小心就会超过 6 小时被终止任务。
然而 naiveproxy 上游有发布基于 openwrt sdk 构建的二进制文件,而且是动态的,它和我们平时从源码构建出来几乎完全一致,如果直接使用 “下载” 二进制的方式替代现有的源码构建,能节省不少的耗时。
或者可以新建一个包 naiveproxy_prebuilt,由用户自行选择通过源码构建还是直接使用上游的 prebuilt。
naiveproxy_prebuilt
# SPDX-License-Identifier: GPL-3.0-only # # Copyright (C) 2021 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy PKG_VERSION:=116.0.5845.92-2 PKG_RELEASE:=1 PKG_SOURCE:=naiveproxy-v$(PKG_VERSION)-openwrt-$(ARCH_PACKAGES).tar.xz PKG_SOURCE_URL:=https://github.com/klzgrad/naiveproxy/releases/download/v$(PKG_VERSION)/ PKG_HASH:=skip PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> PKG_BUILD_DIR:=$(BUILD_DIR)/naiveproxy-v$(PKG_VERSION)-openwrt-$(ARCH_PACKAGES) include $(INCLUDE_DIR)/package.mk define Package/naiveproxy SECTION:=net CATEGORY:=Network SUBMENU:=Web Servers/Proxies TITLE:=Make a fortune quietly URL:=https://github.com/klzgrad/naiveproxy DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) +libatomic endef define Package/naiveproxy/description NaïveProxy uses Chrome's network stack to camouflage traffic with strong censorship resistance and low detectability. Reusing Chrome's stack also ensures best practices in performance and security. endef define Build/Compile endef define Package/naiveproxy/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/naive $(1)/usr/bin/naive endef $(eval $(call BuildPackage,naiveproxy))
👆 上面是一个可用 Makefile 参考,因为架构太多了,也懒,文件 HASH 值就没逐一放在示例 Makefile 中了,直接 skip 掉了
No response
这样就可以让需要构建 naiveproxy 时,从1小时的耗时变成 5 秒钟。
确实如此,我是偶尔编译一次保留下来,半年一年的再来一次,平常几乎不用这个协议
描述你想要的新功能
不知道有没有人注意到从源码构建 naiveproxy 是一件非常耗时的事情,尤其在 github actions 这种性能有限的环境下,从源码 naiveproxy 至少需要一个多小时才能完成这一个 pkg,假如在构建 OpenWrt 固件时启用了 ALL_KMODS 和 额外增加一些比较耗时的插件,github runner 一不小心就会超过 6 小时被终止任务。
然而 naiveproxy 上游有发布基于 openwrt sdk 构建的二进制文件,而且是动态的,它和我们平时从源码构建出来几乎完全一致,如果直接使用 “下载” 二进制的方式替代现有的源码构建,能节省不少的耗时。
或者可以新建一个包
naiveproxy_prebuilt
,由用户自行选择通过源码构建还是直接使用上游的 prebuilt。描述你想要的解决方案
描述你考虑过的替代方案
👆 上面是一个可用 Makefile 参考,因为架构太多了,也懒,文件 HASH 值就没逐一放在示例 Makefile 中了,直接 skip 掉了
其他信息
No response