🦄 Sync 2026-06-07 23:12:22

This commit is contained in:
github-actions[bot] 2026-06-07 23:12:22 +08:00
parent 6998b3495b
commit c2eb160773
16 changed files with 207 additions and 1198 deletions

View File

@ -5,8 +5,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ddns-go
PKG_VERSION:=6.17.2
PKG_RELEASE:=14
PKG_VERSION:=6.17.1
PKG_RELEASE:=15
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/jeessy2/ddns-go/tar.gz/v$(PKG_VERSION)?

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=gecoosac
PKG_VERSION:=2.2.20251015
PKG_RELEASE:=4
PKG_RELEASE:=5
ifeq ($(ARCH),aarch64)
PKG_ARCH:=ac_linux_arm64
@ -41,7 +41,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Network
TITLE:=gecoosac server (version $(PKG_VERSION))
URL:=http://www.cnrouter.com/
DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) +px5g-mbedtls
DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) +openssl-util
endef
define Package/$(PKG_NAME)/conffiles

View File

@ -16,6 +16,7 @@ DEFAULT_CRT_FILE=/etc/gecoosac/tls/gecoosac.crt
DEFAULT_KEY_FILE=/etc/gecoosac/tls/gecoosac.key
DEFAULT_PID_DIR=/var/run/
DEFAULT_LANG=zh
CERT_TIMEOUT=60
init_conf() {
config_load "gecoosac"
@ -50,6 +51,122 @@ is_port() {
[ "$1" -ge 1 ] 2>/dev/null && [ "$1" -le 65535 ]
}
run_with_timeout() {
local timeout pid i
timeout="$1"
shift
"$@" >/dev/null 2>&1 &
pid="$!"
i=0
while kill -0 "$pid" >/dev/null 2>&1; do
if [ "$i" -ge "$timeout" ]; then
kill "$pid" >/dev/null 2>&1
sleep 1
kill -9 "$pid" >/dev/null 2>&1
wait "$pid" 2>/dev/null
return 1
fi
sleep 1
i=$((i + 1))
done
wait "$pid"
}
is_ipv4() {
local old_ifs part
old_ifs="$IFS"
IFS=.
set -- $1
IFS="$old_ifs"
[ "$#" -eq 4 ] || return 1
for part in "$@"; do
case "$part" in
""|*[!0-9]*) return 1 ;;
esac
[ "$part" -le 255 ] 2>/dev/null || return 1
done
return 0
}
cert_matches_san() {
local cert_file="$1"
local cert_host="$2"
local cert_ip="$3"
local san
[ -s "$cert_file" ] || return 1
san="$(openssl x509 -in "$cert_file" -noout -ext subjectAltName 2>/dev/null)" || return 1
echo "$san" | grep -F -q "DNS:${cert_host}" || return 1
[ -z "$cert_ip" ] || echo "$san" | grep -F -q "IP Address:${cert_ip}" || return 1
return 0
}
generate_default_cert() {
local cert_host cert_ip cert_cn cert_san tmp_crt tmp_key
if ! command -v openssl >/dev/null 2>&1; then
logger -t gecoosac "openssl is required to generate the default HTTPS certificate"
return 1
fi
cert_host="$(uci -q get system.@system[0].hostname)"
case "$cert_host" in
""|*[!A-Za-z0-9.-]*) cert_host="GecoosAC" ;;
esac
cert_ip="$(uci -q get network.lan.ipaddr)"
is_ipv4 "$cert_ip" || cert_ip=""
if [ -s "$DEFAULT_KEY_FILE" ] && cert_matches_san "$DEFAULT_CRT_FILE" "$cert_host" "$cert_ip"; then
return 0
fi
mkdir -p /etc/gecoosac/tls
cert_cn="${cert_ip:-$cert_host}"
cert_san="DNS:$cert_host"
[ -n "$cert_ip" ] && cert_san="${cert_san},IP:${cert_ip}"
tmp_crt="${DEFAULT_CRT_FILE}.tmp"
tmp_key="${DEFAULT_KEY_FILE}.tmp"
rm -f "$tmp_crt" "$tmp_key"
run_with_timeout "$CERT_TIMEOUT" openssl req \
-x509 \
-nodes \
-newkey ec \
-pkeyopt ec_paramgen_curve:prime256v1 \
-pkeyopt ec_param_enc:named_curve \
-sha256 \
-days 3650 \
-keyout "$tmp_key" \
-out "$tmp_crt" \
-subj "/CN=$cert_cn" \
-addext "basicConstraints=critical,CA:FALSE" \
-addext "keyUsage=digitalSignature" \
-addext "extendedKeyUsage=serverAuth" \
-addext "subjectAltName=$cert_san"
if [ -s "$tmp_crt" ] && [ -s "$tmp_key" ] && cert_matches_san "$tmp_crt" "$cert_host" "$cert_ip"; then
mv "$tmp_key" "$DEFAULT_KEY_FILE"
mv "$tmp_crt" "$DEFAULT_CRT_FILE"
chmod 600 "$DEFAULT_KEY_FILE"
chmod 644 "$DEFAULT_CRT_FILE"
return 0
fi
rm -f "$tmp_crt" "$tmp_key"
logger -t gecoosac "failed to generate default HTTPS certificate"
return 1
}
normalize_conf() {
is_abs_path "$upload_dir" || upload_dir="$DEFAULT_UPLOAD_DIR"
is_abs_path "$db_dir" || db_dir="$DEFAULT_DB_DIR"
@ -75,81 +192,6 @@ ensure_dirs() {
mkdir -p "$upload_dir" "$db_dir" "$piddir" /etc/gecoosac/tls
}
generate_default_cert() {
local cert_host cert_ip cert_cn cert_san tmp_crt tmp_key
[ "$crt_file" = "$DEFAULT_CRT_FILE" ] || return 1
[ "$key_file" = "$DEFAULT_KEY_FILE" ] || return 1
if ! command -v px5g >/dev/null 2>&1; then
logger -t gecoosac "px5g is required to generate the default HTTPS certificate"
return 1
fi
cert_host="$(uci -q get system.@system[0].hostname)"
case "$cert_host" in
""|*[!A-Za-z0-9._-]*) cert_host="GecoosAC" ;;
esac
cert_ip="$(uci -q get network.lan.ipaddr)"
case "$cert_ip" in
""|*[!0-9.]*) cert_ip="" ;;
esac
cert_cn="${cert_ip:-$cert_host}"
cert_san="DNS:$cert_host"
[ -n "$cert_ip" ] && cert_san="${cert_san},IP:${cert_ip}"
tmp_crt="${crt_file}.tmp"
tmp_key="${key_file}.tmp"
rm -f "$tmp_crt" "$tmp_key"
px5g selfsigned \
-days 3650 \
-newkey rsa:2048 \
-keyout "$tmp_key" \
-out "$tmp_crt" \
-subj "/CN=$cert_cn" \
-addext "subjectAltName=$cert_san" \
-addext "extendedKeyUsage=serverAuth" >/dev/null 2>&1
if [ ! -r "$tmp_crt" ] || [ ! -r "$tmp_key" ]; then
rm -f "$tmp_crt" "$tmp_key"
px5g selfsigned \
-days 3650 \
-newkey rsa:2048 \
-keyout "$tmp_key" \
-out "$tmp_crt" \
-subj "/CN=$cert_cn" >/dev/null 2>&1
fi
if [ -r "$tmp_crt" ] && [ -r "$tmp_key" ]; then
mv "$tmp_key" "$key_file"
mv "$tmp_crt" "$crt_file"
else
rm -f "$tmp_crt" "$tmp_key"
fi
if [ ! -r "$crt_file" ] || [ ! -r "$key_file" ]; then
# Some older px5g builds only support writing directly to final paths.
rm -f "$crt_file" "$key_file"
px5g selfsigned \
-days 3650 \
-newkey rsa:2048 \
-keyout "$key_file" \
-out "$crt_file" \
-subj "/CN=$cert_cn" >/dev/null 2>&1
if [ ! -r "$crt_file" ] || [ ! -r "$key_file" ]; then
logger -t gecoosac "failed to generate default HTTPS certificate"
return 1
fi
fi
chmod 600 "$key_file"
chmod 644 "$crt_file"
return 0
}
start_service() {
init_conf
normalize_conf
@ -163,11 +205,13 @@ start_service() {
ensure_dirs
if [ "$isonlyoneprot" = "0" ] && [ "$https" = "1" ]; then
if [ "$crt_file" = "$DEFAULT_CRT_FILE" ] && [ "$key_file" = "$DEFAULT_KEY_FILE" ]; then
generate_default_cert || return 1
fi
if [ ! -r "$crt_file" ] || [ ! -r "$key_file" ]; then
generate_default_cert || {
logger -t gecoosac "HTTPS is enabled but certificate or key file is missing"
return 1
}
logger -t gecoosac "HTTPS is enabled but certificate or key file is missing"
return 1
fi
fi

View File

@ -1,6 +1,10 @@
#!/bin/sh
changed=0
DEFAULT_CRT_FILE=/etc/gecoosac/tls/gecoosac.crt
DEFAULT_KEY_FILE=/etc/gecoosac/tls/gecoosac.key
OLD_CRT_FILE=/etc/gecoosac/tls/1.crt
OLD_KEY_FILE=/etc/gecoosac/tls/1.key
ensure_section() {
uci -q get gecoosac.config >/dev/null && return 0
@ -17,14 +21,32 @@ set_default() {
changed=1
}
migrate_legacy_cert_paths() {
local crt_file key_file
crt_file="$(uci -q get gecoosac.config.crt_file)"
key_file="$(uci -q get gecoosac.config.key_file)"
if [ "$crt_file" = "$OLD_CRT_FILE" ]; then
uci -q set "gecoosac.config.crt_file=${DEFAULT_CRT_FILE}"
changed=1
fi
if [ "$key_file" = "$OLD_KEY_FILE" ]; then
uci -q set "gecoosac.config.key_file=${DEFAULT_KEY_FILE}"
changed=1
fi
}
ensure_section
migrate_legacy_cert_paths
set_default enabled 0
set_default port 60650
set_default isonlyoneprot 1
set_default m_port 8080
set_default https 0
set_default crt_file /etc/gecoosac/tls/gecoosac.crt
set_default key_file /etc/gecoosac/tls/gecoosac.key
set_default crt_file "$DEFAULT_CRT_FILE"
set_default key_file "$DEFAULT_KEY_FILE"
set_default upload_dir /tmp/gecoosac/upload/
set_default db_dir /etc/gecoosac/
set_default piddir /var/run/

View File

@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-gecoosac
PKG_VERSION:=2.2
PKG_RELEASE:=4
PKG_RELEASE:=5
LUCI_TITLE:=LuCI Support for gecoosac
LUCI_DEPENDS:=+luci-compat +gecoosac

View File

@ -113,7 +113,7 @@ o.default = 8080
o.datatype = "port"
o:depends("isonlyoneprot", false)
o = s:option(Flag, "https", translate("Enable HTTPS service"), translate("A certificate file must be specified, otherwise it will fail to start."))
o = s:option(Flag, "https", translate("Enable HTTPS service"), translate("Default certificate files are generated when HTTPS starts; custom paths must point to readable files."))
o.default = 0
o:depends("isonlyoneprot", false)

View File

@ -1,6 +1,9 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "Default certificate files are generated when HTTPS starts; custom paths must point to readable files."
msgstr "默认证书文件会在 HTTPS 启动时生成;自定义路径必须指向可读取的文件。"
msgid "Gecoos AC"
msgstr "集客AC控制器"

View File

@ -1,47 +0,0 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=qmi_wwan_m
PKG_VERSION:=1.0
PKG_RELEASE:=3
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define KernelPackage/qmi_wwan_m
SUBMENU:=WWAN Support
TITLE:=Meig Linux USB QMI WWAN Driver
DEPENDS:=+kmod-usb-net +kmod-usb-wdm
FILES:=$(PKG_BUILD_DIR)/qmi_wwan_m.ko
AUTOLOAD:=$(call AutoLoad,82,qmi_wwan_m)
endef
define KernelPackage/qmi_wwan_m/description
Meig Linux USB QMI WWAN Driver
endef
MAKE_OPTS:= \
ARCH="$(LINUX_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
CXXFLAGS="$(TARGET_CXXFLAGS)" \
M="$(PKG_BUILD_DIR)" \
$(EXTRA_KCONFIG)
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(MAKE_OPTS) \
modules
endef
$(eval $(call KernelPackage,qmi_wwan_m))

View File

@ -1,35 +0,0 @@
obj-m := qmi_wwan_m.o
GobiNet-objs := qmi_wwan_m.o
PWD := $(shell pwd)
OUTPUTDIR=/lib/modules/`uname -r`/kernel/drivers/net/usb/
ifeq ($(ARCH),)
ARCH := $(shell uname -m)
endif
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE :=
endif
ifeq ($(KDIR),)
KDIR := /lib/modules/$(shell uname -r)/build
ifeq ($(ARCH),i686)
ifeq ($(wildcard $KDIR/arch/$ARCH),)
ARCH=i386
endif
endif
endif
default:
ln -sf makefile Makefile
$(MAKE) ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} -C $(KDIR) M=$(PWD) modules
install: default
mkdir -p $(OUTPUTDIR)
cp -f qmi_wwan_m.ko $(OUTPUTDIR)
depmod
modprobe -r qmi_wwan_m
modprobe qmi_wwan_m
clean:
rm -rf Makefile
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module.* modules.order

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,65 @@
#
# Copyright (C) 2024 sbwml <admin@cooluc.com>
# Copyright (c) 2025-2026 sirpdboy <herboy2008@gmail.com>
#
# This is free software, licensed under the GPL-3.0 License.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ookla-speedtest
PKG_VERSION:=1.2.0
PKG_RELEASE:=16
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
PKG_RELEASE:=17
ifeq ($(ARCH),aarch64)
PKG_ARCH_SUFFIX:=aarch64
PKG_HASH:=skip
else ifeq ($(ARCH),arm)
ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
ifeq ($(ARM_CPU_FEATURES),)
PKG_ARCH_SUFFIX:=armel
PKG_HASH:=skip
else
PKG_ARCH_SUFFIX:=armhf
PKG_HASH:=skip
endif
else ifeq ($(ARCH),i386)
PKG_ARCH_SUFFIX:=i386
PKG_HASH:=skip
else ifeq ($(ARCH),x86_64)
PKG_ARCH_SUFFIX:=x86_64
PKG_HASH:=skip
endif
PKG_SOURCE:=ookla-speedtest-$(PKG_VERSION)-linux-$(PKG_ARCH_SUFFIX).tgz
PKG_SOURCE_URL:=https://install.speedtest.net/app/cli
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_ARCH_SUFFIX)
PKG_MAINTAINER:=sbwml <admin@cooluc.com>
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
TITLE:=Speedtest from Ookla
SECTION:=net
CATEGORY:=Network
SECTION:=net
CATEGORY:=Network
SUBMENU:=Speed Test
TITLE:=Speedtest CLI by Ookla
URL:=https://www.speedtest.net/
DEPENDS:=@(aarch64||arm||i386||x86_64) +ca-certificates
URL:=https://www.speedtest.net/
endef
ifeq ($(ARCH),x86_64)
BIN_PATH:=./files/x86_64
endif
ifeq ($(ARCH),i386)
BIN_PATH:=./files/i386
endif
ifeq ($(ARCH),arm)
BIN_PATH:=./files/armhf
endif
ifeq ($(ARCH),aarch64)
BIN_PATH:=./files/aarch64
endif
define Package/$(PKG_NAME)/description
Speedtest CLI brings the trusted technology and global server network behind Speedtest to the command line.
Built for software developers, system administrators and computer enthusiasts alike,
Speedtest CLI is the first official Linux-native Speedtest application backed by Ookla®.
Speedtest CLI by Ookla is the official command line client
for testing internet bandwidth using speedtest.net servers.
endef
define Build/Prepare
endef
define Build/Configure
( \
pushd $(PKG_BUILD_DIR) ; \
$(TAR) -zxf $(DL_DIR)/ookla-speedtest-$(PKG_VERSION)-linux-$(PKG_ARCH_SUFFIX).tgz -C . ; \
popd ; \
)
endef
define Build/Compile
@ -43,9 +67,7 @@ endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(BIN_PATH)/speedtest $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/speedtest $(1)/usr/bin/ookla-speedtest
endef
ifeq ($(ARCH),$(filter $(ARCH), x86_64 i386 arm aarch64))
$(eval $(call BuildPackage,$(PKG_NAME)))
endif
$(eval $(call BuildPackage,$(PKG_NAME)))

Binary file not shown.

2
quectel_MHI/Makefile Normal file → Executable file
View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=pcie_mhi
PKG_VERSION:=1.3.8
PKG_RELEASE:=7
PKG_RELEASE:=8
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk