From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:45265) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iLYGC-00080f-4g for guix-patches@gnu.org; Fri, 18 Oct 2019 15:50:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iLYGA-00028u-Ms for guix-patches@gnu.org; Fri, 18 Oct 2019 15:50:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42771) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iLYGA-00028m-Jd for guix-patches@gnu.org; Fri, 18 Oct 2019 15:50:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iLYGA-00084g-EI for guix-patches@gnu.org; Fri, 18 Oct 2019 15:50:02 -0400 Subject: [bug#37714] Add renpy package Resent-Message-ID: From: Nicolas Goaziou References: Date: Fri, 18 Oct 2019 21:49:41 +0200 In-Reply-To: (Leo Prikler's message of "Sat, 12 Oct 2019 09:20:56 +0200") Message-ID: <87d0et96lm.fsf@nicolasgoaziou.fr> MIME-Version: 1.0 Content-Type: text/plain List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Leo Prikler Cc: 37714@debbugs.gnu.org Hello, Leo Prikler writes: > This patch adds the Ren'py Visual Novel engine split into four > outputs: Great! It was on my TODO list, too. > - "out": contains the engine itself. Since Guix differs strongly from > the platforms Ren'py usually runs on, we ship our own Ren'py main file. > - "launcher": The Ren'py launcher, that people would normally expect > when invoking renpy -- it does not seem very usable in Guix, though. What do you mean? > * gnu/packages/game-development: (python2-pygame-for-renpy): New procedure. > (python2-renpy): New variable. New variable for both in enough, I think. > +(define (python2-pygame-for-renpy version hash) > + (package > + (inherit python2-pygame) > + (name "python2-pygame-for-renpy") > + (version version) > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/renpy/pygame_sdl2.git") > + (commit (string-append "renpy-" version)))) Upstream provides a tarball for that: https://www.renpy.org/dl/7.3.5/pygame_sdl2-2.1.0-for-renpy-7.3.5.tar.gz I think it is preferable using it than pointing to Github. > + (sha256 > + (base32 > + hash)) Nitpick: At least bash32 and hash could go on the same line. > + (home-page "http://www.renpy.org/") > + (synopsis "Reimplementation of the Pygame API using SDL2") The description field is missing. Could you add one? > +(define-public python2-renpy "python2" prefix is for libraries. I think this one can be called "renpy". > + (package > + (name "python2-renpy") > + (version "7.3.4.596") I noticed 7.3.5 is out. Could you update it? > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/renpy/renpy.git") > + (commit version))) As above, I suggest to use tarball from main site: https://www.renpy.org/dl/7.3.5/renpy-7.3.5-source.tar.bz2 > + (replace 'build > + (lambda args > + (apply > + (lambda* (build-root #:key inputs outputs #:allow-other-keys) > + (chdir "module") > + (apply (assoc-ref %standard-phases 'build) args) > + (chdir build-root) > + (delete-file "renpy/__init__.pyc") > + (invoke "python" "-m" "compileall" "renpy")) > + (getcwd) args) > + #t)) This is a bit confusing because you're not really replacing `build' phase, but wrapping stuff around it. I think it may be better to add a `before-build' and an `after-build' phases, adding comments, if possible, to explain why they are needed. > + (replace 'install > + (lambda args > + (apply > + (lambda* (build-root #:key inputs outputs #:allow-other-keys) > + (let* ((pygame (assoc-ref inputs "python2-pygame")) > + (out (assoc-ref outputs "out")) > + (site (string-append "/lib/python" > + ,(version-major+minor > + (package-version python-2)) > + "/site-packages"))) > + (chdir "module") > + (apply (assoc-ref %standard-phases 'install) args) > + (chdir build-root) > + (copy-recursively "renpy" > + (string-append out site "/renpy")))) > + (getcwd) args) > + #t)) See above. It might be more readable to use one phase before, and one after. > + (inputs > + `(("ffmpeg" ,ffmpeg) > + ("freetype" ,freetype) > + ("glew" ,glew) > + ("libpng" ,libpng) > + ("sdl-union" > + ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))) > + ("python" ,python))) So it needs both Python 2 and Python 3? Could you order alphabetically the inputs? > + (outputs > + (list "out" "launcher" "tutorial" "the-question")) > + (propagated-inputs > + `(("python2-pygame" > + ,(python2-pygame-for-renpy > + version > + "1gwbqkyv7763813x7nmzb3nz4r8673d33ggsp6lgp1d640rimlpb")))) Could you see if there's a way to not propagate this input? What happens if it is a simple input? > + (native-inputs > + `(("python2-cython" ,python2-cython))) > + (home-page "http://www.renpy.org/") > + (synopsis "The Ren'Py Visual Novel Engine -- libary files") > + (description "Ren'Py is a visual novel engine -- used by thousands 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 > +Python scripting is enough for complex simulation games.") You need to add two spaces at the end of sentences. > + (license license:x11))) I this should be license:expat. Could you send an updated patch? Thank you for the work. Regards, -- Nicolas Goaziou