<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/modules/luci-base/root/usr/share, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-08-03T09:58:22Z</updated>
<entry>
<title>luci-base: drop init_action() and the luci.setInitAction ubus method</title>
<updated>2026-08-03T09:58:22Z</updated>
<author>
<name>Julius Bairaktaris</name>
</author>
<published>2026-08-02T00:41:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=4440b267ddef05b13b09c7c31ef7eba2401d2651'/>
<id>urn:sha1:4440b267ddef05b13b09c7c31ef7eba2401d2651</id>
<content type='text'>
Both duplicate rpcd's rc ubus namespace, which exposes the same
enable/disable/start/stop/restart/reload set through rc.init and is what
downstream code wishing to control services should be using.

The duplicate was also the weaker of the two. init_action() interpolated
both of its arguments into a shell command run as root:

    system(`env -i /etc/init.d/${basename(name)} ${action} &gt;/dev/null`);

basename() kept name inside /etc/init.d, but it strips directory
components only - `;`, backticks, `$(`, `|` and newlines survive it -
and action reached the shell with nothing checking it at all. Nothing
untrusted got there: setInitAction switched on a fixed action list, and
for name the stat() gate required the interpolated string to exist as a
file under /etc/init.d, an existence check rather than a validation.
But init_action() was exported from luci-base, so any future caller
forwarding an RPC argument straight through inherited root command
execution.

rc.init has no shell to escape from - it execs the script - and it
additionally refuses scripts that are not root-owned or that are
world-writable.

The in-tree users are ported in the preceding commits.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Julius Bairaktaris &lt;julius@bairaktaris.de&gt;
</content>
</entry>
<entry>
<title>luci-base: set password also for rpcd user</title>
<updated>2026-06-03T10:49:07Z</updated>
<author>
<name>Christian Korber</name>
</author>
<published>2026-04-28T07:19:30Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=b33ede60468e71ca5033aae09696eb0ac2531619'/>
<id>urn:sha1:b33ede60468e71ca5033aae09696eb0ac2531619</id>
<content type='text'>
This change allows the root user to change also rpcd logins via
administration tab in system. This changes `setPassword` in a way that
existing calls to it fall back to change unix passwords.

The goal of this commit is to prepare the environment to add password
policy (password length, valid property, special characters, etc)
to the administration tab.

Signed-off-by: Christian Korber &lt;ckorber@tdt.de&gt;
</content>
</entry>
<entry>
<title>luci-base: replace ufpd access check with service run check</title>
<updated>2026-05-18T07:48:13Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-02-12T11:45:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=01d061715335d0263a64d3624ec67a22e8260a79'/>
<id>urn:sha1:01d061715335d0263a64d3624ec67a22e8260a79</id>
<content type='text'>
It is not enough simply to check whether the tool is installed. It is
essential to check whether the service is actually running. After all,
we need the functionality provided by the service.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>luci-mod-network: check kernel for mptcp to display MPTCP options</title>
<updated>2026-04-04T17:12:54Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-04-04T17:12:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a6b7ad4652f7a47fe21482ff97679ca3a2e6d7fb'/>
<id>urn:sha1:a6b7ad4652f7a47fe21482ff97679ca3a2e6d7fb</id>
<content type='text'>
https://www.kernel.org/doc/html/v6.12/networking/mptcp-sysctl.html

There may be user instances where mptcp was not compiled
into the kernel or is an unloaded module, so gate the options
behind the feature check.

Closes #8522

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: fix ubus getFeatures() crash</title>
<updated>2026-04-01T11:11:14Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2026-04-01T11:11:14Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=95a84c0c4369cfaad6b67961b2c5e6be0870f528'/>
<id>urn:sha1:95a84c0c4369cfaad6b67961b2c5e6be0870f528</id>
<content type='text'>
OpenWrt versions that provide odhcpd versions reporting a compile time
features line in their help output trigger a crash in the getFeatures()
procedure (attempt to set property on boolean value) - fix this issue
by not predeclaring the odhcpd flag as `false`.

Fixes: #8489
Fixes: 0529dca7a2 ("luci-base: fix feature detection patterns")
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>luci-base: fix feature detection patterns</title>
<updated>2026-03-30T13:08:45Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2026-03-24T19:50:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=0529dca7a263a9ce713dd043d87467d16544e204'/>
<id>urn:sha1:0529dca7a263a9ce713dd043d87467d16544e204</id>
<content type='text'>
Upstream ucode commit 8a8b4d1 ("types: fix regexp `/.../s` flag inversion")
changed the semantics of /.../s regexp patterns to match the ECMAScript
behavior, meaning `/s` enables single line matching and omitting it
performs line-wise matching. Besides changing the behavior of `.` to match
newlines, the `/s` flag also changes `^` and `$` to only match the begin
and end of the entire string input, respectively instead of matching the
start and end of lines.

This broke feature pattern matching in the luci rpcd plugin, causing LuCI
to incorrectly disable certain features.

This commit changes the affected places to read the command outputs
linewise and to perform the feature flag matching against each read line
individually, including an explicit terminating newline to make the
pattern match forward- and backward compatible with fixed and unfixed
ucode versions.

Fixes: https://github.com/jow-/ucode/issues/389
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>luci-base: resolve symlinks for PCI hardware</title>
<updated>2026-03-16T14:54:07Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-03-16T14:54:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=ab72c4457a18334a99a175da6eb6a1a53c63af7e'/>
<id>urn:sha1:ab72c4457a18334a99a175da6eb6a1a53c63af7e</id>
<content type='text'>
getBuiltinEthernetPorts crashed with "Unknown error"
on hardware where NICs have PCI subsystem symlinks at
different sysfs depths (e.g. onboard NIC vs PCIe card NIC).

The getBuiltinEthernetPorts x86_64 workaround block
needs realpath() to resolve PCI subsystem symlinks.

readlink() returns different strings ("../../../bus/pci" vs
"../../../../bus/pci") even though both resolve to /sys/bus/pci,
causing eth1 and eth2 to be incorrectly excluded from the result.

E.g.:

  eth0: /sys/class/net/eth0/device/subsystem -&gt; ../../../bus/pci
  eth1: /sys/class/net/eth1/device/subsystem -&gt; ../../../../bus/pci
  eth2: /sys/class/net/eth2/device/subsystem -&gt; ../../../../bus/pci

1. Add realpath to the 'fs' module import statement
2. Use realpath() to normalize paths

Closes #8425
Reported-by: @MI2-2
Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: load luci preferences early</title>
<updated>2026-02-03T19:30:37Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-02-03T19:30:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=01c53bec37cac7ed4878ce1c8537df667eb8c7fa'/>
<id>urn:sha1:01c53bec37cac7ed4878ce1c8537df667eb8c7fa</id>
<content type='text'>
Follow-up to 315dbfc7498e2f43afb0119b992915e8f311bc37

In order to look at any saved uci value, the luci config
must be loaded before we render the page, so we can determine
stored preferences, for things like table filter, without
encumbering all consumers of configurable elements to load
the luci uci configuration.

All (Table) elements extend CBIAbstractElement, so load
there.

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: poe and PSE details &amp; configuration</title>
<updated>2026-01-26T02:40:38Z</updated>
<author>
<name>Carlo Szelinsky</name>
</author>
<published>2026-01-25T11:40:49Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=8e493db75a80194a1f76ded11df4dbf32f1235d1'/>
<id>urn:sha1:8e493db75a80194a1f76ded11df4dbf32f1235d1</id>
<content type='text'>
Adds PoE/PSE configuration support for modern linux (PSE-PD).
This change is based on the PSE-PD backport (from 6.17)
and netifd|ubus changes.

* Add getPSE() [receive all status information]
and hasPSE() [has the device PSE hardware?]

* Changes ACL permissions to query network.device status information

* Add two new PoE icons (PoE active with link up + link down) for
the port status page

* Changes port status to show PoE information, next to link information
and data transfer.

* Add a new tab for PoE/PSE to the device configuration,
which will only be displayed if the device supports PSE

Signed-off-by: Carlo Szelinsky &lt;github@szelinsky.de&gt;
</content>
</entry>
<entry>
<title>luci-base: rpc: fix luci/getMountPoints crash</title>
<updated>2026-01-09T20:52:18Z</updated>
<author>
<name>Liangbin Lian</name>
</author>
<published>2026-01-08T18:25:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=5ad9c3609e1616836d6bc6125a6c983231a2de9c'/>
<id>urn:sha1:5ad9c3609e1616836d6bc6125a6c983231a2de9c</id>
<content type='text'>
getMountPoints crash on path containing '\xxx'.

`char` should be `chr`

Fixes https://github.com/openwrt/openwrt/issues/21459

Signed-off-by: Liangbin Lian &lt;jjm2473@gmail.com&gt;
</content>
</entry>
</feed>
