diff --git a/games-action/minetest/additional-files/minetest.rdef.in b/games-action/minetest/additional-files/minetest.rdef.in new file mode 100644 index 000000000..00866ba2d --- /dev/null +++ b/games-action/minetest/additional-files/minetest.rdef.in @@ -0,0 +1,66 @@ +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "MineTest", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon array { + $"6E6369661403E9B96E03573A0D032E34360355575303FCE94F036258020373D2" + $"1603325B0903729FCF0319314B012E34363F04003F03C17D11038F5902034E9A" + $"060331600403EF292903888A8505000400801C0A06B4D7BEB0B4D7C50E4360CB" + $"2CC4EBCB2CBED346300A06B4D7BEB0B4D7C50E4360CB2CC4EBCB2CBED346300A" + $"0AB782C36BB674C2CEB674C5FEBC3358BC33C83EBB4754BB47C6A632C60432C3" + $"E4B782C25A0A0AB782C36BB674C2CEB674C5FEBC3358BC33C83EBB4754BB47C6" + $"A632C60432C3E4B782C25A0A07B6AE50B885C50EBA5C50BB3AC6A0BB3AC7B1BC" + $"4CC84EBC4CC95E0A07B6AE50B885C50EBA5C50BB3AC6A0BB3AC7B1BC4CC84EBC" + $"4CC95E0A09C0CDBD184ABEC94ABFD9C73BC1DEC914C0D0CB2CBF9ACB2CC0F3CB" + $"2CBED3C47A340A09C0CDBD184ABEC94ABFD9C73BC1DEC914C0D0CB2CBF9ACB2C" + $"C0F3CB2CBED3C47A340A04C031BCBEC4CCBA15C4CCBB26C031BDCE0A04C031BC" + $"BEC4CCBA15C4CCBB26C031BDCE0A064530B4D7BEB0BC4CC2FE4ABEC9C031BCBE" + $"4B320A06462FB4D7BEB0BC4CC2FE4ABEC9C031BCBEC4CCBA150A0ABC4CC40DBC" + $"4CC51EBD1EC598BD1EC6A64356C664C490C664C36EC772C2D0C772C1FF4ABFD9" + $"0A0ABC4CC40DBC4CC51EBD1EC598BD1EC6A64356C664C490C664C36EC772C2D0" + $"C772C1FF4ABFD90A04BA5CBD9EBE0A40BA5CC1DEB6AE400A04BA5CBD9EBE0A40" + $"BA5CC1DEB6AE400A06B96FBF36BA5C40BB47BF36BB47BC06BA5CBB80B96FBC06" + $"0A06B96FBF36BA5C40BB47BF36BB47BC06BA5CBB80B96FBC060A06B67435BA5C" + $"BD9EBDE4BB95BDE4B728BA5CB520B674B7610A06B67435BA5CBD9EBDE4BB95BD" + $"E4B728BA5CB520B674B7610A04C73DBD9ECA00BF36C73DC0D0C47ABF360A06C6" + $"64BF40C73D40C7FBBF51C7FBBADDC73DBA6EC664BB010A06C664BF40C73D40C7" + $"FBBF51C7FBBADDC73DBA6EC664BB010802B96F4C2FC4420A08CB2CC133C90AC2" + $"6DC90AC2F4C7FCC391C7FCC4A152C53E52C75FCB2CC4EB0A08CB2CC133C90AC2" + $"6DC90AC2F4C7FCC391C7FCC4A152C53E52C75FCB2CC4EB06136A9A6A9B29243D" + $"2D3928352A32243C2A32462D4E314D345035325331C69131C810315632385E3C" + $"4E4361244E0A06435C475E5D4D5F4A5F40593C1C0A13011B000A12011A123FAD" + $"6B0000000000003FD0BCBF5AD6BFA17901178422040A000100023FAD6B000000" + $"0000003FD0BCBF5AD6BFA1790A010101123FAD6B0000000000003FD0BCBF5AD6" + $"BFA17901178110040A020102023FAD6B0000000000003FD0BCBF5AD6BFA1790A" + $"020103123FAD6B0000000000003FD0BCBF5AD6BFA17901178120040A03010402" + $"3FAD6B0000000000003FD0BCBF5AD6BFA1790A020105123FAD6B000000000000" + $"3FD0BCBF5AD6BFA17901178100040A040106023FAD6B0000000000003FD0BCBF" + $"5AD6BFA1790A050107123FAD6B0000000000003FD0BCBF5AD6BFA17901178122" + $"040A000108023FAD6B0000000000003FD0BCBF5AD6BFA1790A010109123FAD6B" + $"0000000000003FD0BCBF5AD6BFA17901178122040A06010A023FAD6B00000000" + $"00003FD0BCBF5AD6BFA1790A07010B123FAD6B0000000000003FD0BCBF5AD6BF" + $"A17901178112040A08010C023FAD6B0000000000003FD0BCBF5AD6BFA1790A09" + $"010D123FAD6B0000000000003FD0BCBF5AD6BFA17901178120040A0A010E023F" + $"AD6B0000000000003FD0BCBF5AD6BFA1790A0B010F123FAD6B0000000000003F" + $"D0BCBF5AD6BFA17901178120040A0C0110023FAD6B0000000000003FD0BCBF5A" + $"D6BFA1790A0D0111123FAD6B0000000000003FD0BCBF5AD6BFA1790117812004" + $"0A0E0112023FAD6B0000000000003FD0BCBF5AD6BFA1790A0F0113123FAD6B00" + $"00000000003FD0BCBF5AD6BFA17901178120040A0A0114023FAD6B0000000000" + $"003FD0BCBF5AD6BFA1790A0E0115023FAD6B0000000000003FD0BCBF5AD6BFA1" + $"790A0F0116123FAD6B0000000000003FD0BCBF5AD6BFA17901178120040A1001" + $"17123FAD6B0000000000003FD0BCBF5AD6BFA17901178000040A110118023FAD" + $"6B0000000000003FD0BCBF5AD6BFA1790A020119123FAD6B0000000000003FD0" + $"BCBF5AD6BFA1790117812004" +}; diff --git a/games-action/minetest/minetest-0.4.17.1.recipe b/games-action/minetest/minetest-0.4.17.1.recipe new file mode 100644 index 000000000..d51bbe966 --- /dev/null +++ b/games-action/minetest/minetest-0.4.17.1.recipe @@ -0,0 +1,130 @@ +SUMMARY="An InfiniMiner/Minecraft inspired game" +DESCRIPTION="Minetest, an open source infinite-world block sandbox game engine with support for survival and crafting." +HOMEPAGE="https://www.minetest.net/" +COPYRIGHT="2018 The Minetest Team" +LICENSE="GNU LGPL v2.1 + Apache v2" +REVISION="1" +SOURCE_URI="https://github.com/minetest/minetest/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="cd25d40c53f492325edabd2f6397250f40a61cb9fe4a1d4dd6eb030e0d1ceb59" +SOURCE_FILENAME="minetest-$portVersion.tar.gz" +SOURCE_DIR="minetest-$portVersion" +gameVersion="0.4.17" +SOURCE_URI_2="https://github.com/minetest/minetest_game/archive/$gameVersion.tar.gz" +CHECKSUM_SHA256_2="f0ab07cb47c1540b2016bf76a36e2eec28b0ea7827bf66fc5447e0c5e5d4495d" +SOURCE_FILENAME_2="minetest_game-$portVersion.tar.gz" +SOURCE_DIR_2="minetest_game-$gameVersion" +PATCHES="minetest-$portVersion.patchset" +ADDITIONAL_FILES="minetest.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + minetest$secondaryArchSuffix = $portVersion + app:Minetest$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libgmp$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libIrrlicht$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libjsoncpp$secondaryArchSuffix + lib:libluajit_5.1$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libbz2$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libgmp$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libIrrlicht$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libjsoncpp$secondaryArchSuffix + devel:libluajit_5.1$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + cmd:pkg_config + " + +BUILD() +{ + rm -rf $sourceDir/games/minetest_game + cp -rf $sourceDir2 $sourceDir/games/minetest_game + + cmake . \ + -DCMAKE_BUILD_TYPE=Release \ + -DCUSTOM_BINDIR="$appsDir/Minetest" \ + -DCUSTOM_DOCDIR="$docDir" \ + -DCUSTOM_MANDIR="$docDir" \ + -DCUSTOM_EXAMPLE_CONF_DIR="$docDir" \ + -DCUSTOM_LOCALEDIR="$appsDir/Minetest/locale" \ + -DCUSTOM_SHAREDIR="$appsDir/Minetest" \ + -DRUN_IN_PLACE=OFF \ + -DBUILD_CLIENT=ON \ + -DENABLE_CURL=ON \ + -DENABLE_CURSES=ON \ + -DENABLE_FREETYPE=ON \ + -DENABLE_GETTEXT=ON \ + -DENABLE_GLES=OFF \ + -DENABLE_LEVELDB=OFF \ + -DENABLE_LUAJIT=ON \ + -DENABLE_POSTGRESQL=OFF \ + -DENABLE_REDIS=OFF \ + -DENABLE_SPATIAL=OFF \ + -DENABLE_SOUND=ON \ + -DENABLE_SYSTEM_JSONCPP=ON + + make $jobArgs +} + +INSTALL() +{ + make install + mv $appsDir/Minetest/minetest $appsDir/Minetest/Minetest + + local APP_SIGNATURE="application/x-vnd.minetest" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/minetest.rdef.in > $sourceDir/minetest.rdef + + addResourcesToBinaries $sourceDir/minetest.rdef \ + "$appsDir/Minetest/Minetest" + addAppDeskbarSymlink "$appsDir/Minetest/Minetest" +} diff --git a/games-action/minetest/patches/minetest-0.4.17.1.patchset b/games-action/minetest/patches/minetest-0.4.17.1.patchset new file mode 100644 index 000000000..580874f3f --- /dev/null +++ b/games-action/minetest/patches/minetest-0.4.17.1.patchset @@ -0,0 +1,190 @@ +From 680087f6e70369dca3c4a3bbaf19109d83d5fa62 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 14 Sep 2018 21:41:28 +1000 +Subject: Fix build for Haiku + + +diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake +index 8dda157..b1cfeea 100644 +--- a/cmake/Modules/FindIrrlicht.cmake ++++ b/cmake/Modules/FindIrrlicht.cmake +@@ -42,12 +42,16 @@ else() + PATHS + /usr/local/include/irrlicht + /usr/include/irrlicht ++ /system/develop/headers/x86/irrlicht ++ /system/develop/headers/irrlicht + ) + + find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht + PATHS + /usr/local/lib + /usr/lib ++ /system/develop/lib/x86 ++ /system/develop/lib + ) + endif() + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6663b3c..05b2e5b 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -254,6 +254,12 @@ if(NOT MSVC) + set(USE_GPROF FALSE CACHE BOOL "Use -pg flag for g++") + endif() + ++# Haiku endian support ++if(HAIKU) ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_BSD_SOURCE") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_BSD_SOURCE") ++endif() ++ + # Use cmake_config.h + add_definitions(-DUSE_CMAKE_CONFIG_H) + +@@ -297,7 +303,9 @@ if(WIN32) + else() + # Unix probably + if(BUILD_CLIENT) +- find_package(X11 REQUIRED) ++ if (NOT HAIKU) ++ find_package(X11 REQUIRED) ++ endif() + find_package(OpenGL REQUIRED) + find_package(JPEG REQUIRED) + find_package(BZip2 REQUIRED) +@@ -315,7 +323,11 @@ else() + endif(APPLE) + endif(BUILD_CLIENT) + find_package(ZLIB REQUIRED) +- set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS}) ++ if(HAIKU) ++ set(PLATFORM_LIBS ${PLATFORM_LIBS} -lintl -lnetwork) ++ else() ++ set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS}) ++ endif(HAIKU) + if(APPLE) + set(PLATFORM_LIBS "-framework CoreFoundation" ${PLATFORM_LIBS}) + else() +@@ -325,12 +337,12 @@ else() + endif(HAVE_LIBRT) + endif(APPLE) + +- if(NOT APPLE) ++ if(NOT APPLE AND NOT HAIKU) + # This way Xxf86vm is found on OpenBSD too + find_library(XXF86VM_LIBRARY Xxf86vm) + mark_as_advanced(XXF86VM_LIBRARY) + set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) +- endif(NOT APPLE) ++ endif(NOT APPLE AND NOT HAIKU) + + # Prefer local iconv if installed + find_library(ICONV_LIBRARY iconv) +diff --git a/src/porting.cpp b/src/porting.cpp +index 0a9de2a..bfa7ecb 100644 +--- a/src/porting.cpp ++++ b/src/porting.cpp +@@ -43,7 +43,7 @@ with this program; if not, write to the Free Software Foundation, Inc., + #include + #endif + #if !defined(_WIN32) && !defined(__APPLE__) && \ +- !defined(__ANDROID__) && !defined(SERVER) ++ !defined(__ANDROID__) && !defined(SERVER) && !defined(__HAIKU__) + #define XORG_USED + #endif + #ifdef XORG_USED +@@ -238,7 +238,10 @@ bool getCurrentWorkingDir(char *buf, size_t len) + + bool getExecPathFromProcfs(char *buf, size_t buflen) + { +-#ifndef _WIN32 ++#if defined(__HAIKU__) ++ sprintf(buf, "/boot/system/apps/Minetest/Minetest"); ++ return true; ++#elif defined(_WIN32) + buflen--; + + ssize_t len; +-- +2.19.0 + + +From 2c6a5e5a93abf41392be44a0ad8fa9dfd6bba268 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 14 Sep 2018 23:06:52 +1000 +Subject: Disable install man + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 95f1f28..39521c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -177,7 +177,7 @@ 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}") + +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + 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}") +-- +2.19.0 + + +From 2e975d60e6b08c11d24728ff9c1dfdfff9725cfb Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 14 Sep 2018 23:29:14 +1000 +Subject: Default settings for Haiku + + +diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp +index 181a12b..116a4cd 100644 +--- a/src/defaultsettings.cpp ++++ b/src/defaultsettings.cpp +@@ -361,6 +361,11 @@ void set_default_settings(Settings *settings) + settings->setDefault("high_precision_fpu", "true"); + settings->setDefault("enable_console", "false"); + ++#ifdef __HAIKU__ ++ settings->setDefault("enable_shaders", "false"); ++ settings->setDefault("video_driver", "burningsvideo"); ++#endif ++ + #ifdef __ANDROID__ + settings->setDefault("screenW", "0"); + settings->setDefault("screenH", "0"); +-- +2.19.0 + + +From 568546787f697349f3d91892d10de1c4b29b7b99 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 14 Sep 2018 23:29:43 +1000 +Subject: Path for settings + + +diff --git a/src/porting.cpp b/src/porting.cpp +index bfa7ecb..ce4bb7e 100644 +--- a/src/porting.cpp ++++ b/src/porting.cpp +@@ -471,6 +471,15 @@ bool setSystemPaths() + return true; + } + ++//// Haiku ++#elif defined(__HAIKU__) ++ ++bool setSystemPaths() ++{ ++ path_share = STATIC_SHAREDIR; ++ path_user = std::string(getenv("HOME")) + "/config/settings/" + lowercase(PROJECT_NAME); ++ return true; ++} + + #else + +-- +2.19.0 +