commit:     1d53c247b9f312937ec761ba837a32ebad7d1995
Author:     Julian Ospald <hasufell <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 19 23:14:33 2015 +0000
Commit:     Julian Ospald <hasufell <AT> gentoo <DOT> org>
CommitDate: Wed Aug 19 23:18:26 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d53c247

games-engines/renpy: version bump to 6.99.6

 games-engines/renpy/Manifest                       |   1 +
 .../renpy/files/renpy-6.99.6-multiple-abi.patch    | 337 +++++++++++++++++++++
 games-engines/renpy/renpy-6.99.6.ebuild            | 111 +++++++
 3 files changed, 449 insertions(+)

diff --git a/games-engines/renpy/Manifest b/games-engines/renpy/Manifest
index 8587e1a..f0c96da 100644
--- a/games-engines/renpy/Manifest
+++ b/games-engines/renpy/Manifest
@@ -3,3 +3,4 @@ DIST renpy-6.16.5-source.tar.bz2 14455622 SHA256 
5ecb00fa84a048ff6e1f1d8a0114373
 DIST renpy-6.17.7-source.tar.bz2 17932988 SHA256 
fef01de9e482b73d9d409de7a43bada6dd3e2a0549b99dd487306371190ed038 SHA512 
22b0e08b18ee35317b11451205233cbd8a29617d9c3d298bbdcfc5757f67c2f0e4c8a748aa83d5c8b43786c062ffca109d07e981efa750fcee26f45f08a33ea2
 WHIRLPOOL 
fef82eb6c958a2525797e5d8bfae3488fba606b70eeed5c94f7afcab4fa46e7a7eb43d91b4bd55f553b65a72b12236e02ecdee55e8852c1fafc055332f9d131d
 DIST renpy-6.18.3-source.tar.bz2 23244450 SHA256 
c0c6af79ceb529e69cebfdb0e9849e50dc27e424dc2fd2b322c13d6ec938cba6 SHA512 
7ea99adaf1fbea7a499790fb5b37349fc797f383fb633956a43955c80885b259e26570469c430f4c4c103e62444f60082690489ee6400809f5e9024693261e55
 WHIRLPOOL 
6e4e68228bc38c709af4387f209717e4644efccae47fb04b7071783b0c01d6fbe4ca65d7c712a32e159cd59c663873457e54c3851e9e4a84d3d4e4ed05271102
 DIST renpy-6.99.5-source.tar.bz2 27285400 SHA256 
cec38c548a812331fe42b60882ba271ea10fb369f0ba67bad1facd8d556ae74d SHA512 
0e9d3dca70924e587711effa34d5af45fcd1c1bc6ce0b38723b39e07593a85dc55645ad4cb002f43fe33f387ee58c92626004f655d0f2955c55d8d01b5453326
 WHIRLPOOL 
f3db4a08b1216b69b2724668cb22ea3c720826a6bf82042d0783fb8048d07074fd473157132e27010570c485fc90d09cb0115accbb429aad48f62417245852a8
+DIST renpy-6.99.6-source.tar.bz2 27289290 SHA256 
31f3fc84bda7e4048a97539d6266b3fbb18a82fc38db83761dd4771f5ef98d04 SHA512 
d018ac0827ee5a914c48479174eccbf3968ea22926638e09ee00ecea49dc0111b4f24810ad32d5a8bb8012ff18e5fb8981705ed0e2289ce3172a1629e095a651
 WHIRLPOOL 
ba8102e11a09b70100d391c5b068c826db810486f2792c5b5214421b09344916888255a377ac26b2b21aaede315bb0470c7315c2581af9e64b545d68ee6f005c

diff --git a/games-engines/renpy/files/renpy-6.99.6-multiple-abi.patch 
b/games-engines/renpy/files/renpy-6.99.6-multiple-abi.patch
new file mode 100644
index 0000000..eac6512
--- /dev/null
+++ b/games-engines/renpy/files/renpy-6.99.6-multiple-abi.patch
@@ -0,0 +1,337 @@
+From 7aa51dae5eb2f2123fee9bca23a2ce2f1b1c3f10 Mon Sep 17 00:00:00 2001
+From: hasufell <hasuf...@gentoo.org>
+Date: Thu, 20 Aug 2015 01:10:58 +0200
+Subject: [PATCH] Fix multiple abi support
+
+---
+ renpy.py        | 128 ++--------------------------------------------------
+ renpy/common.py | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ renpy/main.py   |   6 +--
+ 3 files changed, 144 insertions(+), 127 deletions(-)
+ create mode 100644 renpy/common.py
+
+diff --git a/renpy.py b/renpy.py
+index 7548cf6..8ec7353 100644
+--- a/renpy.py
++++ b/renpy.py
+@@ -28,118 +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, save_directory=None):
+-    import renpy #@UnresolvedImport
+-
+-    if save_directory is None:
+-        save_directory = renpy.config.save_directory
+-
+-    # Makes sure the permissions are right on the save directory.
+-    def test_writable(d):
+-        try:
+-            fn = os.path.join(d, "test.txt")
+-            open(fn, "w").close()
+-            open(fn, "r").close()
+-            os.unlink(fn)
+-            return True
+-        except:
+-            return False
+-
+-
+-    # 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) and test_writable(rv):
+-                break
+-
+-        print "Saving to", rv
+-
+-        # We return the last path as the default.
+-
+-        return rv
+-
+-    if renpy.ios:
+-        from pyobjus import autoclass
+-        from pyobjus.objc_py_types import enum
+-
+-        NSSearchPathDirectory = enum("NSSearchPathDirectory", 
NSDocumentDirectory=9)
+-        NSSearchPathDomainMask = enum("NSSearchPathDomainMask", 
NSUserDomainMask=1)
+-
+-        NSFileManager = autoclass('NSFileManager')
+-        manager = NSFileManager.defaultManager()
+-        url = manager.URLsForDirectory_inDomains_(
+-            NSSearchPathDirectory.NSDocumentDirectory,
+-            NSSearchPathDomainMask.NSUserDomainMask,
+-            ).lastObject()
+-
+-        # url.path seems to change type based on iOS version, for some reason.
+-        try:
+-            rv = url.path().UTF8String().decode("utf-8")
+-        except:
+-            rv = url.path.UTF8String().decode("utf-8")
+-
+-        print "Saving to", rv
+-        return rv
+-
+-    # No save directory given.
+-    if not 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/" + 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/" + save_directory
+-        return os.path.expanduser(rv)
+-
+-    elif renpy.windows:
+-        if 'APPDATA' in os.environ:
+-            return os.environ['APPDATA'] + "/RenPy/" + save_directory
+-        else:
+-            rv = "~/RenPy/" + renpy.config.save_directory
+-            return os.path.expanduser(rv)
+-
+-    else:
+-        rv = "~/.renpy/" + 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.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)
+@@ -154,20 +45,9 @@ except:
+     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"
+-
+ 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..0d60e36
+--- /dev/null
++++ b/renpy/common.py
+@@ -0,0 +1,137 @@
++# 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-2015 Tom Rothamel <py...@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
++
++# 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, save_directory=None):
++    import renpy #@UnresolvedImport
++
++    if save_directory is None:
++        save_directory = renpy.config.save_directory
++
++    # Makes sure the permissions are right on the save directory.
++    def test_writable(d):
++        try:
++            fn = os.path.join(d, "test.txt")
++            open(fn, "w").close()
++            open(fn, "r").close()
++            os.unlink(fn)
++            return True
++        except:
++            return False
++
++
++    # 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) and test_writable(rv):
++                break
++
++        print "Saving to", rv
++
++        # We return the last path as the default.
++
++        return rv
++
++    if renpy.ios:
++        from pyobjus import autoclass
++        from pyobjus.objc_py_types import enum
++
++        NSSearchPathDirectory = enum("NSSearchPathDirectory", 
NSDocumentDirectory=9)
++        NSSearchPathDomainMask = enum("NSSearchPathDomainMask", 
NSUserDomainMask=1)
++
++        NSFileManager = autoclass('NSFileManager')
++        manager = NSFileManager.defaultManager()
++        url = manager.URLsForDirectory_inDomains_(
++            NSSearchPathDirectory.NSDocumentDirectory,
++            NSSearchPathDomainMask.NSUserDomainMask,
++            ).lastObject()
++
++        # url.path seems to change type based on iOS version, for some reason.
++        try:
++            rv = url.path().UTF8String().decode("utf-8")
++        except:
++            rv = url.path.UTF8String().decode("utf-8")
++
++        print "Saving to", rv
++        return rv
++
++    # No save directory given.
++    if not 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/" + 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/" + save_directory
++        return os.path.expanduser(rv)
++
++    elif renpy.windows:
++        if 'APPDATA' in os.environ:
++            return os.environ['APPDATA'] + "/RenPy/" + save_directory
++        else:
++            rv = "~/RenPy/" + renpy.config.save_directory
++            return os.path.expanduser(rv)
++
++    else:
++        rv = "~/.renpy/" + 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.path.abspath(renpy_base)
++
++    return renpy_base
+diff --git a/renpy/main.py b/renpy/main.py
+index 73e7239..6807ba1 100644
+--- a/renpy/main.py
++++ b/renpy/main.py
+@@ -27,7 +27,7 @@ import os
+ import sys
+ import time
+ import zipfile
+-import __main__
++import renpy.common as common
+ 
+ 
+ last_clock = time.time()
+@@ -273,7 +273,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)
+@@ -371,7 +371,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
+-- 
+2.5.0
+

diff --git a/games-engines/renpy/renpy-6.99.6.ebuild 
b/games-engines/renpy/renpy-6.99.6.ebuild
new file mode 100644
index 0000000..3fdc114
--- /dev/null
+++ b/games-engines/renpy/renpy-6.99.6.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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-eselect/eselect-renpy-0.6
+       dev-libs/fribidi
+       ~dev-python/pygame_sdl2-${PV}[${PYTHON_USEDEP}]
+       >=dev-lang/python-exec-0.3[${PYTHON_USEDEP}]
+       media-libs/glew
+       media-libs/libpng:0
+       media-libs/libsdl2[video]
+       media-libs/freetype:2
+       sys-libs/zlib
+       virtual/ffmpeg"
+DEPEND="${RDEPEND}
+       dev-python/cython[${PYTHON_USEDEP}]
+       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
+}

Reply via email to