games/minetest: update minetest to 5.8.0

Update prepared in wip by Kevin Bloom

Added buildlink3 for textproc/jsoncpp to avoid used of vendored copy.
Also prevents build error when building on a system that has jsoncpp
installed.

Deprecations and compatibility notes
- Minetest Game is no longer the default game and will no longer be
  shipped by Minetest. If you want it back, install it by using the
  "Content" tab
- C++17 support is now required

Client / Audiovisuals
- Redesign main menu and unify settings interface
- better main menu prompt to install a game when none is installed
- various main menu fixes
- Load package list asynchronously
- Option to invert direction or disable mouse wheel for hotbar item
  selection
- Inventory mouse shortcut improvements
- Holding down Sneak+click while moving the mouse over item slots now
  continously moves items to other inventory (if available)
- Press Sneak+click on the crafting output slot to craft and move
  result to inventory
- While crafting:
  - Left mouse button: Craft as many as possible
  - Mouse wheel: Craft 10 times
  - Right mouse button: Craft once
  - Drag an item stack on the crafting grid to split stacks evenly
  - Hold down Left mouse button while holding an item stack and move
    the cursor over the slots to pick up items of the same type
- Implement check_offset for decorations
- Touchscreen input improvements
- Rendering-related performance improvements and fixes
- Add antialiasing filters
- Reverse eye-offset Z-coordinate in 3rd person front view
- DPI-aware crosshair
- Prevent early respawns caused by up/down button in the death screen
- Sounds and animations are now paused in pause menu in singleplayer
- X11: Add primary selection (copy & paste via select & middleclick)
  support

World / Server / Environment
- Major speedup for crafting shapeless craft recipes
- Fix crash on handling wallmounted nodes with invalid param2
 Fix biomes not repecting their Y limits
- Especially thin biomes will now be generated as intended.
- Saner (HTTP) timeout limits and log messages

Script API / Modding
- Add ability to override item images using ItemMetaData
- Add node pos to node damage HP change reason
- Add vector.in_area() utility function
- Add focused styling to buttons
- Add min/max protocol version to minetest.get_version()
- Add additional texture modifiers
- Add node group disable_descend to disable actively descending down
  climbable nodes and nodes with liquid move physics
- Add VoxelArea::intersect()
- Allow nodes to have their post_effect_color affected by lighting
- Fix potential freeze in core.check_for_falling
- Send everlasting particle spawners to all players
- Allow place_param2 = 0 node placement predictions
- New player physics overrides for climb speed, sneak speed,
  acceleration, liquid fluidity and liquid sink speed
- Allow to set custom third person front view camera offset
- Add script to update/generate mod translations:
  util/mod_translation_updater.py
- Add start_time to sound parameter tables

Misc / Maintenance
- Entity/Object fixes and unittests
- Lua environment cleanups and improvements
- Various documentation improvements
- Inventory code fixes
- Many various code fixes
- Opt-out option for Doxygen generation on build
- Sound code cleanups and improvements
  - Long sounds in sound packs, or sent via dynamic media, no longer
    cause client freezes on load
  - Positional sounds can be faded now
  - Documentation
  - Other improvements listed elsewhere
- Faster client load times (#12764 and irr#233)
This commit is contained in:
gdt 2024-01-02 14:18:07 +00:00
parent e1f76200a6
commit 3c1247a7ec
5 changed files with 105 additions and 1364 deletions

View File

@ -1,11 +1,9 @@
# $NetBSD: Makefile,v 1.31 2023/11/12 13:21:40 wiz Exp $
# $NetBSD: Makefile,v 1.32 2024/01/02 14:18:07 gdt Exp $
PKGNAME= minetest-5.7.0
PKGREVISION= 3
PKGNAME= minetest-5.8.0
CATEGORIES= games
DIST_SUBDIR= minetest-${PKGVERSION_NOREV}
DISTFILES+= minetest.tar.gz
DISTFILES+= minetest-game.tar.gz
# This is a fork by the Minetest developers that was stripped-down and
# customized specifically for use in Minetest.
@ -13,11 +11,9 @@ DISTFILES+= minetest-game.tar.gz
# eventually absorbed into Minetest.
# Repository: https://github.com/minetest/irrlicht
DISTFILES+= irrlicht.tar.gz
IRRLICHT_VERSION= 1.9.0mt10
IRRLICHT_VERSION= 1.9.0mt13
SITES.minetest.tar.gz= \
-https://github.com/minetest/minetest/archive/${PKGVERSION_NOREV}.tar.gz
SITES.minetest-game.tar.gz= \
-https://github.com/minetest/minetest_game/archive/${PKGVERSION_NOREV}.tar.gz
SITES.irrlicht.tar.gz= \
-https://github.com/minetest/irrlicht/archive/${IRRLICHT_VERSION}.tar.gz
@ -44,7 +40,6 @@ CMAKE_ARGS+= -DENABLE_POSTGRESQL=FALSE
CMAKE_ARGS+= -DENABLE_LEVELDB=FALSE
CMAKE_ARGS+= -DENABLE_REDIS=FALSE
CMAKE_ARGS+= -DENABLE_SPATIAL=FALSE
#.include "../../lang/LuaJIT2/platform.mk"
#.if ${PLATFORM_SUPPORTS_LUAJIT} == "no"
#CMAKE_ARGS+= -DENABLE_LUAJIT=FALSE
@ -52,13 +47,10 @@ CMAKE_ARGS+= -DENABLE_SPATIAL=FALSE
# Binaries built with LuaJIT support have been broken since 2015, see:
# https://github.com/minetest/minetest/issues/2988
CMAKE_ARGS+= -DENABLE_LUAJIT=FALSE
# As described above, use Minetest forked version of irrlicht.
#CMAKE_ARGS+= -DIRRLICHT_INCLUDE_DIR=${BUILDLINK_PREFIX.irrlicht}/include/irrlicht
post-extract:
${MV} ${WRKDIR}/minetest_game-${PKGVERSION_NOREV} \
${WRKSRC}/games/minetest_game
${MV} ${WRKDIR}/irrlicht-${IRRLICHT_VERSION} \
${WRKSRC}/lib/irrlichtmt
@ -78,6 +70,7 @@ post-extract:
#.include "../../graphics/irrlicht/buildlink3.mk"
.include "../../graphics/MesaLib/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../textproc/jsoncpp/buildlink3.mk"
#.if ${PLATFORM_SUPPORTS_LUAJIT} != "no"
#.include "../../lang/LuaJIT2/buildlink3.mk"
#.endif

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,11 @@
$NetBSD: distinfo,v 1.10 2023/08/28 07:01:28 nia Exp $
$NetBSD: distinfo,v 1.11 2024/01/02 14:18:07 gdt Exp $
BLAKE2s (minetest-5.7.0/irrlicht.tar.gz) = e68f98b5b1e24e21919eab7fed281cac3a5b935c6b4c93db7cdcd428ddc7f15a
SHA512 (minetest-5.7.0/irrlicht.tar.gz) = 216221b5073d2b234b2d19658b30517c3abb2677c16e3a9b7fd31c15431bd2ffc047a68851c5bebf94aeb178d6b761a80c2f5744a7498cdac1d7b65fed139cc0
Size (minetest-5.7.0/irrlicht.tar.gz) = 898774 bytes
BLAKE2s (minetest-5.7.0/minetest-game.tar.gz) = 43289ce39f1649030122c7a21b73affe46477b9b8f3dc5bb27b5e4cda756526f
SHA512 (minetest-5.7.0/minetest-game.tar.gz) = 7eb2a222d48ef48d728f55710efb0651577e8037fedc6c93dd20e51661ae93bdbcfff1c2ff0e1e29a154f8c35468182058f39017e7fec9c7411698a038fe722f
Size (minetest-5.7.0/minetest-game.tar.gz) = 2592158 bytes
BLAKE2s (minetest-5.7.0/minetest.tar.gz) = b52ea7b8eedb22f70f13a6b309afb526eee297f3dfccef8e0518ccace37cc996
SHA512 (minetest-5.7.0/minetest.tar.gz) = 6a934db5fd2c7c14fcfa87fb306662fa1ccf20a0eee056aea5c4c863986875017a4fa58ddf14319d385ee0400d00fb6a90f68b8f34527c98a746c6410360a529
Size (minetest-5.7.0/minetest.tar.gz) = 10115973 bytes
SHA1 (patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp) = 22099c0803dcdb74055d69bb810e54b9832f2d3e
SHA1 (patch-lib_irrlichtmt_source_Irrlicht_os.cpp) = c7f2c8529874f76029641f0281d7cda0f3797971
BLAKE2s (minetest-5.8.0/irrlicht.tar.gz) = 01ae00e621c1c3911e436dffa76b16d67aa0e2922b7c0aff9f364bfce100b4f6
SHA512 (minetest-5.8.0/irrlicht.tar.gz) = 5226d78eaacf8b56eafbbb6359bfb6137f9d6a555a252224e33d39c0d219fcb7d0d29fd3828961eee37d55940f3aa6e767fea31c96fb772dd5eca3889f5ac16e
Size (minetest-5.8.0/irrlicht.tar.gz) = 754056 bytes
BLAKE2s (minetest-5.8.0/minetest.tar.gz) = 4c4a2bf3ec87c12bfe248289804f76002eef2dc93cce3413436c0d7cf4f2d084
SHA512 (minetest-5.8.0/minetest.tar.gz) = 0b376ecc051032ccb542f2f76e2b1f5c351b32f1c211027825b1538095f44cb1447cd0976cb85a4cde4ecb53873bcb9f3778799271ed65b038a031dc137c2aba
Size (minetest-5.8.0/minetest.tar.gz) = 10419348 bytes
SHA1 (patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp) = b7438ca35758a319fed3f36d01dd699141a63ea7
SHA1 (patch-lib_irrlichtmt_source_Irrlicht_os.cpp) = 48e29772199a173969b86aca83dee1d9fbe41c0b
SHA1 (patch-src_util_string.cpp) = f240efd440fa540c1f767735892b9177089a8f30

View File

@ -1,42 +1,52 @@
$NetBSD: patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp,v 1.1 2023/08/18 10:51:52 pin Exp $
$NetBSD: patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp,v 1.2 2024/01/02 14:18:07 gdt Exp $
Use FreeBSD's support for NetBSD
--- lib/irrlichtmt/source/Irrlicht/CIrrDeviceLinux.cpp.orig 2023-03-05 20:45:09.000000000 +0000
--- lib/irrlichtmt/source/Irrlicht/CIrrDeviceLinux.cpp.orig 2023-10-27 15:48:29.000000000 +0000
+++ lib/irrlichtmt/source/Irrlicht/CIrrDeviceLinux.cpp
@@ -47,7 +47,7 @@
#include <fcntl.h>
#include <unistd.h>
-#ifdef __FreeBSD__
@@ -28,6 +28,7 @@
#include "IFileSystem.h"
#include <X11/XKBlib.h>
#include <X11/Xatom.h>
+#include <unistd.h>
#if defined(_IRR_LINUX_X11_XINPUT2_)
#include <X11/extensions/XInput2.h>
@@ -47,9 +48,8 @@
#if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
#include <fcntl.h>
-#include <unistd.h>
-#ifdef __FreeBSD__
+#if defined(__NetBSD__) || defined(__FreeBSD__)
#include <sys/joystick.h>
#else
@@ -1578,7 +1578,7 @@ bool CIrrDeviceLinux::activateJoysticks(
if (-1 == info.fd)
continue;
-#ifdef __FreeBSD__
#include <sys/joystick.h>
#else
@@ -1690,7 +1690,7 @@ bool CIrrDeviceLinux::activateJoysticks(
if (-1 == info.fd)
continue;
-#ifdef __FreeBSD__
+#if defined(__NetBSD__) || defined(__FreeBSD__)
info.axes=2;
info.buttons=2;
#else
@@ -1602,7 +1602,7 @@ bool CIrrDeviceLinux::activateJoysticks(
returnInfo.Axes = info.axes;
returnInfo.Buttons = info.buttons;
-#ifndef __FreeBSD__
info.axes=2;
info.buttons=2;
#else
@@ -1714,7 +1714,7 @@ bool CIrrDeviceLinux::activateJoysticks(
returnInfo.Axes = info.axes;
returnInfo.Buttons = info.buttons;
-#ifndef __FreeBSD__
+#if !defined(__NetBSD__) && !defined(__FreeBSD__)
char name[80];
ioctl( info.fd, JSIOCGNAME(80), name);
returnInfo.Name = name;
@@ -1637,7 +1637,7 @@ void CIrrDeviceLinux::pollJoysticks()
{
JoystickInfo & info = ActiveJoysticks[j];
-#ifdef __FreeBSD__
char name[80];
ioctl( info.fd, JSIOCGNAME(80), name);
returnInfo.Name = name;
@@ -1749,7 +1749,7 @@ void CIrrDeviceLinux::pollJoysticks()
{
JoystickInfo & info = ActiveJoysticks[j];
-#ifdef __FreeBSD__
+#if defined(__NetBSD__) || defined(__FreeBSD__)
struct joystick js;
if (read(info.fd, &js, sizeof(js)) == sizeof(js))
{
struct joystick js;
if (read(info.fd, &js, sizeof(js)) == sizeof(js))
{

View File

@ -1,18 +1,18 @@
$NetBSD: patch-lib_irrlichtmt_source_Irrlicht_os.cpp,v 1.1 2023/08/18 10:51:52 pin Exp $
$NetBSD: patch-lib_irrlichtmt_source_Irrlicht_os.cpp,v 1.2 2024/01/02 14:18:07 gdt Exp $
Add NetBSD's endian functions
--- lib/irrlichtmt/source/Irrlicht/os.cpp.orig 2023-03-05 20:45:09.000000000 +0000
--- lib/irrlichtmt/source/Irrlicht/os.cpp.orig 2023-10-27 15:48:29.000000000 +0000
+++ lib/irrlichtmt/source/Irrlicht/os.cpp
@@ -33,6 +33,11 @@
#define bswap_16(X) letoh16(X)
#define bswap_32(X) letoh32(X)
#define bswap_64(X) letoh64(X)
+#elif defined(__NetBSD__)
+ #include <endian.h>
+ #define bswap_16(X) htole16(X)
+ #define bswap_32(X) htole32(X)
+ #define bswap_64(X) htole64(X)
#elif !defined(_IRR_SOLARIS_PLATFORM_) && !defined(__PPC__) && !defined(_IRR_WINDOWS_API_)
#include <byteswap.h>
#else
@@ -31,6 +31,11 @@
#define bswap_16(X) letoh16(X)
#define bswap_32(X) letoh32(X)
#define bswap_64(X) letoh64(X)
+#elif defined(__NetBSD__)
+ #include <endian.h>
+ #define bswap_16(X) htole16(X)
+ #define bswap_32(X) htole32(X)
+ #define bswap_64(X) htole64(X)
#elif !defined(_IRR_SOLARIS_PLATFORM_) && !defined(__PPC__) && !defined(_IRR_WINDOWS_API_)
#include <byteswap.h>
#else