diff --git a/games-action/minetest/Manifest b/games-action/minetest/Manifest new file mode 100644 index 00000000..79493c59 --- /dev/null +++ b/games-action/minetest/Manifest @@ -0,0 +1 @@ +DIST minetest-0.4.12.tar.gz 8184578 SHA256 8d4e77310ceef4d804df8b2b0f40e822954fd5c7c2199921b54b7f20e2f7d8f9 SHA512 ad16836f09f7010c812e49f7ca4f2a1ddc9dd39de07a83e26680d686bbd2d615f74c8e4e2b6d9ddb900a5188fcb1eac4148b06f489aa96360981bf895d1e7235 WHIRLPOOL a497273d1d970fb7267a01919d24d5c16e8bdc90da5f52b4b005bdf646757f53c435397f4b0c121679cedf61c8755d980ff9cf62eb762ccb7859ab7792b7b3e1 diff --git a/games-action/minetest/files/minetest-0.4.10-as-needed.patch b/games-action/minetest/files/minetest-0.4.10-as-needed.patch new file mode 100644 index 00000000..83d1ca7b --- /dev/null +++ b/games-action/minetest/files/minetest-0.4.10-as-needed.patch @@ -0,0 +1,35 @@ +commit a88bfd5b77fa0b5c60e438c0011dbdcee5e14dfd +Author: hasufell +Date: Mon Nov 25 00:28:55 2013 +0100 + + CMAKE: fix linking order + + this also fixes linking with as-needed wrt + https://github.com/minetest/minetest/issues/617 + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index a1fee7a..a72bd4a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -427,18 +427,18 @@ if(BUILD_CLIENT) + set(minetest_LIBS + ${PROJECT_NAME} + ${ZLIB_LIBRARIES} +- ${IRRLICHT_LIBRARY} ++ ${X11_LIBRARIES} + ${OPENGL_LIBRARIES} ++ ${OPENGLES2_LIBRARIES} + ${JPEG_LIBRARIES} + ${BZIP2_LIBRARIES} + ${PNG_LIBRARIES} +- ${X11_LIBRARIES} ++ ${IRRLICHT_LIBRARY} + ${GETTEXT_LIBRARY} + ${SOUND_LIBRARIES} + ${SQLITE3_LIBRARY} + ${LUA_LIBRARY} + ${JSON_LIBRARY} +- ${OPENGLES2_LIBRARIES} + ${PLATFORM_LIBS} + ${CLIENT_PLATFORM_LIBS} + ) diff --git a/games-action/minetest/files/minetest-0.4.10-shared-irrlicht.patch b/games-action/minetest/files/minetest-0.4.10-shared-irrlicht.patch new file mode 100644 index 00000000..b552c093 --- /dev/null +++ b/games-action/minetest/files/minetest-0.4.10-shared-irrlicht.patch @@ -0,0 +1,23 @@ +commit 11d35e62fe13b47c5b34139559e650dfe6ebbd84 +Author: hasufell +Date: Sat Jun 8 13:40:30 2013 +0200 + + CMAKE: use shared lib from Irrlicht + +diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake +index bd00422..4632993 100644 +--- a/cmake/Modules/FindIrrlicht.cmake ++++ b/cmake/Modules/FindIrrlicht.cmake +@@ -50,10 +50,11 @@ else() + /usr/include/irrlicht + ) + +- FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.a Irrlicht ++ FIND_LIBRARY(IRRLICHT_LIBRARY NAMES libIrrlicht.so Irrlicht + PATHS + /usr/local/lib + /usr/lib ++ /usr/lib64 + ) + endif() + diff --git a/games-action/minetest/files/minetest-json.patch b/games-action/minetest/files/minetest-json.patch new file mode 100644 index 00000000..d3964bcb --- /dev/null +++ b/games-action/minetest/files/minetest-json.patch @@ -0,0 +1,69 @@ +--- cmake/Modules/FindJson.cmake ++++ cmake/Modules/FindJson.cmake +@@ -1,18 +1,18 @@ + # Look for json, use our own if not found + +-#FIND_PATH(JSON_INCLUDE_DIR json.h) ++FIND_PATH(JSON_INCLUDE_DIR json.h PATHS /usr/include/jsoncpp/json) + +-#FIND_LIBRARY(JSON_LIBRARY NAMES json) ++FIND_LIBRARY(JSON_LIBRARY NAMES jsoncpp json) + +-#IF(JSON_LIBRARY AND JSON_INCLUDE_DIR) +-# SET( JSON_FOUND TRUE ) +-#ENDIF(JSON_LIBRARY AND JSON_INCLUDE_DIR) ++IF(JSON_LIBRARY AND JSON_INCLUDE_DIR) ++ SET( JSON_FOUND TRUE ) ++ENDIF(JSON_LIBRARY AND JSON_INCLUDE_DIR) + +-#IF(JSON_FOUND) +-# MESSAGE(STATUS "Found system json header file in ${JSON_INCLUDE_DIR}") +-# MESSAGE(STATUS "Found system json library ${JSON_LIBRARY}") +-#ELSE(JSON_FOUND) ++IF(JSON_FOUND) ++ MESSAGE(STATUS "Found system json header file in ${JSON_INCLUDE_DIR}") ++ MESSAGE(STATUS "Found system json library ${JSON_LIBRARY}") ++ELSE(JSON_FOUND) + SET(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/json) + SET(JSON_LIBRARY json) + MESSAGE(STATUS "Using project json library") +-#ENDIF(JSON_FOUND) ++ENDIF(JSON_FOUND) +--- src/serverlist.cpp ++++ src/serverlist.cpp +@@ -27,7 +27,15 @@ + #include "filesys.h" + #include "porting.h" + #include "log.h" +-#include "json/json.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #if USE_CURL + #include + #endif +--- src/serverlist.h ++++ src/serverlist.h +@@ -19,7 +19,15 @@ + + #include + #include "config.h" +-#include "json/json.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #ifndef SERVERLIST_HEADER + #define SERVERLIST_HEADER diff --git a/games-action/minetest/files/minetestserver.confd b/games-action/minetest/files/minetestserver.confd new file mode 100644 index 00000000..ec3d0138 --- /dev/null +++ b/games-action/minetest/files/minetestserver.confd @@ -0,0 +1,16 @@ +# /etc/conf.d/minetest-server: config file for /etc/init.d/minetest-server + +# user +USER="minetest" + +# group +GROUP="@GROUP@" + +# pidfile +PIDFILE="/var/run/minetest.pid" + +# executable +MINETESTBIN="@BINDIR@/minetestserver" + +# additional arguments for the server +ARGS="--logfile /var/lib/minetest/minetest-server.log" diff --git a/games-action/minetest/files/minetestserver.initd b/games-action/minetest/files/minetestserver.initd new file mode 100644 index 00000000..e0a33d96 --- /dev/null +++ b/games-action/minetest/files/minetestserver.initd @@ -0,0 +1,36 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +description="Minetest dedicated server" + +depend() { + need net +} + +start() { + ebegin "starting server" + start-stop-daemon \ + --start \ + --quiet \ + --make-pidfile \ + --pidfile "${PIDFILE}" \ + --background \ + --user ${USER} \ + --group ${GROUP} \ + --exec "${MINETESTBIN}" -- ${ARGS} + + eend $? +} + +stop() { + ebegin "stopping server" + start-stop-daemon \ + --stop \ + --signal 15 \ + --quiet \ + --pidfile "${PIDFILE}" + + eend $? +} diff --git a/games-action/minetest/minetest-0.4.12-r1.ebuild b/games-action/minetest/minetest-0.4.12-r1.ebuild new file mode 100644 index 00000000..abf9e112 --- /dev/null +++ b/games-action/minetest/minetest-0.4.12-r1.ebuild @@ -0,0 +1,151 @@ +# Copyright 2014 Julian Ospald +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 +inherit eutils cmake-utils gnome2-utils vcs-snapshot user + +DESCRIPTION="An InfiniMiner/Minecraft inspired game" +HOMEPAGE="http://minetest.net/" +SRC_URI="http://github.com/minetest/minetest/tarball/${PV} -> ${P}.tar.gz" + +LICENSE="LGPL-2.1+ CC-BY-SA-3.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+curl dedicated doc leveldb luajit nls redis +server +sound +truetype" + +RDEPEND="dev-db/sqlite:3 + sys-libs/zlib + curl? ( net-misc/curl ) + !dedicated? ( + app-arch/bzip2 + >=dev-games/irrlicht-1.8-r2 + media-libs/libpng:0 + virtual/jpeg + virtual/opengl + x11-libs/libX11 + x11-libs/libXxf86vm + sound? ( + media-libs/libogg + media-libs/libvorbis + media-libs/openal + ) + truetype? ( media-libs/freetype:2 ) + ) + leveldb? ( dev-libs/leveldb ) + luajit? ( dev-lang/luajit:2 ) + nls? ( virtual/libintl ) + redis? ( dev-libs/hiredis )" +DEPEND="${RDEPEND} + >=dev-games/irrlicht-1.8-r2 + doc? ( app-doc/doxygen media-gfx/graphviz ) + nls? ( sys-devel/gettext )" + +pkg_setup() { + if use server || use dedicated ; then + enewgroup ${PN} + enewuser ${PN} -1 -1 /var/lib/${PN} ${PN} + fi +} + +src_unpack() { + vcs-snapshot_src_unpack +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-0.4.10-shared-irrlicht.patch \ + "${FILESDIR}"/${PN}-0.4.10-as-needed.patch + + # correct gettext behavior + if [[ -n "${LINGUAS+x}" ]] ; then + for i in $(cd po ; echo *) ; do + if ! has ${i} ${LINGUAS} ; then + rm -r po/${i} || die + fi + done + fi + + # jthread is modified + # json is modified + + # set paths + sed \ + -e "s#@BINDIR@#/usr/bin#g" \ + -e "s#@GROUP@#${PN}#g" \ + "${FILESDIR}"/minetestserver.confd > "${T}"/minetestserver.confd || die +} + +src_configure() { + local mycmakeargs=( + $(usex dedicated "-DBUILD_SERVER=ON -DBUILD_CLIENT=OFF" "$(cmake-utils_use_build server SERVER) -DBUILD_CLIENT=ON") + -DCUSTOM_BINDIR="/usr/bin" + -DCUSTOM_DOCDIR="/usr/share/doc/${PF}" + -DCUSTOM_LOCALEDIR="/usr/share/locale" + -DCUSTOM_SHAREDIR="/usr/share/${PN}" + $(cmake-utils_use_enable curl CURL) + $(cmake-utils_use_enable truetype FREETYPE) + $(cmake-utils_use_enable nls GETTEXT) + -DENABLE_GLES=0 + $(cmake-utils_use_enable leveldb LEVELDB) + $(cmake-utils_use_enable redis REDIS) + $(cmake-utils_use_enable sound SOUND) + $(cmake-utils_use !luajit DISABLE_LUAJIT) + -DRUN_IN_PLACE=0 + $(use dedicated && { + echo "-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source" + echo "-DIRRLICHT_INCLUDE_DIR=/usr/include/irrlicht" + }) + ) + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile + + if use doc ; then + emake -C "${CMAKE_BUILD_DIR}" doc + fi +} + +src_install() { + cmake-utils_src_install + + if use server || use dedicated ; then + newinitd "${FILESDIR}"/minetestserver.initd minetest-server + newconfd "${T}"/minetestserver.confd minetest-server + fi + + if use doc ; then + cd "${CMAKE_BUILD_DIR}"/doc || die + dodoc -r html + fi +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update + + if ! use dedicated ; then + elog + elog "optional dependencies:" + elog " games-action/minetest_game (official mod)" + elog + fi + + if use server || use dedicated ; then + elog + elog "Configure your server via /etc/conf.d/minetest-server" + elog "The user \"minetest\" is created with /var/lib/${PN} homedir." + elog "Default logfile is ~/minetest-server.log" + elog + fi +} + +pkg_postrm() { + gnome2_icon_cache_update +} diff --git a/games-action/minetest_game/Manifest b/games-action/minetest_game/Manifest new file mode 100644 index 00000000..956b1124 --- /dev/null +++ b/games-action/minetest_game/Manifest @@ -0,0 +1 @@ +DIST minetest_game-0.4.12.tar.gz 911942 SHA256 42c36cbb6969835b09b363ba82c4dd04dc6f8646b70a58c2d6eca1342d9ebcb4 SHA512 a585838ddda314f819f59f809463dc0c6300825d24eef54b899a8b8c08914f947e534073773be4b17497d8c6033705bcb0aa50c077a9d142cf6a2d2f6d1542fc WHIRLPOOL 3c07613569dba3dbbabdf61b70bb978380b1cf02bcc97975dd818ecd77cd128587c91932d5ec5d7225e4af00afde30b401d98e54f5c62bbd19ca75dbd5f81225 diff --git a/games-action/minetest_game/minetest_game-0.4.12-r1.ebuild b/games-action/minetest_game/minetest_game-0.4.12-r1.ebuild new file mode 100644 index 00000000..3c42936f --- /dev/null +++ b/games-action/minetest_game/minetest_game-0.4.12-r1.ebuild @@ -0,0 +1,25 @@ +# Copyright 2014 Julian Ospald +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 +inherit vcs-snapshot + +DESCRIPTION="The main game for the Minetest game engine" +HOMEPAGE="http://github.com/minetest/minetest_game" +SRC_URI="http://github.com/minetest/minetest_game/tarball/${PV} -> ${P}.tar.gz" + +LICENSE="GPL-2 CC-BY-SA-3.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=games-action/minetest-${PV}" + +src_install() { + insinto /usr/share/minetest/games/${PN} + doins -r mods menu + doins game.conf minetest.conf + + dodoc README.txt game_api.txt +}