Browse Source

Recommend `sudo ldconfig` (Fix #616) & revert arch-dependent changes that didn't fix the issue anyway.

master
poikilos 1 year ago
parent
commit
1400e9525c
  1. 2
      .gitignore
  2. 17
      projects-local/copy_projects_to_here.txt
  3. 50
      readme.md
  4. 12
      utilities/run-any

2
.gitignore

@ -20,3 +20,5 @@ linux-minetest-kit.zip
/docker/libraries-devuan-chimaera/install-minetest-build-deps.sh /docker/libraries-devuan-chimaera/install-minetest-build-deps.sh
/debug.txt /debug.txt
linux-minetest-kit/ linux-minetest-kit/
/projects-local/*
!/projects-local/copy_projects_to_here.txt

17
projects-local/copy_projects_to_here.txt

@ -0,0 +1,17 @@
This folder exists so you can copy `code-workspace` files from projects
to here then modify them to suit your needs. Files other than this text
file will be ignored by git to prevent git pull issues, so backup any
`code-workspace` files or other files you add to this folder.
Edit `code-workspace` files to include your relative path to minetest,
but you must leave the path to `run-any` intact unless you change it to
an absolute path which is required to put your `run-any`
`code-workspace` file somewhere else (This subfolder is here so relative
paths in the included code-workspaces for run-any will work when copied
here)
The purpose is:
- You can click on paths in your IDE to jump to the Lua code.
- outputinspector unmangles errors if installed as described in readme.md.
- For details and troubleshooting, see "run-any" in readme.md:
<https://github.com/Poikilos/EnlivenMinetest#run-any>

50
readme.md

@ -32,7 +32,7 @@ The official game server (world) is called **center** (or "Center of
the Sun"). The address and port for that and other worlds are listed at the Sun"). The address and port for that and other worlds are listed at
[minetest.io](https://minetest.io). [minetest.io](https://minetest.io).
To better understand what the issue board covers, see To better understand what the **Issues** section covers, see
[Project Status](#project-status) below. [Project Status](#project-status) below.
For notes on current development discussions, see the For notes on current development discussions, see the
@ -61,6 +61,16 @@ universal to gaming and intuitively expected (such as is clear from
vision biology in the case of tone mapping). vision biology in the case of tone mapping).
* See also overrides/worlds/CenterOfTheSun/world.conf * See also overrides/worlds/CenterOfTheSun/world.conf
The EnlivenMinetest repo has tools for:
- building ENLIVEN game for Minetest
- ENLIVEN is designed to be built from other sources instead of being monolithic.
- It needs to be reworked as of August 2023; only bucket_game build works currently.
- The copy in "releases" only works in versions close to 0.4.13.
- building Minetest
- installing Minetest (some features may be superceded by
<https://github.com/Hierosoft/hierosoft>, which is pre-alpha as of Aug 2023)
- Some specific tools are listed in the [Scripts](#scripts) section below.
**Q**: "Why not make it compatible with versions from the .net site to get [feature x]?" **Q**: "Why not make it compatible with versions from the .net site to get [feature x]?"
**A**: The Minetest 5 (.net site) core devs have decided to reduce **A**: The Minetest 5 (.net site) core devs have decided to reduce
@ -206,26 +216,50 @@ Disable or remove these Bucket_Game mods/features potentially (not matching them
* https://github.com/Poikilos/EnlivenMinetest/issues/594 * https://github.com/Poikilos/EnlivenMinetest/issues/594
## Building Minetest ## Scripts
### Building Minetest
This project is mostly for building ENLIVEN, but there are some scripts This project is mostly for building ENLIVEN, but there are some scripts
here to help build the engine as well: See [doc/building-minetest.md](doc/building-minetest.md). here to help build the engine as well: See [doc/building-minetest.md](doc/building-minetest.md).
### run-any
`run-any` is a shim to run binaries (instead of compile) in VSCode. The
purpose is:
- You can click on errors in the VSCode shell to navigate to the line(s) of
Lua involved in a crash.
- If you clone/extract
[outputinspector](https://github.com/Poikilos/outputinspector)
to the same parent folder as EnlivenMinetest, `run-any` will use it to
convert paths in Lua tracebacks to clickable paths. For example:
- `...../games/ENLIVEN/mods/coderfood/unified_foods/hunger.lua:342: in function ...`
- becomes:
`/home/user/minetest/games/ENLIVEN/mods/coderfood/unified_foods/hunger.lua:342: in function ...`
(If paths including working directory are set correctly such as in
`code-workspace` if using VSCode)
- See also "tests" directory in
[outputinspector](https://github.com/Poikilos/outputinspector)
- If you have a missing library error in Linux when running using VSCode
(even when `run-any` works outside of VSCode), try `sudo ld-config` & see:
- [projects-local/copy_projects_to_here.txt](projects-local/copy_projects_to_here.txt)
- <https://github.com/Poikilos/EnlivenMinetest/issues/616>
- A future version of `run-any` may require outputinspector such as if the main
function is moved to a submodule there.
## Configuration Files ## Configuration Files
(configuring the build of ELIVEN [the mod set only, not binaries]) (configuring the build of ELIVEN [the mod set only, not binaries])
You can place zero or more of the following variables in You can place zero or more of the following variables in
$HOME/.config/EnlivenMinetest/scripting.rc: `$HOME/.config/EnlivenMinetest/scripting.rc`:
``` ```bash
CUSTOM_SCRIPTS_PATH CUSTOM_SCRIPTS_PATH
MT_POST_INSTALL_SCRIPT_2 # relative to CUSTOM_SCRIPTS_PATH MT_POST_INSTALL_SCRIPT_2 # relative to CUSTOM_SCRIPTS_PATH
REPO_PATH # Set this if your copy of the repo is not ~/git/EnlivenMinetest REPO_PATH # Set this if your copy of the repo is not ~/git/EnlivenMinetest
ENABLE_CLIENT # =true if you want install-mts.sh to install the client. ENABLE_CLIENT # =true if you want install-mts.sh to install the client.
``` ```
- If ~/minetest/bin/minetest is present, that has the same effect as - If ~/minetest/bin/minetest is present, that has the same effect as
`ENABLE_CLIENT=true`. `ENABLE_CLIENT=true`
You can place a script called mts.sh in your home (or You can place a script called mts.sh in your home (or
CUSTOM_SCRIPTS_PATH) directory to run it after install (you can put `CUSTOM_SCRIPTS_PATH`) directory to run it after install (you can put
archive-minetestserver-debug.sh there too to run first). A suggested use archive-minetestserver-debug.sh there too to run first). A suggested use
is to put a line in mts.sh that starts the server, so that the server is to put a line in mts.sh that starts the server, so that the server
starts after the installation or upgrade is complete. starts after the installation or upgrade is complete.
@ -337,6 +371,7 @@ README.txt in Minetest's doc folder which is provided in releases.
application), ENLIVEN subgame (including optional child-friendly application), ENLIVEN subgame (including optional child-friendly
changes for schools), other files, and licenses of added files. changes for schools), other files, and licenses of added files.
## Development ## Development
For future plans and how you can contribute or build the game (Lua) or package (Lua+engine+conf) see [doc/development.md](doc/development.md) and [issues](https://github.com/Poikilos/EnlivenMinetest/issues). For future plans and how you can contribute or build the game (Lua) or package (Lua+engine+conf) see [doc/development.md](doc/development.md) and [issues](https://github.com/Poikilos/EnlivenMinetest/issues).
@ -387,9 +422,6 @@ On 1/22/22 3:21 AM, Robert Kiraly wrote:
`<Poikilos>` Ok can do. `<Poikilos>` Ok can do.
Issues where discussion was requested by RJK: Issues where discussion was requested by RJK:
- #500 - #500

12
utilities/run-any

@ -118,7 +118,12 @@ def show_and_return(cmd, enable_collect=False, cwd=None, shell=False):
else: else:
if cmd.startswith(bin_rel): if cmd.startswith(bin_rel):
cmd = "./" + cmd[len(bin_rel):] cmd = "./" + cmd[len(bin_rel):]
pre_bin = "export LD_LIBRARY_PATH=/usr/lib64 " # doesn't fix #616 # pre_bin = "export LD_LIBRARY_PATH=/usr/lib64 " # doesn't fix #616
# Somehow #616 gone, even shell, force_shell, force_env False & no pre_bin
# Maybe restart computer or run `sudo ldconfig` but I did neither
# (unless installing a package triggered it--I installed lsb before the
# problem went away I think).
pre_bin = ""
force_shell = False force_shell = False
# ^ Either True/False succeeds in bash, either way LD_LIBRARY_PATH # ^ Either True/False succeeds in bash, either way LD_LIBRARY_PATH
# fails in vscode: # fails in vscode:
@ -129,7 +134,7 @@ def show_and_return(cmd, enable_collect=False, cwd=None, shell=False):
# even if run-any is run from bash prompt manually) # even if run-any is run from bash prompt manually)
if platform.system() == "Linux": if platform.system() == "Linux":
if isinstance(cmd, list): if isinstance(cmd, list):
pre_bin = "LD_LIBRARY_PATH=/usr/lib64; export LD_LIBRARY_PATH; " # doesn't fix #616 # pre_bin = "LD_LIBRARY_PATH=/usr/lib64; export LD_LIBRARY_PATH; " # doesn't fix #616
# ^ adding "export " causes bad identifier error later in command # ^ adding "export " causes bad identifier error later in command
cmd = ["bash", "-c", "cd '" + cwd + "'; " + pre_bin + shlex.join(cmd)] cmd = ["bash", "-c", "cd '" + cwd + "'; " + pre_bin + shlex.join(cmd)]
else: else:
@ -170,7 +175,8 @@ def show_and_return(cmd, enable_collect=False, cwd=None, shell=False):
# ^ known good path in working bash that can run run-any # ^ known good path in working bash that can run run-any
# os.environ['PATH'] = good_path # still doesn't fix issue #616 # os.environ['PATH'] = good_path # still doesn't fix issue #616
this_env = os.environ.copy() this_env = os.environ.copy()
if platform.system() == "Linux": force_env = False
if force_env and platform.system() == "Linux":
# For diagnosing issue #616 # For diagnosing issue #616
LD_LIBRARY_PATH = "/usr/lib64" LD_LIBRARY_PATH = "/usr/lib64"
if "LD_LIBRARY_PATH" not in this_env: if "LD_LIBRARY_PATH" not in this_env:

Loading…
Cancel
Save