[bug#34058] : Add endless-sky

Message ID 20190113125810.GA25281@macbook41
State Accepted
Commit 560df540a635e8d528e510f53b50343c6e037f6d
Headers show
Series [bug#34058] : Add endless-sky | expand

Checks

Context Check Description
cbaines/package builds pending In Cuirass
cbaines/applying patch fail Apply failed

Commit Message

Efraim Flashner Jan. 13, 2019, 12:58 p.m. UTC
After listening to libre lounge episode 6 I decided to package
endless-sky. After buying EV:Nova at least twice I figured it'd be
better to package endless-sky.

Downside:
'guix environment --ad-hoc mesa-utils -- glxinfo | grep "OpenGL version"'
reports my hardware only supports OpenGL 2.1, so I can't test the game,
it needs 3.0 or later.

Comments

Jonathan Brielmaier Jan. 13, 2019, 2:19 p.m. UTC | #1
I build endless-sky on my computer. I just started the programm and it
seems to works fine after some 5 minutes of playing :)

On 1/13/19 1:58 PM, Efraim Flashner wrote:
> After listening to libre lounge episode 6 I decided to package
> endless-sky. After buying EV:Nova at least twice I figured it'd be
> better to package endless-sky.
> 
> Downside:
> 'guix environment --ad-hoc mesa-utils -- glxinfo | grep "OpenGL version"'
> reports my hardware only supports OpenGL 2.1, so I can't test the game,
> it needs 3.0 or later.
> 
>
Leo Famulari Jan. 17, 2019, 7:42 p.m. UTC | #2
On Sun, Jan 13, 2019 at 02:58:10PM +0200, Efraim Flashner wrote:
> After listening to libre lounge episode 6 I decided to package
> endless-sky. After buying EV:Nova at least twice I figured it'd be
> better to package endless-sky.
> 
> Downside:
> 'guix environment --ad-hoc mesa-utils -- glxinfo | grep "OpenGL version"'
> reports my hardware only supports OpenGL 2.1, so I can't test the game,
> it needs 3.0 or later.
> 
> 
> -- 
> Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted

> From efe963662cdce008414fc26cfff2f6b5bcac5112 Mon Sep 17 00:00:00 2001
> From: Efraim Flashner <efraim@flashner.co.il>
> Date: Sun, 13 Jan 2019 11:31:57 +0200
> Subject: [PATCH] gnu: Add endless-sky.
> 
> * gnu/packages/games.scm (endless-sky): New variable.

Works for me :) Please push!
Efraim Flashner Jan. 19, 2019, 5:19 p.m. UTC | #3
Pushed! Thanks for the review everyone!

Patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 852de8b43..c913152f9 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -19,7 +19,7 @@ 
 ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
 ;;; Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
 ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
@@ -151,6 +151,7 @@ 
   #:use-module (guix build-system go)
   #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system scons)
   #:use-module (guix build-system python)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial))
@@ -5945,3 +5946,59 @@  order.  You rotate the blocks and move them across the screen to drop them in
 complete lines.  You score by dropping blocks fast and completing lines.  As
 your score gets higher, you level up and the blocks fall faster.")
     (license license:gpl2+)))
+
+(define-public endless-sky
+  (package
+    (name "endless-sky")
+    (version "0.9.8")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/endless-sky/endless-sky")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0i36lawypikbq8vvzfis1dn7yf6q0d2s1cllshfn7kmjb6pqfi6c"))))
+    (build-system scons-build-system)
+    (arguments
+     `(#:scons ,scons-python2
+       #:scons-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-resource-locations
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "source/Files.cpp"
+               (("/usr/local/")
+                (string-append (assoc-ref outputs "out") "/")))
+             #t))
+         (add-after 'unpack 'patch-scons
+           (lambda _
+             (substitute* "SConstruct"
+               ;; Keep environmental variables
+               (("Environment\\(\\)")
+                "Environment(ENV = os.environ)")
+               ;; Install into %out/bin
+               (("games\"") "bin\""))
+             #t)))))
+    (inputs
+     `(("glew" ,glew)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libmad" ,libmad)
+       ("libpng" ,libpng)
+       ("openal" ,openal)
+       ("sdl2" ,sdl2)))
+    (home-page "https://endless-sky.github.io/")
+    (synopsis "2D space trading and combat game")
+    (description "Endless Sky is a 2D space trading and combat game.  Explore
+other star systems.  Earn money by trading, carrying passengers, or completing
+missions.  Use your earnings to buy a better ship or to upgrade the weapons and
+engines on your current one.  Blow up pirates.  Take sides in a civil war.  Or
+leave human space behind and hope to find friendly aliens whose culture is more
+civilized than your own.")
+    (license (list license:gpl3+
+                   license:cc-by-sa3.0
+                   license:cc-by-sa4.0
+                   license:public-domain))))