From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id cJNKDKMD4F7/WgAA0tVLHw (envelope-from ) for ; Tue, 09 Jun 2020 21:48:19 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id +CwjCKMD4F6UDAAA1q6Kng (envelope-from ) for ; Tue, 09 Jun 2020 21:48:19 +0000 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 CCAED9401D0 for ; Tue, 9 Jun 2020 21:48:18 +0000 (UTC) Received: from localhost ([::1]:42572 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jim6T-0008Ed-PZ for larch@yhetil.org; Tue, 09 Jun 2020 17:48:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42400) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jim6E-00082e-Ax for guix-patches@gnu.org; Tue, 09 Jun 2020 17:48:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:49546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jim6E-0003pf-11 for guix-patches@gnu.org; Tue, 09 Jun 2020 17:48:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jim6D-0004qK-Vo for guix-patches@gnu.org; Tue, 09 Jun 2020 17:48:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41778] [PATCH 2/2] gnu: Add ppsspp. Resent-From: Leo Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 09 Jun 2020 21:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41778 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41778@debbugs.gnu.org Received: via spool by 41778-submit@debbugs.gnu.org id=B41778.159173925718572 (code B ref 41778); Tue, 09 Jun 2020 21:48:01 +0000 Received: (at 41778) by debbugs.gnu.org; 9 Jun 2020 21:47:37 +0000 Received: from localhost ([127.0.0.1]:32858 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jim5p-0004pT-0s for submit@debbugs.gnu.org; Tue, 09 Jun 2020 17:47:37 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:6767) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jim5n-0004pE-Ec for 41778@debbugs.gnu.org; Tue, 09 Jun 2020 17:47:36 -0400 Received: from localhost.localdomain (212-88-11-71.hdsl.highway.telekom.at [212.88.11.71]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 49hNyD5wXMz1DTk9 for <41778@debbugs.gnu.org>; Tue, 9 Jun 2020 23:47:32 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 49hNyD5wXMz1DTk9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1591739252; bh=/XRKo60TMqdXCBvZQj+OBPhzxu/LgO0JDyTG+TLCQdQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=uezR94lYhNt67H2N2NcIZsFLbaY8/1Z3HoIj4iqboiBoHaA3PGj6bP9ucQU757Stj sYh3hkcXCPX8yDsM+aczOwiac1TIZtvEGujnsyHzTHJorOZKj8gbajcV5V8HTO518u FUAPWzOESU7QncaU81WNT8wg0nd9eQntvPmD4zLA= From: Leo Prikler Date: Tue, 9 Jun 2020 23:47:20 +0200 Message-Id: <20200609214720.19041-2-leo.prikler@student.tugraz.at> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200609214720.19041-1-leo.prikler@student.tugraz.at> References: <20200609214720.19041-1-leo.prikler@student.tugraz.at> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) 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-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=tugraz.at header.s=mailrelay header.b=uezR94lY; dmarc=fail reason="SPF not aligned (relaxed)" header.from=student.tugraz.at (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 5.09 X-TUID: nV97axDOzX32 * gnu/packages/emulators.scm (ppsspp): New variable. --- gnu/packages/emulators.scm | 115 +++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 9798ac370e..2e11807325 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1622,3 +1622,118 @@ derived from Gens. Project goals include clean source code, combined features from various forks of Gens, and improved platform portability.") (supported-systems '("i686-linux" "x86_64-linux")) (license license:gpl2+))) + +(define-public ppsspp + (package + (name "ppsspp") + (version "1.9.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hrydgard/ppsspp.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0cbxrm7i4xymlglb2aqyiiys3wm6zvnrn5n0cw4fcxdvh196ivwm")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python))) + (inputs + `(;; TODO: find a way to add FFMPEG + ;; ("ffmpeg" ,ffmpeg) + ;; TODO: unbundle builds + ("armips-source" ,(package-source armips)) + ("glslang-source" ,(package-source glslang)) + ("spirv-cross-source" ,(package-source spirv-cross)) + + ("lang" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hrydgard/ppsspp-lang.git") + (commit "3a5eb3fcb4852cb28c9138e78492effa0c227253"))) + (sha256 + (base32 + "0cnv9g5l75dmdb0hq7xxbxl06z18p1621j41bggfqj1015kvq7jk")))) + ("tests" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hrydgard/pspautotests.git") + (commit "2970fbcc23c258ebc03bba922926003fe37555e5"))) + (sha256 + (base32 + "1c3lkjhknwmiyikrfjrghfxnkd2jp698c28s4kwv6qjwdj2nwc1i")))) + + ("glew" ,glew) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("sdl2" ,sdl2) + ("snappy" ,snappy) + ("zlib" ,zlib))) + (arguments + `(#:out-of-source? #f + #:configure-flags (list "-DUSE_FFMPEG=OFF" ; see TODO above + "-DUSE_DISCORD=OFF" + ;; for testing + "-DUNITTEST=ON" "-DHEADLESS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-external-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; TODO: unbundle builds + ;; not only should we not copy these sources in, + ;; we should also remove as much from ext/ as we can + (copy-recursively (assoc-ref inputs "armips-source") + "ext/armips") + (copy-recursively (assoc-ref inputs "glslang-source") + "ext/glslang") + (copy-recursively (assoc-ref inputs "spirv-cross-source") + "ext/SPIRV-Cross") + ;; some tests are externalised, so we add them here + (copy-recursively (assoc-ref inputs "tests") + "pspautotests") + ;; i18n is externalised, so we add it here + (copy-recursively (assoc-ref inputs "lang") + "assets/lang") + #t)) + (replace 'check + (lambda _ + (for-each + (lambda (t) (invoke "./unitTest" t)) + '("Arm64Emitter" "ArmEmitter" "X64Emitter" "VertexJit" "Asin" + "SinCos" "VFPUSinCos" "MathUtil" "Parsers" "Jit" + "MatrixTranspose" "ParseLBN" "QuickTexHash" "CLZ" "MemMap")) + (invoke "python3" "test.py" "-g") + #t)) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin/ppsspp (string-append out "/bin/ppsspp")) + (share (string-append out "/share/ppsspp"))) + (copy-recursively "icons/hicolor" + (string-append out "/share/icons/hicolor")) + (install-file "PPSSPPSDL" share) + (copy-recursively "assets" (string-append share "/assets")) + + (make-desktop-entry-file + (string-append out "/share/applications/ppsspp.desktop") + #:name "PPSSPP" + #:exec (string-append share "/PPSSPPSDL") + #:icon "ppsspp") + + (mkdir-p (string-append out "/bin")) + (with-output-to-file bin/ppsspp + (lambda () + (format #t "#!~a~%exec ~a/PPSSPPSDL \"$@\"" + (which "sh") share))) + (chmod bin/ppsspp #o755) + + #t)))))) + (home-page "https://www.ppsspp.org/") + (synopsis "PSP emulator") + (description + "PPSSPP is a \"high-level\" emulator simulating the PSP operating system.") + (license license:gpl2+))) -- 2.26.2