Commit graph

15923 commits

Author SHA1 Message Date
Florian Eckert
4e9aecb24b luci-app-aria2: sync i18n
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2022-10-27 14:03:25 +02:00
Florian Eckert
37328b5897 luci-app-adblock: sync i18n
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2022-10-27 14:03:05 +02:00
Florian Eckert
af5b5fbf09
Merge pull request #5430 from jeje42/feature/luci-app-openvpn-add-tls_crypt_v2-option
Add tls_crypt_v2 openvpn option to LuCI.
2022-10-27 13:19:41 +02:00
Florian Eckert
60b910ae01
Merge pull request #6051 from weblate/weblate-openwrt-luci
Translations update from Hosted Weblate
2022-10-27 13:17:42 +02:00
Hosted Weblate
e7b5467f80
Translated using Weblate (Spanish)
Currently translated at 93.3% (14 of 15 strings)

Translation: OpenWrt/LuCI/applications/example
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsexample/es/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2075 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2075 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (2075 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2075 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pt_BR/

Translated using Weblate (Polish)

Currently translated at 100.0% (2075 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Spanish)

Currently translated at 96.2% (1997 of 2075 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Turkish)

Currently translated at 100.0% (117 of 117 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (177 of 177 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (196 of 196 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (2079 of 2079 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/tr/

Translated using Weblate (Greek)

Currently translated at 30.3% (631 of 2079 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/el/

Co-authored-by: Byacrya <byacrya@proton.me>
Co-authored-by: Eric <hamburger1024@mailbox.org>
Co-authored-by: Franco Castillo <castillofrancodamian@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: TakissX <pxatzidakis@gmail.com>
Co-authored-by: Wellington Terumi Uemura <wellingtonuemura@gmail.com>
Co-authored-by: semih <semiht@gmail.com>
Co-authored-by: sergio <sergio+it@outerface.net>
Signed-off-by: Byacrya <byacrya@proton.me>
Signed-off-by: Eric <hamburger1024@mailbox.org>
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
Signed-off-by: Matthaiks <kitynska@gmail.com>
Signed-off-by: TakissX <pxatzidakis@gmail.com>
Signed-off-by: Wellington Terumi Uemura <wellingtonuemura@gmail.com>
Signed-off-by: semih <semiht@gmail.com>
Signed-off-by: sergio <sergio+it@outerface.net>
2022-10-27 12:40:16 +02:00
Jo-Philipp Wich
2a5efb31b7 luci-base: always link core.so with libcrypt to satisfy glibc builds
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>
2022-10-27 12:36:33 +02:00
Jo-Philipp Wich
1eea6c0ce8 luci-base: add ui indicator when fallback theme is used
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>
2022-10-27 11:14:52 +02:00
Jo-Philipp Wich
bd4bf6ac9b luci-theme-material: fix location of template files
Fixes: #6060
Fixes: e496014760 ("luci-theme-material: convert Lua templates to ucode")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-27 11:14:52 +02:00
Jo-Philipp Wich
767acf32d4 luci-base: dispatcher.uc: update uci session ID in Lua context
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>
2022-10-27 11:14:52 +02:00
Florian Eckert
6f470e0d76 luci-mod-network: remove uppercase for interface name in modal view
Unify the network name display as shown in the overview by removing the
uppercase conversion.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2022-10-27 10:46:54 +02:00
Jo-Philipp Wich
32603718e8 luci-ssl-nginx: drop libiwinfo-lua dependency
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-26 23:41:33 +02:00
Jo-Philipp Wich
67e4e43090 luci-nginx: drop libiwinfo-lua dependency
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-26 23:41:21 +02:00
Jo-Philipp Wich
9d8feace41 luci-app-commands: drop luci-compat dependency
This custom commands application does not utilize Lua code anymore.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-26 23:16:51 +02:00
Jo-Philipp Wich
694b8086cd luci-theme-openwrt-2020: convert Lua templates to ucode
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>
2022-10-26 22:43:56 +02:00
Jo-Philipp Wich
a98e2ea17d luci-lua-runtime: render cbi header/footer templates via ucode runtime
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>
2022-10-26 22:02:16 +02:00
Jo-Philipp Wich
aca4591753
Merge pull request #6055 from TDT-AG/pr/20221026-luci-mod-network
luci-mod-network: remove uppercase for interface name on overview page
2022-10-26 15:39:53 +02:00
Jo-Philipp Wich
81f204d38f luci-lua-runtime: fix loading header/footer templates for SimpleForms
Fixes: #6054
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-26 15:30:11 +02:00
Jo-Philipp Wich
ca57291bdd luci-lua-runtime: ensure proper forwarding of route arguments to cbi action
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>
2022-10-26 15:12:17 +02:00
Florian Eckert
5ffaf47842 luci-mod-network: remove uppercase for interface name on overview page
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>
2022-10-26 12:10:31 +02:00
Jo-Philipp Wich
3ec7bff0d1 .gitignore: adjust paths for autogenerated plural_formula sources
Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1290370037
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 13:26:56 +02:00
Jo-Philipp Wich
70e32f0cb1 luci-base: dispatcher.uc: ensure usage of dashes in language tags
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>
2022-10-25 13:01:31 +02:00
Jo-Philipp Wich
adc4ca65bc luci-base: dispatcher.uc: reintroduce support for 'absent' fs depends
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>
2022-10-25 12:50:37 +02:00
Jo-Philipp Wich
639e7faa1a luci.mk: fix compatibility with GNU Make 4.2
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>
2022-10-25 12:20:22 +02:00
Jo-Philipp Wich
39d722e00a
Merge pull request #5976 from jow-/ucode
[RFT] Rewrite LuCI runtime in ucode
2022-10-25 01:04:07 +02:00
Jo-Philipp Wich
dd1c538b2e luci-app-commands: rewrite to client side rendering
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>
2022-10-25 01:03:38 +02:00
Jo-Philipp Wich
036424df5b treewide: add explicit Lua runtime dependencies where needed
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>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
94dd7fdf60 luci-lua-runtime: drop Lua server gateway modules
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>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
21dacf2db7 luci-base: sys.uc: reliably skip TIME_WAIT connections in conntrack list
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>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
e496014760 luci-theme-material: convert Lua templates to ucode
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
791a71d225 luci-base: sys.uc: fix parsing conntrack list
Ensure that the extracted tuple string starts with a space to fully match
all contained key-value pairs.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
60a9f01978 luci-base: sys.uc: increase init script START/STOP search space
Some init scripts, such as the sysfsutils one, declare their START or
STOP variables very late in the file. Duplicate the search buffer to
2048 byte in order to catch these cases.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
7e30a5e11e luci-base: don't fail getInitList if no indexes can be determined
Gracefully handle missing indexes in the luci rpcd plugin getInitList
procedure.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
008fa18878 luci-proto-wireguard: rewrite rpcd handler in ucode
Rewrite the wireguard rpcd plugin in ucode to prevent an implicit dependency
on the LuCI Lua runtime.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
984a9a4d69 luci-app-statistics: rewrite stat-genconfig in ucode
Rewrite the collectd config generator script in ucode to remove the implicit
dependency on the Lua runtime.

Also move the stat-genconfig script into /usr/libexec as it isn't really a
user facing executable.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
287775351b luci-app-upnp: convert rpcd backend script to ucode
Utilize the rpcd ucode plugin to reimplement the upnp backend ubus actions
in ucode, simplifying the implementation and roughly halving the processing
time for the `get_status` call.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
cea2c3578e luci-lib-base: forward luci.http.context.request.message to ucode
Some existing LuCI application code accesses the
`luci.http.context.request.message.params` HTTP parameter table directly.

Forward the `luci.http.context.request.message` object to the ucode
`luci.http.message` instance in order to properly support this.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
d9dcefd2aa luci-base: dispatcher.uc: support cbi and form action types
Some existing LuCI apps ship menu.d JSON files with `cbi` and `form` typed
dispatch targets, support those as well.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
18ee34def2 luci-lua-runtime: preload luci.sys
Some existing model code expects the luci.sys namespace to be implicitly
available, even without requiring it beforehand.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
6b1be72a1e luci-base: rebase translations
Re-scan base translations after ucode conversion and update po files.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
0143ef24d4 luci: drop dependency on libiwinfo-lua
None of the components pulled in by the standard luci collection require
server side Lua processing anymore, so we're free to drop the explicit
dependency on the libiwinfo Lua binding.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
2e3282e624 luci-theme-bootstrap: translate Lua templates to ucode equivalents
Add ucode template equivalents for the Lua templates used by the theme.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
f478fe6c43 luci-mod-system: drop unused Lua code
Drop an unused, leftover Lua cbi model from the system module.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
97da0baeb6 luci-mod-status: transform status page Lua template into ucode template
Transform the only Lua template of the status module into an equivalent
ucode template and make it conditionally include the legacy Lua logic
factored out in a previous commit.

Only if the ucode Lua bridge is installed and loadable, the Lua template
loading the legacy Lua status partials is included.

After this commit, luci-mod-status is free of Lua dependencies.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
c7b300e614 luci-lua-runtime: add compatibility template for legacy Lua status includes
Add a compatibility template containing legacy Lua logic extracted from
the luci-mod-status main status page in order to free the status module
from any explicit or implicit Lua dependencies.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
daf7ceebba luci-mod-status: remove uneeded libiwinfo-lua dependency
Since the LuCI status module was rewritten into client side views,
there is no server side Lua processing anymore.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
b1ab4e5ba9 luci-mod-network: remove uneeded libiwinfo-lua dependency
Since the LuCI network admin module was rewritten into client side views,
there is no server side Lua processing anymore. The iwinfo routines are
utilized through the corresponding rpcd plugin.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
c1709d15bd build: i18n-scan.pl: add support for ucode sources and templates
Recognize ucode source files and ucode templates and add the necessary logic
to preprocess ucode templates into valid JavaScript sources.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
b15d768c9a luci.mk: automatically depend on luci-lua-runtime
Make packages having a non-empty luasrc/ directory automatically depend
on the LuCI Lua runtime package.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
673f38246a treewide: separate Lua runtime resources
Move classes required for Lua runtime support into a new `luci-lua-runtime`
package. Also replace the `luci.http` and `luci.util` classes in
`luci-lib-base` with stubbed versions interacting with the ucode based
runtime environment.

Finally merge `luci-base-ucode` into the remainders of `luci-base`.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00
Jo-Philipp Wich
ded8ccf93e luci-base-ucode: add initial ucode based LuCI runtime
This commits introduces an initial ucode based LuCI runtime. It supports
JSON menu files as used by Lua based LuCI and the template, call, view and
alias dispatch targets.

It is able to render a basic LuCI installation without errors. An embedded
Lua VM is lazily loaded when Lua based resources are encountered, such as
`*.htm` templates or server side Lua call targets.

When a template is requested, the ucode runtime first tries to render an
`/usr/share/ucode/luci/template/${path}.uc` ucode template and falls back
to rendering the corresponding `/usr/lib/lua/luci/view/${path}.htm` Lua
template in case no suitable ucode replacement is found. This allows for
gradual migration of existing Lua based tmeplates to ucode.

Furthermore, a set of stripped down LuCI libraries is shipped in the
`/usr/lib/lua/luci/ucodebridge/` directory. Those libraries provide
compatibility shims for the current Lua API towards Lua templates and Lua
based server side actions while utilizing the ucode request runtime state
internally.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00