Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust build on macOS can't use os.getenv, hence uses can't setup custom LuaRocks installs #2121

Open
alerque opened this issue Sep 30, 2024 · 0 comments
Assignees
Labels
bug Software bug issue
Milestone

Comments

@alerque
Copy link
Member

alerque commented Sep 30, 2024

I gave this script to Homebrew user @no-vici:

#!/bin/bash

echo 'system default:'
env | grep LUA_PATH

eval "$(luarocks --lua-version 5.1 --local path)"

echo 'after adding local path:'
env | grep LUA_PATH

lp='print((("LUA_PATH=%s"):format(os.getenv("LUA_PATH"))))'

echo 'per lua5.1:'
lua5.1 -e "$lp"

echo 'per luajit:'
luajit -e "$lp"

echo 'per sile rust:'
sile -q -e "$lp;os.exit()"

echo 'per sile lua:'
sile-lua -q -e "$lp;os.exit()"

and got back this:

This is the output of your script in my untampered shell, LUA_PATH should be nothing, but my ~/.luarock still in there.

system default:
after adding local path:
LUA_PATH=/usr/local/Cellar/luarocks/3.11.1/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;./?.lua;./?/init.lua;/Users/no-vici/.luarocks/share/lua/5.1/?.lua;/Users/no-vici/.luarocks/share/lua/5.1/?/init.lua
per lua5.1:
lua_api_check.sh: line 14: lua5.1: command not found
per luajit:
LUA_PATH=/usr/local/Cellar/luarocks/3.11.1/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;./?.lua;./?/init.lua;/Users/no-vici/.luarocks/share/lua/5.1/?.lua;/Users/no-vici/.luarocks/share/lua/5.1/?/init.lua
per sile rust:
LUA_PATH=/usr/local/Cellar/sile/0.15.5/libexec/vendor/share/lua/5.1/?.lua;/usr/local/Cellar/sile/0.15.5/libexec/vendor/share/lua/5.1/?/init.lua;/usr/local/Cellar/sile/0.15.5/libexec/vendor/share/lua/5.1/lxp/?.lua;;
per sile lua:
/usr/local/opt/luajit/bin/luajit: /usr/local/Cellar/sile/0.15.5/share/sile/core/globals.lua:10: module 'pl.import_into' not found:
	no field package.preload['pl.import_into']
	no file './sile/pl/import_into.lua'
	no file './sile/pl/import_into/init.lua'
	no file './pl/import_into.lua'
	no file './pl/import_into/init.lua'
	no file './lua_modules/share/lua/5.1/sile/pl/import_into.lua'
	no file './lua_modules/share/lua/5.1/sile/pl/import_into/init.lua'
	no file './lua_modules/share/lua/5.1/pl/import_into.lua'
	no file './lua_modules/share/lua/5.1/pl/import_into/init.lua'
	no file '=[C]/sile/pl/import_into.lua'
	no file '=[C]/sile/pl/import_into/init.lua'
	no file '=[C]/pl/import_into.lua'
	no file '=[C]/pl/import_into/init.lua'
	no file '=[C]/lua_modules/share/lua/5.1/sile/pl/import_into.lua'
	no file '=[C]/lua_modules/share/lua/5.1/sile/pl/import_into/init.lua'
	no file '=[C]/lua_modules/share/lua/5.1/pl/import_into.lua'
	no file '=[C]/lua_modules/share/lua/5.1/pl/import_into/init.lua'
	no file '/usr/local/Cellar/luarocks/3.11.1/share/lua/5.1/sile/pl/import_into.lua'
	no file '/usr/local/share/lua/5.1/sile/pl/import_into.lua'
	no file '/usr/local/share/lua/5.1/sile/pl/import_into/init.lua'
	no file '/usr/local/lib/lua/5.1/sile/pl/import_into.lua'
	no file '/usr/local/lib/lua/5.1/sile/pl/import_into/init.lua'
	no file '/Users/no-vici/.luarocks/share/lua/5.1/sile/pl/import_into.lua'
	no file '/Users/no-vici/.luarocks/share/lua/5.1/sile/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua-libraries/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua-libraries/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/share/lua/5.1/sile/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/share/lua/5.1/sile/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/share/lua/5.1/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/share/lua/5.1/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua-libraries/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua-libraries/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/share/lua/5.1/sile/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/share/lua/5.1/sile/pl/import_into/init.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/share/lua/5.1/pl/import_into.lua'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/share/lua/5.1/pl/import_into/init.lua'
	no file '/usr/local/Cellar/luarocks/3.11.1/share/lua/5.1/pl/import_into.lua'
	no file '/usr/local/share/lua/5.1/pl/import_into.lua'
	no file '/usr/local/share/lua/5.1/pl/import_into/init.lua'
	no file '/usr/local/lib/lua/5.1/pl/import_into.lua'
	no file '/usr/local/lib/lua/5.1/pl/import_into/init.lua'
	no file '/Users/no-vici/.luarocks/share/lua/5.1/pl/import_into.lua'
	no file '/Users/no-vici/.luarocks/share/lua/5.1/pl/import_into/init.lua'
	no file './justenough/.libs/pl/import_into.so'
	no file './libtexpdf/.libs/pl/import_into.so'
	no file './sile/pl/import_into.so'
	no file './pl/import_into.so'
	no file './lua_modules/lib/lua/5.1/sile/pl/import_into.so'
	no file './lua_modules/lib/lua/5.1/pl/import_into.so'
	no file '=[C]/justenough/.libs/pl/import_into.so'
	no file '=[C]/libtexpdf/.libs/pl/import_into.so'
	no file '=[C]/sile/pl/import_into.so'
	no file '=[C]/pl/import_into.so'
	no file '=[C]/lua_modules/lib/lua/5.1/sile/pl/import_into.so'
	no file '=[C]/lua_modules/lib/lua/5.1/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/justenough/.libs/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/libtexpdf/.libs/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/lib/lua/5.1/sile/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/lib/lua/5.1/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/justenough/.libs/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/libtexpdf/.libs/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/lib/lua/5.1/sile/pl/import_into.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/lib/lua/5.1/pl/import_into.so'
	no file '/usr/local/lib/lua/5.1/pl/import_into.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
	no file '/Users/no-vici/.luarocks/lib/lua/5.1/pl/import_into.so'
	no file './justenough/.libs/pl.so'
	no file './libtexpdf/.libs/pl.so'
	no file './sile/pl.so'
	no file './pl.so'
	no file './lua_modules/lib/lua/5.1/sile/pl.so'
	no file './lua_modules/lib/lua/5.1/pl.so'
	no file '=[C]/justenough/.libs/pl.so'
	no file '=[C]/libtexpdf/.libs/pl.so'
	no file '=[C]/sile/pl.so'
	no file '=[C]/pl.so'
	no file '=[C]/lua_modules/lib/lua/5.1/sile/pl.so'
	no file '=[C]/lua_modules/lib/lua/5.1/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/justenough/.libs/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/libtexpdf/.libs/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/lib/lua/5.1/sile/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/lib/sile/lua_modules/lib/lua/5.1/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/justenough/.libs/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/libtexpdf/.libs/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/lib/lua/5.1/sile/pl.so'
	no file '/usr/local/Cellar/sile/0.15.5/share/sile/lua_modules/lib/lua/5.1/pl.so'
	no file '/usr/local/lib/lua/5.1/pl.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
	no file '/Users/no-vici/.luarocks/lib/lua/5.1/pl.so'
stack traceback:
	[C]: in function 'require'
	/usr/local/Cellar/sile/0.15.5/share/sile/core/globals.lua:10: in main chunk
	[C]: in function 'require'
	/usr/local/Cellar/sile/0.15.5/share/sile/core/sile.lua:8: in main chunk
	[C]: in function 'require'
	/usr/local/bin/sile-lua:24: in main chunk
	[C]: at 0x0108fa018b

This suggests to me that os.getenv() isn't even working for us in the Rust build on macOS.

The fact that it did work but also rendered the Lua build of SILE un-runnable because it no longer had access to the bulid time pseudo-system dependencies is another bug. That should either be fixed as part of this issue or opened for separate tracking here or in Homebrew.

Originally posted by @alerque in #2117 (reply in thread)

@alerque alerque added the bug Software bug issue label Sep 30, 2024
@alerque alerque added this to the v0.15.6 milestone Sep 30, 2024
@alerque alerque self-assigned this Sep 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Software bug issue
Projects
None yet
Development

No branches or pull requests

1 participant