summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-engines')
-rw-r--r--games-engines/renpy/ChangeLog8
-rw-r--r--games-engines/renpy/files/renpy-6.17.4-multiple-abi.patch245
-rw-r--r--games-engines/renpy/renpy-6.17.4.ebuild111
3 files changed, 363 insertions, 1 deletions
diff --git a/games-engines/renpy/ChangeLog b/games-engines/renpy/ChangeLog
index b9955c889ea3..0a6fb36b7942 100644
--- a/games-engines/renpy/ChangeLog
+++ b/games-engines/renpy/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for games-engines/renpy
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/ChangeLog,v 1.34 2014/03/19 23:12:08 hasufell Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/ChangeLog,v 1.35 2014/04/22 11:53:18 hasufell Exp $
+
+*renpy-6.17.4 (22 Apr 2014)
+
+ 22 Apr 2014; Julian Ospald <hasufell@gentoo.org> +renpy-6.17.4.ebuild,
+ +files/renpy-6.17.4-multiple-abi.patch:
+ version bump
19 Mar 2014; Julian Ospald <hasufell@gentoo.org> renpy-6.16.5.ebuild,
renpy-6.17.3.ebuild:
diff --git a/games-engines/renpy/files/renpy-6.17.4-multiple-abi.patch b/games-engines/renpy/files/renpy-6.17.4-multiple-abi.patch
new file mode 100644
index 000000000000..335af4e9b8d1
--- /dev/null
+++ b/games-engines/renpy/files/renpy-6.17.4-multiple-abi.patch
@@ -0,0 +1,245 @@
+commit 7451ba936ca2f3358ca51ab562371774199c7052
+Author: hasufell <hasufell@gentoo.org>
+Date: Tue Jan 21 01:02:00 2014 +0100
+
+ fix multiple abi support
+
+diff --git a/renpy.py b/renpy.py
+index 9f2977f..394e4e1 100644
+--- a/renpy.py
++++ b/renpy.py
+@@ -28,82 +28,9 @@
+ import os
+ import sys
+ import warnings
+-
+-# Functions to be customized by distributors. ################################
+-
+-# Given the Ren'Py base directory (usually the directory containing
+-# this file), this is expected to return the path to the common directory.
+-def path_to_common(renpy_base):
+- return renpy_base + "/renpy/common"
+-
+-# Given a directory holding a Ren'Py game, this is expected to return
+-# the path to a directory that will hold save files.
+-def path_to_saves(gamedir):
+- import renpy #@UnresolvedImport
+-
+- # Android.
+- if renpy.android:
+- paths = [
+- os.path.join(os.environ["ANDROID_OLD_PUBLIC"], "game/saves"),
+- os.path.join(os.environ["ANDROID_PRIVATE"], "saves"),
+- os.path.join(os.environ["ANDROID_PUBLIC"], "saves"),
+- ]
+-
+- for rv in paths:
+- if os.path.isdir(rv):
+- break
+-
+- print "Using savedir", rv
+-
+- # We return the last path as the default.
+-
+- return rv
+-
+-
+- # No save directory given.
+- if not renpy.config.save_directory:
+- return gamedir + "/saves"
+-
+- # Search the path above Ren'Py for a directory named "Ren'Py Data".
+- # If it exists, then use that for our save directory.
+- path = renpy.config.renpy_base
+-
+- while True:
+- if os.path.isdir(path + "/Ren'Py Data"):
+- return path + "/Ren'Py Data/" + renpy.config.save_directory
+-
+- newpath = os.path.dirname(path)
+- if path == newpath:
+- break
+- path = newpath
+-
+- # Otherwise, put the saves in a platform-specific location.
+- if renpy.macintosh:
+- rv = "~/Library/RenPy/" + renpy.config.save_directory
+- return os.path.expanduser(rv)
+-
+- elif renpy.windows:
+- if 'APPDATA' in os.environ:
+- return os.environ['APPDATA'] + "/RenPy/" + renpy.config.save_directory
+- else:
+- rv = "~/RenPy/" + renpy.config.save_directory
+- return os.path.expanduser(rv)
+-
+- else:
+- rv = "~/.renpy/" + renpy.config.save_directory
+- return os.path.expanduser(rv)
+-
+-
+-# Returns the path to the Ren'Py base directory (containing common and
+-# the launcher, usually.)
+-def path_to_renpy_base():
+- renpy_base = os.path.dirname(os.path.realpath(sys.argv[0]))
+- renpy_base = os.environ.get('RENPY_BASE', renpy_base)
+- renpy_base = os.path.abspath(renpy_base)
+-
+- return renpy_base
+-
+-##############################################################################
++from distutils.sysconfig import get_python_lib
++sys.path.append(get_python_lib() + "/renpy@SLOT@")
++import renpy.common as common
+
+ # The version of the Mac Launcher and py4renpy that we require.
+ macos_version = (6, 14, 0)
+@@ -131,7 +58,7 @@ if android:
+
+ def main():
+
+- renpy_base = path_to_renpy_base()
++ renpy_base = common.path_to_renpy_base()
+
+ # Add paths.
+ if os.path.exists(renpy_base + "/module"):
+diff --git a/renpy/common.py b/renpy/common.py
+new file mode 100644
+index 0000000..1f15b3c
+--- /dev/null
++++ b/renpy/common.py
+@@ -0,0 +1,103 @@
++# This file is part of Ren'Py. The license below applies to Ren'Py only.
++# Games and other projects that use Ren'Py may use a different license.
++
++# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
++#
++# Permission is hereby granted, free of charge, to any person
++# obtaining a copy of this software and associated documentation files
++# (the "Software"), to deal in the Software without restriction,
++# including without limitation the rights to use, copy, modify, merge,
++# publish, distribute, sublicense, and/or sell copies of the Software,
++# and to permit persons to whom the Software is furnished to do so,
++# subject to the following conditions:
++#
++# The above copyright notice and this permission notice shall be
++# included in all copies or substantial portions of the Software.
++#
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++import os
++import sys
++import warnings
++from distutils.sysconfig import get_python_lib
++
++# Functions to be customized by distributors. ################################
++
++# Given the Ren'Py base directory (usually the directory containing
++# this file), this is expected to return the path to the common directory.
++def path_to_common(renpy_base):
++ return renpy_base + "/renpy/common"
++
++# Given a directory holding a Ren'Py game, this is expected to return
++# the path to a directory that will hold save files.
++def path_to_saves(gamedir):
++ import renpy #@UnresolvedImport
++
++ # Android.
++ if renpy.android:
++ paths = [
++ os.path.join(os.environ["ANDROID_OLD_PUBLIC"], "game/saves"),
++ os.path.join(os.environ["ANDROID_PRIVATE"], "saves"),
++ os.path.join(os.environ["ANDROID_PUBLIC"], "saves"),
++ ]
++
++ for rv in paths:
++ if os.path.isdir(rv):
++ break
++
++ print "Using savedir", rv
++
++ # We return the last path as the default.
++
++ return rv
++
++
++ # No save directory given.
++ if not renpy.config.save_directory:
++ return gamedir + "/saves"
++
++ # Search the path above Ren'Py for a directory named "Ren'Py Data".
++ # If it exists, then use that for our save directory.
++ path = renpy.config.renpy_base
++
++ while True:
++ if os.path.isdir(path + "/Ren'Py Data"):
++ return path + "/Ren'Py Data/" + renpy.config.save_directory
++
++ newpath = os.path.dirname(path)
++ if path == newpath:
++ break
++ path = newpath
++
++ # Otherwise, put the saves in a platform-specific location.
++ if renpy.macintosh:
++ rv = "~/Library/RenPy/" + renpy.config.save_directory
++ return os.path.expanduser(rv)
++
++ elif renpy.windows:
++ if 'APPDATA' in os.environ:
++ return os.environ['APPDATA'] + "/RenPy/" + renpy.config.save_directory
++ else:
++ rv = "~/RenPy/" + renpy.config.save_directory
++ return os.path.expanduser(rv)
++
++ else:
++ rv = "~/.renpy/" + renpy.config.save_directory
++ return os.path.expanduser(rv)
++
++
++# Returns the path to the Ren'Py base directory (containing common and
++# the launcher, usually.)
++def path_to_renpy_base():
++ renpy_base = os.path.dirname(os.path.realpath(sys.argv[0]))
++ renpy_base = get_python_lib() + "/renpy@SLOT@"
++ renpy_base = os.environ.get('RENPY_BASE', renpy_base)
++ renpy_base = os.path.abspath(renpy_base)
++
++ return renpy_base
+diff --git a/renpy/main.py b/renpy/main.py
+index 143007d..6c55bbc 100644
+--- a/renpy/main.py
++++ b/renpy/main.py
+@@ -25,7 +25,7 @@ import os
+ import sys
+ import time
+ import zipfile
+-import __main__
++import renpy.common as common
+
+
+ def run(restart):
+@@ -167,7 +167,7 @@ def main():
+ renpy.config.searchpath = [ renpy.config.gamedir ]
+
+ # Find the common directory.
+- commondir = __main__.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable
++ commondir = common.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable
+
+ if os.path.isdir(commondir):
+ renpy.config.searchpath.append(commondir)
+@@ -230,7 +230,7 @@ def main():
+
+ # Find the save directory.
+ if renpy.config.savedir is None:
+- renpy.config.savedir = __main__.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable
++ renpy.config.savedir = common.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable
+
+ if renpy.game.args.savedir: #@UndefinedVariable
+ renpy.config.savedir = renpy.game.args.savedir #@UndefinedVariable
diff --git a/games-engines/renpy/renpy-6.17.4.ebuild b/games-engines/renpy/renpy-6.17.4.ebuild
new file mode 100644
index 000000000000..c2041bc15252
--- /dev/null
+++ b/games-engines/renpy/renpy-6.17.4.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/renpy-6.17.4.ebuild,v 1.1 2014/04/22 11:53:18 hasufell Exp $
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=1
+inherit eutils toolchain-funcs python-r1 versionator gnome2-utils games distutils-r1
+
+DESCRIPTION="Visual novel engine written in python"
+HOMEPAGE="http://www.renpy.org"
+SRC_URI="http://www.renpy.org/dl/${PV}/${P}-source.tar.bz2"
+
+LICENSE="MIT"
+SLOT="$(get_version_component_range 1-2)"
+MYSLOT=$(delete_all_version_separators ${SLOT})
+KEYWORDS="~amd64 ~x86"
+IUSE="development doc examples"
+REQUIRED_USE="examples? ( development )"
+
+RDEPEND="
+ >=app-admin/eselect-renpy-0.4
+ dev-libs/fribidi
+ dev-python/pygame[X,${PYTHON_USEDEP}]
+ >=dev-lang/python-exec-0.3[${PYTHON_USEDEP}]
+ media-libs/glew
+ media-libs/libpng:0
+ media-libs/libsdl[X,video]
+ media-libs/freetype:2
+ sys-libs/zlib
+ virtual/ffmpeg
+ virtual/python-argparse[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P}-source
+
+pkg_setup() {
+ games_pkg_setup
+ export CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags fribidi)"
+}
+
+python_prepare_all() {
+ # wooosh! this should fix multiple abi
+ epatch "${FILESDIR}"/${P}-multiple-abi.patch
+
+ einfo "Deleting precompiled python files"
+ find . -name '*.py[co]' -print -delete || die
+
+ sed -i \
+ -e "s/@SLOT@/${MYSLOT}/" \
+ renpy.py renpy/common.py || die "setting slot failed!"
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ cd "${S}"/module || die
+ distutils-r1_python_compile
+}
+
+python_install() {
+ cd "${S}"/module || die
+ distutils-r1_python_install --install-lib="$(python_get_sitedir)/renpy${MYSLOT}"
+
+ cd "${S}" || die
+ python_scriptinto "${GAMES_BINDIR}"
+ python_newscript renpy.py ${PN}-${SLOT}
+
+ python_moduleinto renpy${MYSLOT}
+ python_domodule renpy
+ if use development ; then
+ python_domodule launcher templates
+ fi
+ if use examples ; then
+ python_domodule the_question tutorial
+ fi
+}
+
+python_install_all() {
+ if use development; then
+ newicon -s 32 launcher/game/images/logo32.png ${P}.png
+ make_desktop_entry ${PN}-${SLOT} "Ren'Py ${PV}" ${P}
+ fi
+
+ if use doc; then
+ dohtml -r doc
+ fi
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ use development && gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ use development && gnome2_icon_cache_update
+
+ einfo "running: eselect renpy update --if-unset"
+ eselect renpy update --if-unset
+}
+
+pkg_postrm() {
+ use development && gnome2_icon_cache_update
+
+ einfo "running: eselect renpy update --if-unset"
+ eselect renpy update --if-unset
+}