summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Savchenko <bircoph@gentoo.org>2017-07-16 02:21:39 +0300
committerAndrew Savchenko <bircoph@gentoo.org>2017-07-16 02:22:21 +0300
commit9a1bcce1539cf2b1107865cb5b77eb189ac3344c (patch)
treefd8a568bf2125ce5dcfe9e507eedbae0c334a696 /games-engines/renpy/files
parentdev-perl/Lab-Measurement: Cleanup & adapt to new repo structure (diff)
downloadgentoo-9a1bcce1539cf2b1107865cb5b77eb189ac3344c.tar.gz
gentoo-9a1bcce1539cf2b1107865cb5b77eb189ac3344c.tar.bz2
gentoo-9a1bcce1539cf2b1107865cb5b77eb189ac3344c.zip
games-engines/renpy: version bump
Fixes bugs 587872 and 575086. Package-Manager: Portage-2.3.6, Repoman-2.3.2 Signed-off-by: Andrew Savchenko <bircoph@gentoo.org>
Diffstat (limited to 'games-engines/renpy/files')
-rw-r--r--games-engines/renpy/files/renpy-6.99.12.4-multiple-abi.patch357
-rw-r--r--games-engines/renpy/files/renpy.1163
2 files changed, 520 insertions, 0 deletions
diff --git a/games-engines/renpy/files/renpy-6.99.12.4-multiple-abi.patch b/games-engines/renpy/files/renpy-6.99.12.4-multiple-abi.patch
new file mode 100644
index 00000000000..3a7355e60be
--- /dev/null
+++ b/games-engines/renpy/files/renpy-6.99.12.4-multiple-abi.patch
@@ -0,0 +1,357 @@
+From 7aa51dae5eb2f2123fee9bca23a2ce2f1b1c3f10 Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@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,122 +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
+- save_directory = renpy.exports.fsencode(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,21 +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 <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
++
++# 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
+diff --git a/renpy/script.py b/renpy/script.py
+index 73e7239..6807ba1 100644
+--- a/renpy/script.py
++++ b/renpy/script.py
+@@ -150,8 +150,8 @@ import os
+ if renpy.loader.loadable(i):
+ return None
+
+- import __main__
+- backups = __main__.path_to_saves(renpy.config.gamedir, "backups") # @UndefinedVariable
++ import renpy.common as common
++ backups = common.path_to_saves(renpy.config.gamedir, "backups") # @UndefinedVariable
+
+ if backups is None:
+ return
+--
+2.5.0
+
diff --git a/games-engines/renpy/files/renpy.1 b/games-engines/renpy/files/renpy.1
new file mode 100644
index 00000000000..e8b7a2b6195
--- /dev/null
+++ b/games-engines/renpy/files/renpy.1
@@ -0,0 +1,163 @@
+.\" Copyright © 2015 Andrew Savchenko
+.\" Distributed under the terms of GNU FDL-1.3+ license,
+.\" based on original Ren'Py documentation licensed under MIT.
+.TH renpy 1 "31 May 2015" "Ren'Py" "Ren'Py Gentoo's manual"
+.SH NAME
+renpy \- a visual novel engine
+
+.SH SYNOPSIS
+.BI renpy " game_directory"
+.\" ****************************************************************
+.SH DESCRIPTION
+
+.B renpy
+(Ren'Py) is a visual novel engine \- used by hundreds of creators
+from around the world \- that helps you use words, images, and
+sounds to tell interactive stories that run on computers and mobile
+devices. These can be both visual novels and life simulation games.
+The easy to learn script language allows anyone to efficiently
+write large visual novels, while its
+.BR python (1)
+scripting is enough for complex simulation games.
+.\" ****************************************************************
+.SH RUNNING A GAME
+
+In order to run a game, provide
+.I game_directory
+as an argument to
+.BR renpy .
+Exact directory name may vary depending or a game, but usually
+this path corresponds to
+.I */game
+wildcard and contains
+.I script_version.rpy*
+file within. Game directory usually contains other
+.IR *.rpy* " and " *.rpa " files."
+
+One may use
+.BR find (1)
+tool to locate required directory within unpacked game top
+directory:
+.RS
+
+find -O3
+.I top_directory
+-type f -iname "script_version.rpy*"
+
+.RE
+A directory one level above may be provided as an argument as well.
+.\" ****************************************************************
+.SH PORTABILITY
+
+All
+.B renpy
+games are written in
+.BR python (1),
+so one can run then on any platform and architecture.
+
+As you may have noticed, Ren'Py games are often distributed in
+different archives for different architectures. This happens due to
+bundling of
+.BR python (1)
+interpreter and required libraries in a game's tarball. Since you
+are using OS native
+.B renpy
+setup, you should be able to run any of these games.
+.\" ****************************************************************
+.SH GAMES CATALOGUE
+
+A large catalogue of Ren'Py powered games is available at
+.IR http://games.renpy.org/ .
+.\" ****************************************************************
+.SH TROUBLESHOOTING
+
+In some cases game may fail to run with current
+.B renpy
+version due to various errors.
+
+In such case please try to use the closest
+.B renpy
+version to one used by game developer. Most games contain
+.IR script_version.rpy " file in the " game " directory."
+This file actually contains
+.B renpy
+version used during a game build.
+You may install multiple slots of
+.B renpy
+in Gentoo and use
+.BI eselect " renpy"
+module to switch between various versions.
+
+If
+.I game
+directory contains both
+.IR *.rpyc " (or " *.rpyo ") and " *.rpy " files, delete"
+.IR *.rpyc " (or " *.rpyo ") files, they will be regenerated by"
+the interpreter.
+Another solution will be to switch between version of
+.BR python (1)
+using
+.IR eselect (1)
+tool in order to find one suitable to interpret game's
+.IR *.rpyc " files."
+
+Some games may lack general media files, e.g.
+.I click.ogg
+sound, so you should create or download one and place in the
+.I game
+directory.
+
+Also please pay attention to
+.I problems.html
+page from
+.B renpy
+html documentation, see
+.B FURTHER READING
+section.
+.\" ****************************************************************
+.SH ENVIRONMENT VARIABLES
+
+.B renpy
+supports a number of environment variables to control its
+behaviour. Please refer to html docs for further details
+(see
+.B FURTHER READING
+section).
+.\" ****************************************************************
+.SH FURTHER READING
+
+.B renpy
+comes with extensive html documentation. To use it install
+.B renpy
+with
+.I USE="doc"
+and go to
+.I /usr/share/doc/renpy-*/html/doc/index.html
+
+Alternatively one may refer to online documentation:
+.IR http://www.renpy.org/doc/html/ .
+Be warned that online docs maybe different from your current active
+version, so it recommended to use shipped documentation instead.
+.\" ****************************************************************
+.SH BUGS
+
+Any bugs related to Gentoo packaging (e.g. omitted dependencies)
+please report on bugzilla:
+.IR https://bugs.gentoo.org .
+
+For bugs in the Ren'Py engine itself, please contact upstream:
+.I https://github.com/renpy/renpy/issues
+and add a Gentoo bug if you feel it necessary.
+
+For issues with games themselves please contact corresponding
+authors.
+.\" ****************************************************************
+.SH SEE ALSO
+
+.BR python (1)
+\- an interpreter used by Ren'Py engine.
+
+.BR unrpa (1)
+\- a tool to unpack
+.I *.rpa
+data files (Ren'Py Archives).