Mail archive
alpine-devel

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

From: V.Krishn <vkrishn4_at_gmail.com>
Date: Fri, 3 Jan 2014 16:31:36 +0530

On Friday, January 03, 2014 01:15:50 PM Natanael Copa wrote:
> On Fri, 3 Jan 2014 01:19:26 +0530
>
> "V.Krishn" <vkrishn4_at_gmail.com> 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.

Full separation has more benefits:
1. no efforts require to test/check common pkgs compat.
2. more visible what packages that are available for each lua version.
3. overall less efforts to pkgs both version.
4. would be easier to pkgs even newer v5.3 or above.
5. easer to set backward compat with other application.
6. ensures both work properly (important).
7. cleaner install/uninstall.

If need for 5.1 is less, why bother put efforts in creating common pkgs.
Anyone wanting older version may understand and take the bloat of installing
both or just the older one.

But than, the best way to weigh this would be against efforts and resources
we have / required to achive this.


>
> Ok...
>
> 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.

We need to ensure 5,6,7 above.

-- 
Regards.
V.Krishn
---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Fri Jan 03 2014 - 16:31:36 UTC