On 25 October 2013 04:02,  <p...@pjb.com.au> wrote:
> Greetings,
>
> Hisham wrote:
>> I made one small change, though: your rock is lua >= 5.1, but you
>> were depending on a version of lgdbm that's 5.2-only. I changed
>> it to "lgdbm >= 20130702"; this will work on both Lua 5.1 and 5.2.
>
> Thank you!  I've changed it at source.  It still doesn't quite work
> for me, though, I'm probably doing something silly:  my setup is
> 5.1 in /usr/bin and 5.2 in /usr/local/bin ...
>
> # luarocks --version
> /usr/local/bin/luarocks 2.1.0
> LuaRocks main command-line interface
> # /usr/bin/lua -v
> Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> # /usr/local/bin/lua -v
> Lua 5.2.1  Copyright (C) 1994-2012 Lua.org, PUC-Rio
>
> OK; 5.2 works fine.  But now for 5.1, first I clean up ...
>
> box8:~# /usr/bin/lua /usr/local/bin/luarocks remove commandlineui
> ... Removal successful.
> box8:~# /usr/bin/lua /usr/local/bin/luarocks remove lgdbm
> ... Removal successful.
>
> OK, now we install for 5.1 ...
>
> box8:~# /usr/bin/lua /usr/local/bin/luarocks install commandlineui 
> GDBM_LIBDIR=/usr/lib/i386-linux-gnu/
> Installing 
> http://www.luarocks.org/repositories/rocks/commandlineui-1.70-1.src.rock...
> Using 
> http://www.luarocks.org/repositories/rocks/commandlineui-1.70-1.src.rock... 
> switching to 'build' mode
> Archive:  
> /tmp/luarocks_luarocks-rock-commandlineui-1.70-1-8246/commandlineui-1.70-1.src.rock
>   inflating: commandlineui-1.70-1.rockspec
>  extracting: CommandLineUI-1.70.tar.gz
>
> Missing dependencies for commandlineui:
> lgdbm >= 20130702
>
> Using http://www.luarocks.org/repositories/rocks/lgdbm-20130702-2.src.rock... 
> switching to 'build' mode
> Archive:  
> /tmp/luarocks_luarocks-rock-lgdbm-20130702-2-5022/lgdbm-20130702-2.src.rock
>   inflating: lgdbm-20130702-2.rockspec
>  extracting: lgdbm.tar.gz
> gcc -O2 -fPIC -I/usr/local/include -c lgdbm.c -o lgdbm.o -I/usr/include
> gcc -shared -o gdbm.so -L/usr/local/lib lgdbm.o -L/usr/lib/i386-linux-gnu/ 
> -Wl,-rpath,/usr/lib/i386-linux-gnu/: -lgdbm
> Updating manifest for /usr/local//lib/luarocks/rocks
> lgdbm 20130702-2 is now built and installed in /usr/local/
> Updating manifest for /usr/local//lib/luarocks/rocks
> commandlineui 1.70-1 is now built and installed in /usr/local/
>
> But still it doesn't seem to work for 5.1 ...
>
> # cat /tmp/x
> local L = require 'gdbm'
> box8:~# /usr/bin/lua /tmp/x
> /usr/bin/lua: error loading module 'gdbm' from file 
> '/usr/local/lib/lua/5.1/gdbm.so':
>         /usr/local/lib/lua/5.1/gdbm.so: undefined symbol: lua_setglobal
> stack traceback:
>         [C]: ?
>         [C]: in function 'require'
>         /tmp/x:1: in main chunk
>         [C]: ?
>
> AIUI, lua_setglobal (I've never used it myself) ought to exist
> in 5.1 and 5.2 ...

lua_setglobal is a function in 5.2 and a macro in 5.1.

> What's wrong here ?

You seem to have both lua.h from 5.1 and 5.2 in your include path, and
you're getting the wrong one when building lgdbm... try passing
LUA_INCDIR="/usr/include" and let's see what happens.

The trick of launching the same install of luarocks with different
interpreters tends to cause these problems, unless you prepare
separate config-5.1.lua and config-5.2.lua files setting all variables
appropriately...

-- Hisham

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Luarocks-developers mailing list
Luarocks-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/luarocks-developers

Reply via email to