🎉 Sync 2026-06-14 00:48:20

This commit is contained in:
github-actions[bot]
2026-06-14 00:48:20 +08:00
parent e7e8c48a5e
commit 0b5f398c4f
10 changed files with 169645 additions and 131 deletions
+56 -48
View File
@@ -1,27 +1,39 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2023 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=dae
PKG_VERSION:=1.1.0
PKG_RELEASE:=2
PKG_VERSION:=2026.06.13.2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
PKG_SOURCE_URL:=https://github.com/daeuniverse/dae/releases/download/v$(PKG_VERSION)/dae-full-src.zip?
PKG_SOURCE:=dae-src-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=skip
PKG_LICENSE:=AGPL-3.0-only
PKG_LICENSE_FILE:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_MAINTAINER:=kenzok8
DAE_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(DAE_BUILD_DIR)/core
PKG_BUILD_DEPENDS:=golang/host bpf-headers
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16
# armv7 lacks a CO-RE vmlinux.h for the trace eBPF, so trace's bpf2go fails to
# build there. Apply sbwml/openwrt_helloworld's arm patches (add vmlinux-arm.h
# + drop the kprobe that doesn't work) to let dae build on arm targets.
ifeq ($(ARCH),arm)
PATCH_DIR:=$(CURDIR)/patches_arm
endif
GO_PKG:=github.com/daeuniverse/dae
GO_PKG_EXCLUDES:=control/kern/tests
GO_PKG_LDFLAGS:= \
-s -w -buildid= \
-linkmode external -extldflags '-static -Wl,-s'
GO_PKG_LDFLAGS_X:= \
$(GO_PKG)/cmd.Version=$(PKG_VERSION) \
$(GO_PKG)/common/consts.MaxMatchSetLen_=1024
@@ -31,7 +43,10 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/bpf.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
UNZIP_CMD:=unzip -q -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE)
GO_PKG_BUILD_VARS+= GOFLAGS="-trimpath -buildvcs=false -pgo=auto"
GO_PKG_TARGET_VARS+= \
CGO_LDFLAGS="$(TARGET_LDFLAGS) -static -Wl,-s" \
GOEXPERIMENT=newinliner,simd
define Package/dae/Default
SECTION:=net
@@ -43,36 +58,31 @@ endef
define Package/dae
$(call Package/dae/Default)
TITLE:=A lightweight and high-performance transparent proxy solution
# You need enable KERNEL_DEBUG_INFO_BTF and KERNEL_BPF_EVENTS
DEPENDS:=$(GO_ARCH_DEPENDS) $(BPF_DEPENDS) \
+ca-bundle +kmod-sched-core +kmod-sched-bpf +kmod-xdp-sockets-diag \
+kmod-veth
DEPENDS:=$(GO_ARCH_DEPENDS) \
+ca-bundle +kmod-sched-core +kmod-sched-bpf \
+kmod-veth +v2ray-geoip +v2ray-geosite \
+@KERNEL_XDP_SOCKETS \
+DAE_USE_VMLINUX_BTF:vmlinux-btf
endef
define Package/dae-geoip
$(call Package/dae/Default)
TITLE:=geoip for dae
DEPENDS:=+dae +v2ray-geoip
PKGARCH:=all
endef
define Package/dae/config
choice
prompt "BTF source for CO-RE"
default DAE_USE_KERNEL_BTF
depends on PACKAGE_dae
define Package/dae-geosite
$(call Package/dae/Default)
TITLE:=geosite for dae
DEPENDS:=+dae +v2ray-geosite
PKGARCH:=all
config DAE_USE_KERNEL_BTF
bool "Use kernel BTF (integrated)"
depends on KERNEL_DEBUG_INFO_BTF
config DAE_USE_VMLINUX_BTF
bool "Use vmlinux-btf package"
endchoice
endef
define Package/dae/description
dae, means goose, is a lightweight and high-performance transparent
proxy solution.
In order to improve the traffic diversion performance as much as possible,
dae runs the transparent proxy and traffic diversion suite in the linux
kernel by eBPF. Therefore, we have the opportunity to make the direct
traffic bypass the forwarding by proxy application and achieve true direct
traffic through. Under such a magic trick, there is almost no performance
loss and additional resource consumption for direct traffic.
endef
define Package/dae/conffiles
@@ -86,8 +96,15 @@ DAE_CFLAGS:= \
-I$(BPF_HEADERS_DIR)/tools/lib \
-I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic
define Build/Prepare
mkdir -p $(DAE_BUILD_DIR)
$(TAR) --strip-components=1 -C $(DAE_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
$(if $(wildcard $(PATCH_DIR)/*.patch),$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),))
endef
define Build/Compile
( \
pushd $(PKG_BUILD_DIR) ; \
export \
$(GO_GENERAL_BUILD_CONFIG_VARS) \
$(GO_PKG_BUILD_CONFIG_VARS) \
@@ -97,17 +114,20 @@ define Build/Compile
BPF_CFLAGS="$(DAE_CFLAGS)" \
BPF_TARGET="bpfel,bpfeb" \
BPF_TRACE_TARGET="$(GO_ARCH)" ; \
go generate $(PKG_BUILD_DIR)/control/control.go ; \
go generate $(PKG_BUILD_DIR)/trace/trace.go ; \
$(call GoPackage/Build/Compile) ; \
go generate ./control/control.go ; \
go generate ./trace/trace.go ; \
popd ; \
)
$(call GoPackage/Build/Compile)
endef
define Package/dae/install
$(call GoPackage/Package/Install/Bin,$(1))
$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dae $(1)/usr/bin/dae
$(INSTALL_DIR) $(1)/etc/dae/
$(INSTALL_CONF) $(PKG_BUILD_DIR)/example.dae $(1)/etc/dae/
$(INSTALL_DIR) $(1)/etc/dae
$(INSTALL_CONF) $(PKG_BUILD_DIR)/example.dae $(1)/etc/dae/example.dae
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) $(CURDIR)/files/dae.config $(1)/etc/config/dae
@@ -116,17 +136,5 @@ define Package/dae/install
$(INSTALL_BIN) $(CURDIR)/files/dae.init $(1)/etc/init.d/dae
endef
define Package/dae-geoip/install
$(INSTALL_DIR) $(1)/usr/share/dae
$(LN) ../v2ray/geoip.dat $(1)/usr/share/dae/geoip.dat
endef
define Package/dae-geosite/install
$(INSTALL_DIR) $(1)/usr/share/dae
$(LN) ../v2ray/geosite.dat $(1)/usr/share/dae/geosite.dat
endef
$(eval $(call GoBinPackage,dae))
$(eval $(call BuildPackage,dae))
$(eval $(call BuildPackage,dae-geoip))
$(eval $(call BuildPackage,dae-geosite))