🔥 Sync 2026-10-05 04:55:44

This commit is contained in:
github-actions[bot] committed 2026-10-05 04:55:44 +08:00
1 parent 02a44b1178
commit f3ff7a3b78
15 files changed
+77 -79

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter
LUCI_PKGARCH:=all
PKG_VERSION:=0.1.51
PKG_RELEASE:=60
PKG_RELEASE:=61
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
ifdef SOURCE_DATE_EPOCH
+1 -1
View File
@@ -29,7 +29,7 @@ LuCI **Firewall Live View** — client-side JS view polling `ubus fwlive poll` (
| `root/usr/libexec/fwlive-adaptive-cap.sh` | Layer 1 adaptive poll cap (sourced by `rpcd/fwlive`) |
| `root/usr/libexec/fwlive-logging.sh` | WAN zone logging helpers |
| `root/lib/upgrade/keep.d/luci-app-fwlive` | Keep `/etc/fwlive/` across sysupgrade |
| `/etc/fwlive/wan-log-baseline` | Written on first **Enable logging** (and best-effort on already-on enable); `prerm` restores it on uninstall. A successful disable/reload, including an already-disabled retry, drops the marker when no later fwlive toggle has taken ownership; this preserves operator changes to other log-mask bits, including staged edits. If logging is already off but the marker remains, Disable retries `fw4 reload`; pending UCI changes return `firewall_changes_pending` without reloading, and reload failure returns `firewall_reload_failed` while retaining the marker. Lock, read, or generation mismatch also keeps it for uninstall recovery. Restore is skipped (file kept; `fwlive` syslog only) when there is no WAN zone, the lock is unavailable, firewall changes are pending, the commit does not verify, reload fails, or the value after reload does not match the baseline. Disable of a pre-existing/foreign log bit is not snapshotted, so uninstall will not restore that bit. |
| `/etc/fwlive/wan-log-baseline` | Written on first **Enable logging** (and best-effort on already-on enable with no baseline file, recording the current mask with fwlive's filter-log bit cleared); `prerm` restores it on uninstall. A successful disable/reload, including an already-disabled retry, drops the marker when no later fwlive toggle has taken ownership; this preserves operator changes to other log-mask bits, including staged edits. If logging is already off but the marker remains, Disable retries `fw4 reload`; pending UCI changes return `firewall_changes_pending` without reloading, and reload failure returns `firewall_reload_failed` while retaining the marker. Lock, read, or generation mismatch also keeps it for uninstall recovery. Restore is skipped (file kept; `fwlive` syslog only) when there is no WAN zone, the lock is unavailable, firewall changes are pending, the commit does not verify, reload fails, or the value after reload does not match the baseline. Disable of a pre-existing/foreign log bit is not snapshotted, so uninstall will not restore that bit. |
| `root/usr/libexec/fwlive-log-filter.sh` | Server-side firewall-only filter (`isFirewallEvent` parity) |
| `root/usr/libexec/fwlive-is-firewall-event.sh` | Shared filter logic (sourced by filter + tests) |
| `root/usr/libexec/fwlive-is-firewall-event.awk` | **Generated** standalone classifier from `CLASSIFY_SPEC`; loaded by `fwlive-is-firewall-event.sh` |
+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.10.4
PKG_RELEASE:=314
PKG_RELEASE:=315
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
@@ -1,4 +1,9 @@
<style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img {
max-height: 100%;
width: auto;
@@ -20,7 +25,7 @@
}
.status-bar .inner {
margin: 0.5em;
padding: 0.5em;
}
.status-bar .inner .flag {
@@ -43,10 +48,6 @@
bottom: 3.3rem;
}
footer{
display:block !important;
}
@media screen and (max-width: 700px) {
.status-bar .icon-con {
height: 2.5em;
@@ -56,11 +57,11 @@ display:block !important;
<div class="status-bar">
<div class="inner">
<div class="pure-g">
<div class="pure-u-1-2">
<div class="pure-1-2">
<span class="flag"><img src="/luci-static/passwall/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span>
</div>
<div class="pure-u-1-2">
<div class="pure-1-2">
<div class="icon-con">
<img src="/luci-static/passwall/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/passwall/img/site_icon1_02.png" class="pure-img i2">
@@ -76,13 +77,9 @@ display:block !important;
const _ASSETS = '/luci-static/passwall/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar");
function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -126,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
});
window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script>
+4 -4
View File
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall2
PKG_VERSION:=26.10.1
PKG_RELEASE:=135
PKG_RELEASE:=136
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
@@ -39,9 +39,9 @@ LUCI_DEPENDS:=+coreutils +coreutils-base64 +coreutils-nohup +coreutils-timeout +
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client:shadowsocks-rust-sslocal \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server:shadowsocks-rust-ssserver \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-local \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-redir \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \
+PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Client:passwall2-libev-ssr-local \
+PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Client:passwall2-libev-ssr-redir \
+PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Server:passwall2-libev-ssr-server \
+PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs-client \
+PACKAGE_$(PKG_NAME)_INCLUDE_SingBox:sing-box \
+PACKAGE_$(PKG_NAME)_INCLUDE_tuic_client:tuic-client \
@@ -1,4 +1,9 @@
<style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img {
max-height: 100%;
width: auto;
@@ -20,7 +25,7 @@
}
.status-bar .inner {
margin: 0.5em;
padding: 0.5em;
}
.status-bar .inner .flag {
@@ -39,17 +44,10 @@
text-align: right;
}
.pure-u-1-2 {
width: 50%;
display: inline-block;
#cbi-passwall+.cbi-page-actions.control-group.fixed {
bottom: 3.3rem;
}
@media screen and (max-width: 720px) {
.pure-u-1-2 {
width: 100%;
}
}
@media screen and (max-width: 700px) {
.status-bar .icon-con {
height: 2.5em;
@@ -59,11 +57,11 @@
<div class="status-bar">
<div class="inner">
<div class="pure-g">
<div class="pure-u-1-2">
<div class="pure-1-2">
<span class="flag"><img src="/luci-static/passwall2/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span>
</div>
<div class="pure-u-1-2">
<div class="pure-1-2">
<div class="icon-con">
<img src="/luci-static/passwall2/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/passwall2/img/site_icon1_02.png" class="pure-img i2">
@@ -79,13 +77,9 @@
const _ASSETS = '/luci-static/passwall2/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall2]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar");
function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -119,7 +113,7 @@ XHR.poll(5, CHECK_IP_URL, null,
);
document.addEventListener('DOMContentLoaded', function() {
setTimeout("resize()",100)
setTimeout("resize()",200)
fetch(CHECK_IP_URL)
.then(response => response.json())
.then(data => {
@@ -129,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
});
window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script>
+1 -1
View File
@@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-ssr-plus
PKG_VERSION:=196
PKG_RELEASE:=79
PKG_RELEASE:=80
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \
@@ -1,4 +1,9 @@
<style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img {
max-height: 100%;
width: auto;
@@ -20,7 +25,7 @@
}
.status-bar .inner {
margin: 0.5em;
padding: 0.5em;
}
.status-bar .inner .flag {
@@ -39,17 +44,10 @@
text-align: right;
}
.pure-u-1-2 {
width: 49%;
display: inline-block;
#cbi-passwall+.cbi-page-actions.control-group.fixed {
bottom: 3.3rem;
}
@media screen and (max-width: 720px) {
.pure-u-1-2 {
width: 100%;
}
}
@media screen and (max-width: 700px) {
.status-bar .icon-con {
height: 2.5em;
@@ -59,11 +57,11 @@
<div class="status-bar">
<div class="inner">
<div class="pure-g">
<div class="pure-u-1-2">
<div class="pure-1-2">
<span class="flag"><img src="/luci-static/shadowsocksr/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span>
</div>
<div class="pure-u-1-2">
<div class="pure-1-2">
<div class="icon-con">
<img src="/luci-static/shadowsocksr/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/shadowsocksr/img/site_icon1_02.png" class="pure-img i2">
@@ -79,13 +77,9 @@
const _ASSETS = '/luci-static/shadowsocksr/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[shadowsocksr]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar");
function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -119,7 +113,7 @@ XHR.poll(5, CHECK_IP_URL, null,
);
document.addEventListener('DOMContentLoaded', function() {
setTimeout("resize()",100)
setTimeout("resize()",200)
fetch(CHECK_IP_URL)
.then(response => response.json())
.then(data => {
@@ -129,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
});
window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script>
+3 -3
View File
@@ -17,12 +17,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-wwand
PKG_VERSION:=1.6.9_p4
PKG_RELEASE:=39
PKG_VERSION:=1.7.0_pre1
PKG_RELEASE:=40
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/luci-app-wwand.git
PKG_SOURCE_VERSION:=8faf3aaeca4858297f0b7905b4446cfe4d71a1c3
PKG_SOURCE_VERSION:=5bb6f24ec3dc2c57613ba91b6bdb9c7e3419655f
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only
+1 -1
View File
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Noobwrt Theme
LUCI_DEPENDS:=+wget +jsonfilter
PKG_VERSION:=1.1.7
PKG_RELEASE:=2
PKG_RELEASE:=3
CONFIG_LUCI_CSSTIDY:=1
@@ -17,7 +17,7 @@ touch /etc/config/noobwrt
uci get noobwrt.global >/dev/null 2>&1 || uci set noobwrt.global=global
# Set each global option only if not already present
uci get noobwrt.global.mode >/dev/null 2>&1 || uci set noobwrt.global.mode=normal
uci get noobwrt.global.mode >/dev/null 2>&1 || uci set noobwrt.global.mode=dark
uci get noobwrt.global.primary >/dev/null 2>&1 || uci set noobwrt.global.primary='#7689f4'
uci get noobwrt.global.dark_primary >/dev/null 2>&1 || uci set noobwrt.global.dark_primary='#7c8ff5'
uci get noobwrt.global.blur >/dev/null 2>&1 || uci set noobwrt.global.blur=10
@@ -42,16 +42,16 @@ seed_toolbar() {
}
seed_toolbar toolbar_home 'Home' '/cgi-bin/luci/admin/status/overview' home.png 1 1
seed_toolbar toolbar_status 'Status' '/cgi-bin/luci/admin/modem/modemdata' signal.png 1 2
seed_toolbar toolbar_vpn 'Passwall' '/cgi-bin/luci/admin/services/passwall' vpn.png 1 2
seed_toolbar toolbar_status 'Status' '/cgi-bin/luci/admin/modem/modemdata' signal.png 0 2
seed_toolbar toolbar_modem 'Modem' '/cgi-bin/luci/admin/modem/qmodem' cell.png 0 3
seed_toolbar toolbar_sms 'SMS' '/cgi-bin/luci/admin/modem/luci-app-sms-tool-js' sms.png 1 4
seed_toolbar toolbar_data 'Data Usage' '/cgi-bin/luci/admin/tools/netstat' network.png 1 5
seed_toolbar toolbar_sms 'SMS' '/cgi-bin/luci/admin/modem/luci-app-sms-tool-js' sms.png 0 4
seed_toolbar toolbar_data 'Data Usage' '/cgi-bin/luci/admin/status/netstat' network.png 0 5
seed_toolbar toolbar_nas 'NAS' '/cgi-bin/luci/admin/services/samba4' nas.png 0 6
seed_toolbar toolbar_wireless 'Wireless' '/cgi-bin/luci/admin/network/wireless' wifi.png 1 7
seed_toolbar toolbar_firewall 'Firewall' '/cgi-bin/luci/admin/network/firewall' firewall.png 0 8
seed_toolbar toolbar_log 'System Log' '/cgi-bin/luci/admin/status/logs' info.png 0 9
seed_toolbar toolbar_log 'System Log' '/cgi-bin/luci/admin/status/logs' info.png 1 9
seed_toolbar toolbar_terminal 'Terminal' '/cgi-bin/luci/admin/system/ttyd' terminal.png 1 10
seed_toolbar toolbar_vpn 'VPN' '/cgi-bin/luci/admin/services/passwall' vpn.png 0 11
seed_toolbar toolbar_files 'Files' '/cgi-bin/luci/admin/nas/tinyfilemanager' files.png 1 12
seed_toolbar toolbar_system 'Settings' '/cgi-bin/luci/admin/system/noobwrt' settings.png 1 13
@@ -5,6 +5,17 @@
"action": {
"type": "view",
"path": "noobwrt/settings"
}
},
"depends": {
"acl": [ "luci-theme-noobwrt" ],
"uci": {
"noobwrt": true,
"luci": {
"main": {
"mediaurlbase": "/luci-static/noobwrt"
}
}
}
}
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-theme-vantage
PKG_VERSION:=1.0.1
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_LICENSE:=GPL-3.0-or-later
LUCI_TITLE:=Vantage theme
@@ -1 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32"><rect x="1" y="1" width="30" height="30" rx="7" fill="#16181b" stroke="#3a3e44"/><path d="M9 10.5 16 22" fill="none" stroke="#e7e9ec" stroke-width="2.6" stroke-linecap="round"/><path d="M16 22 23 10.5" fill="none" stroke="#c8f031" stroke-width="2.6" stroke-linecap="round"/><circle cx="23" cy="10.5" r="1.9" fill="#c8f031"/></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 101 101" width="101" height="101">
<path d="M16.02 0.06C39.01 0.06 62 0.06 84.99 0.06C85.12 0.33 93.54 4.2 95.48 6.35C97.23 8.28 99.05 10.83 99.82 13.35C100.12 14.35 99.9 15.79 100.94 16.26C100.94 39.17 100.94 62.08 100.94 84.99C100.64 85.13 96.94 93.15 95.52 94.69C93.57 96.79 85.12 100.68 84.99 100.94C62 100.94 39.01 100.94 16.02 100.94C15.94 100.75 7.82 96.85 6.34 95.49C4.23 93.57 0.28 85.1 0.06 84.99C0.06 62 0.06 39.01 0.06 16.02C0.21 15.95 4.35 7.6 5.88 6.05C7.47 4.45 15.95 0.2 16.02 0.06ZM32.29 43.29C30.94 38.53 35.53 22.18 25.24 25.11C22.68 25.84 21.92 28.53 21.9 30.83C21.86 36.76 21.36 43.02 21.98 48.91C21.98 50.97 21.98 53.03 21.98 55.09C21.36 60.98 21.86 67.24 21.9 73.17C21.92 75.47 22.68 78.16 25.24 78.89C35.53 81.82 30.94 65.47 32.29 60.71C36.2 61.33 40.13 64.12 43.69 65.81C49.94 68.78 59.97 72.23 65.3 76.19C66.97 77.43 67.36 79.66 69.42 80.75C73.05 82.67 77.84 81.18 79.75 77.58C81.67 73.95 80.18 69.16 76.58 67.25C74.16 65.97 71.69 67.47 69.58 66.59C62.91 63.81 56.57 60.17 50.01 57.17C48.04 56.27 40.19 53.27 40.12 51.5C49.39 46.28 59.74 41.51 69.58 37.41C71.69 36.53 74.16 38.03 76.58 36.75C80.18 34.84 81.67 30.05 79.75 26.42C77.84 22.82 73.05 21.33 69.42 23.25C67.36 24.34 66.97 26.57 65.3 27.81C59.97 31.77 49.94 35.22 43.69 38.19C40.13 39.88 36.2 42.67 32.29 43.29Z" fill="#16181b" fill-rule="evenodd" stroke="#16181b" stroke-width="0.25" stroke-linejoin="round"/>
<path d="M32.29 60.71C28.86 58.84 25.42 56.97 21.98 55.09C21.98 53.03 21.98 50.97 21.98 48.91C25.42 47.03 28.86 45.16 32.29 43.29C36.2 42.67 40.13 39.88 43.69 38.19C49.94 35.22 59.97 31.77 65.3 27.81C66.97 26.57 67.36 24.34 69.42 23.25C73.05 21.33 77.84 22.82 79.75 26.42C81.67 30.05 80.18 34.84 76.58 36.75C74.16 38.03 71.69 36.53 69.58 37.41C59.74 41.51 49.39 46.28 40.12 51.5C40.19 53.27 48.04 56.27 50.01 57.17C56.57 60.17 62.91 63.81 69.58 66.59C71.69 67.47 74.16 65.97 76.58 67.25C80.18 69.16 81.67 73.95 79.75 77.58C77.84 81.18 73.05 82.67 69.42 80.75C67.36 79.66 66.97 77.43 65.3 76.19C59.97 72.23 49.94 68.78 43.69 65.81C40.13 64.12 36.2 61.33 32.29 60.71Z" fill="#c6ed31" fill-rule="evenodd" stroke="#c6ed31" stroke-width="0.25" stroke-linejoin="round"/>
<path d="M32.29 43.29C28.86 45.16 25.42 47.03 21.98 48.91C21.36 43.02 21.86 36.76 21.9 30.83C21.92 28.53 22.68 25.84 25.24 25.11C35.53 22.18 30.94 38.53 32.29 43.29ZM21.98 55.09C25.42 56.97 28.86 58.84 32.29 60.71C30.94 65.47 35.53 81.82 25.24 78.89C22.68 78.16 21.92 75.47 21.9 73.17C21.86 67.24 21.36 60.98 21.98 55.09Z" fill="#f2f3f5" fill-rule="evenodd" stroke="#f2f3f5" stroke-width="0.25" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 2.6 KiB

+10 -4
View File
@@ -50,12 +50,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wwand
PKG_VERSION:=1.7.0_pre7
PKG_RELEASE:=70
PKG_VERSION:=1.7.0_pre9
PKG_RELEASE:=71
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
PKG_SOURCE_VERSION:=4c6448277d5f587cd23d500f4b91c73d622ab5e8
PKG_SOURCE_VERSION:=20a0dc501a67ef548b2d33dca4ab82fbfb46df9d
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only
@@ -104,7 +104,7 @@ WWAND_BASE_UC:=apndb.uc atcmd.uc atcmd_parse.uc atport.uc backend.uc board.uc \
simops.uc siminventory.uc sms.uc sms_pdu.uc telemetry_mbim.uc telemetry_ncm.uc \
telemetry_qmi.uc transport.uc ubus.uc version.uc wwandctl_fmt.uc
WWAND_BASE_CODEC:=arfcn_bands.uc hex.uc qmux.uc tlv.uc
WWAND_BASE_SCHEMA:=cat.uc ctl.uc dms.uc dsd.uc loc.uc loc_lazy.uc merge.uc nas.uc pdc.uc rat.uc \
WWAND_BASE_SCHEMA:=cat.uc ctl.uc dms.uc dsd.uc merge.uc nas.uc pdc.uc rat.uc \
tmd.uc uim.uc wda.uc wds.uc wms.uc wms_lazy.uc
# DEVELOPERS: set CONFIG_WWAND_UCODE_SOURCE to ship readable .uc source
@@ -554,6 +554,10 @@ define Package/wwand-gps/description
GSV/GLL/VTG/ZDA from ANY talker, reported through `modem_gps` as numbers, with
the satellites in view and their SNR, the fix type and the DOP values.
A modem WITHOUT an NMEA port gets the same NMEA over QMI LOC instead — on a
QMI modem natively, on an MBIM modem over the QMI passthrough. The port wins
where there is one. The LOC session is stopped before its client is released.
ONE READER PER MODEM, so a two-modem router has two positions. `option
gnss_set_time` hands the receiver's clock to wwand's own set_clock, which only
ever steps a clock that is plainly unset and so never fights sysntpd.
@@ -568,6 +572,8 @@ define Package/wwand-gps/install
$(INSTALL_DIR) $(1)$(UCDIR)
$(INSTALL_DATA) $(WWAND_UCODE)/gps.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/nmea.uc $(1)$(UCDIR)/
$(INSTALL_DIR) $(1)$(UCDIR)/codec/schema
$(INSTALL_DATA) $(WWAND_UCODE)/codec/schema/loc.uc $(1)$(UCDIR)/codec/schema/
endef
# ---------------------------------------------------------------------------