From e3f33820a1677a0cbc246b196832ea24e20ad933 Mon Sep 17 00:00:00 2001 From: sbwml Date: Sun, 10 Sep 2023 15:51:55 +0800 Subject: [PATCH] naiveproxy: use prebuilt --- naiveproxy/Makefile | 88 ++++--------------------- naiveproxy/files/naiveproxy.config | 6 ++ naiveproxy/files/naiveproxy.init | 47 ++++++++++++++ naiveproxy/patches/100-macros.patch | 38 ----------- naiveproxy/src/init_env.sh | 99 ----------------------------- 5 files changed, 65 insertions(+), 213 deletions(-) create mode 100644 naiveproxy/files/naiveproxy.config create mode 100644 naiveproxy/files/naiveproxy.init delete mode 100644 naiveproxy/patches/100-macros.patch delete mode 100755 naiveproxy/src/init_env.sh diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 061250fa9..3b23d1280 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,35 +5,18 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=113.0.5672.62-1 +PKG_VERSION:=116.0.5845.92-2 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f8e86f5e9fc8985042d4fa8e0122b513f187cc878bfbabf133e520fa8d5f3410 +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 -PKG_BUILD_DEPENDS:=gn/host -ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) -PKG_BUILD_DEPENDS+= ninja/host -endif -PKG_BUILD_PARALLEL:=1 -PKG_USE_MIPS16:=0 -PKG_BUILD_FLAGS:=no-mips16 - -ifneq ($(CONFIG_CPU_TYPE)," ") - CPU_TYPE:=$(word 1, $(subst +," ,$(CONFIG_CPU_TYPE))) - CPU_SUBTYPE:=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) - ifeq ($(CPU_SUBTYPE),) - CPU_SUBTYPE:="" - endif -else - CPU_TYPE:="" - CPU_SUBTYPE:="" -endif +PKG_BUILD_DIR:=$(BUILD_DIR)/naiveproxy-v$(PKG_VERSION)-openwrt-$(ARCH_PACKAGES) include $(INCLUDE_DIR)/package.mk @@ -43,7 +26,7 @@ define Package/naiveproxy SUBMENU:=Web Servers/Proxies TITLE:=Make a fortune quietly URL:=https://github.com/klzgrad/naiveproxy - DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||riscv64||TARGET_gemini) +libatomic + DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) endef define Package/naiveproxy/description @@ -52,66 +35,19 @@ define Package/naiveproxy/description ensures best practices in performance and security. endef -ifneq ($(CONFIG_CCACHE),) - export CCACHE_SLOPPINESS=time_macros - export CCACHE_BASEDIR=$(PKG_BUILD_DIR)/src - export CCACHE_CPP2=yes - export naive_ccache_flags=cc_wrapper="$(CCACHE)" -endif - -CLANG_VER:=17-init-4759-g547e3456-1 -CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz -define Download/CLANG - URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 - URL_FILE:=$(CLANG_FILE) - FILE:=$(CLANG_FILE) - HASH:=1949427e0030523dc86bdf4b63dac88228cfe05c57318be2d0b0b290297925f6 -endef - -PGO_VER:=5672-1682419203-4df9c2f8b97b0e23303fa2b15279906232abc306 -PGO_FILE:=chrome-linux-$(PGO_VER).profdata -define Download/PGO_PROF - URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles - URL_FILE:=$(PGO_FILE) - FILE:=$(PGO_FILE) - HASH:=5fae812f617d882222cd5aa5620fb355583391127f608759b030c231b71d4c90 -endef - -define Build/Prepare - $(call Build/Prepare/Default) - - ( \ - pushd $(PKG_BUILD_DIR)/src ; \ - mkdir -p "chrome/build/pgo_profiles" ; \ - $(CP) "$(DL_DIR)/$(PGO_FILE)" "chrome/build/pgo_profiles" ; \ - mkdir -p "third_party/llvm-build/Release+Asserts" ; \ - $(TAR) -xzf "$(DL_DIR)/$(CLANG_FILE)" -C "third_party/llvm-build/Release+Asserts" ; \ - echo -e "llvmorg-$(CLANG_VER)" > "third_party/llvm-build/Release+Asserts/cr_build_revision" ; \ - popd ; \ - ) -endef - -define Build/Configure - ( \ - pushd "$(PKG_BUILD_DIR)/src" ; \ - . ../init_env.sh "$(ARCH)" $(CPU_TYPE) $(CPU_SUBTYPE) "$(TOOLCHAIN_DIR)" ; \ - export naive_flags+=" $$$${naive_ccache_flags}" ; \ - mkdir -p "out" ; \ - gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="$(PYTHON)" ; \ - popd ; \ - ) +define Package/naiveproxy/conffiles +/etc/config/naiveproxy endef define Build/Compile - ninja -C "$(PKG_BUILD_DIR)/src/out/Release" naive endef define Package/naiveproxy/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/out/Release/naive $(1)/usr/bin/naive + $(INSTALL_BIN) $(PKG_BUILD_DIR)/naive $(1)/usr/bin/naive + $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d + $(INSTALL_CONF) $(CURDIR)/files/naiveproxy.config $(1)/etc/config/naiveproxy + $(INSTALL_BIN) $(CURDIR)/files/naiveproxy.init $(1)/etc/init.d/naiveproxy endef -$(eval $(call Download,CLANG)) -$(eval $(call Download,PGO_PROF)) - $(eval $(call BuildPackage,naiveproxy)) diff --git a/naiveproxy/files/naiveproxy.config b/naiveproxy/files/naiveproxy.config new file mode 100644 index 000000000..439e30bef --- /dev/null +++ b/naiveproxy/files/naiveproxy.config @@ -0,0 +1,6 @@ + +config naiveproxy 'config' + option enable '0' + option listen_addr '' + option server_addr '' + option extra_argument '' diff --git a/naiveproxy/files/naiveproxy.init b/naiveproxy/files/naiveproxy.init new file mode 100644 index 000000000..e483b48a3 --- /dev/null +++ b/naiveproxy/files/naiveproxy.init @@ -0,0 +1,47 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2021 ImmortalWrt + +. /lib/functions.sh +. /lib/functions/procd.sh + +USE_PROCD=1 + +START=99 +STOP=10 + +init_conf() { + config_load "naiveproxy" + config_get "enable" "config" "enable" "0" + config_get "listen_addr" "config" "listen_addr" + config_get "server_addr" "config" "server_addr" + config_get "extra_argument" "config" "extra_argument" +} + +start_service() { + init_conf + [ "${enable}" == "1" ] || return 0 + + procd_open_instance naiveproxy + + procd_set_param command naive + procd_append_param command --listen="${listen_addr}" + procd_append_param command --proxy="${server_addr}" + [ -n "${extra_argument}" ] && procd_append_param command "${extra_argument}" + + procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + procd_set_param limits core="unlimited" + procd_set_param stdout 1 + procd_set_param stderr 1 + + procd_close_instance +} + +reload_service() +{ + stop + start +} + +service_triggers() { + procd_add_reload_trigger "naiveproxy" +} diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch deleted file mode 100644 index f317ccb07..000000000 --- a/naiveproxy/patches/100-macros.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/src/base/allocator/partition_allocator/tagging.cc -+++ b/src/base/allocator/partition_allocator/tagging.cc -@@ -18,22 +18,25 @@ - #define PR_GET_TAGGED_ADDR_CTRL 56 - #define PR_TAGGED_ADDR_ENABLE (1UL << 0) - --#if BUILDFLAG(IS_LINUX) --#include -- --// Linux headers already provide these since v5.10. --#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) --#define HAS_PR_MTE_MACROS --#endif --#endif -- --#ifndef HAS_PR_MTE_MACROS -+#ifndef PR_MTE_TCF_SHIFT - #define PR_MTE_TCF_SHIFT 1 -+#endif -+#ifndef PR_MTE_TCF_NONE - #define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_SYNC - #define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_ASYNC - #define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_MASK - #define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TAG_SHIFT - #define PR_MTE_TAG_SHIFT 3 -+#endif -+#ifndef PR_MTE_TAG_MASK - #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) - #endif - #endif diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh deleted file mode 100755 index eb777f358..000000000 --- a/naiveproxy/src/init_env.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: GPL-3.0-only -# -# Copyright (C) 2021 ImmortalWrt.org -# -------------------------------------------------------- -# Init build dependencies for naiveproxy - -# Read args from shell -target_arch="$1" -cpu_type="$2" -cpu_subtype="$3" -toolchain_dir="$4" - -# Set arch info -case "${target_arch}" in -"aarch64") - naive_arch="arm64" - ;; -"i386") - naive_arch="x86" - ;; -"x86_64") - naive_arch="x64" - ;; -*) - naive_arch="${target_arch}" - ;; -esac - -# OS detection -[ "$(uname)" != "Linux" -o "$(uname -m)" != "x86_64" ] && { echo -e "Support Linux AMD64 only."; exit 1; } - -# Create TMP dir -mkdir -p "$PWD/tmp" -export TMPDIR="$PWD/tmp" - -# Set ENV -export DEPOT_TOOLS_WIN_TOOLCHAIN=0 -export naive_flags=" -is_official_build=true -exclude_unwind_tables=true -enable_resource_allowlist_generation=false -symbol_level=1 -is_clang=true -use_sysroot=false - -fatal_linker_warnings=false -treat_warnings_as_errors=false - -enable_base_tracing=false -use_udev=false -use_aura=false -use_ozone=false -use_gio=false -use_gtk=false -use_platform_icu_alternatives=true -use_glib=false - -disable_file_support=true -enable_websockets=false -use_kerberos=false -enable_mdns=false -enable_reporting=false -include_transport_security_state_preload_list=false -use_nss_certs=false - -target_os=\"openwrt\" -target_cpu=\"${naive_arch}\" -target_sysroot=\"${toolchain_dir}\"" - -case "${target_arch}" in -"arm") - naive_flags+=" arm_version=0 arm_cpu=\"${cpu_type}\"" - case "${cpu_type}" in "arm1176jzf-s"|"arm926ej-s"|"mpcore"|"xscale") naive_flags+=" arm_use_thumb=false" ;; esac - if [ -n "${cpu_subtype}" ]; then - if grep -q "neon" <<< "${cpu_subtype}"; then - neon_flag="arm_use_neon=true" - else - neon_flag="arm_use_neon=false" - fi - naive_flags+=" arm_fpu=\"${cpu_subtype}\" arm_float_abi=\"hard\" ${neon_flag}" - else - naive_flags+=" arm_float_abi=\"soft\" arm_use_neon=false" - fi - ;; -"arm64") - [ -n "${cpu_type}" ] && naive_flags+=" arm_cpu=\"${cpu_type}\"" - ;; -"mipsel"|"mips64el") - naive_flags+=" use_thin_lto=false chrome_pgo_phase=0 mips_arch_variant=\"r2\"" - if [ "${target_arch}" == "mipsel" ]; then - if [ "${cpu_subtype}" == "24kf" ]; then - naive_flags+=" mips_float_abi=\"hard\"" - else - naive_flags+=" mips_float_abi=\"soft\"" - fi - fi - ;; -esac