diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index facdcae8e266..9e94bb6a4a7d 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -1,7 +1,8 @@ { lib, stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp , libjpeg, libXxf86vm, libGLU, libGL, openal, libvorbis, sqlite, luajit , freetype, gettext, doxygen, ncurses, graphviz, xorg, gmp, libspatialindex -, leveldb, postgresql, hiredis, libiconv, OpenGL, OpenAL ? openal, Carbon, Cocoa +, leveldb, postgresql, hiredis, libiconv, zlib, libXrandr, libX11, ninja, prometheus-cpp +, OpenGL, OpenAL ? openal, Carbon, Cocoa }: with lib; @@ -9,6 +10,21 @@ with lib; let boolToCMake = b: if b then "ON" else "OFF"; + irrlichtMt = stdenv.mkDerivation rec { + pname = "irrlichtMt"; + version = "1.9.0mt4"; + src = fetchFromGitHub { + owner = "minetest"; + repo = "irrlicht"; + rev = version; + sha256 = "sha256-YlXn9LrfGkjdb8+zQGDgrInolUYj9nVSF2AXWFpEEkw="; + }; + nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib libjpeg libpng libGLU libGL libXrandr libX11 libXxf86vm ]; + outputs = [ "out" "dev" ]; + meta = irrlicht.meta; + }; + generic = { version, rev ? version, sha256, dataRev ? version, dataSha256, buildClient ? true, buildServer ? false }: let sources = { src = fetchFromGitHub { @@ -30,29 +46,41 @@ let src = sources.src; cmakeFlags = [ + "-G Ninja" "-DBUILD_CLIENT=${boolToCMake buildClient}" "-DBUILD_SERVER=${boolToCMake buildServer}" - "-DENABLE_FREETYPE=1" "-DENABLE_GETTEXT=1" + "-DENABLE_SPATIAL=1" "-DENABLE_SYSTEM_JSONCPP=1" - "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht" + "-DIRRLICHT_INCLUDE_DIR=${irrlichtMt.dev}/include/irrlicht" + + # Remove when https://github.com/NixOS/nixpkgs/issues/144170 is fixed + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_DATADIR=share" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_MANDIR=share/man" + "-DCMAKE_INSTALL_LOCALEDIR=share/locale" + ] ++ optionals buildClient [ "-DOpenGL_GL_PREFERENCE=GLVND" + ] ++ optionals buildServer [ + "-DENABLE_PROMETHEUS=1" ]; NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 - nativeBuildInputs = [ cmake doxygen graphviz ]; + nativeBuildInputs = [ cmake doxygen graphviz ninja ]; buildInputs = [ - irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses + irrlichtMt luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses gmp libspatialindex ] ++ optionals stdenv.isDarwin [ libiconv OpenGL OpenAL Carbon Cocoa ] ++ optionals buildClient [ libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm ] ++ optionals buildServer [ - leveldb postgresql hiredis + leveldb postgresql hiredis prometheus-cpp ]; postInstall = '' @@ -73,22 +101,13 @@ let }; }; - v4 = { - version = "0.4.17.1"; - sha256 = "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg"; - dataSha256 = "1g8iw2pya32ifljbdx6z6rpcinmzm81i9minhi2bi1d500ailn7s"; - }; - v5 = { - version = "5.4.1"; - sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"; - dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"; + version = "5.5.0"; + sha256 = "sha256-V+ggqvZibSQrJbrtNCEkmRYHhgSKTQsdBh3c8+t6WeA="; + dataSha256 = "sha256-6ZS3EET3nm09eL0czCGadwzon35/EBfAg2KjPX3ZP/0="; }; in { - minetestclient_4 = generic (v4 // { buildClient = true; buildServer = false; }); - minetestserver_4 = generic (v4 // { buildClient = false; buildServer = true; }); - minetestclient_5 = generic (v5 // { buildClient = true; buildServer = false; }); minetestserver_5 = generic (v5 // { buildClient = false; buildServer = true; }); } diff --git a/pkgs/games/minetest/disable_fixup.patch b/pkgs/games/minetest/disable_fixup.patch deleted file mode 100644 index 1c378d7f83fc..000000000000 --- a/pkgs/games/minetest/disable_fixup.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -802,7 +802,6 @@ - install(CODE " - set(BU_CHMOD_BUNDLE_ITEMS ON) - include(BundleUtilities) -- fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/${BUNDLE_PATH}\" \"\" \"\${CMAKE_INSTALL_PREFIX}/${BINDIR}\") - " COMPONENT Runtime) - endif() - diff --git a/pkgs/games/minetest/fix_wordsize_confusion.patch b/pkgs/games/minetest/fix_wordsize_confusion.patch deleted file mode 100644 index 9540a434dafe..000000000000 --- a/pkgs/games/minetest/fix_wordsize_confusion.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -17,6 +17,7 @@ - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -+#include - #include "irrlicht.h" // createDevice - #include "irrlichttypes_extrabloated.h" - #include "chat_interface.h" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 637462d344f8..899fe38223be 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30969,10 +30969,11 @@ with pkgs; inherit (darwin) libiconv; inherit (darwin.apple_sdk.frameworks) OpenGL OpenAL Carbon Cocoa; }) - minetestclient_4 minetestserver_4 minetestclient_5 minetestserver_5; - minetest = minetestclient_5; + minetest = minetestclient; + minetestclient = minetestclient_5; + minetestserver = minetestserver_5; mnemosyne = callPackage ../games/mnemosyne { python = python3;