Subject: [bug#69610] [PATCH v3 3/3] gnu: Add sosage.

From: Adam Faiz <[email-masked]>
Date: Fri, 14 Feb 2025 16:27:33 +0800

>From 6bc9e728c3dea4618baf1a247dbe0018f4949d6c Mon Sep 17 00:00:00 2001
Message-ID: <6[email-masked]>
In-Reply-To: <2[email-masked]>
References: <2[email-masked]>
From: AwesomeAdam54321 <[email-masked]>
Date: Thu, 7 Mar 2024 12:59:28 +0800
Subject: [PATCH v3 3/3] gnu: Add sosage.

* gnu/packages/games.scm (sosage): New variable.
---
 gnu/packages/games.scm | 57 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 144168fc1c..231aa12133 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3283,6 +3283,63 @@ (define-public superfluous-returnz-data
     (home-page "https://studios.ptilouk.net/superfluous-returnz/")
     (license license:cc-by-sa4.0)))
 
+(define-public sosage
+  (package
+    (name "sosage")
+    (version "1.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://framagit.org/Gee/sosage")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xgk3r18aj9xvrrqr9qdrr6800hkv6lhfcnmm5z21g8kbfh9x4jm"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (for-each delete-file (find-files "." "\\.jar$"))
+
+            ;; The files in 'Third_party' aren't actually bundled libraries,
+            ;; but are wrappers around the system libraries.
+            ;; Move them to the 'Utils' directory, to make that clear.
+            (for-each (lambda (file)
+                        (install-file file "include/Sosage/Utils"))
+                      (find-files "include/Sosage/Third_party" "\\.h$"))
+            (for-each (lambda (file)
+                        (install-file file "src/Sosage/Utils"))
+                      (find-files "src/Sosage/Third_party" "\\.cpp$"))
+            (for-each delete-file-recursively '("include/Sosage/Third_party"
+                                                "src/Sosage/Third_party"))
+            (substitute* (find-files ".")
+              (("Third_party") "Utils"))))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f ; no tests
+           #:configure-flags
+           #~(list
+              (string-append "-DSOSAGE_DATA_FOLDER="
+                             #$(this-package-input "superfluous-returnz-data")))))
+    (inputs
+     (list libyaml
+           lz4
+           sdl2
+           sdl2-mixer-x
+           sdl2-ttf
+           superfluous-returnz-data))
+    (synopsis "Superfluous Returnz")
+    (description
+     "The action takes place in Fochougny, a very quiet French village
+where the billionaire Harpagon Lonion lives.
+He regularly dresses up as Superfluous, a very useless superhero in such a
+peaceful countryside.
+
+Helped by his assistant Sophie, he will try to put his hands on the mysterious
+apple thief who terrorizes the orchards of Fochougny.")
+    (home-page "https://studios.ptilouk.net/superfluous-returnz/")
+    (license license:expat)))
+
 (define-public superstarfighter
   (package
     (name "superstarfighter")
-- 
2.46.0