lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 7 September 2015 at 03:39, Sean Conner <sean@conman.org> wrote:
>   Thanks for the work, but I'm having difficulty understanding the output
> from all this.  For instance, I only found one of my modules [1] in the
> Windows output [2] and while I would like to fix the issue, I don't [3]
> use Windows, so I'm at a loss as to how to fix this issue:
>
> env.c
> env.c(44): warning C4273: '__p__environ': inconsistent dll linkage
> C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdlib.h(1158): note: see previous definition of '__p__environ'
> Microsoft (R) Incremental Linker Version 14.00.23026.0
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>    Creating library org/conman/env.lib and object org/conman/env.exp
> Installing https://luarocks.org/org.conman.env-1.0.1-0.rockspec...
> Using https://luarocks.org/org.conman.env-1.0.1-0.rockspec... switching to 'build' mode
> cl /nologo /MD /O2 -c -Foenv.obj -IC:/ste/luarocks/2.2/include env.c
> link -dll -def:env.def -out:org/conman/env.dll C:/ste/luarocks/2.2/lua51.lib env.obj
> Updating manifest for C:/ste/luarockstree/lib/luarocks/rocks
> org.conman.env 1.0.1-0 is now built and installed in C:/ste/luarockstree (license: LGPL)

That is just a warning, it builds fine (see below).
If you are concerned please send me privately a test and I can run on
my Windows VM.

>
>   And that's one of the simpler modules!
>
>   Another issue:  I'm checking the pass list [4] and I see this for two of
> my modules:
>
>   ["org.conman.env"] = {
>     ["1.0.1-2"] = {
>       Linux = {
>         x86 = true
>       },
>       OSX = {
>         x86 = true
>       },
>       Windows = {
>         x86 = true
>       }
>     }
>   },
>   ["org.conman.errno"] = {
>     ["1.0.1-2"] = {
>       Linux = {
>         x86 = false
>       },
>       OSX = {
>         x86 = false
>       },
>       Windows = {
>         x86 = false
>       }
>     }
>   },
>
>   Um ... did org.conman.errno pass?  Why is the Linux.x86 set to false?  I
> *know* it compiled under Linux x86 as that's my main development system.  I
> know it also compiles under 64-bit Linux as I use that at work.  I also know
> it compiled under OS-X as I use that both at home and at work.  What am I
> looking at?

Nope.
The rock org.conman.env passed on all 3 platforms.
The rock org.conman.errno did not pass on any.

The reason is found immediately looking at
http://www.scilua.org/luarocksorg/state/error.lua

There is a module conflict (org module name).
I am aware in this case it's a module intentionally splitted among
multiple rocks and I am going to support this case shortly. So nothing
for you to worry about.
(side note: I am not convinced on the need to break-up modules in
multiple rocks, considering their tiny size, but I can live with
that).

>
>   Under the error list [5] I see:
>
>     ["org.conman.iconv"] = {
>       ["1.1.0-1"] = {
>         ICONV = {
>           header = "iconv.h"
>         }
>       }
>     },
>
>   Okay ... apparently this failed ... for something ... somewhere ... I
> guess.  I can't find any other mention of this module anywhere else.  But
> under the Linux error_sys portion [6] I found my UUID module with the
> following error:
>
>     ["org.conman.uuid"] = {
>       ["1.2.2-1"] = {
>         stderr = {
>           "Warning: skipping dependency checks.",
>           "make: Warning: File `Makefile' has modification time 7.1e+08 s in the future",
>           "src/luauuid.c:35:17: fatal error: lua.h: No such file or directory",
>           " #include <lua.h>",
>           "                 ^",
>           "compilation terminated.",
>           "make: *** [so/luauuid.o] Error 1",
>           "",
>           "Error: Build error: Failed building."
>         },
>         stdout = {
>           "mkdir so",
>           "mkdir lib",
>           "gcc -std=c99 -O2 -fPIC -fPIC -c -o so/luauuid.o src/luauuid.c",
>           "Installing https://rocks.moonscript.org/org.conman.uuid-1.2.2-1.src.rock...";,
>           "Using https://rocks.moonscript.org/org.conman.uuid-1.2.2-1.src.rock... switching to 'build' mode"
>         }
>       }
>     },
>
> lua.h not found?  What file should I include?  And it also failed under
> OS-X [7] but *not* Windows? [8]
>
>   My main issue with this is that I can't find any actionable items to fix.
> I mean, okay, my Makefile has a modification time some 700,000,00 seconds in
> the future?  No ... it's fine (both on my system and from a fresh checkout
> from github).  Missing lua.h?  Should I be using lua-51.h?  lua51.h?  Should
> I be passing /usr/local/include to the compiler?  Which of my modules
> (listed here) passed?  How did org.conman.errno fail?  What was wrong with
> org.conman.iconv?
>
>   I've got too many questions to even start looking into my luarock modules.
> And while I can fix the Linux and OS-X issues, I have no Windows systems [3]
> nor do I understand that platform to fix issues there.  And I'm sure there
> are people who can fix Windows issues but not OS-X or Linux.

Philipp already replied to the lua.h issue (thanks!), I answered the
reaming questions.
The best I can do is to provide you with the full stderr and stout
outputs from Luarocks: this is what you would get if you were to try
to install the rock yourself on a Windows machine. I am not sure how I
can improve on this short of giving you ssh access to a Windows VM.

Please let me know if I can help further.

Bests,
Stefano