Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Dec 06 02:22
    raulcejas04 commented #1366
  • Dec 03 05:01
    daurnimator commented #1369
  • Dec 03 04:17
    XVilka commented #1369
  • Dec 02 01:47
    arichard4 commented #1370
  • Dec 01 14:20
    rboy1 commented #1287
  • Dec 01 11:24
    siffiejoe commented #1287
  • Dec 01 07:12
    Tieske commented #1287
  • Dec 01 06:17
    scls19fr commented #1359
  • Dec 01 00:14
    licktheroom commented #1359
  • Nov 30 17:07
    rboy1 commented #1287
  • Nov 30 17:03
    rboy1 commented #1365
  • Nov 30 07:05
    hishamhm commented #1370
  • Nov 30 07:05

    hishamhm on master

    Improve performance of reading … (compare)

  • Nov 30 07:05
    hishamhm closed #1370
  • Nov 30 07:01
    hishamhm commented #1369
  • Nov 30 06:57
    hishamhm closed #1366
  • Nov 30 06:57
    hishamhm commented #1366
  • Nov 30 06:54
    hishamhm closed #1365
  • Nov 30 06:54
    hishamhm commented #1365
  • Nov 30 06:45
    hishamhm closed #1361
[help] i use luarocks on termux.I want to install 'xml' but maybe termux has no STDCPP (libstdc++)
Installing https://luarocks.org/lua-requests-1.2-2.src.rock
Missing dependencies for lua-requests 1.2-2:
xml (not installed)
luasec >= 0.5.1, < 0.8-1 (1.0.2-1 installed)
lua-requests 1.2-2 depends on xml (not installed)
Installing https://luarocks.org/xml-1.1.3-1.src.rock
Error: Failed installing dependency: https://luarocks.org/xml-1.1.3-1.src.rock - Could not find library file for STDCPP
No file libstdc++.a in /data/data/com.termux/files/usr/local/lib
No file libstdc++.a in /data/data/com.termux/files/usr/local/lib64
No file libstdc++.so in /data/data/com.termux/files/usr/local/lib
No file libstdc++.so in /data/data/com.termux/files/usr/local/lib64
No file matching libstdc++.so.* in
No file matching libstdc++.so.* in
No file libstdc++.a in /data/data/com.termux/files/usr/lib
No file libstdc++.a in /data/data/com.termux/files/usr/lib64
No file libstdc++.so in /data/data/com.termux/files/usr/lib
No file libstdc++.so in /data/data/com.termux/files/usr/lib64
No file matching libstdc++.so.* in /data/data/com.termux/files/usr/lib
No file matching libstdc++.so.* in /data/data/com.termux/files/usr/lib64

You may have to install STDCPP in your system and/or pass STDCPP_DIR or STDCPP_LIBDIR to the luarocks command.

Example: luarocks install xml STDCPP_DIR=/usr/local
im very new lua. so I tripped at installing lua-requests. I want to know how to make lua xml on termux or how to build lua xml except for using 'STDCPP'.
Thadeu de Paula

@dauuricus why you don't install the luarocks and lua packages for termux? Termux is a little tricky as it is not a standard OS environment, just a workaround to use Unix/Linux packages and provide a terminal under Android. So... the the compilations have to follow specific configuration that may be not the scope of the Luarocks developers.

You can install Lua and Luarocks with:
pkg install luarocks lua53

Note that the termux doesn't create the correct link for interpreter, so you will need to do it by hand:

ln -sf  /data/data/com.termux/files/usr/bin/lua5.3  /data/data/com.termux/files/usr/bin/lua`
ln -sf  /data/data/com.termux/files/usr/bin/luac5.3  /data/data/com.termux/files/usr/bin/luac`

I dit it in my termux and it's ok.... Then I tried to install cqueues as in your message:

luarocks install cqueues

The error message was:

~ $ luarocks install cqueues
Installing https://luarocks.org/cqueues-20200726.53-0.src.rock
Error: This rockspec for cqueues does not support unix platforms.

It occurs because the package (rock) cqueues says it can be installed in Unix. Maybe you'll need to use other rock instead of http (as it depends on cqueues) to do what you want if you wanna go with Termux or other Unix platform.

1 reply
i use both.
pkg luarocks ,pkg lua53
1 reply
(lua) xml has done :)
luarocks imstall xml STDCPP_LIBDIR=/system/lib
cqueues case :
i cant get that error message '...unix'
gcc -O2 -std=gnu99 -fPIC -g -Wall -Wextra -Wno-missing-field-initializers -Wno-initializer-overrides -Wno-unused -Wno-dollar-in-identifier-extension -O2 -fPIC -DLUA_COMPAT_APIINTCASTS  -D_REENTRANT -D_THREAD_SAFE -D_GNU_SOURCE -I"/data/data/com.termux/files/usr/include" -I"/data/data/com.termux/files/usr/include" -DCOMPAT53_PREFIX=cqueues -DCQUEUES_VENDOR='"quae@daurnimator.com"' -DCQUEUES_VERSION=20200726L  -c -o /data/data/com.termux/files/usr/tmp/luarocks_cqueues-20200726.53-0-6994475/cqueues-rel-20200726/src/5.3/cqueues.o /data/data/com.termux/files/usr/tmp/luarocks_cqueues-20200726.53-0-6994475/cqueues-rel-20200726/src/cqueues.c
/data/data/com.termux/files/usr/tmp/luarocks_cqueues-20200726.53-0-6994475/cqueues-rel-20200726/src/cqueues.c:47:10: fatal error: 'lua.h' file not found
#include <lua.h>
1 error generated.
18 replies
but http has other problem.i tried few days before on chromebook armcore on contenair linux.
'http' problem is 'sa' file.
same as Nim on termux case.
i wrote http simple request code but erorr was same as Nim on termux. sa <-- X ,ca
hello. Can anyone explain to me why lua-cjson .so file as packaged by Debian and Ubuntu does not need to link to liblua.so ?
eduardas@eduardas-Battlestation:/usr/lib/x86_64-linux-gnu$ ldd liblua5.1-cjson.so.0
        linux-vdso.so.1 (0x00007fff7f3cd000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3435d4c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3436167000)
Am I wrong for using the -llua flag when building my own Lua binding .so files?
Same for the binaries provided by Luarocks like luaposix.
eduardas@eduardas-Battlestation:~/.luarocks/lib/lua/5.3/posix$ ldd stdio.so
        linux-vdso.so.1 (0x00007ffec7cbf000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f09df2a0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f09df4b8000)
eduardas@eduardas-Battlestation:~/.luarocks/lib/lua/5.3/posix$ nm -gD stdio.so
                 U ctermid
                 w __cxa_finalize
                 U __errno_location
                 U fclose
                 U fdopen
                 U fileno
                 w __gmon_start__
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U lua_createtable
                 U lua_getfield
                 U lua_gettop
                 U lua_isinteger
                 U luaL_argerror
                 U luaL_checklstring
                 U luaL_checkudata
                 U luaL_checkversion_
                 U luaL_fileresult
                 U luaL_setfuncs
                 U lua_newuserdata
0000000000001860 T luaopen_posix_stdio
                 U lua_pushfstring
                 U lua_pushinteger
                 U lua_pushnil
                 U lua_pushstring
                 U lua_setfield
                 U lua_setmetatable
                 U lua_settop
                 U lua_tointegerx
                 U lua_tolstring
                 U lua_type
                 U lua_typename
                 U rename
                 U __stack_chk_fail
                 U strerror
Lua modules packaged by Debian are not built with LuaRocks, and I believe they do not contain LuaRocks metadata, so they are not compatible with LuaRocks either
@hisham_hm:matrix.org That was not my point. My point was that neither the Luarocks .so files nor the Debian .so files for Lua modules would link to liblua.so
But after asking around on the lua channel at libera.chat people pointed out that Lua modules that get loaded by a lua script do not really need to be linked to liblua.so to work
Though most distros have a liblua.so
The runtime linker resolves the symbols once the Lua VM loads the module
liblua.so serves another purpose, it is to link the Lua VM into applications
Supposedly the distro liblua.so is intended for applications that want to execute Lua scripts themselves, i.e. have an embedded interpreter.
@hisham_hm:matrix.org yes, that is what I was told, but that was not obvious to a Lua novice such as I
That's correct!
I think there are quite a few tutorials around for Lua bindings where people do an -llua flag for a custom module even though they don't need to
@hisham_hm:matrix.org Just out of curiosity: does Luarocks ship its own liblua.so for apps or libraries that need an embedded Lua VM?
No, LuaRocks is just the package manager, not a distribution of the Lua VM itself
@hisham_hm:matrix.org thank you for answering. this is useful to know
Matthieu Coudron
I am trying to install https://luarocks.org/modules/openresty/lua-cjson/ with as luarocks config lua_modules_path = ".". At the end I move the copy_directories back at the root of the tree to mimic a vim plugin (I am working on using luarocks to install neovim plugins). The copy fails because the installed copy_directories contains a bin folder but https://luarocks.org/manifests/openresty/lua-cjson- doesn't list a bin folder ? the bin folder is listed in a rock_manifest file though. (using luarocks 3.7). Any idea as to why ?
build.install.lua and copy_directories folders are installed in the same folder then ? Is there a configuration entry to change that path ?
➜ ls /nix/store/87fb1fncnbnm105rbc8ndapy5qwpjxmi-lua5.2-lua-cjson-
bin/                          lua-cjson-  rock_manifest                 tests/
Matthieu Coudron
luarocks make --help exposes a --no-manifest option but it doesn't used afterwards. src/luarocks/cmd.lua has if args.no_manifest then cfg.no_manifest = true end but I can't find a way to turn the flag off, it always says Error: unknown option '--no-manifest' in luarocks --no-manifest make ... (3.7)
Hisham Muhammad
@teto this sounds like a bug! could you file an issue? thank you!
william behrens
Is there an enviroment variable I can change so that luarocks install installs modules in a different directory
like how gem has GEM_HOME
Pierre Chapuis
@WilliamBehrens_gitlab An env var I don't think so, but you can pass the flags --lua-dir and --tree (or at build time --with-lua to configure).
Thore Strassburg
Hey :wave:
I just started to setup my first project using Luarocks (v3.7.0). I set the rockspec_format to version 3.0 (though this should not matter, as this appears to be the same since 1.0). My problem is now that I'm not able to set version to a version that uses the semantic version scheme. According to the sources of Luarock, a version scheme matching [%w.]+-[%d]+ is expected. I don't know the naming of this version scheme and I fail to find it so I could read up how this scheme works. So I started to browse the registry at luarocks.org to see how version strings look in practice. But I only see semantic versioning everywhere. Also if I check the rocks their sources rockspec, they just have plain semantic version strings. I thought they might just ignore the errors of luarocks lint <rockspec_file>. But also if I run other commands like luarocks test I get always this error that my version is not correctly formatted.
It seems like all theses projects have in common that they don't specify rockspec_format. But then the default is 1.0 and it doesn't change anything. So is it about the the luarock version itself and this was a breaking change in a more recent version?
Hi! The version key really means your project's version, dash, your rockspec's revision. So if you're using SemVer and your project is version 2.5.1, use version = "2.5.1-1". The revision suffix is for when you need to make changes to the rockspec itself but not to your project.
The rockspec_format entry is at "3.0" because there were additions to the format in LuaRocks version 3; for example test_dependencies. So, if you write a rockspec without a rockspec_format key you can't use some newer features, but your rockspec will work on older LuaRocks installations.
Thore Strassburg
Nice. Thank you very much for the help! It works now. :pray:
Thore Strassburg
Stupid question, but am I supposed too add dependencies by hand in the rockspec file or is there a command similar to cargo add or yarn add. Just that I don't start do stupid things... :laughing:
yes, you can write them directly in the file
Thore Strassburg
Sorry to continue asking question so fast here. But is there any tooling to execute binaries of installed rocks depending on your evironment? Means if the rock is installed in your local project, it uses the binary from ./lua_modules/bin/<binary>, else it checks the user its module tree etc. Like for example npm exec. I'm trying to figure out how to tell my IDE which busted executable to use to run my tests. I would like to avoid custom functionality around it to check if this path exist or this or this, if luarocks knows all the trees and their order.
Thanks for helping me out so quick!