Mail archive

Re: [alpine-devel] Avoiding bloat for Lua 5.1/5.2 modules

From: Natanael Copa <>
Date: Fri, 3 Jan 2014 08:45:50 +0100

On Fri, 3 Jan 2014 01:19:26 +0530
"V.Krishn" <> wrote:

> On Tuesday, December 31, 2013 04:37:58 PM Natanael Copa wrote:
> > Hi,
> >
> > 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 am little confused if,
> lua5.1-penlight ===============.
> | ||
> | depends on ||
> | ||
> V depends on V
> lua5.2-penlight --------------> lua5.2-filesystem
> does this not mean lua5.2-filesystem is required by
> lua5.1-penlight to run ?

You are right. This is how it is right now. lua5.2-filesystem is pulled
in as a dependency for lua5.1-penlight, but it is lua5.1-filesystem
that is required for the penlight runtime to actually run, not
lua5.2-filessytem (which is "unused", bloat). And since
lua5.1-filesystem is currently not pulled in, it is actually broken.

That's why I raised this question. Its currently broken, how do we fix
it properly?
> 1. Is it possible to estimate the % usage of users still wanting v5.1 ?

I don't think anybody actually wants 5.1, but there might be some that
depends on modules that is not yet ported. Oh, the lighttpd developers
don't want add support for lua 5.2 for the current stable branch.

> What I was initially thinking if AL v2.7 was marked as transitional version
> then 2.8, 2.9 to 3.0 could be made to be a clean-up phase.
> (my initial thouht was of lots of other pkgs newer additions)

Well, the idea is more or less, alpine edge is a rolling release. Every
6 months we take what we have and ship a vX.Y release that we support
for 2 years.

> In all, any higher and better version should have least overhead/bloat and
> clean installation , meaning for users in AL v2.8 installing lua 5.1 would
> come with some minor-over head, and for AL v3.0 lua 5.1 may/maynot be
> available. If available the over-head may be even larger and likely having
> both versions may not work.
> In reason with available developer resources, I think such scenario may be
> acceptable.

So if you pick Lua 5.2 (or Lua 'current') you'll don't get the compat
bloat. If you use lua5.1 (or Lua 'previous') you might get some unused
compat packages.

I suppose that would be a better option than do the full separation.


Then the options are:

1) lua5.2-<module> -> no bloat
   lua5.1-<module> -> might give some bloat for compatibility (might or
   might not pull in some unused lua <latest> packages)

2) don't have version number in lua-<module> packages. The module will
   always include the lua <previous> variant til its no longer needed.

Option 1 will make it more visible what packages that are available for
each lua version. (apk search lua5.2-*)

I think I am slightly in favor for option #2 though.

> 2. Is it not easy to just add older repo and install lua 5.1 ?

Problem are if some package that we need/want (acf, prosody, awesome)
depends on lua 5.1. We cannot depend on packages in other repositories.


Received on Fri Jan 03 2014 - 08:45:50 UTC