* 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