Re: [gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-08 Thread Azamat Hackimov
Marek,

Is there any plans how to begin migrating lua packages to new eclass?
As I can see, the current stable dev-lang/lua:0 package is not suited
for it, while other slotted packages have major flaws about *.pc
handling.

вт, 8 сент. 2020 г. в 17:32, Marek Szuba :
>
> Merged, thank you everyone who has weighed in with their comments both
> on IRC and here.
>
> --
> MS
>


-- 
>From Siberia with Love!



Re: [gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-08 Thread Marek Szuba
Merged, thank you everyone who has weighed in with their comments both
on IRC and here.

-- 
MS



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-07 Thread Marek Szuba
On 2020-09-06 17:46, David Seifert wrote:

> Unfortunately we won't get around a single-r1-style eclass too. What
> about all those programs embedding a specific lua version as plugin
> architecture?

This is still very much on my to-do list, I simply figured it would make
it easier for everyone reviewing this to leave it until the next iteration.

> But the basic principles underlying your eclass
> are finally correct, unlike the previous lua.eclass attempt.

Thank you! Of course it would have been much more difficult to achieve
were it not for Michał's work on python-r1.


On 2020-09-06 19:13, Azamat Hackimov wrote:

>> +# @ECLASS-VARIABLE: LUA
>> +# @DEFAULT_UNSET
>> +# @DESCRIPTION:
>> +# The absolute path to the current Lua interpreter. This variable is set
>> +# automatically in functions called by lua_foreach_impl().
>> +#
>> +# Example value:
>> +# @CODE
>> +# /usr/bin/lua5.1
>
> I think there also needs a LUAC variable that points to the current
> Lua compiler.

Possibly, then again I have begun to wonder if we even need LUA
itself... Moreover, there would be no LUAC were the eclass made to
support luajit.

I guess we'll see how many ebuilds actually need these once we have
begun porting them to lua.eclass.

> There needs a LUA_MAJOR_VERSION (V variable in lua.pc, i.e. 5.1, 5.2,
> 5.3) instead of full version (R variable in lua.pc, i.e 5.1.5, 5.2.4).
> Some obscure Lua packages are required to define V variable to work
> properly.

Nah, one can easily go from the full version to the ABI version
(LUA_MAJOR_VERSION would just be 5

signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-06 Thread David Seifert
On Thu, 2020-09-03 at 15:37 +0200, Marek Szuba wrote:
> Ladies and gentlemen,
> 
> Here is my first attempt on creating an eclass which would handle
> installation of Lua modules for multiple implementations. As some of
> you
> are aware of, the lack of such an eclass has been a major issue for
> our
> efforts on slotting dev-lang/lua.
> 
> With many, many thanks to mgorny and everyone else who has worked on
> python-r1.eclass, to whom lua.eclass bears, ahem, striking
> resemblance.
> 
> At the moment this is only really useful for installing Lua modules
> but
> assuming it doesn't turn out to be a total failure, I'll work on
> single-target support as the next step. We should probably think about
> adding LuaJIT support at some point too.
> 
> Comments are very much welcome!

This is finally going in the right direction. Unfortunately we won't get
around a single-r1-style eclass too. What about all those programs
embedding a specific lua version as plugin architecture? Conversely, we
also won't get around the multi eclass too, given how many upstreams
won't unbundle/port their lua dependencies and require access to pure-
lua packages. But the basic principles underlying your eclass are
finally correct, unlike the previous lua.eclass attempt.




Re: [gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-03 Thread Kent Fredric
On Thu, 3 Sep 2020 14:49:25 +0100
Michael 'veremitz' Everitt  wrote:

> I know this is a much more onerous "solution" but I thought I would throw
> it out there, and see if any other interested parties (eg. kent\n and
> potentially graaff) may be able to share their thoughts..

Actually, the more I think about it, there are 2 major reasons not to do this:

1. Its a premature abstraction that centralises a point of failure, and
so any defects in this POF scale to all places, producing even more
places where changing one eclass requires regenerating the md5 cache
for the whole tree, and makes it *harder* to specify logic that only
occurs in one languages ecosystem.

2. What happens if two eclasses inherit this shared eclass, and
declares "which variables do I look into" via other variables that
define its API?, and then, one ebuild consumes *both*.

Presently, inheriting two eclasses, one for python, one for lua, and
taping together how they build inside the ebuild itself seems viable.

But if the logic is shoehorned into a common eclass, that will likely
go really fucking pear shaped, unless done with a very fucked
up/complicated API.

I don't think this is worth it.


pgpDDuuC_8O8A.pgp
Description: OpenPGP digital signature


[gentoo-dev] [PATCH] lua.eclass: initial implementation

2020-09-03 Thread Marek Szuba
Ladies and gentlemen,

Here is my first attempt on creating an eclass which would handle
installation of Lua modules for multiple implementations. As some of you
are aware of, the lack of such an eclass has been a major issue for our
efforts on slotting dev-lang/lua.

With many, many thanks to mgorny and everyone else who has worked on
python-r1.eclass, to whom lua.eclass bears, ahem, striking resemblance.

At the moment this is only really useful for installing Lua modules but
assuming it doesn't turn out to be a total failure, I'll work on
single-target support as the next step. We should probably think about
adding LuaJIT support at some point too.

Comments are very much welcome!