Subject: [PATCH v2 4/6] gnu: renpy: Update to 7.99.99-0-3e854bc.

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 17 Jun 2022 10:27:59 +0200

* gnu/packages/aux-files/renpy/renpy.in (__renpy_files, path_to_gamedir):
New procedures.
* gnu/packages/game-development.scm (python-renpy): Update to
7.99.99-0-3e854bc.
(renpy): Likewise.
[inputs]: Add python-pefile, python-requests and python-six.
---
Hi Maxim,

regarding the revision field, I don't plan on doing too many nightlies, given
that I went two weeks without trying to invoke the renpy binary.  For the future
reviewer who has to read through all of this again when version 8 hits, I think
not indenting the package description makes more sense (particularly as I
anticipate possible changes in the phases due to renpy build weirdness).

The other suggestions should be applied (sans G-Expressions which are in the
next patch).

Cheers

 gnu/packages/aux-files/renpy/renpy.in | 21 +++++++++++++++++++--
 gnu/packages/game-development.scm     | 19 ++++++++++++++-----
 2 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/aux-files/renpy/renpy.in b/gnu/packages/aux-files/renpy/renpy.in
index 914a735fa4..9115d9aee3 100644
--- a/gnu/packages/aux-files/renpy/renpy.in
+++ b/gnu/packages/aux-files/renpy/renpy.in
@@ -1,12 +1,29 @@
 #! @PYTHON@
 # -*- mode: python -*-
 
-from __future__ import print_function
-
+import glob
 import os
 import sys
 import warnings
 
+def __renpy_files(directory):
+    for pattern in ['*.rpa', '*.rpyc', '*.rpy']:
+        for file in glob.iglob(pattern, root_dir=directory):
+            yield file
+
+def path_to_gamedir(basedir, name):
+    candidates = [name, 'game', 'data', 'launcher/game']
+
+    if __renpy_files(basedir):
+        return basedir
+
+    for candidate in candidates:
+        gamedir = os.path.join(basedir, candidate)
+        if __renpy_files(gamedir):
+            return gamedir
+
+    return basedir
+
 def path_to_common(renpy_base):
     return renpy_base + "/common"
 
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index f69088324a..4377654f8f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -94,6 +94,7 @@ (define-module (gnu packages game-development)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages qt)
@@ -1255,16 +1256,21 @@ (define-public python-pygame-sdl2
 developed mainly for Ren'py.")
       (license (list license:lgpl2.1 license:zlib)))))
 
+;; Using nightly from 2022-06-16.
+;; Revert back to URLs once renpy 8 is released!
+(define %renpy-commit "3e854bc7cb1642ca18b061a0c6e349f168965c43")
 (define-public python-renpy
   (package
     (name "python-renpy")
-    (version "7.4.11")
+    (version (git-version "7.99.99" "0" %renpy-commit))
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://www.renpy.org/dl/" version
-                           "/renpy-" version "-source.tar.bz2"))
-       (sha256 (base32 "0zkhg2sd2hglm9dkansf4h8sq7lm7iqslzl763ambp4kyfdvd07q"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/renpy/renpy")
+             (commit %renpy-commit)))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "11g7hqhw4gbkx5ib2wsawrznmjbn8r9zkgf2sg39z56h96y8wfbn"))
        (modules '((guix build utils)))
        (patches
         (search-patches
@@ -1484,8 +1490,11 @@ (define* (install-renpy-game #:key output game name (renpy renpy)
     (inputs
      `(("bash-minimal" ,bash-minimal)
        ("renpy.in" ,(search-auxiliary-file "renpy/renpy.in"))
+       ("python-pefile" ,python-pefile)
+       ("python-requests" ,python-requests)
        ("python-renpy" ,python-renpy)
        ("python:tk" ,python "tk")
+       ("python-six" ,python-six)
        ("python" ,python) ; for ‘fix-commands’ and ‘wrap’
        ("xdg-utils" ,xdg-utils)))
     (propagated-inputs '())
-- 
2.36.1