Warning: there may be occasional oddness due to css and blog edits. **KNOWN ISSUE: possible hidden text**
Showing posts with label port. Show all posts
Showing posts with label port. Show all posts

Sunday, November 3, 2024

Luanti minetest fallout

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.

Luanti start screen GUI

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:

Thursday, March 28, 2024

Streamlining minetest

Not long ago the upstream minetest developers made a commit which would fold irrlichtMt back into minetest.The minetest devs split the two apart quite a long time ago so they could focus on what they needed to strip out of irrlicht and what needed to be customized for their own needs.  With this recent commit it seems as though much of that effort has been accomplished and further improvements would be made with it more integral to minetest once more.  I was not ready to make this overhaul of my own Makefile but I knew I would soon enough.

The first thing I did was to revise the minetest Makefile for the recent commit date and hash, then I changed directory into /usr/home/tigersharke/Ported_Software/games/minetest-dev/work/minetest-6a7a613741fe32fa14897a4f780d7382105a103c/ so that I could check the cmake options via

cmake -L | awk '{if(f)print} /-- Cache values/{f=1}' > ../../cmake_options_new

with a diff.  Since I had the previous cmake_options gathered in the same fashion, I could take a diff to see how things changed.  This would also prove to me that nearly all of the Makefile options from irrlicht-minetest would be shifted into minetest-dev.

diff -y -W 120 cmake_opts cmake_opts_new | more

APPLY_LOCALE_BLACKLIST:BOOL=ON                                  APPLY_LOCALE_BLACKLIST:BOOL=ON
BUILD_BENCHMARKS:BOOL=FALSE                                     BUILD_BENCHMARKS:BOOL=FALSE
BUILD_CLIENT:BOOL=TRUE                                          BUILD_CLIENT:BOOL=TRUE
BUILD_DOCUMENTATION:BOOL=TRUE                                   BUILD_DOCUMENTATION:BOOL=TRUE
                                                           >    BUILD_EXAMPLES:BOOL=OFF
BUILD_SERVER:BOOL=FALSE                                         BUILD_SERVER:BOOL=FALSE
BUILD_UNITTESTS:BOOL=TRUE                                       BUILD_UNITTESTS:BOOL=TRUE
CMAKE_BUILD_TYPE:STRING=Release                                 CMAKE_BUILD_TYPE:STRING=Release
CMAKE_INSTALL_PREFIX:PATH=/usr/local                            CMAKE_INSTALL_PREFIX:PATH=/usr/local
CUSTOM_BINDIR:STRING=                                           CUSTOM_BINDIR:STRING=
CUSTOM_DOCDIR:STRING=                                           CUSTOM_DOCDIR:STRING=
CUSTOM_EXAMPLE_CONF_DIR:STRING=                                 CUSTOM_EXAMPLE_CONF_DIR:STRING=
CUSTOM_ICONDIR:STRING=                                          CUSTOM_ICONDIR:STRING=
CUSTOM_LOCALEDIR:STRING=                                        CUSTOM_LOCALEDIR:STRING=
CUSTOM_MANDIR:STRING=                                           CUSTOM_MANDIR:STRING=
CUSTOM_SHAREDIR:STRING=                                         CUSTOM_SHAREDIR:STRING=
CUSTOM_XDG_APPS_DIR:STRING=                                     CUSTOM_XDG_APPS_DIR:STRING=
ENABLE_CURL:BOOL=ON                                             ENABLE_CURL:BOOL=ON
ENABLE_CURSES:BOOL=ON                                           ENABLE_CURSES:BOOL=ON
ENABLE_GETTEXT:BOOL=ON                                          ENABLE_GETTEXT:BOOL=ON
                                                           >    ENABLE_GLES1:BOOL=OFF
                                                           >    ENABLE_GLES2:BOOL=OFF
ENABLE_LEVELDB:BOOL=ON                                          ENABLE_LEVELDB:BOOL=ON
ENABLE_LTO:BOOL=TRUE                                            ENABLE_LTO:BOOL=TRUE
ENABLE_LUAJIT:BOOL=ON                                           ENABLE_LUAJIT:BOOL=ON
                                                           >    ENABLE_OPENGL:BOOL=ON
                                                           >    ENABLE_OPENGL3:BOOL=ON
ENABLE_POSTGRESQL:BOOL=ON                                       ENABLE_POSTGRESQL:BOOL=ON
ENABLE_PROMETHEUS:BOOL=OFF                                      ENABLE_PROMETHEUS:BOOL=OFF
ENABLE_REDIS:BOOL=ON                                            ENABLE_REDIS:BOOL=ON
ENABLE_SOUND:BOOL=ON                                            ENABLE_SOUND:BOOL=ON
ENABLE_SPATIAL:BOOL=ON                                          ENABLE_SPATIAL:BOOL=ON
ENABLE_SYSTEM_GMP:BOOL=ON                                       ENABLE_SYSTEM_GMP:BOOL=ON
ENABLE_SYSTEM_JSONCPP:BOOL=ON                                   ENABLE_SYSTEM_JSONCPP:BOOL=ON
ENABLE_TOUCH:BOOL=OFF                                           ENABLE_TOUCH:BOOL=OFF
ENABLE_UPDATE_CHECKER:BOOL=(;NOT;TRUE;)                         ENABLE_UPDATE_CHECKER:BOOL=(;NOT;TRUE;)
GETTEXT_MSGFMT:FILEPATH=/usr/local/bin/msgfmt                   GETTEXT_MSGFMT:FILEPATH=/usr/local/bin/msgfmt
INSTALL_DEVTEST:BOOL=FALSE                                      INSTALL_DEVTEST:BOOL=FALSE
IRRLICHTMT_BUILD_DIR:PATH=                                 <
IrrlichtMt_DIR:PATH=/usr/local/lib/cmake/IrrlichtMt        <
LEVELDB_INCLUDE_DIR:PATH=/usr/include                           LEVELDB_INCLUDE_DIR:PATH=/usr/include
LEVELDB_LIBRARY:FILEPATH=LEVELDB_LIBRARY-NOTFOUND               LEVELDB_LIBRARY:FILEPATH=LEVELDB_LIBRARY-NOTFOUND
REDIS_INCLUDE_DIR:PATH=REDIS_INCLUDE_DIR-NOTFOUND               REDIS_INCLUDE_DIR:PATH=REDIS_INCLUDE_DIR-NOTFOUND
REDIS_LIBRARY:FILEPATH=REDIS_LIBRARY-NOTFOUND                   REDIS_LIBRARY:FILEPATH=REDIS_LIBRARY-NOTFOUND
REQUIRE_LUAJIT:BOOL=OFF                                         REQUIRE_LUAJIT:BOOL=OFF
RUN_IN_PLACE:BOOL=FALSE                                         RUN_IN_PLACE:BOOL=FALSE
                                                           >    SDL2_DIR:PATH=/usr/local/lib/cmake/SDL2
SPATIAL_INCLUDE_DIR:PATH=/usr/local/include                     SPATIAL_INCLUDE_DIR:PATH=/usr/local/include
SPATIAL_LIBRARY:FILEPATH=/usr/local/lib/libspatialindex.        SPATIAL_LIBRARY:FILEPATH=/usr/local/lib/libspatialindex.
USE_GPROF:BOOL=FALSE                                            USE_GPROF:BOOL=FALSE
                                                           >    USE_SDL2:BOOL=ON
VERSION_EXTRA:STRING=                                           VERSION_EXTRA:STRING=
WARN_ALL:BOOL=TRUE                                              WARN_ALL:BOOL=TRUE

Before I began the attempted reinstall, I removed irrlichtMt that was installed which also caused minetest to be removed.  This way I can know whether the newly incorporated irrlichtMt will satisfy the minetest build.  Output of the build seems to indicate that I might have a few things to adjust, although most do not seem to be critical issues I suppose I will need to add the jpeg to USES.

====> Compressing man pages (compress-man)
===> Staging rc.d startup script(s)
====> Running Q/A tests (stage-qa)
Error: /usr/local/bin/minetest is linked to /usr/local/lib/libjpeg.so.8 from graphics/jpeg-turbo but it is not declared as a dependency
Warning: you need USES+=jpeg
Warning: you might not need LIB_DEPENDS on libpng.so
Warning: you might not need LIB_DEPENDS on liblua-5.4.so
Warning: you might not need LIB_DEPENDS on libSDL2.so
Warning: you might not need LIB_DEPENDS on libSDL2_ttf.so
Warning: you might not need LIB_DEPENDS on libGL.so
Warning: you might not need LIB_DEPENDS on libopenal.so.1
===>  Installing for minetest-dev-g20240326
===>  Checking if minetest-dev is already installed
===>   Registering installation for minetest-dev-g20240326
pkg-static: duplicate file listing: /usr/local/etc/rc.d/minetest, ignoring
Installing minetest-dev-g20240326...
===> Creating groups.
Using existing group 'minetest'.
===> Creating users
Using existing user 'minetest'.
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
==> Running trigger: gtk-update-icon-cache.ucl
Generating GTK icon cache for /usr/local/share/icons/hicolor
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/bin/minetestserver
/usr/local/bin/minetest

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/minetest

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
https://www.minetest.net/
root@ichigo:/usr/home/tigersharke/Ported_Software/games/minetest-dev #

A quick test proved that everything runs well enough to show the main menu and access a server, so at least with most of the usual options selected for test builds-- I don't use touch option for my client nor most or any in the Admin/Dev section, it built fine.

                 ┌───────────────────────────────────────┤minetest-dev-g20240326├────────────────────────────────────────┐
                 │ 'F1' for Ports Collection help.                                                                       │
                 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────┐ │
                 │ │──────────────────────────────────────── Database support ─────────────────────────────────────────│ │
                 │ │[ ] LEVELDB        Enable LevelDB backend                                                          │ │
                 │ │[ ] PGSQL          Enable PostgreSQL map backend                                                   │ │
                 │ │[ ] REDIS          Enable Redis backend                                                            │ │
                 │ │──────────────────────────────────────── 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] EXAMPLES       BUILD_EXAMPLES                                                                  │ │
                 │ │[X] NCURSES        Enables server side terminal (cli option: --terminal)                           │ │
                 │ │[X] PROFILING      Use gprof for profiling                                                         │ │
                 │ │[X] PROMETHEUS     Build with Prometheus metrics exporter                                          │ │
                 │ │[X] TOUCH          Build with touch interface support (to test on amd64)                           │ │
                 │ │[X] UNITTESTS      Build unit test sources (BUILD_UNITTESTS)                                       │ │
                 │ │─────────────────────────────────────── Client essentials ─────────────────────────────────────────│ │
                 │ │[X] CURL           Enable cURL support for fetching media: contentdb                               │ │
                 │ │[X] FREETYPE       Support for TrueType fonts with unicode                                         │ │
                 │ │[X] NLS            Native Language Support (ENABLE_GETTEXT)                                        │ │
                 │ │[X] SOUND          Enable sound via openal-soft                                                    │ │
                 │ │[X] SPATIAL        Enable SpatialIndex (Speeds up AreaStores)                                      │ │
                 │ │───────────────────────────────────────── Other options ───────────────────────────────────────────│ │
                 │ │[X] LTO            Build with IPO/LTO optimizations (smaller and more efficient than regular build)│ │
                 │ │─────────────────────────────────────── 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-openresty from ports                                      │ │
                 │ │──────────────────────────── Software components [select at least one] ────────────────────────────│ │
                 │ │[X] CLIENT         Build client and add graphics support, dependency                               │ │
                 │ │[X] SERVER         Build server                                                                    │ │
                 │ │───────────────────────────── Graphics support [select at least one] ──────────────────────────────│ │
                 │ │( ) GLES1          Enable GLES1 (testing)                                                          │ │
                 │ │( ) GLES2          Enable GLES2 (testing)                                                          │ │
                 │ │(*) OPENGL         Support OPENGL (<3.x)                                                           │ │
                 │ │( ) OPENGL3        Support OPENGL3 --Builds but seems incomplete--                                 │ │
                 │ └───────────────────────────────────────────────────────────────────────────────────────────────────┘ │
                 ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤
                 │                                         [  OK  ]     [Cancel]                                         │
                 └───────────────────────────────────────────────────────────────────────────────────────────────────────┘

I can add the jpeg item to the Makefile and now future minetest-dev builds will be one process.  Testing the gles1 option tells me that I cannot include SDL and so will need to adjust the options a bit more.  The jpeg item was actually a typo, having added it the wrong way in the wrong place.  There were a few other adjustments and one I cannot solve right now.  The git diff is how it looks now:

# git diff
diff --git a/Makefile b/Makefile
index e20fedc..176fcbb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # Portname block
 PORTNAME=              minetest
-DISTVERSION=   g20240324
+DISTVERSION=   g20240326
 CATEGORIES=            games
 PKGNAMESUFFIX= -dev
 DISTNAME=              ${PORTNAME}-${GH_TAGNAME}
@@ -15,15 +15,14 @@ WWW=                        https://www.minetest.net/
 LICENSE=               LGPL21+

 # dependencies
-LIB_DEPENDS=   libIrrlichtMt.so:x11-toolkits/irrlicht-minetest libzstd.so:archivers/zstd
+LIB_DEPENDS=   libzstd.so:archivers/zstd

 # uses block
-USES=                  cmake iconv:wchar_t sqlite lua luajit ninja:make llvm:min=16 pkgconfig:build sdl
+USES=                  cmake iconv:wchar_t sqlite lua luajit ninja:make llvm:min=16 pkgconfig:build
 USE_GITHUB=     nodefault
 GH_ACCOUNT=     minetest
 GH_PROJECT=     minetest
-GH_TAGNAME=            a7908da968bba82129f60c9601c9cefabd36a389
-USE_SDL=               sdl2 ttf2
+GH_TAGNAME=            6a7a613741fe32fa14897a4f780d7382105a103c

 # uses=cmake related variables
 CMAKE_ARGS=            -DCMAKE_BUILD_TYPE="MinSizeRel" \
@@ -31,7 +30,7 @@ CMAKE_ARGS=           -DCMAKE_BUILD_TYPE="MinSizeRel" \
                                -DCMAKE_CXX_FLAGS="-stdlib=libc++"

 # conflicts
-CONFLICTS=             minetest
+CONFLICTS=             minetest irrlichtMt irrlicht-minetest

 # wrksrc block
 WRKSRC=                        ${WRKDIR}/${PORTNAME}-${GH_TAGNAME}
@@ -43,7 +42,7 @@ WRKSRC=                       ${WRKDIR}/${PORTNAME}-${GH_TAGNAME}
 # FATAL: Makefile: PORTDOCS appears in plist but DOCS is not listed in OPTIONS_DEFINE.

 # options definitions
-OPTIONS_DEFAULT=                       CURL DOCS FREETYPE LTO LUAJIT SOUND SPATIAL SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP CLIENT GLVND
+OPTIONS_DEFAULT=                       CURL DOCS FREETYPE LTO LUAJIT SOUND SPATIAL SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP CLIENT OPENGL
 OPTIONS_GROUP=                         DATABASE BUILD NEEDS MISC SYSTEM
 OPTIONS_GROUP_BUILD=           BENCHMARKS DEVTEST DOCS EXAMPLES NCURSES PROFILING PROMETHEUS TOUCH UNITTESTS
 OPTIONS_GROUP_DATABASE=                LEVELDB PGSQL REDIS
@@ -52,13 +51,13 @@ OPTIONS_GROUP_NEEDS=                CURL FREETYPE NLS SOUND SPATIAL
 OPTIONS_GROUP_SYSTEM=          SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP SYSTEM_LUAJIT
 OPTIONS_MULTI=                         SOFTWARE
 OPTIONS_MULTI_SOFTWARE=                CLIENT SERVER
-#OPTIONS_SINGLE=                       GRAPHICS  # Graphics buried option GLVND/LEGACY stuff obsoleted log ago, likely did nothing.
-#OPTIONS_SINGLE_GRAPHICS=      GLVND LEGACY
+OPTIONS_SINGLE=                                GRAPHICS
+OPTIONS_SINGLE_GRAPHICS=       GLES1 GLES2 OPENGL OPENGL3
 OPTIONS_SUB=                           yes

 # options descriptions
-BUILD_DESC=                                    Admin/Dev needs
 BENCHMARKS_DESC=                       Build benchmarks (Adds some benchmark chat commands)
+BUILD_DESC=                                    Admin/Dev needs
 CLIENT_DESC=                           Build client and add graphics support, dependency
 CURL_DESC=                                     Enable cURL support for fetching media: contentdb
 DATABASE_DESC=                         Database support
@@ -66,19 +65,22 @@ DEVTEST_DESC=                               Install Development Test game also (INSTALL_DEVTEST)
 DOCS_DESC=                                     Build and install documentation (via doxygen)
 EXAMPLES_DESC=                         BUILD_EXAMPLES
 FREETYPE_DESC=                         Support for TrueType fonts with unicode
-#GLVND_DESC=                                   Use libOpenGL or libGLX
-#GRAPHICS_DESC=                                Graphics support
-#LEGACY_DESC=                          Use libGL - where GLVND may be broken on nvidia
+GLES1_DESC=                                    Enable GLES1 --broken due to SDL--
+GLES2_DESC=                                    Enable GLES2
+GRAPHICS_DESC=                         Graphics support
 LEVELDB_DESC=                          Enable LevelDB backend
 LTO_DESC=                                      Build with IPO/LTO optimizations (smaller and more efficient than regular build)
 MISC_DESC=                                     Other options
 NCURSES_DESC=                          Enables server side terminal (cli option: --terminal)
 NEEDS_DESC=                                    Client essentials
 NLS_DESC=                                      Native Language Support (ENABLE_GETTEXT)
+OPENGL3_DESC=                          Support OPENGL3 --Builds but seems incomplete--
+OPENGL_DESC=                           Support OPENGL (<3.x)
 PGSQL_DESC=                                    Enable PostgreSQL map backend
 PROFILING_DESC=                                Use gprof for profiling
 PROMETHEUS_DESC=                       Build with Prometheus metrics exporter
 REDIS_DESC=                                    Enable Redis backend
+#SDL_DESC=                                     Use SDL
 SERVER_DESC=                           Build server
 SOFTWARE_DESC=                         Software components
 SOUND_DESC=                                    Enable sound via openal-soft
@@ -93,9 +95,9 @@ UNITTESTS_DESC=                               Build unit test sources (BUILD_UNITTESTS)

 # options helpers
 BENCHMARKS_CMAKE_BOOL=         BUILD_BENCHMARKS
-CLIENT_LIB_DEPENDS=                    libIrrlichtMt.so:x11-toolkits/irrlicht-minetest libpng.so:graphics/png
-CLIENT_USES=                           gl xorg
-CLIENT_USE=                                    jpeg GL=gl,glu \
+CLIENT_LIB_DEPENDS=                    libpng.so:graphics/png
+CLIENT_USES=                           gl xorg jpeg
+CLIENT_USE=                                    GL=gl,glu \
                                                        XORG=ice,sm,x11,xext,xcb,xres,xshmfence,xau,xaw,xcomposite,xcursor,xdamage,xdmcp,\
                                                        xfixes,xft,xi,xinerama,xkbfile,xmu,xpm,xrandr,xrender,xscreensaver,xt,xtst,xv,xxf86vm
 CLIENT_CMAKE_ON=                       BUILD_CLIENT REQUIRE_LUAJIT ENABLE_LUAJIT
@@ -107,13 +109,10 @@ DOCS_CMAKE_BOOL=                  BUILD_DOCUMENTATION
 EXAMPLES_CMAKE_BOOL=           BUILD_EXAMPLES
 FREETYPE_LIB_DEPENDS=          libfreetype.so:print/freetype2
 FREETYPE_CMAKE_BOOL=           ENABLE_FREETYPE
-#GLVND_LIB_DEPENDS=                    libOpenGL.so:graphics/libglvnd
-#GLVND_USE=                                    GL+=opengl
-#GLVND_CMAKE_BOOL=                     ENABLE_GLVND
-#GLVND_CMAKE_ON=                               -DOPENGL_GL_PREFERENCE="GLVND" -DOPENGL_xmesa_INCLUDE_DIR="${PREFIX}/lib"
-#LEGACY_USE=                                   GL+=opengl
-#LEGACY_CMAKE_BOOL=                    ENABLE_LEGACY
-#LEGACY_CMAKE_ON=                      -DOPENGL_GL_PREFERENCE="LEGACY" -DOPENGL_xmesa_INCLUDE_DIR="${PREFIX}/lib"
+GLES1_USE=                                     GL+=glesv1
+GLES1_CMAKE_BOOL=                      ENABLE_GLES1
+GLES2_USE=GL+=                         glesv2
+GLES2_CMAKE_BOOL=                      ENABLE_GLES2
 LEVELDB_LIB_DEPENDS=           libleveldb.so:databases/leveldb
 LEVELDB_CMAKE_BOOL=                    ENABLE_LEVELDB
 LTO_CMAKE_BOOL=                                ENABLE_LTO
@@ -122,12 +121,18 @@ NCURSES_CMAKE_BOOL=                       ENABLE_CURSES
 NLS_USES=                                      gettext
 NLS_CMAKE_BOOL=                                ENABLE_GETTEXT
 NLS_LDFLAGS=                           -L${LOCALBASE}/lib
+OPENGL3_USE=                           GL+=gl
+OPENGL3_CMAKE_BOOL=                    ENABLE_OPENGL3
+OPENGL3_CMAKE_ON=                      USE_SDL
+OPENGL_USE=                                    GL+=gl
+OPENGL_CMAKE_BOOL=                     ENABLE_OPENGL
 PGSQL_USES=                                    pgsql
 PGSQL_CMAKE_BOOL=                      ENABLE_POSTGRESQL
 PROFILING_CMAKE_ON=                    USE_GPROF
 PROMETHEUS_CMAKE_BOOL=         ENABLE_PROMETHEUS
 REDIS_LIB_DEPENDS=                     libhiredis.so:databases/hiredis
 REDIS_CMAKE_BOOL=                      ENABLE_REDIS
+#SDL_CMAKE_ON=                         USE_SDL2
 SERVER_CMAKE_BOOL=                     BUILD_SERVER
 SOUND_CMAKE_BOOL=                      ENABLE_SOUND
 SPATIAL_LIB_DEPENDS=           libspatialindex.so:devel/spatialindex
@@ -144,13 +149,19 @@ SYSTEM_LUAJIT_USES=                       luajit:luajit-openresty
 TOUCH_CMAKE_BOOL=                      ENABLE_TOUCH
 UNITTESTS_CMAKE_BOOL=          BUILD_UNITTESTS

+# SDL cannot be used with GLES1 but having it installed causes a fail without enabled in Makefile?
+
 .include 

+.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MOPENGL}
+USES+=                 sdl
+USE_SDL=               sdl2 ttf2
+SDL_CMAKE_ON=  USE_SDL2=ON
+.endif
+
 .if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSOUND}
 USES+=                 openal
-LIB_DEPENDS+=  libogg.so:audio/libogg \
-                               libvorbis.so:audio/libvorbis \
-                               libvorbisfile.so:audio/libvorbis
+LIB_DEPENDS+=  libogg.so:audio/libogg libvorbisfile.so:audio/libvorbis
 .endif

 .if ${PORT_OPTIONS:MSERVER}
diff --git a/distinfo b/distinfo
index f485f6f..d444723 100644
--- a/distinfo
+++ b/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1711406948
-SHA256 (minetest-dev/minetest-a7908da968bba82129f60c9601c9cefabd36a389.tar.gz) = f2431461c2307c5111cabf6c0c360e7d2e516942b7cc407ca9aaeae25843bb92
-SIZE (minetest-dev/minetest-a7908da968bba82129f60c9601c9cefabd36a389.tar.gz) = 10477004
+TIMESTAMP = 1711653177
+SHA256 (minetest-dev/minetest-6a7a613741fe32fa14897a4f780d7382105a103c.tar.gz) = 74a3c9b5038541ce4375d583d1b60ef4bb5e6e2345b8f7a5610b1ed1222020e5
+SIZE (minetest-dev/minetest-6a7a613741fe32fa14897a4f780d7382105a103c.tar.gz) = 11276813

The pkg-plist did not change, which means irrlichtMt is very integrated into the minetest build so that it is not a distinct install any longer.  It might possibly be a bit more time to compile since irrlichtMt is built also, but it will only be one thing to maintain instead of two.  It will be easier for consumers to keep updated since they will only need to look in one place, install one thing not including external dependencies.

Frequently viewed this week