[bug#78502,3/3] gnu: Add ring-racers.

Message ID 723b56f6e3470e083bceaec2d10e2c46c23ecaac.1747701725.git.wongandj@icloud.com
State New
Headers
Series gnu: Add ring-racers. |

Commit Message

Andrew Wong May 20, 2025, 12:45 a.m. UTC
* gnu/packages/games.scm (ring-racers): New variable.

Change-Id: Ib52dca1ad41d8f778db14857ad681d566c145952
---
 gnu/packages/games.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
  

Comments

Liliana Marie Prikler May 21, 2025, 5:03 a.m. UTC | #1
Am Montag, dem 19.05.2025 um 20:45 -0400 schrieb Andrew Wong:
> * gnu/packages/games.scm (ring-racers): New variable.
> 
> Change-Id: Ib52dca1ad41d8f778db14857ad681d566c145952
> ---
>  gnu/packages/games.scm | 62
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index d38cff05d6..c1f7bc2277 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -4939,6 +4939,68 @@ (define ring-racers-data
>       (description "This package contains data files for Ring
> Racers.")
>       (license license:gpl2+))))
>  
> +(define-public ring-racers
> +  (package
> +    (name "ring-racers")
> +    (version "2.3")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://git.do.srb2.org/KartKrew/RingRacers")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> "05lf799imbk0x3i2adaj0r84ck5yyrvzjvhs4k9dj7l4jg0x4sjz"))
> +       (modules '((guix build utils)))
> +       (snippet '(begin (with-directory-excursion "thirdparty"
> +                          (delete-file-recursively "glm")
> +                          (substitute* "CMakeLists.txt"
> +                            (("add_subdirectory\\(glm\\)")
> +                             "find_package(glm REQUIRED)")))
> +                        (with-directory-excursion "src"
> +                          (substitute* "CMakeLists.txt"
> +                            (("glm::glm") "glm")))))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:tests? #f
> +      #:configure-flags
> +      #~(list "-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
> +              "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
> +              "-DSRB2_CONFIG_DEV_BUILD=OFF"
> +              "-DCMAKE_BUILD_TYPE=RelWithDebInfo")
There is a #:build-type flag to do that last thing.  Why are we setting
the other flags?
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'install 'move-and-wrap-binary
> +            ;; Install executable to $out/bin.
> +            (lambda* (#:key inputs #:allow-other-keys)
> +              (with-directory-excursion #$output
> +                (mkdir "bin")
> +                (rename-file "ringracers" "bin/ringracers")
> +                (wrap-program "bin/ringracers"
> +                  `("RINGRACERSWADDIR" =
> +                    (,(assoc-ref inputs "ring-racers-data"))))))))))
> +    (inputs (list glm
> +                  libogg
> +                  libpng
> +                  libvorbis
> +                  libvpx
> +                  libyuv
> +                  ring-racers-data
> +                  sdl2
> +                  zlib
> +                  curl))
> +    (home-page "https://kartkrew.org")
> +    (synopsis "Technical kart racing game")
> +    (description
> +     "Dr. Robotnik’s Ring Racers is a technical kart racing game
> drawing
> +inspiration from ``anti-grav'' racers, fighting games, and
> traditional-style
> +kart racing.  Designed to minimize randomness and emphasize player
> expression,
> +Ring Racers about more than precise handling—you’ll need to master
> tense
> +combat, resource management, and taking risks under pressure.")
> +    (license license:gpl2+)))
Less ad-speak would be nice, but we definitely should fix the second
sentence, which at least I myself can't parse.

Cheers
  
Andrew Wong May 22, 2025, 4:06 a.m. UTC | #2
On 5/21/25 1:03a, Liliana Marie Prikler wrote:>> +      #~(list 
"-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
>> +              "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
>> +              "-DSRB2_CONFIG_DEV_BUILD=OFF"
>> +              "-DCMAKE_BUILD_TYPE=RelWithDebInfo")
> There is a #:build-type flag to do that last thing.  Why are we setting
> the other flags?

I wrote this part of the definition a few months ago, but it seems like 
I was copying the flags set for a release version of the package as 
defined in the repository's CMakePresets.json[1]. On review, it appears 
the last two settings are redundant with Guix and the package's 
defaults, so I'll remove them next version.

>> +     "Dr. Robotnik’s Ring Racers is a technical kart racing game
>> drawing
>> +inspiration from ``anti-grav'' racers, fighting games, and
>> traditional-style
>> +kart racing.  Designed to minimize randomness and emphasize player
>> expression,
>> +Ring Racers about more than precise handling—you’ll need to master
>> tense
>> +combat, resource management, and taking risks under pressure.")
>> +    (license license:gpl2+)))
> Less ad-speak would be nice, but we definitely should fix the second
> sentence, which at least I myself can't parse.

Indeed. I'll revise it.

[1] https://git.srb2.org/KartKrew/RingRacers/-/blob/master/CMakePresets.json
  

Patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index d38cff05d6..c1f7bc2277 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4939,6 +4939,68 @@  (define ring-racers-data
      (description "This package contains data files for Ring Racers.")
      (license license:gpl2+))))
 
+(define-public ring-racers
+  (package
+    (name "ring-racers")
+    (version "2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.do.srb2.org/KartKrew/RingRacers")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05lf799imbk0x3i2adaj0r84ck5yyrvzjvhs4k9dj7l4jg0x4sjz"))
+       (modules '((guix build utils)))
+       (snippet '(begin (with-directory-excursion "thirdparty"
+                          (delete-file-recursively "glm")
+                          (substitute* "CMakeLists.txt"
+                            (("add_subdirectory\\(glm\\)")
+                             "find_package(glm REQUIRED)")))
+                        (with-directory-excursion "src"
+                          (substitute* "CMakeLists.txt"
+                            (("glm::glm") "glm")))))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f
+      #:configure-flags
+      #~(list "-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
+              "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
+              "-DSRB2_CONFIG_DEV_BUILD=OFF"
+              "-DCMAKE_BUILD_TYPE=RelWithDebInfo")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'move-and-wrap-binary
+            ;; Install executable to $out/bin.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (with-directory-excursion #$output
+                (mkdir "bin")
+                (rename-file "ringracers" "bin/ringracers")
+                (wrap-program "bin/ringracers"
+                  `("RINGRACERSWADDIR" =
+                    (,(assoc-ref inputs "ring-racers-data"))))))))))
+    (inputs (list glm
+                  libogg
+                  libpng
+                  libvorbis
+                  libvpx
+                  libyuv
+                  ring-racers-data
+                  sdl2
+                  zlib
+                  curl))
+    (home-page "https://kartkrew.org")
+    (synopsis "Technical kart racing game")
+    (description
+     "Dr. Robotnik’s Ring Racers is a technical kart racing game drawing
+inspiration from ``anti-grav'' racers, fighting games, and traditional-style
+kart racing.  Designed to minimize randomness and emphasize player expression,
+Ring Racers about more than precise handling—you’ll need to master tense
+combat, resource management, and taking risks under pressure.")
+    (license license:gpl2+)))
+
 (define-public unknown-horizons
   (package
     (name "unknown-horizons")