use the minetest-luk3yx-4 brand as the 4.1 brand, this handle almost 5.0 features

* this brand needs so much newer versions of gcc to build
* this brand features almost all the features of 5.0 release
* this brand its not supoorted anymore, was tagget as 0.4.18.X
* this will be released as 4.1 in minenux only for newer systems
* the supported release of older brands will be only the 4.0 one
* README updated with information related
* CMakefile fixed with project name and pointed sources for same
This commit is contained in:
Герхард PICCORO Lenz McKAY 2022-06-03 12:55:17 -04:00
parent bbad2a9825
commit f3e39e53a0
8 changed files with 153 additions and 287 deletions

View File

@ -15,10 +15,10 @@ set(GCC_MINIMUM_VERSION "4.8")
set(CLANG_MINIMUM_VERSION "3.4")
# Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing
set(VERSION_MAJOR 0)
set(VERSION_MINOR 4)
set(VERSION_PATCH 18)
set(VERSION_TWEAK 5)
set(VERSION_MAJOR 4)
set(VERSION_MINOR 1)
set(VERSION_PATCH 0)
set(VERSION_TWEAK "")
set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
# Change to false for releases
@ -185,20 +185,20 @@ install(FILES "doc/lua_api.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/menu_lua_api.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/texture_packs.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/world_format.txt" DESTINATION "${DOCDIR}")
install(FILES "minetest.conf.example" DESTINATION "${EXAMPLE_CONF_DIR}")
install(FILES "minetest.conf.example" DESTINATION "${EXAMPLE_CONF_DIR}" RENAME "${PROJECT_NAME}.conf.example")
if(UNIX AND NOT APPLE)
install(FILES "doc/minetest.6" "doc/minetestserver.6" DESTINATION "${MANDIR}/man6")
install(FILES "misc/net.minetest.minetest.desktop" DESTINATION "${XDG_APPS_DIR}")
install(FILES "misc/net.minetest.minetest.appdata.xml" DESTINATION "${APPDATADIR}")
install(FILES "misc/minetest.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps")
install(FILES "doc/${PROJECT_NAME}.6" "doc/${PROJECT_NAME}server.6" DESTINATION "${MANDIR}/man6")
install(FILES "misc/net.minetest.minetest.desktop" DESTINATION "${XDG_APPS_DIR}" RENAME "net.${PROJECT_NAME}.${PROJECT_NAME}.desktop")
install(FILES "misc/net.minetest.minetest.appdata.xml" DESTINATION "${APPDATADIR}" RENAME "net.${PROJECT_NAME}.${PROJECT_NAME}.appdata.xml")
install(FILES "misc/minetest.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps" RENAME "${PROJECT_NAME}.svg")
install(FILES "misc/minetest-xorg-icon-128.png"
DESTINATION "${ICONDIR}/hicolor/128x128/apps"
RENAME "minetest.png")
RENAME "${PROJECT_NAME}.png")
endif()
if(APPLE)
install(FILES "misc/minetest-icon.icns" DESTINATION "${SHAREDIR}")
install(FILES "misc/minetest-icon.icns" DESTINATION "${SHAREDIR}" RENAME "${PROJECT_NAME}-icon.icns")
install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
endif()

View File

@ -1,6 +1,6 @@
# Contributing
Contributions are welcome! Here's how you can help:
**This is the original file of minetest contribution way of:**
- [Contributing code](#code)
- [Reporting issues](#issues)

402
README.md
View File

@ -1,35 +1,26 @@
<div align="center">
<h1>
minetest-luk3yx-4
</h1>
</div>
Minetest4
=========
Notice
------
[![Translation status](https://hosted.weblate.org/widgets/minetest/-/svg-badge.svg)](https://hosted.weblate.org/engage/minetest/?utm_source=widget)
[![License](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
This is a mostly unmaintained fork of an outdated version of Minetest
(0.4.17.1) to add features and bugfixes from 5.0.0 before 5.0.0 was officially
released and most servers were still on 0.4.17.1. Please only use this if you
*have* to connect to legacy servers, otherwise I strongly recommend using the
official and more stable [Minetest](https://github.com/minetest/minetest).
Minetest is a free open-source voxel game engine with easy modding and game creation.
**this source is minetest modified *"minetest-luk3yx-4,"* a fork of an older version
but improved with 5.0 changes up to pre 5.1, some 5.0 mods will work with this engine**
of Minetest so playing on older servers isnt a bug-filled nightmare”
also features the client identification patch to property get rid of cheaters.
Copyright (C) 2010-2019 Perttu Ahola <celeron55@gmail.com>
and contributors (see source file comments and the version control log)
Old description
---------------
In case you downloaded the source code
--------------------------------------
A [Minetest](https://github.com/minetest/minetest) fork with backported features
and bugfixes from 5.0.0.
If you downloaded the **Minetest Engine** source code from git, in which this file is
contained, you probably want to download the Minetest Game at https://codeberg.org/minenux/minetest-game-minetest/src/branch/stable-4.0
project too. See its README.md information. Those sources are a little modification of original Minetest.
Minetest is copyright © 2010-2019 by Perttu Ahola <celeron55@gmail.com>
and contributors (see source file comments and the [version control log])
[version control log]: https://github.com/luk3yx/minetest/graphs/contributors
In case you downloaded the source code:
---------------------------------------
If you downloaded the Minetest Engine source code in which this file is
contained, you probably want to download the [Minetest Game fork](https://github.com/luk3yx/minetest_game/)
(or the [original](https://github.com/minetest/minetest_game))project too. See its README.txt for more information.
For Minetest5 series of same engine please use the respective branch.
Table of Contents
------------------
@ -40,21 +31,39 @@ Table of Contents
4. [Configuration File](#configuration-file)
5. [Command-line Options](#command-line-options)
6. [Compiling](#compiling)
7. [Docker](#docker-stock-minetest)
7. [Docker](#docker)
8. [Version Scheme](#version-scheme)
Further documentation (on "stock" Minetest)
Further documentation
----------------------
- Website: http://minetest.net/
- Wiki: http://wiki.minetest.net/
- Developer wiki: http://dev.minetest.net/
- Forum: http://forum.minetest.net/
- GitHub: https://github.com/minetest/minetest/
- This sources https://codeberg.org/minenux/minetest-engine/src/branch/stable-4.1
- Minetest4 sources https://codeberg.org/minenux/minetest-engine/src/branch/stable-4.0
- Wiki of this project (minenux) https://codeberg.org/venenux/venenux-minetest/wiki
- Original Minetest Website: http://minetest.net/
- Original Minetest Wiki: http://wiki.minetest.net/
- Minetest Developer wiki: http://dev.minetest.net/
- Minetest Forum: http://forum.minetest.net/
- Original Minetest GitHub: https://github.com/minetest/minetest/
- [doc/](doc/) directory of source distribution
Generals of game
----------------
This is **an engine that can acts as server and client**, it has **two main components**:
1. the **games** (that contains the mods and definition of how to play) and
2. the **world** (that contains the creeated and playable data).
Paths places of those are in the [Paths](#paths) sections of this file.
Players used the client role of the program, that joins to a server that can be the same invoked
or a remote server, currently many phone clients (apps like minetest that stolen its name)
just used those remote servers to play.
Default controls
----------------
All controls are re-bindable using settings.
Some can be changed in the key config dialog in the settings tab.
@ -80,7 +89,7 @@ Some can be changed in the key config dialog in the settings tab.
| + | Increase view range |
| - | Decrease view range |
| K | Enable/disable fly mode (needs fly privilege) |
| L | Enable/disable pitch move mode |
| P | Enable/disable pitch move mode |
| J | Enable/disable fast mode (needs fast privilege) |
| H | Enable/disable noclip mode (needs noclip privilege) |
| E | Move fast in fast mode |
@ -96,8 +105,18 @@ Some can be changed in the key config dialog in the settings tab.
| F10 | Show/hide console |
| F12 | Take screenshot |
Installation
------------
The minenux project provides most packages for almost any linux at OBS service:
https://build.opensuse.org/project/show/home:venenux:minenux
The code is on Codeberg but the releases are at github to fill the shit of M$ platform.
https://github.com/minenux/minenux/releases
Paths
-----
Locations:
* `bin` - Compiled binaries
@ -106,118 +125,131 @@ Locations:
Where each location is on each platform:
* Windows .zip / RUN_IN_PLACE source:
* bin = `bin`
* share = `.`
* user = `.`
* Windows installed:
* $bin = `C:\Program Files\Minetest\bin (Depends on the install location)`
* $share = `C:\Program Files\Minetest (Depends on the install location)`
* $user = `%Appdata%\Minetest`
* Others OS's / RUN_IN_PLACE source:
* `bin` = `bin`
* `share` = `.`
* `user` = `.`
* Linux installed:
* `bin` = `/usr/bin`
* `share` = `/usr/share/minetest`
* `user` = `~/.minetest`
* `share` = `/usr/share/minetest5`
* `user` = `~/.minetest5`
* macOS:
* `bin` = `Contents/MacOS`
* `share` = `Contents/Resources`
* `user` = `Contents/User OR ~/Library/Application Support/minetest`
* `user` = `Contents/User OR ~/Library/Application Support/minetest5`
Worlds can be found as separate folders in: `user/worlds/`
Configuration file:
-------------------
- Default location:
`user/minetest.conf`
- It is created by Minetest when it is ran the first time.
- A specific file can be specified on the command line:
`--config <path-to-file>`
- A run-in-place build will look for the configuration file in
`location_of_exe/../minetest.conf` and also `location_of_exe/../../minetest.conf`
Configuration file
------------------
- Default location: `user/minetest.conf`
- This file is created by closing Minetest for the first time.
- A specific file can be specified on the command line: `--config <path-to-file>`
- A run-in-place build will look for the configuration file in `location_of_bin/../minetest.conf` and also `location_of_bin/../../minetest.conf`
Command-line options
--------------------
Command-line options:
---------------------
- Use `--help`
Compiling
---------
### Compiling on GNU/Linux
#### Dependencies
| Dependency | Version | Commentary |
|------------|---------|------------|
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
| GCC | 4.8+ | Can be replaced with Clang 3.4+ |
| CMake | 2.6+ | |
| Irrlicht | 1.7.3+ | |
| Irrlicht | 1.6.0+ | Custom version recommended, see https://github.com/minetest/irrlicht |
| SQLite3 | 3.0+ | |
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
| JsonCPP | 1.0.0+ | Bundled JsonCPP is used if not present |
For Debian/Ubuntu:
For Debian/Ubuntu users:
sudo apt install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
`apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev`
For Fedora users:
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
`dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel`
For Arch users:
`pacman -S base-devel libcurl-gnutls cmake libxxf86vm irrlicht libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses`
For Alpine users:
`apk add build-base irrlicht-dev cmake bzip2-dev libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev`
#### Download
You can install Git for easily keeping your copy up to date.
If you dont want Git, read below on how to get the source without Git.
This is an example for installing Git on Debian/Ubuntu:
If you dont want Git, read below on how to get the source without Git.
sudo apt install git
This is an example for installing Git on:
For Fedora users:
sudo dnf install git
* For Debian/Ubuntu: `apt install git`
* For Fedora users: `dnf install git`
* For alpine users: `apk add git`
Download source (this is the URL to the latest of source repository, which might not work at all times) using Git:
git clone --depth 1 https://github.com/luk3yx/minetest.git
```
git clone --recursive https://codeberg.org/minenux/minetest-engine.git minetest
cd minetest
```
Download minetest_game (otherwise only the "Minimal development test" game is available) using Git:
git clone --depth 1 https://github.com/luk3yx/minetest_game.git games/minetest_game
```
git submodule init && git submodule update --recursive
```
Download source, without using Git:
wget https://github.com/luk3yx/minetest/archive/master.tar.gz
tar xf master.tar.gz
cd minetest-master
```
wget https://codeberg.org/minenux/minetest-engine/archive/stable-4.1.tar.gz
tar xf stable-4.1.tar.gz
cd stable-4.1
```
Download minetest_game, without using Git:
```
cd games/
wget https://github.com/luk3yx/minetest_game/archive/master.tar.gz
tar xf master.tar.gz
mv minetest_game-master minetest_game
wget https://codeberg.org/minenux/minetest-game-minetest/archive/stable-4.1.tar.gz
tar xf stable-4.1.tar.gz
mv minetest-game-minetest_stable-4.1 minetest
cd ..
```
#### Build
Build a version that runs directly from the source directory:
Build a version that runs directly from the source directory there program are:
```
cmake . -DRUN_IN_PLACE=TRUE
make -j <number of processors>
make -j$(nproc)
```
Run it:
./bin/minetest
- Use `cmake . -LH` to see all CMake options and their current state
- Use `cmake . -LH` to see all CMake options and their current state.
- If you want to install it system-wide (or are making a distribution package),
you will want to use `-DRUN_IN_PLACE=FALSE`
- You can build a bare server by specifying `-DBUILD_SERVER=TRUE`
- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`
- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`
- Debug build is slower, but gives much more useful output in a debugger
- If you build a bare server, you don't need to have Irrlicht installed.
- In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`
you will want to use `-DRUN_IN_PLACE=FALSE`.
- You can build a bare server by specifying `-DBUILD_SERVER=TRUE`.
- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`.
- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`.
- Debug build is slower, but gives much more useful output in a debugger.
- If you build a bare server you don't need to have Irrlicht installed.
- In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`.
### CMake options
@ -235,7 +267,7 @@ General options and their default values:
ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts
ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations
ENABLE_GLES=OFF - Search for Open GLES headers & libraries and use them
ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by Irrlicht)
ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL=ON - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend
@ -274,7 +306,7 @@ Library specific options:
LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
PostgreSQL_INCLUDE_DIR - Only when building with PostgreSQL; directory that contains libpq-fe.h
POSTGRESQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so
PostgreSQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so/libpq.lib
REDIS_INCLUDE_DIR - Only when building with Redis; directory that contains hiredis.h
REDIS_LIBRARY - Only when building with Redis; path to libhiredis.a/libhiredis.so
SPATIAL_INCLUDE_DIR - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
@ -299,183 +331,12 @@ Library specific options:
VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
ZLIB_DLL - Only on Windows; path to zlib1.dll
ZLIBWAPI_DLL - Only on Windows; path to zlibwapi.dll
ZLIB_INCLUDE_DIR - Directory that contains zlib.h
ZLIB_LIBRARY - Path to libz.a/libz.so/zlibwapi.lib
### Compiling on Windows
* This section is outdated. In addition to what is described here:
* In addition to minetest, you need to download [minetest_game](https://github.com/luk3yx/minetest_game).
* If you wish to have sound support, you need libogg, libvorbis and libopenal
* You need:
* CMake:
http://www.cmake.org/cmake/resources/software.html
* A compiler
* MinGW: http://www.mingw.org/
* or Visual Studio: http://msdn.microsoft.com/en-us/vstudio/default
* Irrlicht SDK 1.7:
http://irrlicht.sourceforge.net/downloads.html
* Zlib headers (zlib125.zip)
http://www.winimage.com/zLibDll/index.html
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
http://www.winimage.com/zLibDll/index.html
* SQLite3 headers and library
https://www.sqlite.org/download.html
* Optional: gettext library and tools:
http://gnuwin32.sourceforge.net/downlinks/gettext.php
* This is used for other UI languages. Feel free to leave it out.
* And, of course, Minetest:
http://minetest.net/download
* Steps:
* Select a directory called DIR hereafter in which you will operate.
* Make sure you have CMake and a compiler installed.
* Download all the other stuff to DIR and extract them into there.
("extract here", not "extract to packagename/")
* NOTE: zlib125dll.zip needs to be extracted into zlib125dll
* NOTE: You need to extract sqlite3.h & sqlite3ext.h from the SQLite 3
source and sqlite3.dll & sqlite3.def from the SQLite 3 precompiled
binaries into "sqlite3" directory, and generate sqlite3.lib using
command "LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
* All those packages contain a nice base directory in them, which
should end up being the direct subdirectories of DIR.
* You will end up with a directory structure like this (+=dir, -=file):
-----------------
+ DIR
* zlib-1.2.5.tar.gz
* zlib125dll.zip
* irrlicht-1.8.3.zip
* sqlite-amalgamation-3130000.zip (SQLite3 headers)
* sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
* 110214175330.zip (or whatever, this is the minetest source)
+ zlib-1.2.5
* zlib.h
+ win32
...
+ zlib125dll
* readme.txt
+ dll32
...
+ irrlicht-1.8.3
+ lib
+ include
...
+ sqlite3
sqlite3.h
sqlite3ext.h
sqlite3.lib
sqlite3.dll
+ gettext (optional)
+bin
+include
+lib
+ minetest
+ src
+ doc
* CMakeLists.txt
...
-----------------
* Start up the CMake GUI
* Select "Browse Source..." and select DIR/minetest
* Now, if using MSVC:
* Select "Browse Build..." and select DIR/minetest-build
* Else if using MinGW:
* Select "Browse Build..." and select DIR/minetest
* Select "Configure"
* Select your compiler
* It will warn about missing stuff, ignore that at this point. (later don't)
* Make sure the configuration is as follows
(note that the versions may differ for you):
BUILD_CLIENT [X]
BUILD_SERVER [ ]
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX DIR/minetest-install
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
RUN_IN_PLACE [X]
WARN_ALL [ ]
ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
GETTEXT_BIN_DIR DIR/gettext/bin
GETTEXT_INCLUDE_DIR DIR/gettext/include
GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib
GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
* If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
SQLITE3_LIBRARY manually.
* If you want to build 64-bit minetest, you will need to build 64-bit version
of irrlicht engine manually, as only 32-bit pre-built library is provided.
* Hit "Configure"
* Hit "Configure" once again 8)
* If something is still coloured red, you have a problem.
* Hit "Generate"
If using MSVC:
* Open the generated minetest.sln
* The project defaults to the "Debug" configuration. Make very sure to
select "Release", unless you want to debug some stuff (it's slower
and might not even work at all)
* Build the ALL_BUILD project
* Build the INSTALL project
* You should now have a working game with the executable in
DIR/minetest-install/bin/minetest.exe
* Additionally you may create a zip package by building the PACKAGE
project.
If using MinGW:
* Using the command line, browse to the build directory and run 'make'
(or mingw32-make or whatever it happens to be)
* You may need to copy some of the downloaded DLLs into bin/, see what
running the produced executable tells you it doesn't have.
* You should now have a working game with the executable in
DIR/minetest/bin/minetest.exe
### Bat script to build Windows releases of Minetest
This is how we build Windows releases.
set sourcedir=%CD%
set installpath="C:\tmp\minetest_install"
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
set builddir=%sourcedir%\bvc10
mkdir %builddir%
pushd %builddir%
cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
popd
echo Finished.
exit /b 0
:fail
popd
echo Failed.
exit /b 1
### Windows Installer using WIX Toolset
Requirements:
* Visual Studio 2017
* Wix Toolset
In Visual Studio 2017 Installer select "Optional Features" -> "Wix Toolset"
Build the binaries like described above, but make sure you unselect "RUN_IN_PLACE".
Open the generated Project file with VS. Right click "PACKAGE" and choose "Generate".
It may take some minutes to generate the installer.
ZLIB_LIBRARY - Path to libz.a/libz.so/zlib.lib
Docker ("stock" Minetest)
Docker
------
Minetest provides Minetest server docker images using the Gitlab mirror registry.
Images are built on each commit and available using the following tag scheme:
@ -483,27 +344,32 @@ Images are built on each commit and available using the following tag scheme:
* `registry.gitlab.com/minetest/minetest/server:<branch/tag>` (current branch or current tag)
* `registry.gitlab.com/minetest/minetest/server:<commit-id>` (current commit id)
If you want to test it on a docker server, you can easily run:
If you want to test it on a Docker server you can easily run:
sudo docker run registry.gitlab.com/minetest/minetest/server:<docker tag>
If you want to use it in a production environment you should use volumes bound to the docker host
If you want to use it in a production environment you should use volumes bound to the Docker host
to persist data and modify the configuration:
sudo docker create -v /home/minetest/data/:/var/lib/minetest/ -v /home/minetest/conf/:/etc/minetest/ registry.gitlab.com/minetest/minetest/server:master
Data will be written to `/home/minetest/data` on the host, and configuration will be read from `/home/minetest/conf/minetest.conf`.
Note: If you don't understand the previous commands, please read the official Docker documentation before use.
**Note:** If you don't understand the previous commands please read the official Docker documentation before use.
You can also host your minetest server inside a Kubernetes cluster. See our example implementation in `misc/kubernetes.yml`.
You can also host your Minetest server inside a Kubernetes cluster. See our example implementation in [`misc/kubernetes.yml`](misc/kubernetes.yml).
Version scheme
--------------
Minetest uses `major.minor.patch` since 5.0.0-dev,
more information [here](https://github.com/minetest/minetest/#version-scheme).
We use `major.minor.patch` since 5.0.0-dev. Prior to that we used `0.major.minor`.
minetest-luk3yx-4 currently uses `0.4.major.minor`, however that will probably
change (and `major` releases do not necessarily contain breaking changes).
In minenux we used `4.minor.patch` for 0.4.X and `5.2.patch` for 5.2.X
- Major in minenux is used only to those two releases, until 6.X comes in.
- Minor in 4.X will be always "0" cos will be only backported things.
- Patch is incremented when release contains bugfixes and veryminor/trivial features.
In minenux we do not use "-dev" notation, next release is never reached until
a new tag. We only backports patchs and push bugfixes, fetures are avoided as possible.

View File

@ -13,7 +13,7 @@
#if defined USE_CMAKE_CONFIG_H
#include "cmake_config.h"
#elif defined (__ANDROID__) || defined (ANDROID)
#define PROJECT_NAME "minetest"
#define PROJECT_NAME "minetest" // TODO: PROJECT_NAME
#define PROJECT_NAME_C "Minetest"
#define STATIC_SHAREDIR ""
#include "android_version.h"

View File

@ -33,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
bool getGameMinetestConfig(const std::string &game_path, Settings &conf)
{
std::string conf_path = game_path + DIR_DELIM + "minetest.conf";
std::string conf_path = game_path + DIR_DELIM + PROJECT_NAME + ".conf";
return conf.readConfigFile(conf_path.c_str());
}

View File

@ -282,7 +282,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("max_simultaneous_block_sends_server_total", "40");
settings->setDefault("time_send_interval", "5");
settings->setDefault("default_game", "minetest");
settings->setDefault("default_game", PROJECT_NAME);
settings->setDefault("motd", "");
settings->setDefault("max_users", "15");
settings->setDefault("creative_mode", "false");

View File

@ -477,16 +477,16 @@ static bool read_config_file(const Settings &cmd_args)
g_settings_path = cmd_args.get("config");
} else {
std::vector<std::string> filenames;
filenames.push_back(porting::path_user + DIR_DELIM + "minetest.conf");
filenames.push_back(porting::path_user + DIR_DELIM + PROJECT_NAME + ".conf");
// Legacy configuration file location
filenames.push_back(porting::path_user +
DIR_DELIM + ".." + DIR_DELIM + "minetest.conf");
DIR_DELIM + ".." + DIR_DELIM + PROJECT_NAME + ".conf");
#if RUN_IN_PLACE
// Try also from a lower level (to aid having the same configuration
// for many RUN_IN_PLACE installs)
filenames.push_back(porting::path_user +
DIR_DELIM + ".." + DIR_DELIM + ".." + DIR_DELIM + "minetest.conf");
DIR_DELIM + ".." + DIR_DELIM + ".." + DIR_DELIM + PROJECT_NAME + ".conf");
#endif
for (size_t i = 0; i < filenames.size(); i++) {

View File

@ -147,7 +147,7 @@ void initAndroid()
/* in the start-up code */
__android_log_print(ANDROID_LOG_ERROR, PROJECT_NAME_C,
"Initializing GPROF profiler");
monstartup("libminetest.so");
monstartup("libminetest.so"); // TODO PROJECT_NAME
#endif
}