mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-27 00:52:51 +08:00
🍕 Sync 2026-06-29 08:46:17
This commit is contained in:
1 parent
d16630f75b
commit
ea7617e5dd
20 files changed
+329
-31
No files matched your search
+1
-1
@@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=airconnect
|
||||
PKG_VERSION:=1.9.3
|
||||
PKG_VERSION:=1.10.1
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_SOURCE:=AirConnect-$(PKG_VERSION).zip
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=daed
|
||||
PKG_VERSION:=2026.06.14
|
||||
PKG_RELEASE:=13
|
||||
PKG_RELEASE:=14
|
||||
|
||||
PKG_SOURCE:=daed-src-2026.06.14-4e215048068a.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
|
||||
|
||||
@@ -4,4 +4,6 @@ config daed 'config'
|
||||
option listen_addr '0.0.0.0:2023'
|
||||
option log_maxbackups '1'
|
||||
option log_maxsize '5'
|
||||
|
||||
option subscribe_auto_update '0'
|
||||
option subscribe_update_cycle 'daily'
|
||||
option subscribe_update_hour '4'
|
||||
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-daede
|
||||
PKG_VERSION:=1.14.7
|
||||
PKG_RELEASE:=23
|
||||
PKG_RELEASE:=24
|
||||
PKG_MAINTAINER:=kenzok8
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
@@ -80,6 +80,8 @@ define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_BIN) ./root/usr/share/luci-app-daede/config-backup.sh $(1)/usr/share/luci-app-daede/config-backup.sh
|
||||
$(INSTALL_BIN) ./root/usr/share/luci-app-daede/refresh-index.sh $(1)/usr/share/luci-app-daede/refresh-index.sh
|
||||
$(INSTALL_BIN) ./root/usr/share/luci-app-daede/geo-cron.sh $(1)/usr/share/luci-app-daede/geo-cron.sh
|
||||
$(INSTALL_BIN) ./root/usr/share/luci-app-daede/daed-sub-update.sh $(1)/usr/share/luci-app-daede/daed-sub-update.sh
|
||||
$(INSTALL_BIN) ./root/usr/share/luci-app-daede/daed-sub-cron.sh $(1)/usr/share/luci-app-daede/daed-sub-cron.sh
|
||||
$(INSTALL_DIR) $(1)/www/cgi-bin
|
||||
$(INSTALL_BIN) ./root/www/cgi-bin/daede-sub $(1)/www/cgi-bin/daede-sub
|
||||
$(INSTALL_BIN) ./root/www/cgi-bin/daede-graphql $(1)/www/cgi-bin/daede-graphql
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
'use strict';
|
||||
'require baseclass';
|
||||
'require form';
|
||||
'require fs';
|
||||
'require uci';
|
||||
'require view.daede.widgets as widgets';
|
||||
|
||||
@@ -19,6 +20,31 @@ function renderDaedSettings() {
|
||||
o.default = '0.0.0.0:2023';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.Value, 'dashboard_username', _('daed Username'),
|
||||
_('Used by LuCI to update daed subscriptions through GraphQL. It does not change the daed Web login account.'));
|
||||
o.placeholder = 'admin';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.Value, 'dashboard_password', _('daed Password'));
|
||||
o.password = true;
|
||||
|
||||
o = s.option(form.Flag, 'subscribe_auto_update', _('Enable subscription auto-update'));
|
||||
o.default = '0';
|
||||
|
||||
o = s.option(form.ListValue, 'subscribe_update_cycle', _('Update Cycle'));
|
||||
o.value('daily', _('Daily'));
|
||||
o.value('weekly', _('Weekly'));
|
||||
o.default = 'daily';
|
||||
o.depends('subscribe_auto_update', '1');
|
||||
|
||||
o = s.option(form.ListValue, 'subscribe_update_hour', _('Update Time'));
|
||||
for (let h = 0; h < 24; h++) {
|
||||
const hh = ('0' + h).slice(-2);
|
||||
o.value(String(h), hh + ':00');
|
||||
}
|
||||
o.default = '4';
|
||||
o.depends('subscribe_auto_update', '1');
|
||||
|
||||
o = s.option(form.Value, 'log_maxsize', _('Max Log Size (MB)'),
|
||||
_('Rotate the log file once it grows past this many megabytes.'));
|
||||
o.datatype = 'uinteger';
|
||||
@@ -48,7 +74,24 @@ function renderDaedSettings() {
|
||||
if (statusTimer) clearTimeout(statusTimer);
|
||||
statusTimer = setTimeout(function() { status.classList.remove('show'); }, hold || 3000);
|
||||
}
|
||||
|
||||
const save = E('button', { 'class': 'cbi-button cbi-button-positive' }, _('Save and Apply'));
|
||||
const update = E('button', { 'class': 'cbi-button cbi-button-action' }, _('Update subscriptions now'));
|
||||
update.addEventListener('click', function(ev) {
|
||||
ev.preventDefault();
|
||||
update.disabled = true;
|
||||
flash(_('Updating daed subscriptions…'));
|
||||
fs.exec('/usr/share/luci-app-daede/daed-sub-update.sh', []).then(function(res) {
|
||||
if (res && res.code !== 0) {
|
||||
const err = (res.stderr || res.stdout || ('exit ' + res.code)).trim().split('\n')[0];
|
||||
flash(_('Subscription update failed: %s').format(err), 'err', 9000);
|
||||
} else {
|
||||
flash(_('Subscriptions updated'), 'ok');
|
||||
}
|
||||
}).catch(function(e) {
|
||||
flash(_('Subscription update failed: %s').format(e.message || e), 'err', 9000);
|
||||
}).finally(function() { update.disabled = false; });
|
||||
});
|
||||
save.addEventListener('click', function(ev) {
|
||||
ev.preventDefault();
|
||||
save.disabled = true;
|
||||
@@ -59,6 +102,14 @@ function renderDaedSettings() {
|
||||
return (ch && Object.keys(ch).length) ? uci.apply() : null;
|
||||
});
|
||||
})
|
||||
.then(function() {
|
||||
const enabled = uci.get('daed', 'config', 'subscribe_auto_update') === '1';
|
||||
return fs.exec('/usr/share/luci-app-daede/daed-sub-cron.sh', [ enabled ? 'enable' : 'disable' ]);
|
||||
})
|
||||
.then(function(res) {
|
||||
if (res && res.code !== 0)
|
||||
throw new Error((res.stderr || res.stdout || ('exit ' + res.code)).trim());
|
||||
})
|
||||
.then(function() {
|
||||
/* no success popup — the reload is feedback enough */
|
||||
setTimeout(function() { window.location.reload(); }, 500);
|
||||
@@ -71,7 +122,7 @@ function renderDaedSettings() {
|
||||
})
|
||||
.finally(function() { save.disabled = false; });
|
||||
});
|
||||
card.appendChild(E('div', { 'class': 'dd-editor-actions' }, [ save, status ]));
|
||||
card.appendChild(E('div', { 'class': 'dd-editor-actions' }, [ update, save, status ]));
|
||||
return card;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -106,6 +106,36 @@ msgstr ""
|
||||
msgid "Number of rotated log files to keep."
|
||||
msgstr ""
|
||||
|
||||
msgid "daed Username"
|
||||
msgstr ""
|
||||
|
||||
msgid "Used by LuCI to update daed subscriptions through GraphQL. It does not change the daed Web login account."
|
||||
msgstr ""
|
||||
|
||||
msgid "daed Password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable subscription auto-update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update Cycle"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update Time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update subscriptions now"
|
||||
msgstr ""
|
||||
|
||||
msgid "Updating daed subscriptions…"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subscriptions updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subscription update failed: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Log Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -120,6 +120,36 @@ msgstr "轮转后保留的旧日志文件数。"
|
||||
msgid "Log Settings"
|
||||
msgstr "日志设置"
|
||||
|
||||
msgid "daed Username"
|
||||
msgstr "daed 用户名"
|
||||
|
||||
msgid "Used by LuCI to update daed subscriptions through GraphQL. It does not change the daed Web login account."
|
||||
msgstr "LuCI 通过 GraphQL 更新 daed 订阅时使用;不会修改 daed Web 的登录账号。"
|
||||
|
||||
msgid "daed Password"
|
||||
msgstr "daed 密码"
|
||||
|
||||
msgid "Enable subscription auto-update"
|
||||
msgstr "启用订阅自动更新"
|
||||
|
||||
msgid "Update Cycle"
|
||||
msgstr "更新周期"
|
||||
|
||||
msgid "Update Time"
|
||||
msgstr "更新时间"
|
||||
|
||||
msgid "Update subscriptions now"
|
||||
msgstr "立即更新订阅"
|
||||
|
||||
msgid "Updating daed subscriptions…"
|
||||
msgstr "正在更新 daed 订阅…"
|
||||
|
||||
msgid "Subscriptions updated"
|
||||
msgstr "订阅已更新"
|
||||
|
||||
msgid "Subscription update failed: %s"
|
||||
msgstr "订阅更新失败:%s"
|
||||
|
||||
# ---- config.js: dae Settings ----
|
||||
msgid "dae Parameters"
|
||||
msgstr "dae 参数"
|
||||
|
||||
@@ -120,6 +120,36 @@ msgstr "轮转后保留的旧日志文件数。"
|
||||
msgid "Log Settings"
|
||||
msgstr "日志设置"
|
||||
|
||||
msgid "daed Username"
|
||||
msgstr "daed 用户名"
|
||||
|
||||
msgid "Used by LuCI to update daed subscriptions through GraphQL. It does not change the daed Web login account."
|
||||
msgstr "LuCI 通过 GraphQL 更新 daed 订阅时使用;不会修改 daed Web 的登录账号。"
|
||||
|
||||
msgid "daed Password"
|
||||
msgstr "daed 密码"
|
||||
|
||||
msgid "Enable subscription auto-update"
|
||||
msgstr "启用订阅自动更新"
|
||||
|
||||
msgid "Update Cycle"
|
||||
msgstr "更新周期"
|
||||
|
||||
msgid "Update Time"
|
||||
msgstr "更新时间"
|
||||
|
||||
msgid "Update subscriptions now"
|
||||
msgstr "立即更新订阅"
|
||||
|
||||
msgid "Updating daed subscriptions…"
|
||||
msgstr "正在更新 daed 订阅…"
|
||||
|
||||
msgid "Subscriptions updated"
|
||||
msgstr "订阅已更新"
|
||||
|
||||
msgid "Subscription update failed: %s"
|
||||
msgstr "订阅更新失败:%s"
|
||||
|
||||
# ---- config.js: dae Settings ----
|
||||
msgid "dae Parameters"
|
||||
msgstr "dae 参数"
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
# Manage daed subscription auto-update cron entry.
|
||||
|
||||
ACTION="$1"
|
||||
CRONTAB="/etc/crontabs/root"
|
||||
TAG="# luci-app-daede daed-sub-update"
|
||||
SCRIPT="/usr/share/luci-app-daede/daed-sub-update.sh"
|
||||
|
||||
clean() {
|
||||
[ -f "$CRONTAB" ] || return 0
|
||||
grep -vF -e "$TAG" -e "$SCRIPT" "$CRONTAB" > "$CRONTAB.tmp" 2>/dev/null
|
||||
mv "$CRONTAB.tmp" "$CRONTAB"
|
||||
}
|
||||
|
||||
clean
|
||||
|
||||
if [ "$ACTION" = "enable" ] && [ "$(uci -q get daed.config.subscribe_auto_update)" = "1" ]; then
|
||||
hour="$(uci -q get daed.config.subscribe_update_hour)"
|
||||
case "$hour" in
|
||||
''|*[!0-9]*) hour=4 ;;
|
||||
esac
|
||||
[ "$hour" -ge 0 ] 2>/dev/null && [ "$hour" -le 23 ] 2>/dev/null || hour=4
|
||||
|
||||
case "$(uci -q get daed.config.subscribe_update_cycle)" in
|
||||
weekly) sched="17 $hour * * 0" ;;
|
||||
*) sched="17 $hour * * *" ;;
|
||||
esac
|
||||
|
||||
mkdir -p /etc/crontabs
|
||||
{
|
||||
echo "$TAG"
|
||||
echo "$sched $SCRIPT >/dev/null 2>&1"
|
||||
} >> "$CRONTAB"
|
||||
/etc/init.d/cron enable >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
/etc/init.d/cron restart >/dev/null 2>&1
|
||||
exit 0
|
||||
@@ -0,0 +1,118 @@
|
||||
#!/bin/sh
|
||||
# Update all daed subscriptions through dae-wing GraphQL.
|
||||
|
||||
LOG="/tmp/luci-app-daede.daed-sub-update.log"
|
||||
LOCK="/tmp/luci-app-daede.daed-sub-update.lock"
|
||||
|
||||
log() {
|
||||
echo "$(date '+%F %T') $*" >> "$LOG"
|
||||
}
|
||||
|
||||
fail() {
|
||||
local code="$1"; shift
|
||||
log "$*"
|
||||
echo "$*" >&2
|
||||
exit "$code"
|
||||
}
|
||||
|
||||
json_escape() {
|
||||
printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g'
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
[ -n "$TMPDIR" ] && rm -rf "$TMPDIR"
|
||||
rmdir "$LOCK" 2>/dev/null
|
||||
}
|
||||
|
||||
if ! mkdir "$LOCK" 2>/dev/null; then
|
||||
fail 1 "daed subscription update already running"
|
||||
fi
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
TMPDIR="$(mktemp -d /tmp/daed-sub-update.XXXXXX)" || exit 1
|
||||
|
||||
port="$(uci -q get daed.config.listen_addr | sed -n 's/.*:\([0-9]\{1,5\}\)$/\1/p')"
|
||||
[ -n "$port" ] || port=2023
|
||||
endpoint="http://127.0.0.1:$port/graphql"
|
||||
|
||||
username="$(uci -q get daed.config.dashboard_username)"
|
||||
password="$(uci -q get daed.config.dashboard_password)"
|
||||
|
||||
if [ -z "$username" ] || [ -z "$password" ]; then
|
||||
fail 2 "missing daed dashboard username or password"
|
||||
fi
|
||||
|
||||
if ! /bin/pidof daed >/dev/null 2>&1; then
|
||||
fail 3 "daed is not running"
|
||||
fi
|
||||
|
||||
post_graphql() {
|
||||
local body="$1" outfile="$2" auth="$3"
|
||||
if [ -n "$auth" ]; then
|
||||
uclient-fetch -q -O "$outfile" \
|
||||
--header="Content-Type: application/json" \
|
||||
--header="Authorization: Bearer $auth" \
|
||||
--post-file="$body" \
|
||||
"$endpoint" 2>>"$LOG"
|
||||
else
|
||||
uclient-fetch -q -O "$outfile" \
|
||||
--header="Content-Type: application/json" \
|
||||
--post-file="$body" \
|
||||
"$endpoint" 2>>"$LOG"
|
||||
fi
|
||||
}
|
||||
|
||||
login_body="$TMPDIR/login.json"
|
||||
login_resp="$TMPDIR/login.out"
|
||||
printf '{"query":"query Login($username:String!,$password:String!){token(username:$username,password:$password)}","variables":{"username":"%s","password":"%s"}}' \
|
||||
"$(json_escape "$username")" "$(json_escape "$password")" > "$login_body"
|
||||
|
||||
log "starting daed subscription update"
|
||||
if ! post_graphql "$login_body" "$login_resp"; then
|
||||
fail 4 "login request failed"
|
||||
fi
|
||||
|
||||
token="$(sed -n 's/.*"token"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$login_resp")"
|
||||
if [ -z "$token" ]; then
|
||||
fail 5 "login failed: $(cat "$login_resp" 2>/dev/null)"
|
||||
fi
|
||||
|
||||
list_body="$TMPDIR/list.json"
|
||||
list_resp="$TMPDIR/list.out"
|
||||
printf '{"query":"query Subscriptions{subscriptions{id tag link}}","variables":{}}' > "$list_body"
|
||||
|
||||
if ! post_graphql "$list_body" "$list_resp" "$token"; then
|
||||
fail 6 "subscription list request failed"
|
||||
fi
|
||||
if grep -q '"errors"' "$list_resp"; then
|
||||
fail 7 "subscription list failed: $(cat "$list_resp" 2>/dev/null)"
|
||||
fi
|
||||
|
||||
sed 's/"id"/\
|
||||
"id"/g' "$list_resp" | sed -n 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' > "$TMPDIR/ids"
|
||||
|
||||
count="$(grep -c . "$TMPDIR/ids" 2>/dev/null || echo 0)"
|
||||
if [ "${count:-0}" -eq 0 ]; then
|
||||
log "no daed subscriptions to update"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
ok=0
|
||||
fail=0
|
||||
while IFS= read -r id || [ -n "$id" ]; do
|
||||
[ -n "$id" ] || continue
|
||||
update_body="$TMPDIR/update.json"
|
||||
update_resp="$TMPDIR/update.out"
|
||||
printf '{"query":"mutation Update($id:ID!){updateSubscription(id:$id){id tag status}}","variables":{"id":"%s"}}' \
|
||||
"$(json_escape "$id")" > "$update_body"
|
||||
if post_graphql "$update_body" "$update_resp" "$token" && ! grep -q '"errors"' "$update_resp"; then
|
||||
ok=$((ok + 1))
|
||||
log "updated subscription $id"
|
||||
else
|
||||
fail=$((fail + 1))
|
||||
log "failed subscription $id: $(cat "$update_resp" 2>/dev/null)"
|
||||
fi
|
||||
done < "$TMPDIR/ids"
|
||||
|
||||
log "finished daed subscription update: ok=$ok fail=$fail total=$count"
|
||||
[ "$fail" -eq 0 ]
|
||||
@@ -79,7 +79,10 @@
|
||||
"/usr/share/luci-app-daede/update-pkg.sh luci-app-daede": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/fetch-clash-yaml.sh *": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/gen-dae-config.sh generate": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/gen-dae-config.sh import": [ "exec" ]
|
||||
"/usr/share/luci-app-daede/gen-dae-config.sh import": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/daed-sub-update.sh": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/daed-sub-cron.sh enable": [ "exec" ],
|
||||
"/usr/share/luci-app-daede/daed-sub-cron.sh disable": [ "exec" ]
|
||||
},
|
||||
"uci": [ "dae", "daed", "daede" ]
|
||||
}
|
||||
|
||||
@@ -39,6 +39,14 @@ function parse_users(cfg) {
|
||||
/* Main */
|
||||
const config = {};
|
||||
|
||||
/* Cache START */
|
||||
/* Cache settings */
|
||||
config.profile = {
|
||||
"store-selected": false,
|
||||
"store-fake-ip": false
|
||||
};
|
||||
/* Cache END */
|
||||
|
||||
/* Inbound START */
|
||||
config.listeners = [];
|
||||
uci.foreach(uciconf, uciserver, (cfg) => {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=virtualdog
|
||||
PKG_VERSION:=1.0.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=1.0.1
|
||||
PKG_RELEASE:=2
|
||||
LUCI_DEPENDS:=+virtualdog
|
||||
LUCI_MINIFY_CSS:=0
|
||||
LUCI_MINIFY_JS:=0
|
||||
|
||||
@@ -17,9 +17,11 @@ function virtualdog_status()
|
||||
local sys = require "luci.sys"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
local port = uci:get_first("virtualdog", "virtualdog", "port") or "8080"
|
||||
local access_token = uci:get_first("virtualdog", "virtualdog", "access_token") or ""
|
||||
local status = {
|
||||
running = (sys.call("pidof virtualdogd >/dev/null") == 0),
|
||||
port = port
|
||||
port = port,
|
||||
access_token = access_token
|
||||
}
|
||||
http.prepare_content("application/json")
|
||||
http.write_json(status)
|
||||
|
||||
@@ -23,12 +23,5 @@ port.description = translate("Port for VirtualDog HTTP server.")
|
||||
|
||||
local access_token = s:option(Value, "access_token", translate("Access token"))
|
||||
access_token.password = true
|
||||
access_token.optional = true
|
||||
|
||||
local help = s:option(DummyValue, "_kvm_help", translate("KVM packages"))
|
||||
help.rawhtml = true
|
||||
function help.cfgvalue()
|
||||
return "<pre>" .. virtualdog_model.kvm_help() .. "</pre>"
|
||||
end
|
||||
|
||||
return m
|
||||
@@ -1,7 +0,0 @@
|
||||
local virtualdog = {}
|
||||
|
||||
virtualdog.kvm_help = function()
|
||||
return "amd KVM使用 opkg install kmod-kvm-amd\nintel KVM使用 opkg install kmod-kvm-intel"
|
||||
end
|
||||
|
||||
return virtualdog
|
||||
@@ -7,7 +7,7 @@ XHR.poll(5, '<%=url("admin/services/virtualdog_status")%>', null, function(x, st
|
||||
}
|
||||
if (st.running) {
|
||||
el.innerHTML = '<br/><em style="color:green"><%:The VirtualDog service is running.%></em>'
|
||||
+ "<br/><br/><input class=\"btn cbi-button cbi-button-apply\" type=\"button\" value=\" <%:Click to open VirtualDog%> \" onclick=\"window.open('http://" + window.location.hostname + ":" + st.port + "/')\"/>";
|
||||
+ "<br/><br/><input class=\"btn cbi-button cbi-button-apply\" type=\"button\" value=\" <%:Click to open VirtualDog%> \" onclick=\"window.open('http://" + window.location.hostname + ":" + st.port + "/auth?token=" + st.access_token + "')\"/>";
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -28,8 +28,6 @@ msgstr "VirtualDog HTTP 服务端口。"
|
||||
msgid "Access token"
|
||||
msgstr "访问令牌"
|
||||
|
||||
msgid "KVM packages"
|
||||
msgstr "KVM 依赖"
|
||||
|
||||
msgid "The VirtualDog service is not running."
|
||||
msgstr "VirtualDog 服务未运行。"
|
||||
|
||||
+2
-2
@@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=natflow
|
||||
PKG_VERSION:=20260531
|
||||
PKG_RELEASE:=26
|
||||
PKG_RELEASE:=27
|
||||
|
||||
PKG_SOURCE:=$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=dab8eb7a37937b4cc848e63003a6a22097098b15
|
||||
PKG_SOURCE_VERSION:=2c0dcb153602970189b18bb9ca6cf2bbcca4d992
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
+3
-3
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=torrserver
|
||||
PKG_VERSION:=MatriX.141.8
|
||||
PKG_RELEASE:=9
|
||||
PKG_VERSION:=MatriX.141.9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/YouROK/TorrServer.git
|
||||
PKG_SOURCE_VERSION:=6e2e02d1be6ac8e75023c5fb3fb4f7c554b6c98c
|
||||
PKG_SOURCE_VERSION:=9ba8f2a8a37869eda85eb2f1deaac71e89a183af
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
|
||||
|
||||
Reference in new issue
Block a user