Repository navigation
v2raya: update to 2.5.13 - #31261
v2raya: update to 2.5.13#31261amrfateem wants to merge 2 commits into
Conversation
Add the matching v2raya_core binary from the same source tarball. The service and core must always be installed at the same version. v2raya_core is MPL-2.0 and is pure Go; CGO stays disabled on every target. The service keeps CGO for mips and loong64, where its SQLite driver needs it. Signed-off-by: Amr Fateem <amr.fateem@yahoo.com>
Update v2rayA to 2.5.13 and switch to the bundled v2raya_core. Since 2.5.x the service no longer works with an external xray-core. Keep the OpenWrt defaults that matter on a router: the LAN bridge stays in transparent proxy, DNS hijacking stays off, QUIC sniffing stays on, and the Go memory, descriptor and logging defaults are sized for 256 MB devices. Carry those defaults in patches/010-openwrt-defaults.patch so a changed source file fails the build. Install the small read-only detection helper used by the LuCI overview. Clean residual transparent-proxy state on both stop paths. v2rayA can skip the cleanup after a process restart or when no core process is tracked, leaving the nft table and fwmark rule behind and blackholing traffic. Add patches/011-clean-residual-transparent-rules.patch and clean up in the init script's stop_service. Drop the GeoIP parser patch; the fix is in 2.5.13. Rule data continues to come from the existing v2ray-geoip and v2ray-geosite packages. Signed-off-by: Amr Fateem <amr.fateem@yahoo.com>
openwrt/packages#31261 is open and ready for review; openwrt/luci#9243 is open as a draft until the package PR merges. Record the formality results, the stop-path LAN tests and the updated branch names. Signed-off-by: Amr Fateem <amr.fateem@yahoo.com>
|
Please don't open multiple PRs for the same change 1, use the PR template, and don't copy-paste a wall of text description. At a glance the new core package should be a sub package of the existing one. Footnotes |
|
|
||
| case "$1" in | ||
| v2raya) | ||
| /usr/bin/v2raya --version | grep -F "$2" |
There was a problem hiding this comment.
This is already what the default version check does, so this is redundant.
openwrt-ai
left a comment
There was a problem hiding this comment.
Commit checks
- c316a9e "v2raya: update to 2.5.13": the body leaves out several changes in the diff. It does not mention the new
+nftables/+ip-full/+kmod-tundependencies, the switch from the/etc/v2raya/conffile to/lib/upgrade/keep.d, or the new UCI options (baseurl,core_startup_timeout,gomemlimit,gomaxprocs,gogc,nofile,redirect_respect_bound_device).
Generated by Claude Code
| # v2rayA normally removes its tproxy rules on SIGTERM, but a killed | ||
| # process or a proxy-only stop can leave them behind. Remove any | ||
| # residual state so stopping the service always restores connectivity. | ||
| nft delete table inet v2raya 2>/dev/null |
There was a problem hiding this comment.
The cleanup leaves out the DNS-interception table that v2rayA installs separately (table inet v2raya_dns at dns_redirect.go:14). If that table is left behind, the router's own port-53 traffic keeps going to a listener that has stopped, so DNS breaks when DNS hijack is enabled.
| nft delete table inet v2raya 2>/dev/null | |
| nft delete table inet v2raya 2>/dev/null | |
| nft delete table inet v2raya_dns 2>/dev/null |
Generated by Claude Code
| # Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org> | ||
| # SPDX-License-Identifier: GPL-3.0-only | ||
| # | ||
| # Copyright (C) 2026 Amr Fateem <amr.fateem@yahoo.com> |
There was a problem hiding this comment.
This drops the existing Copyright (C) 2021 Tianling Shen notice. Add your line next to it instead of replacing it, as the Makefile already does.
| # Copyright (C) 2026 Amr Fateem <amr.fateem@yahoo.com> | |
| # Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org> | |
| # Copyright (C) 2026 Amr Fateem <amr.fateem@yahoo.com> |
Generated by Claude Code
| From 8a3f10e0295a1587fd4beef414386290aca89605 Mon Sep 17 00:00:00 2001 | ||
| From: Amr Fateem <amr.fateem@yahoo.com> | ||
| Date: Wed, 11 Nov 2026 21:06:01 +0200 | ||
| Subject: [PATCH] openwrt: clean residual transparent-proxy rules on stop |
There was a problem hiding this comment.
This is a generic bug fix in v2rayA's process manager and is not specific to OpenWrt. It should therefore be sent upstream. Please add the upstream PR link or an Upstream-Status: line to the patch header.
Generated by Claude Code
This updates net/v2raya to 2.5.13 and adds net/v2raya-core. Since 2.5.x
v2rayA runs only its own v2raya_core, so the old xray-core dependency no
longer works.
The service package keeps the OpenWrt defaults that were added for the
2.2.7 package and the ones that matter on a small router:
databases;
dumps.
It also fixes the transparent-proxy stop path. v2rayA 2.5.13 can skip
its cleanup after a process restart, or when no core process is tracked,
leaving the nft table and fwmark rule behind and blackholing traffic.
patches/011-clean-residual-transparent-rules.patch makes the API stop
path clean up unconditionally, and the init script's stop_service removes
any residual state.
It also installs /usr/libexec/v2raya-detect, a read-only helper that the
updated LuCI app uses for its overview page. It only reports installed
cores and services; it never changes anything. The LuCI app degrades
cleanly when the helper is absent.
GeoIP/GeoSite data stays optional. The existing v2ray-geoip and
v2ray-geosite packages install to /usr/share/v2ray, which the init
script uses. The old GeoIP parser patch is removed because 2.5.13 already
contains that fix.
I built both packages in the 25.12.6 ipq40xx SDK and inspected the
resulting packages. The same 2.5.13 source and packaging defaults run on
an OpenWrt 25.12 ipq40xx router: the service and core start and the
transparent proxy passes LAN traffic. The fresh database defaults were
checked for the bridge, DNS, sniffing and memory settings.
Both stop paths were tested from a LAN client: the 2017 panel's stop API
and /etc/init.d/v2raya stop. The client kept direct internet, the nft
table and fwmark rule were gone, and the proxy returned on start. A full
reboot also restored the firewall, NAT and proxy.
The MIPS service path was not run on hardware; it uses CGO because the
SQLite driver needs it there.
I used an AI assistant to help draft the packaging and this description.
I reviewed every line, built both packages, and tested the result on the
router before submitting. I understand the change and take responsibility
for it.