I am a bit in doubt how to handle the Lua modules and 5.1 and 5.2 compat.
I originally wanted to have lua5.1-<module> and lua5.2-<module>
packages because that would allow us to avoid bloat. You could have a
pure lua5.2 system.
I am not so sure anymore.
What I wanted:
* separate arch specific modules (compiled C code) for 5.1 and 5.2 so
we don't get both installed unless wanted. Example: lua-filesystem.
* join arch agnostic lua modules (pure lua modules) and use symlinks
for 5.1/5.2 compat. Since they normally support both 5.1 and 5.2 the
code itself is identical. Rather than install 2 copies of same lua
code, we want use symlinks. Example: lua-penlight.
* the lua-<module> (without lua version) should pull in both
lua5.1-module and lua5.2-module. (or pull in the "current" lua
version of the module)
Now, this becomes a bit compilcated when dealing with dependencies.
Lets take the example with lua-penlight and lua-filesystem.
Since lua-penlight is a pure lua module and supports both 5.1 and 5.2
we want use symlinks. So lua5.1-penlight is just a symlink to
lua5.2-penlight. However, if lua5.1-penlight depends on lua5.2-penlight
it will also pull in the lua5.2-penlight dependency lua5.2-filesystem -
which we don't want for lua5.1-penlight.
I think we have the following options:
1) Continue try avoid bloat and have a common package without dependency:
* lua5.1-filesystem: has lua 5.1 module
* lua5.2-filesystem: had lua 5.2 module
* lua-filesystem: depends on lua5.1-filesystem and
* lua-penlight-common: has the .lua files but does not depend on
lua-filesystem. in it self not useful. (maybe
install the .lua files to /usr/share/lua/common)
* lua5.1-penlight: depends on lua-penlight-common and
lua5.1-filesystem. It has symlinks to the
files provided by lua-penlight-common.
* lua5.2-penlight: depends on lua-penlight-common and
lua5.2-filesystem. (might have symlinks too)
* lua-penlight: depends on lua5.1-penlight and lua5.2-penlight.
This means 7(!) packages for 2 Lua modules.
2) We embrace the bloat and always ship both lua 5.1 and 5.2 in same
package (like Debian does):
* lua-filesystem: ships both 5.1 and 5.2 modules.
* lua-penlight: ships both 5.1 and 5.2 modues and depends only
This is way simpler, but will mean that you will always get the
moduels for both lua versions, regardless if you use both or not (I
assume you normally only will want run one version of Lua). This
What do you think? We keep it 'simple' and accept the bloat, or we make
it 'complicated' to avoid the bloat?
Some things to keep in mind: we have many more C modules (arch
specific) modules than noarch (pure Lua) modules.
Received on Tue Dec 31 2013 - 12:07:58 UTC