From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id cFF9L2WIgGIXeAEAbAwnHQ (envelope-from ) for ; Sun, 15 May 2022 06:58:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 8FpxL2WIgGIShwAA9RJhRA (envelope-from ) for ; Sun, 15 May 2022 06:58:13 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3FF0B1AEF9 for ; Sun, 15 May 2022 06:58:13 +0200 (CEST) Received: from localhost ([::1]:57192 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nq6KY-0001YP-9W for larch@yhetil.org; Sun, 15 May 2022 00:58:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43432) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nq6IV-0000Ts-GL for guix-patches@gnu.org; Sun, 15 May 2022 00:56:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:54366) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nq6IV-0006aI-7u for guix-patches@gnu.org; Sun, 15 May 2022 00:56:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nq6IV-0003Z7-7o for guix-patches@gnu.org; Sun, 15 May 2022 00:56:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#55424] [PATCH 081/602] gnu: renpy: Build with Python 3. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 15 May 2022 04:56:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 55424 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 55424@debbugs.gnu.org Cc: Maxim Cournoyer Received: via spool by 55424-submit@debbugs.gnu.org id=B55424.165259051713255 (code B ref 55424); Sun, 15 May 2022 04:56:03 +0000 Received: (at 55424) by debbugs.gnu.org; 15 May 2022 04:55:17 +0000 Received: from localhost ([127.0.0.1]:48153 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nq6Hd-0003RL-2g for submit@debbugs.gnu.org; Sun, 15 May 2022 00:55:17 -0400 Received: from mail-qv1-f47.google.com ([209.85.219.47]:38669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nq6Hb-0003PT-44 for 55424@debbugs.gnu.org; Sun, 15 May 2022 00:55:07 -0400 Received: by mail-qv1-f47.google.com with SMTP id n10so9883867qvi.5 for <55424@debbugs.gnu.org>; Sat, 14 May 2022 21:55:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7c3f4F9JXtD7QCxK3oYR1z3X5bnl37koui24Jk0cghg=; b=CloQWCeq8NvTtZp1u7C1tZS841WUjhkldn5vcdGh5y8lyfbi6KuMmL3X59jz8cYQSM mwmup1cFi6ui2AHS2ldvJKCBsAunlBj/aP+RYLPjOSWQ+zGWpC5qHCdZGQ075zqTOy+j ID8pH6ePSwojdfsMOgvHUjotUpW0xyfzp5aFooNHCb8/7V1NWXMlGgqHnOOXtbIc8UkQ 7MYv9F/lCCcz3Ww9viUMh1ahxZodbbScQcaWaw17dV911QY4jGido0wF+dtZMGOVJLQv q6kPnQnDKyJaeX2PGdo8LLzUpDLaz5IqFxlEqdGQ4WBZBgWckWW5kf7llL4S1C6m3Yqc swYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7c3f4F9JXtD7QCxK3oYR1z3X5bnl37koui24Jk0cghg=; b=rsweOnYlVLywkWga1Gv7jtP6OhsWiwIr/d1871l3kNp+Fd8d1v0NoIg3tWhARGMl0F EqRI+DHZ3AjzA9E8Max7rDtvRsHnf4r5JyeVqstEgRcqzBRu9uvIKFSyMZCOFQe3q2jC 0gdJTA7gN3K/haPTfnMgC+kGS/xk+DKIP0xhJItFW+f5hLr0WcIIHKzWlb78NC2qDG6G nFj1pgJCNjwQEMxi6J3rw/RRjLBd64cD8nNzzgJtkp3wUur8aJLUVNBTKJjeCsLFR9Zg HWqhxiOkDTVY1kRKsH+ieA6vGslDTpwvSEx/YVDLI/MPcxS1liEDNTLNaVERmwi+GaQ6 5TBg== X-Gm-Message-State: AOAM531olbIc5mk/z3DTLYFpujBLnsJ88GDtiF7lnRuzAIFZPEscwugm XVHaOTbeO+cqQC5mGLmTdogiQ4sH6QALmg== X-Google-Smtp-Source: ABdhPJwziDe8cM+jAlVKD8FDy4LHe1OdWcYnZkqxbqEyx3zUozENTyiCrq/NwUftaAa5zxhwwxSJyw== X-Received: by 2002:a0c:dc91:0:b0:461:cab2:8630 with SMTP id n17-20020a0cdc91000000b00461cab28630mr429563qvk.79.1652590070680; Sat, 14 May 2022 21:47:50 -0700 (PDT) Received: from localhost.localdomain (dsl-149-239.b2b2c.ca. [66.158.149.239]) by smtp.gmail.com with ESMTPSA id 2-20020ac82082000000b002f39b99f672sm4287690qtd.12.2022.05.14.21.47.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 May 2022 21:47:50 -0700 (PDT) From: Maxim Cournoyer Date: Sun, 15 May 2022 00:37:48 -0400 Message-Id: <20220515044629.6843-81-maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220515044629.6843-1-maxim.cournoyer@gmail.com> References: <20220515044629.6843-1-maxim.cournoyer@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1652590693; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=7c3f4F9JXtD7QCxK3oYR1z3X5bnl37koui24Jk0cghg=; b=metY2l4KJApT19I6j2KX38WSLQ71x/f9W6F2OZ1hHrhkHYdYX+uILMPb8WZTTDgtOKPnyC 8gftjjga/dwnlN5wXkwpgnWowssFjdV04DV+nAKSaDtAnB74DSxQkfppSruc2Ij8eGup/d GjkTu3a6bO8hsGHqTP1hjHtzLMpSguOiTmZS3raErzUZ1+KP7o7OalSppSLZhMKjwaDyw4 68ZE4GChDMoNHiCVd5lLN423z93z0EcR8+xT9z015t1xkuWsCINO5DafaNFlDQdajph4uI tGbtdpQoJFVar3jaXVhlCLtizhusvxTCe1cDsYQiwtmq+RY2lgqvnECjucPoAQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1652590693; a=rsa-sha256; cv=none; b=XyBwliMYZDGFk1ouXr75M8QZZ+d9G5QIOYUYnIyOZaiBtIwnvQtIZffum9YZLJneEyaZE+ Uzh4BpJ/nCufft8p5j44D14PLL/THfMHF4CW7LizuzZG/IzC+xF3SZrSRNHRq6SWB9e/Bb LKpe+8LyqB4VFwor+X+o4WyHJKTsxo9ze/xyBDZ3FKyRFnYjxhqTxxJztFR4zZjhFAUNbR bFl7jDFWEGnb8LQdNEfo64Yi3zJ+wPcouqflBov1vnd7cFpTze/G32tw3y62Li30VzwqTT DKDI/i/Pxj2vjaa8cfHnsQwpHEZgE4PGtAmkcQ1fhp6PbuwRQbbPS4v0SxTFdg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=CloQWCeq; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 5.17 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=CloQWCeq; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 3FF0B1AEF9 X-Spam-Score: 5.17 X-Migadu-Scanner: scn0.migadu.com X-TUID: Q5jd5+iiCbEh * gnu/packages/game-development.scm (renpy)[python]: Delete argument. [phases]: Delete trailing #t. [propagated-inputs]: Update the inputs to their Python 3 counterparts. [native-inputs]: Likewise. --- gnu/packages/game-development.scm | 197 ++---------------------------- 1 file changed, 10 insertions(+), 187 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d8725e837c..961b396ea7 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1263,9 +1263,9 @@ (define-public python-pygame-sdl2 (define-public python2-pygame-sdl2 (package-with-python2 python-pygame-sdl2)) -(define-public python2-renpy +(define-public renpy (package - (name "python2-renpy") + (name "renpy") (version "7.4.11") (source (origin @@ -1284,8 +1284,7 @@ (define-public python2-renpy #t)))) (build-system python-build-system) (arguments - `(#:tests? #f ; Ren'py doesn't seem to package tests - #:python ,python-2 + `(#:tests? #f ; Ren'py doesn't seem to package tests #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-commands @@ -1293,8 +1292,7 @@ (define-public python2-renpy (substitute* "renpy/editor.py" (("xdg-open") (string-append (assoc-ref inputs "xdg-utils") - "/bin/xdg-open"))) - #t)) + "/bin/xdg-open"))))) (add-after 'unpack 'fix-include-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "module/setup.py" @@ -1305,8 +1303,7 @@ (define-public python2-renpy (setenv "RENPY_CYTHON" (search-input-file (or native-inputs inputs) "/bin/cython")) - (setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":")) - #t)) + (setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":")))) (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) ;; The "module" subdirectory contains a python (really cython) @@ -1316,8 +1313,7 @@ (define-public python2-renpy (apply (assoc-ref %standard-phases 'build) args)) ;; The above only builds the cython modules, but nothing else, ;; so we do that here. - (invoke "python" "-m" "compileall" "renpy") - #t)) + (invoke "python" "-m" "compileall" "renpy"))) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) ;; Again, we have to wrap the module installation. @@ -1332,8 +1328,9 @@ (define-public python2-renpy (apply (assoc-ref %standard-phases 'install) args)) (copy-recursively "renpy" (string-append out site "/renpy")) - (delete-file-recursively (string-append out site "/renpy/common"))) - #t))))) + (delete-file-recursively (string-append out site + "/renpy/common")))))))) + (native-inputs (list python-cython)) (inputs (list ffmpeg freetype @@ -1342,11 +1339,7 @@ (define-public python2-renpy libpng (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)) xdg-utils)) - (propagated-inputs - `(("python2-future" ,python2-future) - ("python2-pygame" ,python2-pygame-sdl2))) - (native-inputs - (list python2-cython)) + (propagated-inputs (list python-future python-pygame-sdl2)) (home-page "https://www.renpy.org/") (synopsis "Ren'py python module") (description "This package contains the shared libraries and Python modules @@ -1355,176 +1348,6 @@ (define-public python2-renpy are only used to bootstrap it.") (license license:expat))) -(define-public renpy - (package - (inherit python2-renpy) - (name "renpy") - (build-system python-build-system) - (arguments - `(#:tests? #f ; see python2-renpy - #:python ,python-2 - #:modules ((srfi srfi-1) - (guix build python-build-system) - (guix build utils)) - #:imported-modules ((srfi srfi-1) ,@%python-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-commands - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "launcher/game/choose_directory.rpy" - (("/usr/bin/python") - (string-append (assoc-ref inputs "python2") - "/bin/python2"))) - (substitute* "launcher/game/front_page.rpy" - (("xdg-open") - (string-append (assoc-ref inputs "xdg-utils") - "/bin/xdg-open"))) - (substitute* "launcher/game/project.rpy" - (("cmd = \\[ executable, \"-EO\", sys.argv\\[0\\] \\]") - (string-append "cmd = [ \"" (assoc-ref outputs "out") - "/bin/renpy\" ]")) - ;; Projects are still created in the usual style, so we need - ;; to adjust the path. - (("cmd.append\\(self.path\\)") - "cmd.append(self.path + \"/game\")")) - #t)) - (add-after 'unpack 'drop-game-from-paths - (lambda _ - (substitute* (list "launcher/game/gui7.rpy" - "launcher/game/gui7/images.py") - ((", \"game\",") ",")) - #t)) - (add-before 'build 'start-xserver - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (let ((xorg-server (assoc-ref (or native-inputs inputs) - "xorg-server"))) - (setenv "HOME" (getcwd)) - (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) - (setenv "DISPLAY" ":1") - #t))) - (replace 'build - (lambda _ - (invoke "python" "renpy.py" "launcher" "quit") - (invoke "python" "renpy.py" "the_question" "quit") - (invoke "python" "renpy.py" "tutorial" "quit") - #t)) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Here we install our custom renpy program. - ;; After finishing this step, "out" will have the following: - ;; |-- bin/renpy - ;; `-- share/renpy ; i.e. path_to_renpy_base() - ;; |-- common - ;; `-- gui - ;; - ;; Note that common shares the source files that would be installed - ;; by python2-renpy (which are instead deleted from that package), - ;; but also contains their byte-compiled versions. - ;; On other systems, renpy_base would point to site-packages or - ;; even somewhere in /opt. - ;; The former approach is not as straightforward as it seems - ;; -- it causes renpy to load files twice for some weird reason -- - ;; and the latter is impossible on Guix. Hence the detour through - ;; share/renpy and the custom renpy program. - ;; - ;; As a convention, other games should be installed as - ;; subdirectories of share/renpy in their respective outputs as - ;; well. This differs from the traditional layout, which is - ;; roughly the following: - ;; `-- Super Awesome Game - ;; |-- game ; <- the folder we actually want - ;; |-- lib ; compiled renpy module and dependencies - ;; |-- renpy ; yet another copy of Ren'py's code - ;; | |-- common ; the common folder from above - ;; | `-- ... ; Python code (source + compiled) - ;; |-- Super Awesome Game.py - ;; `-- Super Awesome Game.sh - (let* ((out (assoc-ref outputs "out")) - (bin/renpy (string-append out "/bin/renpy"))) - (copy-recursively "renpy/common" - (string-append out "/share/renpy/common")) - (copy-recursively "gui" - (string-append out "/share/renpy/gui")) - - (mkdir-p (string-append out "/bin")) - (copy-file (assoc-ref inputs "renpy.in") bin/renpy) - (substitute* bin/renpy - (("@PYTHON@") (search-input-file inputs "bin/python2")) - (("@RENPY_BASE@") (string-append out "/share/renpy"))) - (chmod bin/renpy #o755)))) - - (add-after 'install 'install-games - (lambda* (#:key outputs #:allow-other-keys) - (define renpy (assoc-ref outputs "out")) - ;; TODO: We should offer a renpy-build-system to make the - ;; installation of Ren'py games easier. - (define* (install-renpy-game #:key output game name (renpy renpy) - #:allow-other-keys) - (let* ((name (or name (basename game))) - (launcher (string-append output "/bin/renpy-" name)) - (share (string-append output "/share/renpy/" name))) - (copy-recursively (string-append game "/game") share) - (mkdir-p (string-append output "/bin")) - (with-output-to-file launcher - (lambda () - (format #t - "#!~a~%~a ~a \"$@\"" - (which "bash") - (string-append renpy "/bin/renpy") - share))) - (chmod launcher #o755))) - - (install-renpy-game #:output (assoc-ref outputs "out") - #:game "launcher") - - (install-renpy-game #:output (assoc-ref outputs "the-question") - #:game "the_question" - #:name "the-question") - - (install-renpy-game #:output (assoc-ref outputs "tutorial") - #:game "tutorial") - #t)) - (replace 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (site (string-append "/lib/python" - (python-version - (assoc-ref inputs "python")) - "/site-packages"))) - (wrap-program (string-append out "/bin/renpy") - `("GUIX_PYTHONPATH" = - (,@(delete-duplicates - (map - (lambda (store-path) - (string-append store-path site)) - (cons (assoc-ref outputs "out") - (map cdr - (filter - (lambda (input) - (string-prefix? "python2" (car input))) - inputs)))))))) - #t)))))) - (inputs - `(("renpy.in" ,(search-auxiliary-file "renpy/renpy.in")) - ("python2-renpy" ,python2-renpy) - ("python2-tkinter" ,python-2 "tk") - ("python2" ,python-2) ; for ‘fix-commands’ and ‘wrap’ - ("xdg-utils" ,xdg-utils))) - (propagated-inputs '()) - (native-inputs - (list xorg-server-for-tests)) - (outputs - (list "out" "tutorial" "the-question")) - (home-page "https://www.renpy.org/") - (synopsis "Visual Novel Engine") - (description "Ren'Py is a visual novel engine 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.") - (license license:expat))) - (define-public python-pyxel (package (name "python-pyxel") -- 2.36.0