mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 02:11:19 +08:00
💋 Sync 2026-07-26 20:25:59
This commit is contained in:
parent
6efc8c18ce
commit
4069ab0119
@ -5,10 +5,10 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dae
|
||||
PKG_VERSION:=2026.07.22
|
||||
PKG_RELEASE:=21
|
||||
PKG_VERSION:=2026.07.26
|
||||
PKG_RELEASE:=22
|
||||
|
||||
PKG_SOURCE:=dae-src-2026.07.22-1ff7a6abc0ad.tar.gz
|
||||
PKG_SOURCE:=dae-src-2026.07.26-92a3fbf117a3.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
|
||||
|
||||
@ -5,10 +5,10 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=daed
|
||||
PKG_VERSION:=2026.07.22
|
||||
PKG_RELEASE:=29
|
||||
PKG_VERSION:=2026.07.26
|
||||
PKG_RELEASE:=30
|
||||
|
||||
PKG_SOURCE:=daed-src-2026.07.22-4a6a3994ced1.tar.gz
|
||||
PKG_SOURCE:=daed-src-2026.07.26-ecbc5c99d632.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_HASH:=skip
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall2
|
||||
PKG_VERSION:=26.7.16
|
||||
PKG_RELEASE:=65
|
||||
PKG_RELEASE:=66
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@ -409,6 +409,7 @@ ln_run() {
|
||||
|
||||
run_process_queue() {
|
||||
[ -d ${TMP_PROCESS_LIST_PATH} ] && {
|
||||
mkdir -p ${TMP_SCRIPT_FUNC_PATH}
|
||||
for filename in $(ls ${TMP_PROCESS_LIST_PATH}); do
|
||||
cmd=$(cat ${TMP_PROCESS_LIST_PATH}/${filename})
|
||||
cmd_check=$(echo $cmd | awk -F '>' '{print $1}')
|
||||
@ -416,7 +417,7 @@ run_process_queue() {
|
||||
if [ $icount = 0 ]; then
|
||||
eval $(echo "nohup ${cmd} 2>&1 &") >/dev/null 2>&1 &
|
||||
fi
|
||||
rm -rf ${TMP_PROCESS_LIST_PATH}/${filename}
|
||||
mv -f ${TMP_PROCESS_LIST_PATH}/${filename} ${TMP_SCRIPT_FUNC_PATH}/queued_${filename}
|
||||
done
|
||||
}
|
||||
rm -rf ${TMP_PROCESS_LIST_PATH}
|
||||
|
||||
@ -1398,6 +1398,21 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ {
|
||||
}, this));
|
||||
},
|
||||
|
||||
/**
|
||||
* Obtain configured radio devices without querying runtime state.
|
||||
*
|
||||
* @returns {Array<LuCI.network.WifiDevice>}
|
||||
* Returns radio instances populated from UCI only.
|
||||
*/
|
||||
getWifiDevicesFromConfig() {
|
||||
const rv = [];
|
||||
|
||||
for (const wfd of uci.sections('wireless', 'wifi-device'))
|
||||
rv.push(this.instantiateWifiDevice(wfd['.name'], {}));
|
||||
|
||||
return rv;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get a {@link LuCI.network.WifiNetwork WifiNetwork} instance describing
|
||||
* the given wireless network.
|
||||
@ -1443,6 +1458,30 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ {
|
||||
}, this));
|
||||
},
|
||||
|
||||
/**
|
||||
* Obtain configured wireless networks without querying runtime state.
|
||||
*
|
||||
* @returns {Array<LuCI.network.WifiNetwork>}
|
||||
* Returns wireless network instances populated from UCI only.
|
||||
*/
|
||||
getWifiNetworksFromConfig() {
|
||||
const rv = [];
|
||||
|
||||
for (const wifiIface of uci.sections('wireless', 'wifi-iface')) {
|
||||
const sid = wifiIface['.name'];
|
||||
const netid = getWifiNetidBySid(sid);
|
||||
|
||||
rv.push(this.instantiateWifiNetwork(sid, wifiIface.device, {},
|
||||
L.toArray(netid)[0], null));
|
||||
}
|
||||
|
||||
rv.sort(function(a, b) {
|
||||
return L.naturalCompare(a.getID(), b.getID());
|
||||
});
|
||||
|
||||
return rv;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a new wireless network to the configuration and sets its options
|
||||
* to the provided values.
|
||||
@ -3579,7 +3618,7 @@ WifiDevice = baseclass.extend(/** @lends LuCI.network.WifiDevice.prototype */ {
|
||||
* Returns `true` when the radio device is up, else `false`.
|
||||
*/
|
||||
isUp() {
|
||||
if (L.isObject(_state.radios[this.sid]))
|
||||
if (_state != null && L.isObject(_state.radios[this.sid]))
|
||||
return (_state.radios[this.sid].up == true);
|
||||
|
||||
return false;
|
||||
@ -3930,6 +3969,9 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */
|
||||
* Returns `true` when the network is up, else `false`.
|
||||
*/
|
||||
isUp() {
|
||||
if (_state == null)
|
||||
return false;
|
||||
|
||||
const device = this.getDevice();
|
||||
|
||||
if (device == null)
|
||||
|
||||
@ -40,6 +40,8 @@ let cachedIwinfoInfoMap = null;
|
||||
let cachedIwinfoInfoPromise = null;
|
||||
let cachedIwinfoResolver = null;
|
||||
let cachedIwinfoResolverPromise = null;
|
||||
let cachedAssocLists = Object.create(null);
|
||||
let pendingAssocLists = Object.create(null);
|
||||
|
||||
function pushUnique(list, value) {
|
||||
if (value && list.indexOf(value) < 0)
|
||||
@ -189,15 +191,12 @@ function buildIwinfoResolver(devices) {
|
||||
}
|
||||
|
||||
function loadIwinfoResolver(force) {
|
||||
if (force)
|
||||
cachedIwinfoResolverPromise = null;
|
||||
if (cachedIwinfoResolverPromise != null)
|
||||
return cachedIwinfoResolverPromise;
|
||||
|
||||
if (!force && cachedIwinfoResolver != null)
|
||||
return Promise.resolve(cachedIwinfoResolver);
|
||||
|
||||
if (cachedIwinfoResolverPromise != null)
|
||||
return cachedIwinfoResolverPromise;
|
||||
|
||||
cachedIwinfoResolverPromise = L.resolveDefault(callIwinfoDevices(), {}).then((res) => {
|
||||
cachedIwinfoResolver = buildIwinfoResolver(res?.devices);
|
||||
cachedIwinfoResolverPromise = null;
|
||||
@ -221,15 +220,12 @@ function loadIwinfoResolver(force) {
|
||||
}
|
||||
|
||||
function loadIwinfoInfoMap(force) {
|
||||
if (force)
|
||||
cachedIwinfoInfoPromise = null;
|
||||
if (cachedIwinfoInfoPromise != null)
|
||||
return cachedIwinfoInfoPromise;
|
||||
|
||||
if (!force && cachedIwinfoInfoMap != null)
|
||||
return Promise.resolve(cachedIwinfoInfoMap);
|
||||
|
||||
if (cachedIwinfoInfoPromise != null)
|
||||
return cachedIwinfoInfoPromise;
|
||||
|
||||
cachedIwinfoInfoPromise = loadIwinfoResolver(force).then((resolver) => {
|
||||
const queryTargets = resolver.queryTargets.length ? resolver.queryTargets : getLegacyIwinfoProbeTargets();
|
||||
|
||||
@ -289,6 +285,10 @@ function refreshIwinfoInfoMap() {
|
||||
return loadIwinfoInfoMap(true);
|
||||
}
|
||||
|
||||
function startIwinfoInfoRefresh() {
|
||||
refreshIwinfoInfoMap().catch(() => {});
|
||||
}
|
||||
|
||||
function count_changes(section_id) {
|
||||
const changes = ui.changes.changes?.wireless;
|
||||
if (!Array.isArray(changes)) return 0;
|
||||
@ -570,6 +570,8 @@ function getDisplayChannel(radioNet) {
|
||||
|
||||
if (channel != null && channel !== '' && channel !== 'auto')
|
||||
return +channel;
|
||||
if (channel == 'auto')
|
||||
return channel;
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -1178,6 +1180,20 @@ function getAssocListForNetwork(radioNet) {
|
||||
}));
|
||||
}
|
||||
|
||||
function getCachedAssocListForNetwork(radioNet) {
|
||||
const key = radioNet.getName();
|
||||
|
||||
if (pendingAssocLists[key] == null) {
|
||||
pendingAssocLists[key] = getAssocListForNetwork(radioNet).then((entries) => {
|
||||
cachedAssocLists[key] = Array.isArray(entries) ? entries : [];
|
||||
}).catch(() => {}).then(() => {
|
||||
delete pendingAssocLists[key];
|
||||
});
|
||||
}
|
||||
|
||||
return Promise.resolve(cachedAssocLists[key] || []);
|
||||
}
|
||||
|
||||
function isDisplayAssociated(radioNet, hwtype, mode, bssid, channel, disabled) {
|
||||
if (bssid && bssid != '00:00:00:00:00:00' && channel && mode != 'Unknown' && !disabled)
|
||||
return true;
|
||||
@ -1202,7 +1218,7 @@ function getDisplaySignalPercent(radioNet, hwtype, is_assoc, disabled) {
|
||||
|
||||
function getDisplaySignalValue(radioNet, hwtype, is_assoc) {
|
||||
if ((hwtype == 'mt_dbdc' || (isQcaWifiHwtype(hwtype) && radioNet.getMode() == 'ap')) && is_assoc)
|
||||
return getDisplayTxPower(radioNet);
|
||||
return getDisplayTxPower(radioNet) ?? 30;
|
||||
|
||||
return radioNet.getSignal();
|
||||
}
|
||||
@ -2424,7 +2440,7 @@ return view.extend({
|
||||
callSystemBoard()
|
||||
]).then((data) => {
|
||||
this.boardinfo = data[4] || {};
|
||||
return refreshIwinfoInfoMap().then(() => data);
|
||||
return data;
|
||||
});
|
||||
},
|
||||
|
||||
@ -2488,25 +2504,12 @@ return view.extend({
|
||||
s.addremove = false;
|
||||
|
||||
s.load = function() {
|
||||
return network.getWifiDevices().then(L.bind(function(radios) {
|
||||
this.radios = radios.sort(function(a, b) {
|
||||
return a.getName() > b.getName();
|
||||
});
|
||||
this.radios = network.getWifiDevicesFromConfig().sort(function(a, b) {
|
||||
return a.getName() > b.getName();
|
||||
});
|
||||
this.wifis = network.getWifiNetworksFromConfig();
|
||||
|
||||
const tasks = [];
|
||||
|
||||
radios.forEach(radio => {
|
||||
tasks.push(radio.getWifiNetworks());
|
||||
});
|
||||
|
||||
return Promise.all(tasks);
|
||||
}, this)).then(L.bind(function(data) {
|
||||
this.wifis = [];
|
||||
|
||||
data.forEach(d => {
|
||||
this.wifis.push.apply(this.wifis, d);
|
||||
});
|
||||
}, this));
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
s.cfgsections = function() {
|
||||
@ -4644,7 +4647,9 @@ return view.extend({
|
||||
|
||||
return m.render().then(L.bind(function(m, nodes) {
|
||||
poll.add(L.bind(function() {
|
||||
const tasks = [ network.getHostHints(), network.getWifiDevices(), refreshIwinfoInfoMap() ];
|
||||
const tasks = [ network.getHostHints(), network.getWifiDevices() ];
|
||||
|
||||
startIwinfoInfoRefresh();
|
||||
|
||||
m?.children[0]?.cfgsections?.().forEach(s => {
|
||||
const row = nodes.querySelector('.cbi-section-table-row[data-sid="%s"]'.format(s));
|
||||
@ -4681,8 +4686,14 @@ return view.extend({
|
||||
}, network))
|
||||
.then(L.bind(function(hosts_radios_wifis) {
|
||||
const tasks = [];
|
||||
const section = m?.children?.[0];
|
||||
|
||||
hosts_radios_wifis[2].forEach(hrw => tasks.push(getAssocListForNetwork(hrw)) );
|
||||
if (section != null) {
|
||||
section.radios = hosts_radios_wifis[1];
|
||||
section.wifis = hosts_radios_wifis[2];
|
||||
}
|
||||
|
||||
hosts_radios_wifis[2].forEach(hrw => tasks.push(getCachedAssocListForNetwork(hrw)) );
|
||||
|
||||
return Promise.all(tasks).then(function(data) {
|
||||
hosts_radios_wifis[3] = [];
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
LUCI_TITLE:=LuCI Status Pages
|
||||
LUCI_DEPENDS:=+luci-base +libiwinfo +rpcd-mod-iwinfo
|
||||
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=5
|
||||
PKG_BUILD_DEPENDS:=iwinfo
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
|
||||
@ -458,7 +458,7 @@ function buildInterfaceMapping(zones, networks, board) {
|
||||
}
|
||||
|
||||
function formatSpeed(carrier, speed, duplex) {
|
||||
if ((speed > 0) && duplex) {
|
||||
if (carrier && (speed > 0) && duplex) {
|
||||
const d = (duplex == 'half') ? '\u202f(H)' : '';
|
||||
const e = E('span', { 'title': _('Speed: %d Mbit/s, Duplex: %s').format(speed, duplex) });
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eamonxg/aurora-tokens": "^1.2.0",
|
||||
"@eamonxg/aurora-tokens": "^1.3.1",
|
||||
"@tailwindcss/vite": "^4.1.11",
|
||||
"@types/node": "^24.0.0",
|
||||
"browserslist": "^4.28.2",
|
||||
|
||||
@ -9,8 +9,8 @@ importers:
|
||||
.:
|
||||
devDependencies:
|
||||
'@eamonxg/aurora-tokens':
|
||||
specifier: ^1.2.0
|
||||
version: 1.2.0
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1
|
||||
'@tailwindcss/vite':
|
||||
specifier: ^4.1.11
|
||||
version: 4.3.2(vite@7.3.1(@types/node@24.10.9)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0))
|
||||
@ -44,8 +44,8 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
'@eamonxg/aurora-tokens@1.2.0':
|
||||
resolution: {integrity: sha512-Sfpqi5lvwSWDLqmAK1AVxp3g7ScWSk9y3iJ+0+3kU6b1AZ6Mp27TlyklpaimQLjdrOaASn49aaJgTsRxISt0kg==}
|
||||
'@eamonxg/aurora-tokens@1.3.1':
|
||||
resolution: {integrity: sha512-G3QC2zmFO+eMKa/zvxINOMs0BMU5sKbx9khW5B+00uEpPjcfoyFH253BYuq8CYCAxERgdxbkT/c9hFOThEyhvw==}
|
||||
|
||||
'@esbuild/aix-ppc64@0.27.2':
|
||||
resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==}
|
||||
@ -768,7 +768,7 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@eamonxg/aurora-tokens@1.2.0':
|
||||
'@eamonxg/aurora-tokens@1.3.1':
|
||||
dependencies:
|
||||
colorjs.io: 0.6.1
|
||||
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
import { writeFile } from "node:fs/promises";
|
||||
import { resolve } from "node:path";
|
||||
import { resolveMode, FIXED } from "@eamonxg/aurora-tokens";
|
||||
import {
|
||||
resolveMode,
|
||||
FIXED,
|
||||
STRUCTURE,
|
||||
THEME_STRUCTURE,
|
||||
} from "@eamonxg/aurora-tokens";
|
||||
|
||||
const kebab = (s) => s.replace(/_/g, "-");
|
||||
|
||||
@ -18,13 +23,12 @@ function block(selector, colors, fixed) {
|
||||
const light = resolveMode("light");
|
||||
const dark = resolveMode("dark");
|
||||
|
||||
const STRUCTURE = `
|
||||
--font-sans: "Lato", ui-sans-serif, system-ui, sans-serif;
|
||||
--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
|
||||
--spacing: 0.25rem;
|
||||
--container-max-width: 80rem;
|
||||
--radius-base: 0.5rem;
|
||||
`;
|
||||
// Structural tokens and their @theme mappings come from the shared package,
|
||||
// same as the colours — so spacing, content widths and the radius base have a
|
||||
// single definition instead of one per theme generator.
|
||||
const STRUCTURE_CSS = Object.entries(STRUCTURE)
|
||||
.map(([k, v]) => ` --${kebab(k)}: ${v};`)
|
||||
.join("\n");
|
||||
|
||||
const THEME = `@theme inline {
|
||||
${Object.keys(light)
|
||||
@ -37,19 +41,9 @@ ${Object.keys(light)
|
||||
--shadow-xl: var(--app-shadow-lg);
|
||||
--shadow-2xl: var(--app-shadow-lg);
|
||||
|
||||
--font-sans: var(--font-sans);
|
||||
--font-mono: var(--font-mono);
|
||||
--spacing: var(--spacing);
|
||||
--container-max-width: var(--container-max-width);
|
||||
|
||||
--radius-sm: calc(var(--radius-base) * 0.25);
|
||||
--radius: calc(var(--radius-base) * 0.5);
|
||||
--radius-md: calc(var(--radius-base) * 0.75);
|
||||
--radius-lg: var(--radius-base);
|
||||
--radius-xl: calc(var(--radius-base) * 1.5);
|
||||
--radius-2xl: calc(var(--radius-base) * 2);
|
||||
--radius-3xl: calc(var(--radius-base) * 3);
|
||||
--radius-4xl: calc(var(--radius-base) * 4);
|
||||
${Object.entries(THEME_STRUCTURE)
|
||||
.map(([k, v]) => ` --${k}: ${v};`)
|
||||
.join("\n")}
|
||||
}
|
||||
`;
|
||||
|
||||
@ -65,8 +59,8 @@ const css =
|
||||
HEADER +
|
||||
"\n" +
|
||||
block(":root", light, FIXED.light) +
|
||||
STRUCTURE +
|
||||
"}\n\n" +
|
||||
STRUCTURE_CSS +
|
||||
"\n}\n\n" +
|
||||
block('[data-darkmode="true"]', dark, FIXED.dark) +
|
||||
"}\n\n" +
|
||||
THEME;
|
||||
|
||||
@ -354,10 +354,15 @@ body[data-nav-type="sidebar"] {
|
||||
so collapsing the sidebar never stretches it — lets the sidebar column
|
||||
collapse to zero, and lets #maincontent reclaim the freed space.
|
||||
overflow-x-clip keeps the sliding sidebar out of horizontal overflow. */
|
||||
@apply md:grid md:grid-cols-[17rem_minmax(0,1fr)] md:grid-rows-[auto_minmax(0,1fr)] md:overflow-x-clip;
|
||||
|
||||
/* Single source of truth for the sidebar column, so collapsing only has to
|
||||
zero this one value instead of restating the grid template. */
|
||||
--sidebar-w: 17rem;
|
||||
|
||||
@apply md:grid md:grid-cols-[var(--sidebar-w)_minmax(0,1fr)] md:grid-rows-[auto_minmax(0,1fr)] md:overflow-x-clip;
|
||||
|
||||
&.sidebar-collapsed {
|
||||
@apply md:grid-cols-[0_minmax(0,1fr)];
|
||||
@apply md:[--sidebar-w:0rem];
|
||||
}
|
||||
|
||||
& > header {
|
||||
@ -370,6 +375,15 @@ body[data-nav-type="sidebar"] {
|
||||
|
||||
& > #maincontent {
|
||||
@apply md:col-start-2 md:row-start-2 md:min-w-0 md:pt-2;
|
||||
|
||||
/* This shell runs full-width and reads no width cap. Honouring
|
||||
--content-width-centered here would shrink content twice — viewport
|
||||
minus the sidebar, then clamped to 80rem and re-centred in what's left,
|
||||
which puts the page visibly right-of-centre on a wide display. The
|
||||
sidebar column is the margin; content fills the rest. Desktop only —
|
||||
below md the sidebar is a drawer and the base rule's
|
||||
max-md:w-full/px-3 still applies. */
|
||||
@apply md:w-full md:max-w-none md:px-8;
|
||||
}
|
||||
|
||||
& .header-crumb {
|
||||
@ -462,7 +476,10 @@ body[data-nav-type="sidebar"] {
|
||||
}
|
||||
|
||||
#maincontent {
|
||||
@apply max-w-max-width mx-auto min-h-[calc(100vh-4rem)] w-23/24 px-4 max-md:w-full max-md:px-3;
|
||||
/* Centred shells (top-bar navigation) clamp here and gutter the remainder.
|
||||
The sidebar shell overrides this — it caps the shell instead, see
|
||||
body[data-nav-type="sidebar"] above. */
|
||||
@apply max-w-(--content-width-centered) mx-auto min-h-[calc(100vh-4rem)] w-23/24 px-4 max-md:w-full max-md:px-3;
|
||||
|
||||
#view {
|
||||
@apply mx-0 w-full bg-transparent p-0 shadow-none empty:hidden md:p-0;
|
||||
|
||||
@ -41,11 +41,10 @@
|
||||
--app-shadow-md: 0 4px 16px oklch(0 0 0 / 0.08), 0 1px 3px oklch(0 0 0 / 0.04);
|
||||
--app-shadow-lg: 0 12px 32px oklch(0 0 0 / 0.12);
|
||||
--app-opacity-disabled: 0.4;
|
||||
|
||||
--font-sans: "Lato", ui-sans-serif, system-ui, sans-serif;
|
||||
--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
|
||||
--spacing: 0.25rem;
|
||||
--container-max-width: 80rem;
|
||||
--content-width-centered: 80rem;
|
||||
--radius-base: 0.5rem;
|
||||
}
|
||||
|
||||
@ -129,8 +128,6 @@
|
||||
--font-sans: var(--font-sans);
|
||||
--font-mono: var(--font-mono);
|
||||
--spacing: var(--spacing);
|
||||
--container-max-width: var(--container-max-width);
|
||||
|
||||
--radius-sm: calc(var(--radius-base) * 0.25);
|
||||
--radius: calc(var(--radius-base) * 0.5);
|
||||
--radius-md: calc(var(--radius-base) * 0.75);
|
||||
|
||||
@ -9,7 +9,7 @@ LUCI_TITLE:=Aurora Theme (A modern browser theme built with Vite and Tailwind CS
|
||||
LUCI_DEPENDS:=+luci-base
|
||||
|
||||
PKG_VERSION:=1.1.3
|
||||
PKG_RELEASE:=56
|
||||
PKG_RELEASE:=57
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
LUCI_MINIFY_CSS:=
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=natflow
|
||||
PKG_VERSION:=20260531
|
||||
PKG_RELEASE:=52
|
||||
PKG_RELEASE:=53
|
||||
|
||||
PKG_SOURCE:=$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=39fa65605be2d7a9e6ae64fa70f984691e984d70
|
||||
PKG_SOURCE_VERSION:=e155710bcb0afec0af934c18151ac8c3b4f315aa
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -6,13 +6,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=caddy
|
||||
PKG_VERSION:=2.11.4.1
|
||||
PKG_RELEASE:=7
|
||||
PKG_VERSION:=2.11.4.2
|
||||
PKG_RELEASE:=8
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/caddyserver/caddy.git
|
||||
PKG_SOURCE_DATE:=2026-06-22
|
||||
PKG_SOURCE_VERSION:=13a4c3f43c79ca04064457ab9cf95b376c294141
|
||||
PKG_SOURCE_DATE:=2026-07-25
|
||||
PKG_SOURCE_VERSION:=c96bca12693419ac5be751a0cbbae2c3cbf89c58
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
diff -rNu a/cmd/caddy/main.go b/cmd/caddy/main.go
|
||||
--- a/cmd/caddy/main.go 2026-06-23 00:25:43.000000000 +0800
|
||||
+++ b/cmd/caddy/main.go 2026-06-29 19:43:41.213131303 +0800
|
||||
--- a/cmd/caddy/main.go 2026-07-26 06:49:44.000000000 +0800
|
||||
+++ b/cmd/caddy/main.go 2026-07-26 13:31:39.630304707 +0800
|
||||
@@ -35,6 +35,8 @@
|
||||
|
||||
// plug in Caddy modules here
|
||||
@ -11,34 +11,34 @@ diff -rNu a/cmd/caddy/main.go b/cmd/caddy/main.go
|
||||
|
||||
func main() {
|
||||
diff -rNu a/go.mod b/go.mod
|
||||
--- a/go.mod 2026-06-23 00:25:43.000000000 +0800
|
||||
+++ b/go.mod 2026-06-29 19:45:42.789025997 +0800
|
||||
--- a/go.mod 2026-07-26 06:49:44.000000000 +0800
|
||||
+++ b/go.mod 2026-07-26 13:35:04.632074271 +0800
|
||||
@@ -1,12 +1,13 @@
|
||||
module github.com/caddyserver/caddy/v2
|
||||
|
||||
-go 1.25.1
|
||||
+go 1.26.4
|
||||
+go 1.26.5
|
||||
|
||||
require (
|
||||
github.com/BurntSushi/toml v1.6.0
|
||||
github.com/DeRuina/timberjack v1.4.2
|
||||
github.com/DeRuina/timberjack v1.4.5
|
||||
github.com/KimMachineGun/automemlimit v0.7.5
|
||||
github.com/Masterminds/sprig/v3 v3.3.0
|
||||
+ github.com/aksdb/caddy-cgi/v2 v2.2.7
|
||||
github.com/alecthomas/chroma/v2 v2.24.1
|
||||
github.com/alecthomas/chroma/v2 v2.27.0
|
||||
github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b
|
||||
github.com/caddyserver/certmagic v0.25.3
|
||||
github.com/caddyserver/certmagic v0.25.4
|
||||
@@ -20,6 +21,7 @@
|
||||
github.com/klauspost/compress v1.18.6
|
||||
github.com/klauspost/cpuid/v2 v2.3.0
|
||||
github.com/klauspost/compress v1.19.0
|
||||
github.com/klauspost/cpuid/v2 v2.4.0
|
||||
github.com/mholt/acmez/v3 v3.1.6
|
||||
+ github.com/mholt/caddy-webdav v0.0.0-20260127042217-fa2f366b0d75
|
||||
github.com/prometheus/client_golang v1.23.2
|
||||
github.com/quic-go/quic-go v0.59.1
|
||||
github.com/quic-go/quic-go v0.60.0
|
||||
github.com/smallstep/certificates v0.30.2
|
||||
diff -rNu a/go.sum b/go.sum
|
||||
--- a/go.sum 2026-06-23 00:25:43.000000000 +0800
|
||||
+++ b/go.sum 2026-06-29 19:45:42.788025990 +0800
|
||||
--- a/go.sum 2026-07-26 06:49:44.000000000 +0800
|
||||
+++ b/go.sum 2026-07-26 13:35:04.632074271 +0800
|
||||
@@ -40,6 +40,8 @@
|
||||
github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
|
||||
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=opera-proxy
|
||||
PKG_VERSION:=1.27.0
|
||||
PKG_RELEASE:=8
|
||||
PKG_VERSION:=1.28.0
|
||||
PKG_RELEASE:=9
|
||||
|
||||
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
|
||||
PKG_LICENSE:=MIT
|
||||
|
||||
Loading…
Reference in New Issue
Block a user