summaryrefslogtreecommitdiff
path: root/games-engines/renpy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-12-21 13:58:21 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-12-21 13:58:21 +0000
commitd8e7aaf1b90b28ec354e7854abea07d53644e754 (patch)
treea3dfecdac470c25645b7bcacd4923343eec46afe /games-engines/renpy
parenta473f013073f9c57e59e7d30f088eee89312dd0d (diff)
gentoo auto-resync : 21:12:2023 - 13:58:21
Diffstat (limited to 'games-engines/renpy')
-rw-r--r--games-engines/renpy/Manifest8
-rw-r--r--games-engines/renpy/files/renpy-6.99.12.4-compat-infinite-loop.patch44
-rw-r--r--games-engines/renpy/files/renpy-6.99.12.4-compat-style.patch45
-rw-r--r--games-engines/renpy/files/renpy-8.1.0-ignore_rpyc_errors.patch23
-rw-r--r--games-engines/renpy/files/renpy-8.1.3-system-path.patch19
-rw-r--r--games-engines/renpy/files/renpy.1163
-rw-r--r--games-engines/renpy/metadata.xml33
-rw-r--r--games-engines/renpy/renpy-8.1.3.ebuild110
8 files changed, 445 insertions, 0 deletions
diff --git a/games-engines/renpy/Manifest b/games-engines/renpy/Manifest
new file mode 100644
index 000000000000..02eff0042ac5
--- /dev/null
+++ b/games-engines/renpy/Manifest
@@ -0,0 +1,8 @@
+AUX renpy-6.99.12.4-compat-infinite-loop.patch 1712 BLAKE2B c0c6b9c8dead9460ffd2379f1e38da6a778999a1003d3d3b9ca98e7ecde0d268b9a94e1d4331b4d487ec0ead0badf0b9a89bb4a3a41d08352e2a63b7f5985857 SHA512 023fbbc37768ddf62cef3ad10b37d444fd05ff57ad53c535daafb16693a4ccb8a261de948876cb49f329ee5d23d7768aa00641daa1ee0dc096016ab183d8f612
+AUX renpy-6.99.12.4-compat-style.patch 2046 BLAKE2B 31a2ea3f0c16ad7342315a9f425ef7c4c59ed82938ab43c705e01a6d50c1d9ea059f8d91bb11ef92643ad1441fd0689a8459cb04277d8a4180fd5472b1f63a07 SHA512 be309c27dce3251cbf5991b8a76291fd2bfe74428d4c2c96792c43afd67fd47f776218b37343a8c007bb990ca84d463c464ef63c51805ffcc9486776cd396e1d
+AUX renpy-8.1.0-ignore_rpyc_errors.patch 810 BLAKE2B 3aaf2cfd788c736c0d78aafe71dc0f184531caf5a6da4c4e96d5bfc0a72e6eb460eafa3d11b9f7f921a6507b13fa83344f3b2795590823ea0f11f68825f46628 SHA512 dc541f8e4ec58cfa02e6011ee19bb5bbf7174a12707da1f36a6cfb25ad8cb756d32486d5cedbc6877626cf9fd9e8aff06d46b68135011425ef3dca3d864e9acc
+AUX renpy-8.1.3-system-path.patch 544 BLAKE2B 29ca59be9efebeacc960caa4a7039e81f28512c4e0c2bb9ee00a864951e6957f5c692608a6fe64da05781afec56fc25999a6e58d665671aac4710b32187e2e7c SHA512 7260f7e7075da7223b0320524789a19e9a07d079b96879b26068c497628c4182ca455438b28203e1d4e0185d79897734ecd63290a58cb265ea3367230bc4956c
+AUX renpy.1 4642 BLAKE2B 446100972a1cb82dd91a25bb03895bdf717f33d1ffa27497a1e71ec561a1cb3ef986962943d890e209231b788d141a5ab86fdbefbc01a8f1c760b998e1b99a46 SHA512 2727a6ff9675a2b82a979faf5d75e7b3b96915f4c7382d22bba35d74674e613f45d4e8437e24edb410aac45cd8d219cc68e118387e538aafb32b0c312443b066
+DIST renpy-8.1.3-source.tar.bz2 69220231 BLAKE2B fe9295da7081dda77c2a720138cdd63b744d40844ce5a0bb4164720cf34f828cbf25ac77e1aa57e95585ad6eab644cd0fff2a3a818e6b86482e589a28f40affa SHA512 22304cf8e7328c50ff897761ec0a504e8618d53484491f4196ad93015656dd08c2197c11adea83069682912a5b8d05d3223e3ad34fa68881abdad5f73e51884b
+EBUILD renpy-8.1.3.ebuild 2549 BLAKE2B d533aa48535e55e924744d54d04b40e2cc4db2296035a504b1ada9995155a12c373151ef27a5957a5e042616f39c69a7981e8e548222a67d4e0e14ac0715a1f6 SHA512 8f5eb2858cca0a395043e43e73dcb35301fb7ec095e28f7f9ffaf6ac8b231fe4b2c753b4f7c50db24e76bd5572d1214382da0f8e09dd7bdb914bca34ff394b0b
+MISC metadata.xml 1219 BLAKE2B ae72fe8342e3cf123a436e3ccaf33a107afb745d10d405f03e3d843be6c8ebce29d9dce8a7a74a0cb06dc3fa16a5e58ebcbae1c8e5aad8b09490aeb1ceb579e0 SHA512 06a1222ed2a751105c8c7ac2da2e754bbdf82fcd9c14f8f27f4991674cd44e3bb8acdf4a016e0c3598984d7d1944566870dac10e91bba9b5d40b7edce4a07158
diff --git a/games-engines/renpy/files/renpy-6.99.12.4-compat-infinite-loop.patch b/games-engines/renpy/files/renpy-6.99.12.4-compat-infinite-loop.patch
new file mode 100644
index 000000000000..81ed644363ac
--- /dev/null
+++ b/games-engines/renpy/files/renpy-6.99.12.4-compat-infinite-loop.patch
@@ -0,0 +1,44 @@
+https://github.com/renpy/renpy/pull/1216
+https://github.com/bircoph/renpy/commit/ff308191a190bf7c5c2118a31f3d8569a0904c04
+
+commit ff308191a190bf7c5c2118a31f3d8569a0904c04
+Author: Andrew Savchenko <bircoph@gmail.com>
+Date: Mon Jul 17 08:00:07 2017 +0300
+
+ Increase infinite loop hardcoded values
+
+ On many old hardware, e.g on my Atom netbook games hit this limit,
+ but otherwise work fine. Increasing the limit helps. People are
+ also reporting this issue in many cases (old laptops, stow tablets,
+ etc where games fail due to this issue and work otherwise):
+
+ https://translationprojectvisualnovels.blogspot.ru/2016/09/monster-girl-quest-android-15092016.html
+ https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=30521&start=90
+ https://steamcommunity.com/app/356530/discussions/0/365163686036650662/
+ (and many more, just google)
+
+index 00c7562..a7e361c 100644
+--- a/renpy/display/core.py
++++ b/renpy/display/core.py
+@@ -2845,7 +2845,7 @@ class Interface(object):
+
+ while rv is None:
+
+- renpy.execution.not_infinite_loop(10)
++ renpy.execution.not_infinite_loop(50)
+
+ # Check for a change in fullscreen preference.
+ if ((self.fullscreen != renpy.game.preferences.fullscreen) or
+diff --git a/renpy/main.py b/renpy/main.py
+index 6f14d77..960d2fd 100644
+--- a/renpy/main.py
++++ b/renpy/main.py
+@@ -318,7 +318,7 @@ def main():
+ game.contexts = [ renpy.execution.Context(False) ]
+ game.contexts[0].init_phase = True
+
+- renpy.execution.not_infinite_loop(60)
++ renpy.execution.not_infinite_loop(300)
+
+ # Load the script.
+ renpy.game.exception_info = 'While loading the script.'
diff --git a/games-engines/renpy/files/renpy-6.99.12.4-compat-style.patch b/games-engines/renpy/files/renpy-6.99.12.4-compat-style.patch
new file mode 100644
index 000000000000..2c514027ea23
--- /dev/null
+++ b/games-engines/renpy/files/renpy-6.99.12.4-compat-style.patch
@@ -0,0 +1,45 @@
+https://github.com/bircoph/renpy/commit/1d350d993d2b51df7880e92b48ed103e059ec385
+
+commit 1d350d993d2b51df7880e92b48ed103e059ec385
+Author: Andrew Savchenko <bircoph@gmail.com>
+Date: Sun Jul 16 17:07:27 2017 +0300
+
+ Fix compatibility problem With ElvenRelations-1.2:
+
+ When starting game:
+
+ Full traceback:
+ File "/home/andrew/src/_compat/styles.rpymc", line 22, in script
+ File "/usr/lib64/python2.7/site-packages/renpy699/renpy/ast.py", line 814, in execute
+ renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
+ File "/usr/lib64/python2.7/site-packages/renpy699/renpy/python.py", line 1719, in py_exec_bytecode
+ exec bytecode in globals, locals
+ File "renpy/common/_compat/styles.rpym", line 374, in <module>
+ style.selected_button = _SelectedCompat('button')
+ File "renpy/common/_compat/styles.rpym", line 347, in __init__
+ self.target = target
+ File "renpy/style.pyx", line 378, in renpy.style.StyleCore.__setattr__ (gen/renpy.style.c:6236)
+ raise Exception("Style property {} is not known.".format(name))
+ Exception: Style property target is not known.
+
+ "button*" properties are no longer present in RenPy, so relevant
+ code is removed.
+
+diff --git a/renpy/common/_compat/styles.rpym b/renpy/common/_compat/styles.rpym
+index d83eeb0..174f0b6 100644
+--- a/renpy/common/_compat/styles.rpym
++++ b/renpy/common/_compat/styles.rpym
+@@ -371,13 +371,6 @@ init python:
+ self.property_updates = [ ]
+
+
+- style.selected_button = _SelectedCompat('button')
+- style.selected_button_text = _SelectedCompat('button_text')
+- style.gm_nav_selected_button = _SelectedCompat('gm_nav_button')
+- style.gm_nav_selected_button_text = _SelectedCompat('gm_nav_button_text')
+- style.prefs_selected_button = _SelectedCompat('prefs_button')
+- style.prefs_selected_button_text = _SelectedCompat('prefs_button_text')
+-
+ def _apply_selected_compat():
+ for scs in _selected_compat:
+ scs.apply()
diff --git a/games-engines/renpy/files/renpy-8.1.0-ignore_rpyc_errors.patch b/games-engines/renpy/files/renpy-8.1.0-ignore_rpyc_errors.patch
new file mode 100644
index 000000000000..50c333ea4971
--- /dev/null
+++ b/games-engines/renpy/files/renpy-8.1.0-ignore_rpyc_errors.patch
@@ -0,0 +1,23 @@
+Better way would probably be to have renpy not even try to write to system paths in the first place.
+
+13: EACCES (no write permission)
+30: EROFS (read-only filesystem)
+
+diff --git a/renpy/script.py b/renpy/script.py
+index 3e5dae8..8f103c1 100644
+--- a/renpy/script.py
++++ b/renpy/script.py
+@@ -656,6 +656,10 @@ class Script(object):
+ rpydigest = hashlib.md5(fullf.read()).digest()
+
+ self.write_rpyc_md5(f, rpydigest)
++ except OSError as e:
++ if e.errno not in [13, 30]:
++ import traceback
++ traceback.print_exc()
+ except Exception:
+ import traceback
+ traceback.print_exc()
+--
+2.37.1
+
diff --git a/games-engines/renpy/files/renpy-8.1.3-system-path.patch b/games-engines/renpy/files/renpy-8.1.3-system-path.patch
new file mode 100644
index 000000000000..c3e3c9beccb8
--- /dev/null
+++ b/games-engines/renpy/files/renpy-8.1.3-system-path.patch
@@ -0,0 +1,19 @@
+--- a/renpy.py
++++ b/renpy.py
+@@ -30,6 +30,7 @@ from __future__ import print_function, absolute_import
+ import os
+ import sys
+ import warnings
++import sysconfig
+
+ # Functions to be customized by distributors. ################################
+
+@@ -209,7 +209,7 @@ def path_to_renpy_base():
+ Returns the absolute path to thew Ren'Py base directory.
+ """
+
+- renpy_base = os.path.dirname(os.path.abspath(__file__))
++ renpy_base = sysconfig.get_path('platlib')
+ renpy_base = os.path.abspath(renpy_base)
+
+ return renpy_base
diff --git a/games-engines/renpy/files/renpy.1 b/games-engines/renpy/files/renpy.1
new file mode 100644
index 000000000000..e8b7a2b61958
--- /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).
diff --git a/games-engines/renpy/metadata.xml b/games-engines/renpy/metadata.xml
new file mode 100644
index 000000000000..a3bdbf876916
--- /dev/null
+++ b/games-engines/renpy/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ Ren'Py is a free and cross-platform visual novel engine that
+ helps you use words,
+ pictures, and sounds to tell stories with the computer.
+ It`s easy and efficient script language makes it possible for
+ non-programmers to make visual novels,
+ while its Python support allows for complex simulation games.
+ </longdescription>
+ <use>
+ <flag name="development">Install IDE for game developers and an empty game template</flag>
+ </use>
+ <maintainer type="person" proxied="yes">
+ <email>contact@hacktivis.me</email>
+ <name>Haelwenn (lanodan) Monnier</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <maintainer status="active">
+ <email>pytom@bishoujo.us</email>
+ <name>Tom Rothamel</name>
+ </maintainer>
+ <changelog>http://www.renpy.org/latest.html</changelog>
+ <bugs-to>https://github.com/renpy/renpy/issues</bugs-to>
+ <doc>http://renpy.org/wiki/renpy/doc</doc>
+ <remote-id type="github">renpy/renpy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-engines/renpy/renpy-8.1.3.ebuild b/games-engines/renpy/renpy-8.1.3.ebuild
new file mode 100644
index 000000000000..394d8a02b1e8
--- /dev/null
+++ b/games-engines/renpy/renpy-8.1.3.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{10..11} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+inherit desktop gnome2-utils distutils-r1
+
+DESCRIPTION="Visual novel engine written in python"
+HOMEPAGE="https://www.renpy.org"
+SRC_URI="https://www.renpy.org/dl/${PV}/${P}-source.tar.bz2"
+S="${WORKDIR}/${P}-source"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="development doc examples"
+REQUIRED_USE="examples? ( development )"
+
+BDEPEND="
+ $(python_gen_cond_dep '<dev-python/cython-3[${PYTHON_USEDEP}]')
+ virtual/pkgconfig"
+DEPEND="
+ dev-libs/fribidi
+ $(python_gen_cond_dep '
+ >=dev-python/pygame_sdl2-8.1.1[${PYTHON_USEDEP}]
+ >=dev-lang/python-exec-0.3[${PYTHON_USEDEP}]
+ dev-python/ecdsa[${PYTHON_USEDEP}]
+ ')
+ media-libs/glew:0
+ media-libs/libpng:0
+ media-libs/libsdl2[video]
+ media-libs/freetype:2
+ sys-libs/zlib
+ media-video/ffmpeg:=
+"
+RDEPEND="${DEPEND}
+ !app-eselect/eselect-renpy"
+
+PATCHES=(
+ "${FILESDIR}/renpy-6.99.12.4-compat-style.patch"
+ "${FILESDIR}/renpy-6.99.12.4-compat-infinite-loop.patch"
+ "${FILESDIR}/renpy-8.1.0-ignore_rpyc_errors.patch"
+ "${FILESDIR}/renpy-8.1.3-system-path.patch"
+)
+
+python_prepare_all() {
+ einfo "Deleting precompiled python files"
+ find . -name '*.py[co]' -print -delete || die
+
+ 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
+
+ cd "${S}" || die
+ python_newscript renpy.py ${PN}
+
+ python_domodule renpy
+ if use development ; then
+ python_domodule launcher
+ fi
+ if use examples ; then
+ python_domodule the_question tutorial
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use development; then
+ newicon -s 32 launcher/game/images/logo32.png ${P}.png
+ make_desktop_entry ${PN} "Ren'Py ${PV}" ${P}
+ fi
+
+ if use doc; then
+ insinto "/usr/share/doc/${PF}/html"
+ doins -r doc/*
+ fi
+ newman "${FILESDIR}/${PN}.1" "${P}.1"
+}
+
+pkg_preinst() {
+ use development && gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ use development && gnome2_icon_cache_update
+
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ ver_test "${v}" -ge 7 && continue
+ einfo "Starting from ${PN}-7 slots are dropped."
+ einfo "RenPy natively supports compatibility with games made for older versions."
+ einfo "Report bugs upstream on such problems, usually they are easy to fix."
+ break
+ done
+}
+
+pkg_postrm() {
+ use development && gnome2_icon_cache_update
+}