1 |
Hello. |
2 |
|
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. |
9 |
|
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. |
15 |
|
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. |
20 |
|
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. |
31 |
|
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. |
38 |
|
39 |
|
40 |
[1] https://archives.gentoo.org/gentoo-dev/message/49b75e2dfa21d1a72c9531a9054389dd |
41 |
[2] https://archives.gentoo.org/gentoo-dev/message/c1dbc4a812dd41bfce9abd165ac9cf39 |
42 |
[3] https://archives.gentoo.org/gentoo-dev/message/489dd050913744a35aa1e8df5d43c85a |
43 |
[4] https://git.centos.org/rpms/lua/blob/c8/f/SOURCES |
44 |
[5] https://luarocks.org/ |
45 |
|
46 |
-- |
47 |
From Siberia with Love! |