From 7d2fec2d304947918617255e5a0e2c347345f488 Mon Sep 17 00:00:00 2001 From: Liangbin Lian Date: Thu, 18 Dec 2025 13:45:12 +0800 Subject: [PATCH] istoreos/ota: supports ipv4 only network Signed-off-by: Liangbin Lian --- package/diy/luci-app-ota/Makefile | 6 +++++- .../diy/luci-app-ota/luasrc/controller/admin/ota.lua | 4 +++- .../luasrc/model/cbi/admin_system/ota_config.lua | 10 ++++++++++ .../diy/luci-app-ota/luasrc/view/admin_system/ota.htm | 1 - package/diy/luci-app-ota/po/en/ota.po | 3 +++ package/diy/luci-app-ota/po/templates/ota.pot | 3 +++ package/diy/luci-app-ota/po/zh-cn/ota.po | 3 +++ package/diy/luci-app-ota/root/bin/ota | 9 ++++++++- package/diy/luci-app-ota/root/etc/config/ota | 2 ++ 9 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 package/diy/luci-app-ota/luasrc/model/cbi/admin_system/ota_config.lua create mode 100644 package/diy/luci-app-ota/root/etc/config/ota diff --git a/package/diy/luci-app-ota/Makefile b/package/diy/luci-app-ota/Makefile index d93b4ff47e..a57f3f0eab 100644 --- a/package/diy/luci-app-ota/Makefile +++ b/package/diy/luci-app-ota/Makefile @@ -4,10 +4,14 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI for OTA upgrade LUCI_DEPENDS:=+curl LUCI_PKGARCH:=all -PKG_VERSION:=1.5.0 +PKG_VERSION:=1.5.1 PKG_RELEASE:=1 PKG_MAINTAINER:=jjm2473 +define Package/luci-app-ota/conffiles +/etc/config/ota +endef + include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/package/diy/luci-app-ota/luasrc/controller/admin/ota.lua b/package/diy/luci-app-ota/luasrc/controller/admin/ota.lua index 0d42b68955..35c22b9f29 100644 --- a/package/diy/luci-app-ota/luasrc/controller/admin/ota.lua +++ b/package/diy/luci-app-ota/luasrc/controller/admin/ota.lua @@ -11,7 +11,9 @@ function index() return end - entry({"admin", "system", "ota"}, post_on({ apply = "1" }, "action_ota"), _("OTA"), 69) + entry({"admin", "system", "ota"}, alias("admin", "system", "ota", "index"), _("OTA"), 69) + entry({"admin", "system", "ota", "index"}, post_on({ apply = "1" }, "action_ota"), _("OTA"), 1) + entry({"admin", "system", "ota", "config"}, cbi("admin_system/ota_config"), _("Configuration"), 2) entry({"admin", "system", "ota", "check"}, post("action_check")) entry({"admin", "system", "ota", "download"}, post("action_download")) entry({"admin", "system", "ota", "progress"}, call("action_progress")) diff --git a/package/diy/luci-app-ota/luasrc/model/cbi/admin_system/ota_config.lua b/package/diy/luci-app-ota/luasrc/model/cbi/admin_system/ota_config.lua new file mode 100644 index 0000000000..7a6b62e763 --- /dev/null +++ b/package/diy/luci-app-ota/luasrc/model/cbi/admin_system/ota_config.lua @@ -0,0 +1,10 @@ +local m, s, o + +m = Map("ota") + +s=m:section(NamedSection, "network") +s.anonymous=true + +o = s:option(Flag, "ipv4", translate("IPv4 only"), translate("Use IPv4 network for OTA operations")) + +return m diff --git a/package/diy/luci-app-ota/luasrc/view/admin_system/ota.htm b/package/diy/luci-app-ota/luasrc/view/admin_system/ota.htm index 50d0414374..6c6becfe14 100644 --- a/package/diy/luci-app-ota/luasrc/view/admin_system/ota.htm +++ b/package/diy/luci-app-ota/luasrc/view/admin_system/ota.htm @@ -26,7 +26,6 @@ -

<%:OTA%>

<%:Check and upgrade firmware from the Internet%>
<% if image_invalid then %> diff --git a/package/diy/luci-app-ota/po/en/ota.po b/package/diy/luci-app-ota/po/en/ota.po index 55964e98db..e8f6f883b1 100644 --- a/package/diy/luci-app-ota/po/en/ota.po +++ b/package/diy/luci-app-ota/po/en/ota.po @@ -60,3 +60,6 @@ msgstr "" msgid "Found downloading firmware, will show progress" msgstr "" + +msgid "Use IPv4 network for OTA operations" +msgstr "" diff --git a/package/diy/luci-app-ota/po/templates/ota.pot b/package/diy/luci-app-ota/po/templates/ota.pot index 55964e98db..e8f6f883b1 100644 --- a/package/diy/luci-app-ota/po/templates/ota.pot +++ b/package/diy/luci-app-ota/po/templates/ota.pot @@ -60,3 +60,6 @@ msgstr "" msgid "Found downloading firmware, will show progress" msgstr "" + +msgid "Use IPv4 network for OTA operations" +msgstr "" diff --git a/package/diy/luci-app-ota/po/zh-cn/ota.po b/package/diy/luci-app-ota/po/zh-cn/ota.po index db49346130..d1e9ce2764 100644 --- a/package/diy/luci-app-ota/po/zh-cn/ota.po +++ b/package/diy/luci-app-ota/po/zh-cn/ota.po @@ -60,3 +60,6 @@ msgstr "历史更新日志" msgid "Found downloading firmware, will show progress" msgstr "发现下载中的固件,将显示当前进度" + +msgid "Use IPv4 network for OTA operations" +msgstr "使用 IPv4 连接 OTA 服务器" diff --git a/package/diy/luci-app-ota/root/bin/ota b/package/diy/luci-app-ota/root/bin/ota index 69581bcdaa..6ddf5e7700 100755 --- a/package/diy/luci-app-ota/root/bin/ota +++ b/package/diy/luci-app-ota/root/bin/ota @@ -35,7 +35,14 @@ sha256() { sha256sum $1 | cut -d' ' -f1 } -alias fcurl='curl -L --fail --show-error' +OTA_CURL_OPTS="" +case $action in + "check"|"download") + [ "`uci -q get ota.network.ipv4`" = 1 ] && OTA_CURL_OPTS="--ipv4" + ;; +esac +alias fcurl="curl $OTA_CURL_OPTS -L --fail --show-error" +unset OTA_CURL_OPTS download() { local img=$1 diff --git a/package/diy/luci-app-ota/root/etc/config/ota b/package/diy/luci-app-ota/root/etc/config/ota new file mode 100644 index 0000000000..062a473db7 --- /dev/null +++ b/package/diy/luci-app-ota/root/etc/config/ota @@ -0,0 +1,2 @@ +config global 'network' +# option ipv4 '0'