diff options
Diffstat (limited to 'games-engines')
-rw-r--r-- | games-engines/renpy/ChangeLog | 8 | ||||
-rw-r--r-- | games-engines/renpy/files/renpy-6.15.4-multiple-abi.patch | 219 | ||||
-rw-r--r-- | games-engines/renpy/renpy-6.15.4.ebuild | 111 |
3 files changed, 337 insertions, 1 deletions
diff --git a/games-engines/renpy/ChangeLog b/games-engines/renpy/ChangeLog index 17311eac32ab..3d4a4cf286a5 100644 --- a/games-engines/renpy/ChangeLog +++ b/games-engines/renpy/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for games-engines/renpy # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/ChangeLog,v 1.9 2013/04/01 12:42:09 hasufell Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/ChangeLog,v 1.10 2013/04/19 23:44:43 hasufell Exp $ + +*renpy-6.15.4 (19 Apr 2013) + + 19 Apr 2013; Julian Ospald <hasufell@gentoo.org> +renpy-6.15.4.ebuild, + +files/renpy-6.15.4-multiple-abi.patch: + version bump 01 Apr 2013; Julian Ospald <hasufell@gentoo.org> -renpy-6.15.2.ebuild, -files/renpy-6.15.2-multiple-abi.patch: diff --git a/games-engines/renpy/files/renpy-6.15.4-multiple-abi.patch b/games-engines/renpy/files/renpy-6.15.4-multiple-abi.patch new file mode 100644 index 000000000000..acd44aa3054a --- /dev/null +++ b/games-engines/renpy/files/renpy-6.15.4-multiple-abi.patch @@ -0,0 +1,219 @@ +From: Julian Ospald <hasufell@gentoo.org> +Date: Mon Feb 25 21:35:31 UTC 2013 +Subject: fix multiple abi support + +--- /dev/null ++++ renpy-6.15.2-source/renpy/common.py +@@ -0,0 +1,79 @@ ++# (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 ++ ++ 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.android: ++ return gamedir + "/saves" ++ ++ elif 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 +--- renpy-6.15.2-source/renpy.py ++++ renpy-6.15.2-source/renpy.py +@@ -25,64 +25,9 @@ + 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 +- +- 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.android: +- return gamedir + "/saves" +- +- elif 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) +@@ -97,21 +42,10 @@ + print "Ren'Py requires at least python 2.6." + sys.exit(0) + +-android = ("ANDROID_PRIVATE" in os.environ) + +-# Android requires us to add code to the main module, and to command some +-# renderers. +-if android: +- __main__ = sys.modules["__main__"] +- __main__.path_to_renpy_base = path_to_renpy_base +- __main__.path_to_common = path_to_common +- __main__.path_to_saves = path_to_saves +- os.environ["RENPY_RENDERER"] = "gl" +- os.environ["RENPY_GL_ENVIRON"] = "limited" +- + def main(): + +- renpy_base = path_to_renpy_base() ++ renpy_base = common.path_to_renpy_base() + + # Add paths. + if os.path.exists(renpy_base + "/module"): +@@ -134,10 +68,6 @@ + print >>sys.stderr, "correctly, preserving the directory structure." + raise + +- if android: +- renpy.linux = False +- renpy.android = True +- + renpy.bootstrap.bootstrap(renpy_base) + + if __name__ == "__main__": +--- renpy-6.15.2-source/renpy/main.py ++++ renpy-6.15.2-source/renpy/main.py +@@ -27,7 +27,7 @@ + import zipfile + import subprocess + from cPickle import loads, dumps +-import __main__ ++import renpy.common as common + + + def save_persistent(): +@@ -147,7 +147,7 @@ + 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) +@@ -206,7 +206,7 @@ + + # 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.15.4.ebuild b/games-engines/renpy/renpy-6.15.4.ebuild new file mode 100644 index 000000000000..fc2208ef9892 --- /dev/null +++ b/games-engines/renpy/renpy-6.15.4.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-engines/renpy/renpy-6.15.4.ebuild,v 1.1 2013/04/19 23:44:43 hasufell Exp $ + +EAPI=5 +PYTHON_COMPAT=( python2_6 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.2 + dev-libs/fribidi + dev-python/pygame[X,${PYTHON_USEDEP}] + >=dev-python/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 template + fi + if use examples ; then + python_domodule the_question tutorial + fi +} + +python_install_all() { + if use development; then + newicon -s 32 launcher/game/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 +} |