diff mbox series

[bug#40289] games.scm: add "neverball" and "neverputt" (bundled together)

Message ID o0t5FuTYIUajXnDF07DTNHMlfSWXn3ZhehQ8bpfWwdNmDTVA8ZuaCkBJuririw5cnoTTXYS92cP7YeNnq1-PGBe-JWLQN7iZ2X-AmUWwqVo=@protonmail.com
State Accepted
Headers show
Series [bug#40289] games.scm: add "neverball" and "neverputt" (bundled together) | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

ashish.is--- via Guix-patches" via March 28, 2020, 5:37 p.m. UTC
gnu/packages/games.scm:
  Added:
    *  a game neverball and it's "addon", neverputt.
    *  the #:use-module "copy-build-system".

Sent with [ProtonMail](https://protonmail.com) Secure Email.

Comments

Nicolas Goaziou March 30, 2020, 12:31 p.m. UTC | #1
Hello,

Vitaliy Shatrov via Guix-patches via <guix-patches@gnu.org> writes:

> gnu/packages/games.scm:
>   Added:
>     *  a game neverball and it's "addon", neverputt.
>     *  the #:use-module "copy-build-system".

Thank you! Somme comments follow

> Subject: [PATCH] games.scm:  add "neverball" and "neverputt" (bundled
>  together).
>
> gnu/packages/games.scm:
>   Added:
>     *  a game neverball and it's "addon", neverputt.
>     *  the #:use-module "copy-build-system".

The commit message should be

    gnu: Add neverball

    * gnu/packages/games.scm (neverball): New variable.

That's it.
> +      (source (origin

Nitpick: I suggest to move `origin' on the line below `source'.

> +                 ;; Debian doesn't strip it, though.  i'm dummy
> +                 (delete-file-recursively "data/ball/octocat"))

Usually, we would delete it in a snippet so "guix build -S neverball"
returns source without the problematic part. Could you do it?

> +           (add-after 'install 'install-icons

Could this be moved within the install plan?

> +      (description
> +       "Also included is Neverputt, which is a 3D miniature golf
> game.

The first sentence should be complete.

> +In the grand tradition of Marble Madness and Super Monkey Ball,
> +Neverball has you guide a rolling ball through dangerous territory.
> +Balance on narrow bridges, navigate mazes, ride moving platforms, and
> +dodge pushers and shovers to get to the goal.  Race against the clock to
> +collect coins to earn extra balls.") ;; mouse on sway cause crash

The last comment seems out of place. This may need to be reported
upstream instead.

Also, note that end of line comments are expected to start with a single
semicolon. Double semicolon comments start at the beginning of the line
instead.

Regards,
diff mbox series

Patch

From c86a0010584bd4bb08b5b17293654a2797479b1f Mon Sep 17 00:00:00 2001
From: Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
Date: Sat, 28 Mar 2020 23:49:31 +0700
Subject: [PATCH] games.scm:  add "neverball" and "neverputt" (bundled
 together).

gnu/packages/games.scm:
  Added:
    *  a game neverball and it's "addon", neverputt.
    *  the #:use-module "copy-build-system".
---
 gnu/packages/games.scm | 97 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 42f2230482..8bf12feab3 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -172,6 +172,7 @@ 
   #:use-module (gnu packages xml)
   #:use-module (gnu packages messaging)
   #:use-module (gnu packages networking)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
@@ -10352,3 +10353,99 @@  to conquer opponents by defeating them in war (with troops or machines),
 capturing their buildings with spies, or offering opponents money for their
 kingdom.")
     (license license:gpl2+)))
+
+(define-public neverball
+  ;; git-version is 6-years younger than latest release
+  (let ((commit "760a25d32a5fb0661b99426d4ddcb9ac9f3d1644")
+        (revision "1"))
+    (package
+      (name "neverball")
+      (version (git-version "1.6.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Neverball/neverball.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0bwh67df3lyf33bv710y25l3frjdd34j9b7gsjadwxviz6r1vpj5"))
+                (file-name (git-file-name name version))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:install-plan
+         '(("neverball" "bin/")
+           ("neverputt" "bin/")
+           ("mapc"      "bin/")
+           ("data"   "share/games/neverball/") ;; Octocat seem to be non-free
+           ("locale" "share/")
+           ("dist/"   "share/games/neverball" #:include ("neverball_replay.png"
+                                                         "neverlogos.svg"
+                                                         "svg readme.txt"))
+           ;; https://gitlab.com/xonotic/netradiant
+           ;;("NeverballPack" "share/games/neverball/")
+           ("dist/"   "share/applications" #:include ("neverball.desktop"
+                                                      "neverputt.desktop"))
+           ("dist/" "share/man/man1" #:include ("mapc.1"))
+           ("dist/" "share/man/man6" #:include ("neverball.6"
+                                                "neverputt.6"))
+           ("doc/"      "share/doc/neverball")
+           ("README.md" "share/doc/neverball/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'build
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (sdl (assoc-ref inputs "sdl")))
+                 (invoke "make" "-j" (number->string (parallel-job-count))
+                         "--environment-overrides"
+                         "CC=gcc" "BUILD=release"
+                         (string-append "DATADIR=" out "/share/games/neverball/data")
+                         (string-append "LOCALEDIR=" out "/share/locale")
+                         (string-append "SDL_CPPFLAGS=-I" sdl "/include/SDL2/"))
+                 ;; Debian doesn't strip it, though.  i'm dummy
+                 (delete-file-recursively "data/ball/octocat"))
+               #t))
+           (add-after 'install 'fix-some-broken-fonts
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out")))
+                 (wrap-program (string-append out "/bin/neverball")
+                   `("LANG" = ("en_US.utf8")))
+                 (wrap-program (string-append out "/bin/neverputt")
+                   `("LANG" = ("en_US.utf8"))))
+               #t))
+           (add-after 'install 'install-icons
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out")))
+                 (with-directory-excursion "dist"
+                   (for-each
+                    (lambda (size)
+                      (let* ((icons (string-append out "/share/icons/hicolor/"
+                                                   size "x" size "/apps")))
+                        (mkdir-p icons)
+                        (for-each
+                         (lambda (file)
+                           (copy-file (string-append file "_" size ".png")
+                                      (string-append icons "/" file ".png")))
+                         '("neverball" "neverputt"))))
+                    '("16"  "24"  "32"  "48"
+                      "64" "128" "256" "512"))))
+               #t)))))
+      (inputs
+       `(("libjpeg"   ,libjpeg)
+         ("libpng"    ,libpng)
+         ("libvorbis" ,libvorbis)
+         ("physfs"    ,physfs)
+         ("sdl" ,(sdl-union (list sdl2
+                                  sdl2-ttf)))))
+      (native-inputs
+       `(("gettext" ,gettext-minimal)))   ;for msgfmt
+      (home-page "https://neverball.org/")
+      (synopsis "3D floor-tilting game")
+      (description
+       "Also included is Neverputt, which is a 3D miniature golf game.
+In the grand tradition of Marble Madness and Super Monkey Ball,
+Neverball has you guide a rolling ball through dangerous territory.
+Balance on narrow bridges, navigate mazes, ride moving platforms, and
+dodge pushers and shovers to get to the goal.  Race against the clock to
+collect coins to earn extra balls.") ;; mouse on sway cause crash
+      (license license:gpl2+))))
-- 
2.25.1