Skip to content

luci-app-51ddns: add remote access agent interface - #8960

Draft
21hkcloud wants to merge 1 commit into
openwrt:openwrt-24.10from
21hkcloud:codex/luci-app-51ddns-openwrt-24.10
Draft

luci-app-51ddns: add remote access agent interface#8960
21hkcloud wants to merge 1 commit into
openwrt:openwrt-24.10from
21hkcloud:codex/luci-app-51ddns-openwrt-24.10

Conversation

@21hkcloud

Copy link
Copy Markdown

Purpose

Add the LuCI interface for 51ddns-agent to the OpenWrt 24.10 branch so opkg/IPK installations have the same web configuration path as the main-branch submission in #8958.

Interface

  • English token configuration page.
  • Enable/disable control for the agent service.
  • Validated service status, version, plan, and expiry fields.
  • RPC responses serialized with jshn.
  • Plural-aware expiry translations generated with the LuCI scanner.

Dependencies

The matching OpenWrt 24.10 agent package is proposed in openwrt/packages#30345. The LuCI application is kept separate from the agent source archive and depends on the feed package.

Verification

@openwrt openwrt Bot added add package Introduces a new package Makefile build script not following guidelines Pull request does not follow formatting guidelines release/24.10 Issue/PR on branch 24.10 labels Aug 21, 2026
Add an English LuCI page for configuring the 51DDNS account token and
viewing validated agent status, plan, and expiry fields.

Use jshn for RPC serialization and include plural-aware translation
strings generated with the LuCI scanner. Declare the repository-wide
Apache-2.0 license file in the package metadata.

(cherry picked from commit 746fff9)
(cherry picked from commit c46c3c1)

Signed-off-by: Shake Cloud Inc <21hkcloud@gmail.com>
@21hkcloud
21hkcloud force-pushed the codex/luci-app-51ddns-openwrt-24.10 branch from 0063efa to aeb92ae Compare August 21, 2026 04:29
@openwrt openwrt Bot removed the not following guidelines Pull request does not follow formatting guidelines label Aug 21, 2026

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit checks

  • aeb92ae "luci-app-51ddns: add remote access agent interface" — the two (cherry picked from commit …) trailers reference 746fff9fde693b4b2678edd7ee18da18de911bb2 and c46c3c1b09b1066176da495b91710c19e4a46143, neither of which exists in openwrt/luci. They are the two commits on 21hkcloud/luci:codex/luci-app-51ddns, the head branch of #8958, which is still open against master. A backport to openwrt-24.10 should reference the SHAs the commits receive once they are merged to master, so these trailers can only be generated (via git cherry-pick -x) after #8958 lands. As it stands the trailers point at SHAs that will never be reachable from this repository, and this branch would carry the package while master does not.
  • aeb92ae — the message body says "Declare the repository-wide Apache-2.0 license file in the package metadata", but PKG_LICENSE_FILES is resolved against $(PKG_BUILD_DIR), not the repository root, and the package ships no LICENSE file (see inline on Makefile:10). The message also does not mention the PKG_MAINTAINER rename, which is the other hunk that diverges from the commits being cherry-picked.

Both divergences from #8958 (PKG_LICENSE_FILES, PKG_MAINTAINER) look like they belong on the master PR rather than on the backport — the backport should ideally be a byte-identical replay of what merges to master.


Generated by Claude Code

LUCI_PKGARCH:=all

PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is not present in either commit the message claims to cherry-pick (746fff9 / c46c3c1 on the head branch of #8958) — it is introduced only in this 24.10 version, so the two branches will diverge as soon as #8958 lands.

It also resolves to nothing: PKG_LICENSE_FILES is looked up relative to $(PKG_BUILD_DIR), and luci.mk's Build/Prepare only copies luasrc ucode htdocs root src there. applications/luci-app-51ddns/ ships no LICENSE file, so nothing is ever collected. (The only other in-tree user on this branch, modules/luci-base/Makefile:34, has the same problem, so it is inert rather than fatal — but it does not do what the commit body says it does.)

Either drop the line, or add a real LICENSE file to the package directory:

Suggested change
PKG_LICENSE_FILES:=LICENSE

Generated by Claude Code


PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Shake Cloud Inc <21hkcloud@gmail.com>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the maintainer differs from the commits this backports. #8958 (c46c3c1, applications/luci-app-51ddns/Makefile:10) carries PKG_MAINTAINER:=Jinshuan Wang <21hkcloud@gmail.com>; here it is Shake Cloud Inc <21hkcloud@gmail.com>. Same address, different name — pick one and make both branches agree, otherwise the backport will conflict/diverge from master once #8958 is merged.


Generated by Claude Code

LUCI_TITLE:=LuCI support for 51DDNS remote access
LUCI_URL:=https://github.com/21hkcloud/51ddns-openwrt
LUCI_DESCRIPTION:=Configure and monitor the 51DDNS remote access agent.
LUCI_DEPENDS:=+luci-base +51ddns-agent

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the two PRs name different agent submissions. This PR body cites openwrt/packages#30345 as the backing package, while #8958 — the master-branch PR whose commits this claims to cherry-pick — cites openwrt/packages#30158. Neither 51ddns-agent nor any 51ddns UCI config exists in the packages feed today, so +51ddns-agent is unresolvable until one of them lands.

Which packages PR is the 24.10 one? Worth stating explicitly, since this app is unbuildable/uninstallable until it is merged, and the 51ddns UCI config and /var/lib/51ddns/status.json that the view and the rpcd helper both read come from that package.


Generated by Claude Code

"path": "51ddns/overview"
},
"depends": {
"acl": [ "luci-app-51ddns" ]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the view binds a form.NamedSection('main', 'agent') with addremove = false, so if /etc/config/51ddns is missing or has no main section the page renders as an empty form with no explanation. Roughly half of the in-tree apps that declare an acl dependency also gate the menu entry on the config existing (luci-app-adblock-fast, luci-app-acl, …), which hides the entry instead:

Suggested change
"acl": [ "luci-app-51ddns" ]
"acl": [ "luci-app-51ddns" ],
"uci": { "51ddns": true }

Intentional to always show it, given the agent package owns the config file?


Generated by Claude Code

@21hkcloud
21hkcloud marked this pull request as draft August 21, 2026 07:50
@21hkcloud

Copy link
Copy Markdown
Author

Converted this backport to draft. It will be rebuilt as a byte-identical cherry-pick from the final master commit only after #8958 is merged; no release-branch merge is requested before then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

add package Introduces a new package Makefile build script release/24.10 Issue/PR on branch 24.10

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants