Commit Graph
4 Commits
Author SHA1 Message Date
Mirko Vogt fe3a534718 lua: install a pkg-config file for Lua 5.4
Lua stopped shipping a pkg-config file after 5.1; the 5.2, 5.3 and 5.4
release tarballs contain none. Distributions add one to their Lua
packages instead: Debian's liblua5.4-dev ships lua5.4.pc, lua-5.4.pc
and lua54.pc, Alpine's lua5.4-dev ships lua5.4.pc and lua-5.4.pc. Build
systems of Lua consumers look Lua 5.4 up under these names. The package
stages no pkg-config file so far, so such builds cannot find
liblua5.4; the only Lua pkg-config file in the staging directory is
lua.pc of the lua package (5.1.5).

Stage lua5.4.pc, generated from a template with the package version,
and lua-5.4.pc and lua54.pc as links to it. It points to the headers in
/usr/include/lua5.4 and to liblua5.4, and lists libm and libdl as
private libraries for static linking, as the upstream Makefile links
them on Linux.

Of the packages that look up one of these names through pkg-config,
libinput disables its Lua plugin support explicitly in the previous
commit. tio looks up lua-5.4 before lua but depends on lua (5.1), so it
links liblua5.4 without depending on it until the next commit moves it
to Lua 5.4. The others select their Lua version explicitly, look up lua
(5.1) first, build without the feature using Lua, or depend on lua5.4
already.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-10-06 10:40:22 +03:00
Alexandru Ardelean 5432f90a1f lua: drop the lua5.4 LUA_ROOT patch
luaconf.h builds the module search paths out of LUA_ROOT, which upstream
hardcodes to /usr/local, where nothing installs on OpenWrt. LUA_ROOT is
defined unconditionally, but the two macros it feeds, LUA_PATH_DEFAULT
and LUA_CPATH_DEFAULT, are both guarded with #if !defined and are the
only users of it, so set them in TARGET_CFLAGS and drop the patch.

The resulting paths are the ones the patch produced, so the interpreter
behaves exactly as before.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-10-06 10:40:22 +03:00
Alexandru Ardelean 3fe92e63f5 lua: look for lua5.4 modules under /usr instead of /usr/local
luaconf.h hardcodes LUA_ROOT to "/usr/local/", and nothing in this
package overrides it for the target build, so the interpreter only ever
searches /usr/local/{share,lib}/lua/5.4. Nothing installs there on
OpenWrt, which leaves every Lua 5.4 module package unreachable:

  # lua5.4 -e 'require "lfs"'
  lua5.4: module 'lfs' not found:
          no file '/usr/local/share/lua/5.4/lfs.lua'
          no file '/usr/local/lib/lua/5.4/lfs.so'
          [...]
  # find / -name lfs.so
  /usr/lib/lua/5.4/lfs.so

Point LUA_ROOT at /usr. LUA_LDIR and LUA_CDIR are derived from it and
keep the version suffix, so the search paths become /usr/share/lua/5.4
and /usr/lib/lua/5.4 - exactly where the Lua 5.4 module packages
install. The core lua (5.1) package carries an equivalent patch.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-07-31 09:46:08 +03:00
Alexandru Ardelean 7eebedcdfc lua: move Lua packages under lang/lua sub-folder
There are roughly 50 Lua packages.
It's about time we consider a proposal for moving all of them
under a lang/lua sub-folder.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2025-11-17 08:46:33 +02:00