Add the user config file directories (/etc/zabbix_x.conf.d) to the
list of directories and files to preserve across sysupgrade.
Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
(cherry picked from commit 9058162e11)
Now that post install is running properly, when CI executes the
tests the zabbix-extra-* packages that have a posinst exit the
post install with an error if ubusd is not running.
Drop the error code from killall with no usbd running to fix this.
Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
(cherry picked from commit 33fa804bdd)
* distinguish an active run cycle from an idle daemon in the
runtime status: 'processing' is now only reported while f_main
is actually running, an idle daemon without uplink reports
'not connected' instead
* settle the status file at the end of f_main, so a leftover
'processing' does not survive into the sleep phase
* README: document the travelmate_status values and the LuCI
button behaviour
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 94deb2a1a9)
This patch updates sing-box to 1.13.18.
Upstream release information:
https://github.com/SagerNet/sing-box/releases/tag/v1.13.0https://github.com/SagerNet/sing-box/releases/tag/v1.13.18
Scope note:
The upstream Naive outbound feature is intentionally not enabled in this update.
Naive outbound requires additional build system integration because it depends on
Chromium Network Stack (Cronet). Depending on target and build mode, it requires
either the Cronet runtime library or a Chromium-based toolchain.
Upstream documentation:
https://sing-box.sagernet.org/configuration/outbound/naive/#structure
Changes:
1. Add upstream linker flags and compatibility build tags
Add linker flags required by the sing-box upstream release build:
- -checklinkname=0
Documentation:
https://sing-box.sagernet.org/installation/build-from-source/#linker-flags
-checklinkname=0 is required by the sing-box 1.13.x build configuration due to its use of
low-level go:linkname functionality and the stricter linkname validation in newer Go toolchains.
Add upstream compatibility build tags required by sing-box 1.13.x:
- badlinkname
- tfogo_checklinkname0
These tags are part of the upstream sing-box release build configuration:
https://sing-box.sagernet.org/installation/build-from-source/#build-tags
2. Add optional CCM and OCM build options
Add new optional OpenWrt configuration options:
- CONFIG_SINGBOX_WITH_CCM
Build with Claude Code Multiplexer service support
- CONFIG_SINGBOX_WITH_OCM
Build with OpenAI Codex Multiplexer service support
Both options are disabled by default and are only enabled when explicitly
selected by the user.
The corresponding upstream build tags are:
- with_ccm
- with_ocm
Documentation: https://sing-box.sagernet.org/installation/build-from-source/#build-tags
Signed-off-by: Sergei S. <it4notice@proton.me>
(cherry picked from commit e99adbc49f)
RUSTC_TARGET_ARCH comes from the GNU triple, so every 32-bit PowerPC
subtarget gets powerpc-unknown-linux-musl. That triple is hard-float and
mpc85xx is not: its e500v2 has no floating-point unit, and the toolchain
reports _SOFT_FLOAT and calls __divdf3 for a division.
So rustc emits lfd, stfd and fdiv for a core with no floating-point
registers, and passes doubles in a way nothing else in the image does. It
does not fail outright — a speed test reported negative throughput, and
formatting one of those values tripped an assertion inside core.
Pass -Ctarget-feature=-hard-float where CONFIG_SOFT_FLOAT says so. The same
flag has to reach the std that rust/host builds, or std and the packages
linked against it disagree about how a double is passed.
Signed-off-by: Josef Schlehofer <pepe@bloodkings.eu>
(cherry picked from commit 388c3b6ad4)
LLVM places the release fence of a cmpxchg between the load-linked and the
store-conditional. On e500v2 that clears the reservation, so the
store-conditional always fails. The strong form retries and re-reserves; the
weak form has no retry and can never succeed.
fetch_update in core is a weak retry loop, so it spins forever and anything
using it hangs. A tokio reactor livelocks on its first I/O event, burning
CPU without issuing a syscall, which makes async Rust unusable on the
subtarget.
Carry the fix as a patch until it reaches a rustc release. It adds a
TargetLowering hook, defaulting to false, so only PowerPC changes.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit 9ea0d00d93)
Also refresh 020-riscv64-support.patch from the current state of
openresty/luajit2#236. The previous snapshot defined
asm_tail_prep(ASMState *as), but since openresty/luajit2 commit
68354f44 the callers pass a second TraceNo argument, so the riscv64
build failed with:
lj_asm.c:2559:5: error: too many arguments to function 'asm_tail_prep'
The refreshed patch carries the upstream adaptation and restores the
build. The other four patches apply unchanged.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit 578758e1f6)
luajit2 currently fails to link for powerpc: lj_vm.o emits PLT calls
that force BSS-PLT, which the inline-PLT relocations emitted by GCC 12
and newer do not support. Add the same GOT-based fix that
lang/lua/luajit has carried as 060-ppc-musl.patch since 2019.
With that in place the package builds, but ipairs() and pairs() turn
out to be broken on 32-bit big-endian soft-float targets. Both are
regressions in luajit2's PPC64 patch and do not affect upstream
LuaJIT. To be submitted to openresty/luajit2 as well.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit a6b248d6b8)
old just disabled version test, but as LuaJIt 2.1. part is stable.
So we can use that for test if luajit2 itself able to run.
Fixes: c7ca6d46f7 luajit2: ("add test-version.sh")
Suggested-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Signed-off-by: Seo Suchan <tjtncks@gmail.com>
(cherry picked from commit 5504291b81)
Brings the client in line with the fixes merged into the Go client: --json and
--csv end with a newline, --debug names the address each ICMP ping reached and
the spread of the samples, and the User-Agent carries the operating system and
architecture. Also tolerates a backend that answers getIP.php with an empty
rawIspInfo, which previously discarded the whole response.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit 95875218de)
Carry fixes for a data race, a goroutine leak, output escaping, JSON and CSV
termination, and sub-millisecond ping precision, plus additional --debug
output. All patches are under review upstream.
Set the version through GO_PKG_LDFLAGS_X. The package never passed one, so
--version reported neither a name nor a version.
Drop the serverIdx patch: 1.0.13 resolves the same problem by checking the map
lookup rather than reading a possibly absent key.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit f61a21e472)
Rust port of librespeed-cli for 32-bit PowerPC targets not supported by
the Go implementation, such as CZ.NIC Turris 1.x.
The CLI output of --list and --csv-header matches the Go client, so it
can be used as a drop-in replacement. Both implementations install
/usr/bin/librespeed-cli and therefore PROVIDES/CONFLICTS are set
accordingly.
Use libopenssl instead of rustls' ring backend, which has significantly
better AES-GCM performance on big-endian PowerPC.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit 2605657953)
- only cap the cpu core count by available memory if it was auto-detected,
a manually set 'ban_cores' is now authoritative and no longer lowered
- readme update: clarify that the auto-cap does not apply to a manually
set core count
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit b1334f27ca)
- only cap the cpu core count by available memory if it was auto-detected,
a manually set 'adb_cores' is now authoritative and no longer lowered
- readme update: clarify that the auto-cap does not apply to a manually
set core count
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 9f8feb10a3)
- fixed the shipped captive portal login scripts,
corrected the curl call to 'trm_fetchcmd'
- fixed the return code handling within the login scripts
- added a generic portal login script recipe to the readme
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 112a7e4e96)
'trm_netcheck' only ever fired on "net nok", but f_net() reports a detected
portal as "net cp" regardless of 'trm_captive' - the option gates the portal
handling, not the detection. With 'trm_captive' disabled travelmate neither
adds the portal domain to the dhcp rebind allowlist nor runs a login script,
so that state can never resolve on its own: the uplink stayed connected as
"net cp '<domain>'" forever, the vpn was never brought up (it requires "net
ok") and 'trm_netcheck' never kicked in - travelmate stuck to exactly the
uplink the option is meant to get rid of.
Downgrade "net cp" to "net nok" in f_net() when the portal handling is off.
With 'trm_captive' enabled nothing changes.
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 7f99005b4c)
Adjust simple-captive-portal firewall chain priority to apply before
default chain deterministically
Signed-off-by: Andris PE <neandris@gmail.com>
(cherry picked from commit 737c40fbb9)
The runtime status reported the last run as DD/MM/YYYY, which reads as a
different date entirely for anyone used to month first ordering.
Use YYYY-MM-DD instead for the frontpage and the Set reporting.
The new ISO 8601 format is unambiguous regardless of the reader's locale.
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 23e2f530fe)
* harden the connectivity check in f_net()
* drop the ineffective 'trm_netcheck' term from the minimum signal
quality branch in f_check()
* reset 'trm_connection' explicitly in the netcheck exit path
* log the affected uplink in the netcheck messages
* update and restructure the readme
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit 28da48b9cb)
The runtime status reported the last run as DD/MM/YYYY, which reads as a
different date entirely for anyone used to month first ordering.
Use YYYY-MM-DD instead. The DNS report already derives its timestamps from
tcpdump -tttt and is ISO 8601, so both views now agree, and the format is
unambiguous regardless of the reader's locale.
Signed-off-by: Dirk Brenken <dev@brenken.org>
(cherry picked from commit ec4ca5c917)