From b83fb490d2fc5498bfe8ca9e805fe2217fbf98bb Mon Sep 17 00:00:00 2001 From: Skye Soss Date: Sat, 3 Oct 2026 08:58:34 -0500 Subject: [PATCH] doc: document lua changes lua, lua5, and luaPackages are now aliases and resolve to Lua 5.5: add a comment in the Lua documentation and in the 26.11 release notes. --- doc/languages-frameworks/lua.section.md | 18 +++++++++++------- doc/release-notes/rl-2611.section.md | 5 +++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md index f26ba801f8a1..f942d258e821 100644 --- a/doc/languages-frameworks/lua.section.md +++ b/doc/languages-frameworks/lua.section.md @@ -5,17 +5,20 @@ ### Overview of Lua {#lua-overview} Several versions of the Lua interpreter are available: luajit, lua 5.1, 5.2, 5.3. -The attribute `lua` refers to the default interpreter, it is also possible to refer to specific versions, e.g. `lua5_2` refers to Lua 5.2. - +Each interpreter is specified with a versioned identifier, e.g. `lua5_2` refers +to Lua 5.2. Lua libraries are in separate sets, with one set per interpreter version. The interpreters have several common attributes. One of these attributes is `pkgs`, which is a package set of Lua libraries for this specific -interpreter. E.g., the `busted` package corresponding to the default interpreter -is `lua.pkgs.busted`, and the lua 5.2 version is `lua5_2.pkgs.busted`. -The main package set contains aliases to these package sets, e.g. -`luaPackages` refers to `lua5_1.pkgs` and `lua52Packages` to -`lua5_2.pkgs`. +interpreter. E.g., the `busted` package corresponding to Lua 5.2 is +is `lua5_2.pkgs.busted`, and the Lua 5.5 version is `lua5_5.pkgs.busted`. +The main package set contains attributes for these package sets, e.g. +`lua52Packages` refers to `lua5_2.pkgs` and `lua55Packages` to +`lua5_5.pkgs`. + +`lua`, `lua5` and `luaPackages` are convenience aliases for use outside of +nixpkgs and are currently assigned to `lua5_5` and `lua55Packages`. Note that nixpkgs patches the non-luajit interpreters to avoid referring to `/usr` and have `;;` (a [placeholder](https://www.lua.org/manual/5.1/manual.html#pdf-package.path) replaced with the default LUA_PATH) work correctly. @@ -298,3 +301,4 @@ Now, `ps` is set to `lua5_1.pkgs`, matching the version of the interpreter. Following rules should be respected: * Commit names of Lua libraries should reflect that they are Lua libraries, so write for example `luaPackages.luafilesystem: 1.11 -> 1.12`. +* Packages in Nixpkgs must not depend on the `lua`, `lua5` or `luaPackages` aliases. Depend on an explicit version instead, e.g. `lua5_4` or `lua54Packages`. diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index 9ecb6f82c950..28300ed680d5 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -217,6 +217,11 @@ against the new `libsecretspec` library and pkg-config module. The separate `libsecretspec-resolver` package provides a C client for `secretspec serve`. +- `lua`, `lua5` and `luaPackages` are now aliases. + Packages in Nixpkgs that used them now depend on `lua5_2_compat` or `lua52Packages` directly, so overriding `lua`, `lua5` or `luaPackages` in an overlay no longer changes which Lua they are built with. + +- `lua`, `lua5` and `luaPackages` now resolve to Lua 5.5. + - `luaPackages.lrexlib-pcre` has been removed as part of the process to fully migrate from the end-of-life PRCE library to PCRE2. `luaPackages.lrexlib-pcre2` and multiple other versions of lrexlib can be used instead. - `hostapd` was upgraded to version 2.12+, which moves move supported, basic, and beacon transmission rate configuration to be at BSS level instead of per-radio for all BSSs. Refer to the [upstream example config](https://git.w1.fi/cgit/hostap/plain/hostapd/hostapd.conf) for details.