summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games-action/openclonk/Manifest1
-rw-r--r--games-action/openclonk/files/openclonk-7.0-paths.patch68
-rw-r--r--games-action/openclonk/files/openclonk-7.0-postinst.patch14
-rw-r--r--games-action/openclonk/openclonk-7.0.ebuild114
4 files changed, 197 insertions, 0 deletions
diff --git a/games-action/openclonk/Manifest b/games-action/openclonk/Manifest
index 18d7ff8b66b2..12525dde0832 100644
--- a/games-action/openclonk/Manifest
+++ b/games-action/openclonk/Manifest
@@ -1 +1,2 @@
DIST openclonk-6.1-src.tar.bz2 68861317 SHA256 5c3903f82c9d7e8c466ab1ff594d553911a6e5fa0be2a326684d823ef1c24905 SHA512 2705a34e797e8352c2f480c57f1c8131a4e2c71bec3ac353d1cdbca6976e7b9e4722ed171b67c03f958eecedbe43b2751be843d7fcc460c2ee65fd035bc6bb4a WHIRLPOOL 3cb05e758c91ec963f198dbe2fbdb117641628ccd139ad787e55a1b57a93719e2d4b655758cbcbf8f42a5391b09282488133febd7f9400e51587291f72126136
+DIST openclonk-7.0-src.tar.bz2 102143348 SHA256 bc1a231d72774a7aa8819e54e1f79be27a21b579fb057609398f2aa5700b0732 SHA512 b7ea557b5441986c0527abcb9c074c462f73bf45dd7ac4835329169d63ace5cc02e122d0dee7241da8621a7727ce9b09a2ad17e06dfc5610fcb529d350a51577 WHIRLPOOL 62619fa9b9071cdeff4b37dea703e822580a029d1a9193477117fc7426f47a999e4a1827775c5a215e1f7e7d786467fb9f4c6bea81e4ad9740f32df989d533b0
diff --git a/games-action/openclonk/files/openclonk-7.0-paths.patch b/games-action/openclonk/files/openclonk-7.0-paths.patch
new file mode 100644
index 000000000000..4ebd6034a59b
--- /dev/null
+++ b/games-action/openclonk/files/openclonk-7.0-paths.patch
@@ -0,0 +1,68 @@
+Updated for openclonk-6.0, based on this patch:
+ From: Julian Ospald <hasufell@gentoo.org>
+ Date: Thu Feb 6 19:58:45 UTC 2014
+ Subject: make paths modifiable
+
+--- openclonk-release-6.0-src.orig/CMakeLists.txt
++++ openclonk-release-6.0-src/CMakeLists.txt
+@@ -42,6 +42,16 @@
+ set(${_var} "${_string}" PARENT_SCOPE)
+ endfunction()
+
++
++############################################################################
++# User selectable paths
++############################################################################
++set(INSTALL_BINDIR "bin/" CACHE PATH "Binary install destination")
++set(INSTALL_GAMES_BINDIR "games/bin" CACHE PATH "Games binary install destination")
++set(INSTALL_DATAROOTDIR "share/" CACHE PATH "Data root install destination")
++set(INSTALL_DATADIR "${INSTALL_DATAROOTDIR}" CACHE PATH "Data install destination")
++
++
+ ############################################################################
+ # User selectable options
+ ############################################################################
+@@ -1212,10 +1222,16 @@
+ # Assemble compiler flags
+ ############################################################################
+ if(UNIX)
++ if(NOT IS_ABSOLUTE "${INSTALL_DATADIR}")
++ set(ABSOLUTE_INSTALL_DATADIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_DATADIR}")
++ else()
++ set(ABSOLUTE_INSTALL_DATADIR "${INSTALL_DATADIR}")
++ endif()
++
+ # Don't put this into CMAKE_CXX_FLAGS because otherwise it is cached,
+ # and when the path is changed both the old and new definition appears
+ # in the list of flags.
+- add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/games/openclonk\"")
++ add_definitions("-DOC_SYSTEM_DATA_DIR=\"${ABSOLUTE_INSTALL_DATADIR}/openclonk\"")
+ endif()
+ if(OC_CXX_FLAGS)
+ list(REMOVE_DUPLICATES OC_CXX_FLAGS)
+@@ -1537,7 +1553,7 @@
+ DEPENDS "${native_c4group}"
+ VERBATIM
+ )
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION "${INSTALL_DATADIR}/openclonk")
+ endif()
+ endforeach()
+
+@@ -1546,13 +1562,13 @@
+ add_dependencies(data groups)
+
+ # Install new files
+- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.desktop DESTINATION share/applications)
++ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.desktop DESTINATION "${INSTALL_DATAROOTDIR}/applications")
+ # Update the MIME cache -- this makes the clonk:// protocol handler actually work
+ install(CODE "execute_process(COMMAND update-desktop-database)")
+
+ # Install binaries
+- install(TARGETS openclonk DESTINATION games)
+- install(TARGETS c4group DESTINATION bin)
++ install(TARGETS openclonk DESTINATION "${INSTALL_GAMES_BINDIR}")
++ install(TARGETS c4group DESTINATION "${INSTALL_BINDIR}")
+ else()
+ install(TARGETS openclonk
+ BUNDLE DESTINATION .
diff --git a/games-action/openclonk/files/openclonk-7.0-postinst.patch b/games-action/openclonk/files/openclonk-7.0-postinst.patch
new file mode 100644
index 000000000000..26ad61ec6784
--- /dev/null
+++ b/games-action/openclonk/files/openclonk-7.0-postinst.patch
@@ -0,0 +1,14 @@
+update-desktop-database is called from the pkg_postinst stage instead.
+
+--- openclonk-release-6.0-src.orig/CMakeLists.txt
++++ openclonk-release-6.0-src/CMakeLists.txt
+@@ -1564,7 +1564,8 @@
+ # Install new files
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.desktop DESTINATION "${INSTALL_DATAROOTDIR}/applications")
+ # Update the MIME cache -- this makes the clonk:// protocol handler actually work
+- install(CODE "execute_process(COMMAND update-desktop-database)")
++ # --> ebuild, pkg_postinst stage
++ #install(CODE "execute_process(COMMAND update-desktop-database)")
+
+ # Install binaries
+ install(TARGETS openclonk DESTINATION "${INSTALL_GAMES_BINDIR}")
diff --git a/games-action/openclonk/openclonk-7.0.ebuild b/games-action/openclonk/openclonk-7.0.ebuild
new file mode 100644
index 000000000000..5fcb67a5c4ca
--- /dev/null
+++ b/games-action/openclonk/openclonk-7.0.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit cmake-utils eutils gnome2-utils python-any-r1 fdo-mime games
+
+MY_P=${PN}-release-${PV}-src
+
+DESCRIPTION="A free multiplayer action game where you control clonks"
+HOMEPAGE="http://openclonk.org/"
+SRC_URI="http://www.openclonk.org/builds/release/${PV}/openclonk-${PV}-src.tar.bz2"
+
+LICENSE="BSD ISC CLONK-trademark LGPL-2.1 POSTGRESQL"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="dedicated doc"
+
+RDEPEND="
+ >=dev-libs/boost-1.40:=
+ dev-libs/tinyxml
+ net-libs/libupnp
+ media-libs/libpng:0=
+ sys-libs/zlib
+ !dedicated? (
+ dev-libs/glib:2
+ media-libs/freealut
+ media-libs/freetype:2
+ media-libs/glew
+ media-libs/libsdl[X,opengl,sound,video]
+ media-libs/libvorbis
+ media-libs/openal
+ media-libs/sdl-mixer[mp3,vorbis,wav]
+ virtual/jpeg:0=
+ virtual/opengl
+ virtual/glu
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ x11-libs/libXrandr
+ x11-libs/libX11
+ )
+ dedicated? ( sys-libs/readline:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ ${PYTHON_DEPS}
+ dev-libs/libxml2[python]
+ sys-devel/gettext
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-paths.patch
+ "${FILESDIR}"/${P}-postinst.patch
+)
+S=${WORKDIR}/${P}-src
+
+pkg_setup() {
+ games_pkg_setup
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ $(usex dedicated \
+ "-DUSE_CONSOLE=ON -DUSE_X11=OFF -DUSE_GTK=OFF -DUSE_GTK3=OFF" \
+ "-DUSE_CONSOLE=OFF -DUSE_X11=ON -DUSE_GTK=ON -DUSE_GTK3=ON")
+ -DWITH_AUTOMATIC_UPDATE=OFF
+ -DINSTALL_GAMES_BINDIR="${GAMES_BINDIR}"
+ -DINSTALL_DATADIR="${GAMES_DATADIR}"
+ -DUSE_STATIC_BOOST=OFF
+ -DUSE_SYSTEM_TINYXML=ON
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use doc && emake -C docs
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if ! use dedicated; then
+ mv "${ED%/}${GAMES_BINDIR}/"{openclonk,clonk} || die
+ newgamesbin "${FILESDIR}"/${PN}-wrapper-script.sh ${PN}
+ fi
+ use doc && dohtml -r docs/online/*
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+ fdo-mime_desktop_database_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ fdo-mime_desktop_database_update
+}