It had been mentioned long ago that minetest ought to change its name. This was considered necessary for the minetest engine to be viewed apart from minetest the minecraft-esque game. Distancing itself from a very specific type of voxel game would allow for the engine to be used for a greater variety of game development using the engine, much like godot and others. The change to the name of the executable, and all references to it in most places in the code and supporting files, and the eventual switch to a git repo with its name cause a lot of upheaval.
The new name for the engine is Luanti, is a sensible and meaningful name even if some won't change their thinking of it and may continue to refer to it as minetest. Many paths once had a minetest directory, many files installed either had minetest in their name or were placed in one of those directories. What I had to change over a few days and a few upstream commits included the pkg-plist and some lines in the Makefile. I had to test numerous times, after each change to be sure everything was done accurately. At present, the upstream git repo is not yet luanti-org/luanti, but it may change in time from what is now minetest/minetest.
The Makefile adjustments below took more time to test than to edit of course because I had to attempt to build and then check what the pkg-plist that was generated looked like.
diff -y -W 200 ./Makefile ../minetest-dev/Makefile | more
# PORTNAME block # PORTNAME block PORTNAME= luanti | PORTNAME= minetest DISTVERSION= g20241102 | DISTVERSION= g20241026 CATEGORIES= games CATEGORIES= games MASTER_SITES= GH MASTER_SITES= GH PKGNAMESUFFIX= -dev PKGNAMESUFFIX= -dev DISTNAME= ${PORTNAME}-${GH_TAGNAME} DISTNAME= ${PORTNAME}-${GH_TAGNAME} DIST_SUBDIR= ${PORTNAME}${PKGNAMESUFFIX} DIST_SUBDIR= ${PORTNAME}${PKGNAMESUFFIX} # Maintainer block # Maintainer block MAINTAINER= nope@nothere MAINTAINER= nope@nothere COMMENT= Near-infinite-world block sandbox game COMMENT= Near-infinite-world block sandbox game WWW= https://www.minetest.net/ WWW= https://www.minetest.net/ # License block # License block LICENSE= LGPL21+ LICENSE= LGPL21+ # dependencies # dependencies LIB_DEPENDS= libzstd.so:archivers/zstd \ LIB_DEPENDS= libzstd.so:archivers/zstd \ libfreetype.so:print/freetype2 libfreetype.so:print/freetype2 # uses block # uses block USES= cmake iconv:wchar_t sqlite ninja:make pkgconfig:build USES= cmake iconv:wchar_t sqlite ninja:make pkgconfig:build USE_GITHUB= nodefault | USE_GITHUB= nodefault GH_ACCOUNT= minetest #GH_ACCOUNT= luanti-org | GH_ACCOUNT= minetest GH_PROJECT= minetest #GH_PROJECT= luanti | GH_PROJECT= minetest GH_TAGNAME= e952a0807b85e089eaa320cfeb09e33816d141ed | GH_TAGNAME= b7073df68cc9ca89e62a2b97c5fbb23cd1454bdf # uses=cmake related variables # uses=cmake related variables CMAKE_ARGS= -DCMAKE_BUILD_TYPE="MinSizeRel" \ CMAKE_ARGS= -DCMAKE_BUILD_TYPE="MinSizeRel" \ -DCUSTOM_EXAMPLE_CONF_DIR="${PREFIX}/etc" \ -DCUSTOM_EXAMPLE_CONF_DIR="${PREFIX}/etc" \ -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_FLAGS="-stdlib=libc++" # -DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED="FALSE" # -DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED="FALSE" # conflicts # conflicts CONFLICTS= minetest irrlichtMt minetest-dev irrlicht-minetest | CONFLICTS= minetest irrlichtMt irrlicht-minetest # wrksrc block # wrksrc block WRKSRC= ${WRKDIR}/minetest-${GH_TAGNAME} #WRKSRC= ${WRKDIR | WRKSRC= ${WRKDIR}/${PORTNAME}-${GH_TAGNAME} # packaging list block # packaging list block #DOCS= * #DOCS= * #PORTDATA= * #PORTDATA= * # options definitions # options definitions OPTIONS_DEFAULT= CURL DOCS LTO SOUND SPATIAL SYSTEM_LUAJIT SYSTEM_FONTS S OPTIONS_DEFAULT= CURL DOCS LTO SOUND SPATIAL SYSTEM_LUAJIT SYSTEM_FONTS S OPTIONS_GROUP= BUILD DATABASE MISC NEEDS SYSTEM OPTIONS_GROUP= BUILD DATABASE MISC NEEDS SYSTEM OPTIONS_GROUP_BUILD= BENCHMARKS DEVTEST DOCS NCURSES PROFILING PROMETHEUS UNITTESTS # OPTIONS_GROUP_BUILD= BENCHMARKS DEVTEST DOCS NCURSES PROFILING PROMETHEUS UNITTESTS # OPTIONS_GROUP_DATABASE= LEVELDB PGSQL REDIS OPTIONS_GROUP_DATABASE= LEVELDB PGSQL REDIS OPTIONS_GROUP_MISC= LTO OPTIONS_GROUP_MISC= LTO OPTIONS_GROUP_NEEDS= CURL NLS SOUND SPATIAL OPTIONS_GROUP_NEEDS= CURL NLS SOUND SPATIAL OPTIONS_GROUP_SYSTEM= SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP SYSTEM_LUAJIT OPTIONS_GROUP_SYSTEM= SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP SYSTEM_LUAJIT OPTIONS_MULTI= SOFTWARE OPTIONS_MULTI= SOFTWARE OPTIONS_MULTI_SOFTWARE= CLIENT SERVER OPTIONS_MULTI_SOFTWARE= CLIENT SERVER OPTIONS_SINGLE= GRAPHICS OPTIONS_SINGLE= GRAPHICS OPTIONS_SINGLE_GRAPHICS= GLES1 GLES2 OPENGL OPENGL3 OPTIONS_SINGLE_GRAPHICS= GLES1 GLES2 OPENGL OPENGL3 OPTIONS_SUB= yes OPTIONS_SUB= yes # options descriptions # options descriptions BENCHMARKS_DESC= Build benchmarks (Adds some benchmark chat commands) BENCHMARKS_DESC= Build benchmarks (Adds some benchmark chat commands) BUILD_DESC= Admin/Dev needs BUILD_DESC= Admin/Dev needs CLIENT_DESC= Build client, add graphics and sdl2 support, dependencie CLIENT_DESC= Build client, add graphics and sdl2 support, dependencie CURL_DESC= Enable cURL support for fetching media: contentd CURL_DESC= Enable cURL support for fetching media: contentd DATABASE_DESC= Database support DATABASE_DESC= Database support DEVTEST_DESC= Install Development Test game also (INSTALL_DEVTEST) DEVTEST_DESC= Install Development Test game also (INSTALL_DEVTEST) DOCS_DESC= Build and install documentation (via doxygen) DOCS_DESC= Build and install documentation (via doxygen) #GITTRACY_DESC= Fetch Tracy git tag --build fails-- --purpose uncertain- #GITTRACY_DESC= Fetch Tracy git tag --build fails-- --purpose uncertain- GLES1_DESC= Enable OpenGL ES driver, legacy GLES1_DESC= Enable OpenGL ES driver, legacy GLES2_DESC= Enable OpenGL ES 2+ driver GLES2_DESC= Enable OpenGL ES 2+ driver GRAPHICS_DESC= Graphics support GRAPHICS_DESC= Graphics support LEVELDB_DESC= Enable LevelDB backend --broken - build fails-- LEVELDB_DESC= Enable LevelDB backend --broken - build fails-- LTO_DESC= Build with IPO/LTO optimizations (smaller and mo LTO_DESC= Build with IPO/LTO optimizations (smaller and mo MISC_DESC= Other options MISC_DESC= Other options NCURSES_DESC= Enables server side terminal (cli option: --terminal) (E NCURSES_DESC= Enables server side terminal (cli option: --terminal) (E NEEDS_DESC= Client essentials NEEDS_DESC= Client essentials NLS_DESC= Native Language Support (ENABLE_GETTEXT) NLS_DESC= Native Language Support (ENABLE_GETTEXT) OPENGL3_DESC= Enable OpenGL 3+ driver (likely needs sdl2 built with OP OPENGL3_DESC= Enable OpenGL 3+ driver (likely needs sdl2 built with OP OPENGL_DESC= Enable OpenGL driver OPENGL_DESC= Enable OpenGL driver PGSQL_DESC= Enable PostgreSQL map backend PGSQL_DESC= Enable PostgreSQL map backend PROFILING_DESC= Use gprof for profiling (USE_GPROF) PROFILING_DESC= Use gprof for profiling (USE_GPROF) PROMETHEUS_DESC= Build with Prometheus metrics exporter PROMETHEUS_DESC= Build with Prometheus metrics exporter REDIS_DESC= Enable Redis backend REDIS_DESC= Enable Redis backend SERVER_DESC= Build server SERVER_DESC= Build server SOFTWARE_DESC= Software components SOFTWARE_DESC= Software components SOUND_DESC= Enable sound via openal-soft SOUND_DESC= Enable sound via openal-soft SPATIAL_DESC= Enable SpatialIndex (Speeds up AreaStores) SPATIAL_DESC= Enable SpatialIndex (Speeds up AreaStores) SYSTEM_DESC= System subsitutes SYSTEM_DESC= System subsitutes SYSTEM_FONTS_DESC= Use or install default fonts from ports SYSTEM_FONTS_DESC= Use or install default fonts from ports SYSTEM_GMP_DESC= Use gmp from ports (ENABLE_SYSTEM_GMP) SYSTEM_GMP_DESC= Use gmp from ports (ENABLE_SYSTEM_GMP) SYSTEM_JSONCPP_DESC= Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP) SYSTEM_JSONCPP_DESC= Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP) SYSTEM_LUAJIT_DESC= Use or install luajit from ports (instead of bundled lua SYSTEM_LUAJIT_DESC= Use or install luajit from ports (instead of bundled lua #TRACY_DESC= Build with Tracy frame and sampling profiler --b #TRACY_DESC= Build with Tracy frame and sampling profiler --b UNITTESTS_DESC= Build unit test sources (BUILD_UNITTESTS) UNITTESTS_DESC= Build unit test sources (BUILD_UNITTESTS) # options helpers # options helpers BENCHMARKS_CMAKE_BOOL= BUILD_BENCHMARKS BENCHMARKS_CMAKE_BOOL= BUILD_BENCHMARKS #TRACY_BUILD_DEPENDS= tracy>0:devel/tracy #TRACY_BUILD_DEPENDS= tracy>0:devel/tracy #TRACY_CMAKE_BOOL= BUILD_WITH_TRACY #TRACY_CMAKE_BOOL= BUILD_WITH_TRACY CLIENT_LIB_DEPENDS= libpng16.so:graphics/png CLIENT_LIB_DEPENDS= libpng16.so:graphics/png CLIENT_USES= gl xorg jpeg sdl CLIENT_USES= gl xorg jpeg sdl CLIENT_USE= \ CLIENT_USE= \ GL=glu \ GL=glu \ SDL=sdl2,ttf2 \ SDL=sdl2,ttf2 \ XORG=ice,sm,x11,xext,xcb,xres,xshmfence, XORG=ice,sm,x11,xext,xcb,xres,xshmfence, xfixes,xft,xinerama,xkbfile,xmu,xpm,xran xfixes,xft,xinerama,xkbfile,xmu,xpm,xran CLIENT_CMAKE_BOOL= BUILD_CLIENT CLIENT_CMAKE_BOOL= BUILD_CLIENT CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CMAKE_BOOL= ENABLE_CURL CURL_CMAKE_BOOL= ENABLE_CURL DEVTEST_CMAKE_BOOL= INSTALL_DEVTEST DEVTEST_CMAKE_BOOL= INSTALL_DEVTEST DOCS_CMAKE_BOOL= BUILD_DOCUMENTATION DOCS_CMAKE_BOOL= BUILD_DOCUMENTATION GLES1_USE= GL+=glesv1 GLES1_USE= GL+=glesv1 GLES1_CMAKE_BOOL= ENABLE_GLES1 GLES1_CMAKE_BOOL= ENABLE_GLES1 GLES2_USE= GL+=glesv2 GLES2_USE= GL+=glesv2 GLES2_CMAKE_BOOL= ENABLE_GLES2 GLES2_CMAKE_BOOL= ENABLE_GLES2 LEVELDB_LIB_DEPENDS= libleveldb.so:databases/leveldb LEVELDB_LIB_DEPENDS= libleveldb.so:databases/leveldb LEVELDB_CMAKE_BOOL= ENABLE_LEVELDB LEVELDB_CMAKE_BOOL= ENABLE_LEVELDB LTO_CMAKE_BOOL= ENABLE_LTO LTO_CMAKE_BOOL= ENABLE_LTO NCURSES_USES= ncurses NCURSES_USES= ncurses NCURSES_CMAKE_BOOL= ENABLE_CURSES NCURSES_CMAKE_BOOL= ENABLE_CURSES NLS_USES= gettext NLS_USES= gettext NLS_CMAKE_BOOL= ENABLE_GETTEXT NLS_CMAKE_BOOL= ENABLE_GETTEXT NLS_LDFLAGS= -L${LOCALBASE}/lib NLS_LDFLAGS= -L${LOCALBASE}/lib OPENGL3_USE= GL+=gl OPENGL3_USE= GL+=gl OPENGL3_CMAKE_BOOL= ENABLE_OPENGL3 OPENGL3_CMAKE_BOOL= ENABLE_OPENGL3 OPENGL_USE= GL+=gl OPENGL_USE= GL+=gl OPENGL_CMAKE_BOOL= ENABLE_OPENGL OPENGL_CMAKE_BOOL= ENABLE_OPENGL PGSQL_USES= pgsql PGSQL_USES= pgsql PGSQL_CMAKE_BOOL= ENABLE_POSTGRESQL PGSQL_CMAKE_BOOL= ENABLE_POSTGRESQL PROFILING_CMAKE_BOOL= USE_GPROF PROFILING_CMAKE_BOOL= USE_GPROF PROMETHEUS_CMAKE_BOOL= ENABLE_PROMETHEUS PROMETHEUS_CMAKE_BOOL= ENABLE_PROMETHEUS REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis REDIS_CMAKE_BOOL= ENABLE_REDIS REDIS_CMAKE_BOOL= ENABLE_REDIS SERVER_CMAKE_BOOL= BUILD_SERVER SERVER_CMAKE_BOOL= BUILD_SERVER SOUND_CMAKE_BOOL= ENABLE_SOUND SOUND_CMAKE_BOOL= ENABLE_SOUND SPATIAL_LIB_DEPENDS= libspatialindex.so:devel/spatialindex SPATIAL_LIB_DEPENDS= libspatialindex.so:devel/spatialindex SPATIAL_CMAKE_BOOL= ENABLE_SPATIAL SPATIAL_CMAKE_BOOL= ENABLE_SPATIAL SYSTEM_FONTS_RUN_DEPENDS= ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf:x11-fonts/crosc SYSTEM_FONTS_RUN_DEPENDS= ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf:x11-fonts/crosc ${LOCALBASE}/share/fonts/Droid/DroidSans ${LOCALBASE}/share/fonts/Droid/DroidSans SYSTEM_GMP_LIB_DEPENDS= libgmp.so:math/gmp SYSTEM_GMP_LIB_DEPENDS= libgmp.so:math/gmp SYSTEM_GMP_CMAKE_BOOL= ENABLE_SYSTEM_GMP SYSTEM_GMP_CMAKE_BOOL= ENABLE_SYSTEM_GMP SYSTEM_GMP_CMAKE_ON= -DGMP_INCLUDE_DIR="${PREFIX}/include" SYSTEM_GMP_CMAKE_ON= -DGMP_INCLUDE_DIR="${PREFIX}/include" SYSTEM_JSONCPP_LIB_DEPENDS= libjsoncpp.so:devel/jsoncpp SYSTEM_JSONCPP_LIB_DEPENDS= libjsoncpp.so:devel/jsoncpp SYSTEM_JSONCPP_CMAKE_BOOL= ENABLE_SYSTEM_JSONCPP SYSTEM_JSONCPP_CMAKE_BOOL= ENABLE_SYSTEM_JSONCPP SYSTEM_JSONCPP_CMAKE_ON= -DJSON_INCLUDE_DIR="${PREFIX}/include/jsoncpp" SYSTEM_JSONCPP_CMAKE_ON= -DJSON_INCLUDE_DIR="${PREFIX}/include/jsoncpp" SYSTEM_LUAJIT_USES= luajit SYSTEM_LUAJIT_USES= luajit SYSTEM_LUAJIT_USE= luajit SYSTEM_LUAJIT_USE= luajit #SYSTEM_LUAJIT_CMAKE_BOOL= ENABLE_LUAJIT # Redundant as one of the above includes this #SYSTEM_LUAJIT_CMAKE_BOOL= ENABLE_LUAJIT # Redundant as one of the above includes this UNITTESTS_CMAKE_BOOL= BUILD_UNITTESTS UNITTESTS_CMAKE_BOOL= BUILD_UNITTESTS .include.include .if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSYSTEM_LUAJIT} .if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSYSTEM_LUAJIT} CMAKE_ARGS+= -DENABLE_LUAJIT="ON" \ CMAKE_ARGS+= -DENABLE_LUAJIT="ON" \ -DREQUIRE_LUAJIT="ON" -DREQUIRE_LUAJIT="ON" .endif .endif # It used to be such that
I automate some pkg-plist adjustments with a simple script I modify for each significant 'unofficial port' that I make. It speeds the process of making sure that everything is accurate and consistent between rebuilds and new commits to my repo based upon upstream changes. All the places in the script where it now has luanti had once been minetest.
#!/bin/sh rm /var/tmp/luanti-dev_pkg-plist 2>/dev/null rm /var/tmp/luanti-dev_pkg-plist-fixed 2>/dev/null cp ../pkg-plist /var/tmp/luanti-dev_pkg-plist echo "adding conditional list tags" cat /var/tmp/minetest-dev_pkg-plist | \ sed \ -e 's#^\/you\/have\/to\/check\/what\/makeplist\/gives\/you##' \ -e '/^$/d' \ -e 's#^share\/locale#\%\%CLIENT\%\%\%\%NLS\%\%share\/locale#g' \ -e 's#^\%\%PORT#\%\%#g' \ -e 's#^bin/luantiserver#\%\%SERVER\%\%bin/luantiserver#1' \ -e 's#^bin/luanti#\%\%CLIENT\%\%bin/luanti#1' \ -e 's#^\%\%ETCDIR\%\%.conf.example#@sample\ etc/minetest.conf.example\ etc/minetest.conf#' \ -e 's#^\%\%ETCDIR\%\%.conf.example#@sample\ etc/luanti.conf.example\ etc/luanti.conf#' \ -e 's#^etc/rc.d/minetest#\%\%SERVER\%\%etc/rc.d/minetest#1' \ -e 's#^etc/rc.d/luanti#\%\%SERVER\%\%etc/rc.d/luanti#1' \ -e 's#^share/man/man6/luanti.6.gz#\%\%CLIENT\%\%share/man/man6/luanti.6.gz#1' \ -e 's#^share/man/man6/luantiserver.6.gz#\%\%SERVER\%\%share/man/man6/luantiserver.6.gz#1' \ -e 's#^\%\%DATADIR\%\%/client#\%\%CLIENT\%\%\%\%DATADIR\%\%/client#g' \ -e 's#^\%\%DATADIR\%\%/fonts#\%\%CLIENT\%\%\%\%DATADIR\%\%/fonts#g' \ -e 's#^\%\%DATADIR\%\%/textures#\%\%CLIENT\%\%\%\%DATADIR\%\%/textures#g' \ -e 's#^\%\%DATADIR\%\%/games/devtest#\%\%DEVTEST\%\%\%\%DATADIR\%\%/games/devtest#g' \ > /var/tmp/luanti-dev_pkg-plist-fixed cp /var/tmp/luanti-dev_pkg-plist-fixed ../pkg-plist
The options config has changed somewhat, organized a little nicer. The touch option was moved into the luanti config itself, and my method to use system fonts instead of bundled fonts can still be toggled.
┌────────────────────────────────────────┤luanti-dev-g20241102├─────────────────────────────────────────┐ │ 'F1' for Ports Collection help. │ │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │──────────────────────────────────────── Admin/Dev needs ──────────────────────────────────────────│ │ │ │[X] BENCHMARKS Build benchmarks (Adds some benchmark chat commands) │ │ │ │[X] DEVTEST Install Development Test game also (INSTALL_DEVTEST) │ │ │ │[X] DOCS Build and install documentation (via doxygen) │ │ │ │[X] NCURSES Enables server side terminal (cli option: --terminal) (ENABLE_CURSES) │ │ │ │[X] PROFILING Use gprof for profiling (USE_GPROF) │ │ │ │[X] PROMETHEUS Build with Prometheus metrics exporter │ │ │ │[X] UNITTESTS Build unit test sources (BUILD_UNITTESTS) │ │ │ │──────────────────────────────────────── Database support ─────────────────────────────────────────│ │ │ │[ ] LEVELDB Enable LevelDB backend --broken - build fails-- │ │ │ │[ ] PGSQL Enable PostgreSQL map backend │ │ │ │[ ] REDIS Enable Redis backend │ │ │ │───────────────────────────────────────── Other options ───────────────────────────────────────────│ │ │ │[X] LTO Build with IPO/LTO optimizations (smaller and more efficient than regular build)│ │ │ │─────────────────────────────────────── Client essentials ─────────────────────────────────────────│ │ │ │[X] CURL Enable cURL support for fetching media: contentdb │ │ │ │[X] NLS Native Language Support (ENABLE_GETTEXT) │ │ │ │[X] SOUND Enable sound via openal-soft │ │ │ │[X] SPATIAL Enable SpatialIndex (Speeds up AreaStores) │ │ │ │─────────────────────────────────────── System subsitutes ─────────────────────────────────────────│ │ │ │[X] SYSTEM_FONTS Use or install default fonts from ports │ │ │ │[X] SYSTEM_GMP Use gmp from ports (ENABLE_SYSTEM_GMP) │ │ │ │[X] SYSTEM_JSONCPP Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP) │ │ │ │[X] SYSTEM_LUAJIT Use or install luajit from ports (instead of bundled lua) │ │ │ │──────────────────────────── Software components [select at least one] ────────────────────────────│ │ │ │[X] CLIENT Build client, add graphics and sdl2 support, dependencies │ │ │ │[X] SERVER Build server │ │ │ │───────────────────────────── Graphics support [select at least one] ──────────────────────────────│ │ │ │( ) GLES1 Enable OpenGL ES driver, legacy │ │ │ │( ) GLES2 Enable OpenGL ES 2+ driver │ │ │ │(*) OPENGL Enable OpenGL driver │ │ │ │( ) OPENGL3 Enable OpenGL 3+ driver (likely needs sdl2 built with OPENGLES) │ │ │ └───────────────────────────────────────────────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ [ OK ] [Cancel] │ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘
If you had used minetest in the past, one other change is rather visible. I toggled off the clouds in the luanti config which makes it much more game agnostic.
At the moment this is the only way you can use the very most current Lunati client for minetest games and for your game engine needs. Eventually the ports committer for games/minetest will have to go through much of the same work I finished above to create games/luanti. Their task is delayed for public consumption even if they have done the work on their local machine because they track releases rather than upstream commits as I do.
Repo url:
No comments:
Post a Comment
Thank you for your interest!