Gentoo Archives: gentoo-dev

From: Azamat Hackimov <azamat.hackimov@×××××.com>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] State of Lua in Gentoo, Part Two
Date: Thu, 28 May 2020 23:58:46
1 Hello.
3 There have been discussions about the status of the Lua in Gentoo
4 earlier[1][2][3], but they have not led to any progress: we are still
5 stuck on Lua 5.1, which is approaching to EOL. And there almost ready
6 lua 5.4 on the sight... I would like to return to the discussion of
7 the problems with the Lua, which over a period of more than 7 years
8 have accumulated quite a lot.
10 Firstly, an assembly system is needed that would allow adapt new
11 versions of lua without heavy patchwork. I suggest using one of the
12 options that other distributions already use - for example, RedHat use
13 autotools[4], we can adapt their works or write our own, for example,
14 on cmake or meson.
16 Secondly, we need to make the lua available in the system as a regular
17 dependency for other packages. Here I also suggest to use working of
18 RedHat and Debian, which offer a rather convenient mechanism through
19 the pkg-config, which we also have, but in a broken state.
21 It is also important to keep in mind that in a lua there are the
22 concepts of LMOD (pure lua modules that depend only on it, install
23 path is /usr/share/lua/5.{1,2,3}) and CMOD (modules that require
24 external dependencies and install shared libraries, install path is
25 /usr/lib/lua/5.{1,2,3}). This smoothly takes us to the third question
26 - slotting the package. The current implementation is broken by
27 design; it does not implement a coherent hierarchy, all dependent
28 packages will instantly broke. Also, it does not solve the problem of
29 smooth migration between major versions. We need a lua.eclass, like a
30 ruby or a python, which could fully manage slotted versions.
32 The final question is the migration of the current lua package
33 ecosystem. There are not many of them in the repository (I mean
34 directly the lua modules, there about 40 dev-lua/* packages in
35 desperate state), so we can relatively easily migrate them. There is
36 also a Luarocks[5] package manager in lua, which we could adapt to our
37 future ecosystem.
40 [1]
41 [2]
42 [3]
43 [4]
44 [5]
46 --
47 From Siberia with Love!