Make sure to request loading the Lua bridge as optional when initializing
the Lua VM context from trycompile() in order to not raise a fatal exception
in case the Lua runtime support is not present.
Ref: https://forum.openwrt.org/t/x/141426
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Add menu tree annotations for node readonly and dependency satisfied state
in order to ensure that unreachable menu nodes are hidden from view.
Fixes: ded8ccf93e ("luci-base-ucode: add initial ucode based LuCI runtime")
Ref: https://forum.openwrt.org/t/x/141426/10
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
In case a callback is installed from Lua code, the received callback
argument is not a callable function but a resource object with a call
method. Attempts to call it will leading to a `Type error: left-hand
side is not a function` error.
To solve this issue, invoke the internally set filehandler instead
which wraps the resource if needed.
Fixes: #6067
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Update timezone data to 2022f.
* http://mm.icann.org/pipermail/tz-announce/2022-October/000075.html
- Mexico will no longer observe DST after 2022, except for areas
near the US border that continue to observe US DST rules.
On 2022-10-30 at 02:00 the Mexican state of Chihuahua moves
from -07 (-06 with DST) to year-round -06.
- Fiji will not observe DST in 2022/3.
For now, assume DST is suspended indefinitely.
- Simplify four Ontario zones.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Adds LuCI GUI for dnsmasq DHCP 'relays'.
The helper functions in dnsmasq/files/dnsmasq.init limit behaviour
whereby it is not possible to omit server_addr, where to omit
it (dnsmasq supported) would result in a broad- or multicast further on.
Tested on 22.03.2
Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
Fixes the following runtime error on glibc based builds:
Runtime error: Unable to dlopen file ...: undefined symbol: crypt
In module(), file /usr/share/ucode/luci/dispatcher.uc, line 1, byte 1:
called from anonymous function (/www/cgi-bin/luci:7:21)
Ref: https://forum.openwrt.org/t/x/137250/18
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Add a ui indicator displaying error details when the configured theme
failed to load and the next available one is being used instead.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Make sure that the uci session ID of the `luci.model.uci` module within
the Lua context is updated once we acquire the login session information.
In case legacy themes are used, the probing of the theme header template
might indirectly load the Lua runtime and the Lua side `luci.dispatcher`
module which in turn will load the `luci.model.uci` and set the session
ID there which is not yet initialized at this point in time.
This results in broken uci change handling within legacy Lua applications
when a legacy theme is loaded.
Fixes: #6060
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Convert the theme's Lua templates to ucode to avoid the implicit dependency
on the luci-lua-runtime package.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Trigger rendering of CBI header and footer templates via the ucode runtime
`include()` in order to ensure that scope data is properly inherited from
Lua templates (`cbi/header`) including ucode templates (`header`).
This fixes automatic triggering of the config apply flow on legacy Lua CBI
forms.
Ref: https://github.com/openwrt/luci/pull/6056#issuecomment-1292396588
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Ensure that the optional cbi() `config` argument is set to an empty table
if unspecified to ensure that the static call argument array is exactly
two elements long, otherwise call arguments are shifted and the invoked
method might not receive the expected parameter.
This fixes, among others, the dispatching of `arcombine()` targets.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
In the overview page, the name of the interface is converted to
uppercase. However, this is not the name in the configuration. From my
point of view, this makes no sense. The name displayed should correspond
exactly to the name in the configuration.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
The LuCI uci configuration requires language tags with underscores due
limitations of uci option names but the language catalogs themselves
are designated with dash separated language tags.
Make sure to substitute underscores with dashes when determining the
desired request language in order to fix loading of languages such as
`pt-br` or `zh-cn`.
Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1290352951
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The ability to require certain paths to be absent for a menu entry to show
up was lost during the ucode conversion.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
GNU Make version 4.2 chokes on `#` characters embedded in variable
substitutions, leading to the following error:
../../luci.mk:114: *** unterminated call to function 'if': missing ')'. Stop.
Avoid this problem by replacing variable substitutions with Git branch
format arguments.
Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1289935106
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Rewrite the luci-app-command configuration to client side cbi forms and
port the server side templates and controller logic to ucode.
Also utilize a query string parameter to pass custom arguments.
Fixes: #5559
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Some packages require Lua libraries but do not ship with a luasrc directory,
add explicit dependencies in these cases.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Remove the uhttpd and CGI gateway modules as they're not compatible with
the Lua compat stub runtime anymore.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The TIME_WAIT indicator might not appear at the beginning of the tuple
string in some cases, so match it anywhere.
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
[add commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>