unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 0/4] gnu: Add minetest.
@ 2014-11-16 15:57 David Thompson
  2014-11-16 15:58 ` [PATCH 1/4] gnu: Add openal David Thompson
  0 siblings, 1 reply; 12+ messages in thread
From: David Thompson @ 2014-11-16 15:57 UTC (permalink / raw)
  To: guix-devel

Been awhile since I posted the original patch set for this.  I've
cleaned things up a bit, and most importantly: my minetest patch for
Guix compatibility is now upstream and will be included in the next
release.

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] gnu: Add openal.
  2014-11-16 15:57 [PATCH 0/4] gnu: Add minetest David Thompson
@ 2014-11-16 15:58 ` David Thompson
  2014-11-16 15:58   ` [PATCH 2/4] gnu: Add irrlicht David Thompson
  2014-11-16 17:28   ` [PATCH 1/4] gnu: Add openal Ludovic Courtès
  0 siblings, 2 replies; 12+ messages in thread
From: David Thompson @ 2014-11-16 15:58 UTC (permalink / raw)
  To: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-openal.patch --]
[-- Type: text/x-diff, Size: 2156 bytes --]

From 7c819bab67f9bb3c91010d3a1435b6c12b4cd9d4 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Fri, 18 Jul 2014 23:19:30 -0400
Subject: [PATCH 1/4] gnu: Add openal.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index a05d389..2b6475b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -52,7 +52,10 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages linux)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial))
 
 (define-public gnubg
@@ -535,3 +538,32 @@ clone.")
     ;; As noted in 'COPYING', part of it is under GPLv2+, while the rest is
     ;; under BSD-2.
     (license gpl2+)))
+
+(define-public openal
+  (package
+    (name "openal")
+    (version "1.15.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://kcat.strangesoft.net/openal-releases/openal-soft-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; no check target
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("pulseaudio" ,pulseaudio)))
+    (synopsis "3D audio API")
+    (description
+     "OpenAL provides capabilities for playing audio in a virtual 3D
+environment.  Distance attenuation, doppler shift, and directional sound
+emitters are among the features handled by the API.  More advanced effects,
+including air absorption, occlusion, and environmental reverb, are available
+through the EFX extension.  It also facilitates streaming audio, multi-channel
+buffers, and audio capture.")
+    (home-page "http://kcat.strangesoft.net/openal.html")
+    (license lgpl2.0+)))
-- 
2.1.1


[-- Attachment #2: Type: text/plain, Size: 136 bytes --]


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] gnu: Add irrlicht.
  2014-11-16 15:58 ` [PATCH 1/4] gnu: Add openal David Thompson
@ 2014-11-16 15:58   ` David Thompson
  2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
  2014-11-16 17:30     ` [PATCH 2/4] gnu: Add irrlicht Ludovic Courtès
  2014-11-16 17:28   ` [PATCH 1/4] gnu: Add openal Ludovic Courtès
  1 sibling, 2 replies; 12+ messages in thread
From: David Thompson @ 2014-11-16 15:58 UTC (permalink / raw)
  To: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0002-gnu-Add-irrlicht.patch --]
[-- Type: text/x-diff, Size: 3243 bytes --]

From 2eac67986d62e8d81857a7148421ab79d327f3e1 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Fri, 5 Sep 2014 13:16:50 -0400
Subject: [PATCH 2/4] gnu: Add irrlicht.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2b6475b..3172df5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -23,6 +23,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages games)
+  #:use-module (srfi srfi-1)
   #:use-module ((guix licenses)
                 #:hide (zlib))
   #:use-module (guix packages)
@@ -54,6 +55,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages zip)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial))
@@ -567,3 +569,49 @@ through the EFX extension.  It also facilitates streaming audio, multi-channel
 buffers, and audio capture.")
     (home-page "http://kcat.strangesoft.net/openal.html")
     (license lgpl2.0+)))
+
+(define-public irrlicht
+  (package
+    (name "irrlicht")
+    (version "1.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/irrlicht/Irrlicht%20SDK/"
+                    (string-join (take (string-split version #\.) 2) ".")
+                    "/" version "/irrlicht-" version ".zip"))
+              (sha256
+               (base32
+                "0yz9lvsc8aqk8wj4rnpanxrw90gqpwn9w5hxp94r8hnm2q0vjjw1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-after
+                 'unpack 'fix-build-env
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (substitute* "Makefile"
+                       (("INSTALL_DIR = /usr/local/lib")
+                        (string-append "INSTALL_DIR = " out "/lib")))
+                     ;; The Makefile assumes these directories exist.
+                     (mkdir-p (string-append out "/lib"))
+                     (mkdir-p (string-append out "/include"))))
+                 (alist-replace
+                  'unpack
+                  (lambda* (#:key source #:allow-other-keys)
+                    (and (zero? (system* "unzip" source))
+                         ;; The actual source is buried a few directories deep.
+                         (chdir "irrlicht-1.8.1/source/Irrlicht/")))
+                  ;; No configure script
+                  (alist-delete 'configure %standard-phases)))
+       #:tests? #f ; no check target
+       #:make-flags '("CC=gcc" "sharedlib")))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("mesa" ,mesa)))
+    (synopsis "3D game engine")
+    (description
+     "The Irrlicht Engine is a high performance realtime 3D engine written in
+C++.")
+    (home-page "http://irrlicht.sourceforge.net/")
+    (license zlib)))
-- 
2.1.1


[-- Attachment #2: Type: text/plain, Size: 136 bytes --]


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] gnu: Add minetest-data.
  2014-11-16 15:58   ` [PATCH 2/4] gnu: Add irrlicht David Thompson
@ 2014-11-16 15:59     ` David Thompson
  2014-11-16 16:00       ` [PATCH 4/4] gnu: Add minetest David Thompson
                         ` (2 more replies)
  2014-11-16 17:30     ` [PATCH 2/4] gnu: Add irrlicht Ludovic Courtès
  1 sibling, 3 replies; 12+ messages in thread
From: David Thompson @ 2014-11-16 15:59 UTC (permalink / raw)
  To: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0003-gnu-Add-minetest-data.patch --]
[-- Type: text/x-diff, Size: 2975 bytes --]

From e3818c4b98f2222c02937003dc3aa00d91ea3352 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Sat, 6 Sep 2014 14:03:12 -0400
Subject: [PATCH 3/4] gnu: Add minetest-data.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3172df5..6f63ce3 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -29,6 +29,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages gettext)
@@ -56,6 +57,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages zip)
+  #:use-module (guix build-system trivial)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial))
@@ -615,3 +617,43 @@ buffers, and audio capture.")
 C++.")
     (home-page "http://irrlicht.sourceforge.net/")
     (license zlib)))
+
+(define-public minetest-data
+  (package
+    (name "minetest-data")
+    (version "0.4.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/minetest/minetest_game/archive/"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "09mr71kl7mf4ihszqz1vnwk814p7fvqknad150iic2340a7qzf0i"))))
+    (build-system trivial-build-system)
+    (native-inputs
+     `(("source" ,source)
+       ("tar" ,tar)
+       ("gzip" ,(@ (gnu packages compression) gzip))))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((tar (string-append (assoc-ref %build-inputs "tar")
+                                             "/bin/tar"))
+                         (install-dir (string-append
+                                       %output
+                                       "/share/minetest/games/minetest_game"))
+                         (path (string-append (assoc-ref %build-inputs
+                                                         "gzip")
+                                              "/bin")))
+                     (setenv "PATH" path)
+                     (system* tar "xvf" (assoc-ref %build-inputs "source"))
+                     (chdir (string-append "minetest_game-" ,version))
+                     (mkdir-p install-dir)
+                     (copy-recursively "." install-dir)))))
+    (synopsis "Main game data for the Minetest game engine")
+    (description
+     "Game data for the Minetest infinite-world block sandox game.")
+    (home-page "http://minetest.net")
+    (license lgpl2.1+)))
-- 
2.1.1


[-- Attachment #2: Type: text/plain, Size: 136 bytes --]


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] gnu: Add minetest.
  2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
@ 2014-11-16 16:00       ` David Thompson
  2014-11-16 16:17       ` [PATCH 3/4] gnu: Add minetest-data Andreas Enge
  2014-11-16 17:32       ` Ludovic Courtès
  2 siblings, 0 replies; 12+ messages in thread
From: David Thompson @ 2014-11-16 16:00 UTC (permalink / raw)
  To: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0004-gnu-Add-minetest.patch --]
[-- Type: text/x-diff, Size: 8176 bytes --]

From b7e6e4507d98e0068470b76f9fca4dd3eb7d1db7 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Fri, 5 Sep 2014 14:46:44 -0400
Subject: [PATCH 4/4] gnu: Add minetest.

* gnu/packages/patches/minetest-subgame-env-var.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/games.scm (minetest): New variable.
---
 gnu-system.am                                      |  1 +
 gnu/packages/games.scm                             | 74 +++++++++++++++++
 .../patches/minetest-subgame-env-var.patch         | 92 ++++++++++++++++++++++
 3 files changed, 167 insertions(+)
 create mode 100644 gnu/packages/patches/minetest-subgame-env-var.patch

diff --git a/gnu-system.am b/gnu-system.am
index 1af1aa5..0384c89 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -387,6 +387,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/mc-fix-ncurses-build.patch		\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/mhash-keygen-test-segfault.patch		\
+  gnu/packages/patches/minetest-subgame-env-var.patch		\
   gnu/packages/patches/mit-krb5-init-fix.patch			\
   gnu/packages/patches/mpc123-initialize-ao.patch		\
   gnu/packages/patches/module-init-tools-moduledir.patch	\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6f63ce3..ff49f46 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -57,6 +57,9 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages zip)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages lua)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
@@ -657,3 +660,74 @@ C++.")
      "Game data for the Minetest infinite-world block sandox game.")
     (home-page "http://minetest.net")
     (license lgpl2.1+)))
+
+(define-public minetest
+  (package
+    (name "minetest")
+    (version "0.4.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/minetest/minetest/archive/"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1xxv0g83iqszjgwnbdcbsprqg76cb6jnbsh5qhm7lcwx4wy2y2k2"))
+              ;; This patch will be included in future upstream releases.
+              ;; See: https://github.com/minetest/minetest/commit/fd5eaae2babb322f8a3e2acab55a12e218814c8e
+              (patches (list (search-patch "minetest-subgame-env-var.patch")))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:modules ((guix build utils)
+                  (guix build cmake-build-system)
+                  (ice-9 match))
+       #:phases (alist-cons-before
+                 'configure 'set-cpath
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (use-modules (ice-9 match))
+                   ;; Adjust the CPATH so that cmake can find irrlicht,
+                   ;; openal, and curl headers.
+                   (set-path-environment-variable "CPATH"
+                                                  '("include/AL"
+                                                    "include/irrlicht"
+                                                    "include/curl"
+                                                    "include")
+                                                  (map (match-lambda
+                                                        ((_ . dir) dir))
+                                                       inputs)))
+                 %standard-phases)
+       #:configure-flags '("-DRUN_IN_PLACE=0"
+                           "-DENABLE_FREETYPE=1"
+                           "-DENABLE_GETTEXT=1")
+       #:tests? #f)) ; no check target
+    (native-search-paths
+     (list (search-path-specification
+            (variable "MINETEST_SUBGAME_PATH")
+            (directories '("share/minetest/games")))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("irrlicht" ,irrlicht)
+       ("libpng" ,libpng)
+       ("libjpeg-8" ,libjpeg-8)
+       ("libxxf86vm" ,libxxf86vm)
+       ("mesa" ,mesa)
+       ("libogg" ,libogg)
+       ("libvorbis" ,libvorbis)
+       ("openal" ,openal)
+       ("freetype" ,(@ (gnu packages fontutils) freetype))
+       ("curl" ,curl)
+       ("luajit" ,luajit)
+       ("gettext" ,gnu-gettext)
+       ("sqlite" ,sqlite)))
+    (propagated-inputs
+     `(("minetest-data" ,minetest-data)))
+    (synopsis "Infinite-world block sandbox game")
+    (description
+     "Minetest is a sandbox construction game.  Players can create and destroy
+various types of blocks in a three-dimensional open world.  This allows
+forming structures in every possible creation, on multiplayer servers or as a
+single player.  Mods and texture packs allow players to personalize the game
+in different ways.")
+    (home-page "http://minetest.net")
+    (license lgpl2.1+)))
diff --git a/gnu/packages/patches/minetest-subgame-env-var.patch b/gnu/packages/patches/minetest-subgame-env-var.patch
new file mode 100644
index 0000000..de78228
--- /dev/null
+++ b/gnu/packages/patches/minetest-subgame-env-var.patch
@@ -0,0 +1,92 @@
+From fd5eaae2babb322f8a3e2acab55a12e218814c8e Mon Sep 17 00:00:00 2001
+From: David Thompson <dthompson2@worcester.edu>
+Date: Sat, 6 Sep 2014 13:21:46 -0400
+Subject: [PATCH] Search for subgames using $MINETEST_SUBGAME_PATH.
+
+---
+ doc/minetest.6  |  6 ++++++
+ src/subgame.cpp | 30 ++++++++++++++++++++++++++++++
+ 2 files changed, 36 insertions(+)
+
+diff --git a/doc/minetest.6 b/doc/minetest.6
+index d94c12c..ff54520 100644
+--- a/doc/minetest.6
++++ b/doc/minetest.6
+@@ -83,6 +83,12 @@ Set world path
+ Migrate from current map backend to another. Possible values are sqlite3
+ and leveldb. Only works when using --server.
+ 
++.SH ENVIRONMENT VARIABLES
++
++.TP
++MINETEST_SUBGAME_PATH
++Colon delimited list of directories to search for subgames.
++
+ .SH BUGS
+ Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
+ 
+diff --git a/src/subgame.cpp b/src/subgame.cpp
+index f2465c9..e86655b 100644
+--- a/src/subgame.cpp
++++ b/src/subgame.cpp
+@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
+ #include "filesys.h"
+ #include "settings.h"
+ #include "log.h"
++#include "strfnd.h"
+ #ifndef SERVER
+ #include "tile.h" // getImagePath
+ #endif
+@@ -59,6 +60,17 @@ struct GameFindPath
+ 	{}
+ };
+ 
++Strfnd getSubgamePathEnv() {
++  std::string sp;
++  char *subgame_path = getenv("MINETEST_SUBGAME_PATH");
++
++  if(subgame_path) {
++    sp = std::string(subgame_path);
++  }
++
++  return Strfnd(sp);
++}
++
+ SubgameSpec findSubgame(const std::string &id)
+ {
+ 	if(id == "")
+@@ -66,6 +78,17 @@ SubgameSpec findSubgame(const std::string &id)
+ 	std::string share = porting::path_share;
+ 	std::string user = porting::path_user;
+ 	std::vector<GameFindPath> find_paths;
++
++        Strfnd search_paths = getSubgamePathEnv();
++
++        while(!search_paths.atend()) {
++                std::string path = search_paths.next(":");
++                find_paths.push_back(GameFindPath(
++                                       path + DIR_DELIM + id, false));
++                find_paths.push_back(GameFindPath(
++                                       path + DIR_DELIM + id + "_game", false));
++        }
++
+ 	find_paths.push_back(GameFindPath(
+ 			user + DIR_DELIM + "games" + DIR_DELIM + id + "_game", true));
+ 	find_paths.push_back(GameFindPath(
+@@ -129,6 +152,13 @@ std::set<std::string> getAvailableGameIds()
+ 	std::set<std::string> gamespaths;
+ 	gamespaths.insert(porting::path_share + DIR_DELIM + "games");
+ 	gamespaths.insert(porting::path_user + DIR_DELIM + "games");
++
++        Strfnd search_paths = getSubgamePathEnv();
++
++        while(!search_paths.atend()) {
++                gamespaths.insert(search_paths.next(":"));
++        }
++
+ 	for(std::set<std::string>::const_iterator i = gamespaths.begin();
+ 			i != gamespaths.end(); i++){
+ 		std::vector<fs::DirListNode> dirlist = fs::GetDirListing(*i);
+-- 
+2.1.1
+
-- 
2.1.1


[-- Attachment #2: Type: text/plain, Size: 136 bytes --]


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] gnu: Add minetest-data.
  2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
  2014-11-16 16:00       ` [PATCH 4/4] gnu: Add minetest David Thompson
@ 2014-11-16 16:17       ` Andreas Enge
  2014-11-16 16:28         ` David Thompson
  2014-11-16 17:32       ` Ludovic Courtès
  2 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2014-11-16 16:17 UTC (permalink / raw)
  To: David Thompson; +Cc: guix-devel

Hello!

On Sun, Nov 16, 2014 at 10:59:37AM -0500, David Thompson wrote:
> +(define-public minetest-data

As I suppose that this is only meaningful as a propagated input of minetest,
maybe it would be better to not expose it to the public, by using only
"define"?

Andreas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] gnu: Add minetest-data.
  2014-11-16 16:17       ` [PATCH 3/4] gnu: Add minetest-data Andreas Enge
@ 2014-11-16 16:28         ` David Thompson
  0 siblings, 0 replies; 12+ messages in thread
From: David Thompson @ 2014-11-16 16:28 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> writes:

> Hello!
>
> On Sun, Nov 16, 2014 at 10:59:37AM -0500, David Thompson wrote:
>> +(define-public minetest-data
>
> As I suppose that this is only meaningful as a propagated input of minetest,
> maybe it would be better to not expose it to the public, by using only
> "define"?

Yes, I think that's a good idea.  I'll change that.

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] gnu: Add openal.
  2014-11-16 15:58 ` [PATCH 1/4] gnu: Add openal David Thompson
  2014-11-16 15:58   ` [PATCH 2/4] gnu: Add irrlicht David Thompson
@ 2014-11-16 17:28   ` Ludovic Courtès
  1 sibling, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2014-11-16 17:28 UTC (permalink / raw)
  To: David Thompson; +Cc: guix-devel

David Thompson <dthompson2@worcester.edu> skribis:

> From 7c819bab67f9bb3c91010d3a1435b6c12b4cd9d4 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Fri, 18 Jul 2014 23:19:30 -0400
> Subject: [PATCH 1/4] gnu: Add openal.
>
> * gnu/packages/games.scm (openal): New variable.

LGTM!

Ludo'.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] gnu: Add irrlicht.
  2014-11-16 15:58   ` [PATCH 2/4] gnu: Add irrlicht David Thompson
  2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
@ 2014-11-16 17:30     ` Ludovic Courtès
  2014-11-16 18:05       ` David Thompson
  1 sibling, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2014-11-16 17:30 UTC (permalink / raw)
  To: David Thompson; +Cc: guix-devel

David Thompson <dthompson2@worcester.edu> skribis:

> From 2eac67986d62e8d81857a7148421ab79d327f3e1 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Fri, 5 Sep 2014 13:16:50 -0400
> Subject: [PATCH 2/4] gnu: Add irrlicht.
>
> * gnu/packages/games.scm (irrlicht): New variable.

[...]

> +              (uri (string-append
> +                    "mirror://sourceforge/irrlicht/Irrlicht%20SDK/"
> +                    (string-join (take (string-split version #\.) 2) ".")

Please use ‘version-major+minor’.

> +    (description
> +     "The Irrlicht Engine is a high performance realtime 3D engine written in
> +C++.")

Could you expound a little bit?  :-)

> +    (license zlib)))

‘zlib’ here refers to the <package>, not to the <license>.  You probably
need to a #:prefix in the import and rename references to the licenses.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] gnu: Add minetest-data.
  2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
  2014-11-16 16:00       ` [PATCH 4/4] gnu: Add minetest David Thompson
  2014-11-16 16:17       ` [PATCH 3/4] gnu: Add minetest-data Andreas Enge
@ 2014-11-16 17:32       ` Ludovic Courtès
  2 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2014-11-16 17:32 UTC (permalink / raw)
  To: David Thompson; +Cc: guix-devel

David Thompson <dthompson2@worcester.edu> skribis:

> From e3818c4b98f2222c02937003dc3aa00d91ea3352 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Sat, 6 Sep 2014 14:03:12 -0400
> Subject: [PATCH 3/4] gnu: Add minetest-data.
>
> * gnu/packages/games.scm (minetest-data): New variable.

[...]

> From b7e6e4507d98e0068470b76f9fca4dd3eb7d1db7 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Fri, 5 Sep 2014 14:46:44 -0400
> Subject: [PATCH 4/4] gnu: Add minetest.
>
> * gnu/packages/patches/minetest-subgame-env-var.patch: New file.
> * gnu-system.am (dist_patch_DATA): Add it.
> * gnu/packages/games.scm (minetest): New variable.

Both look good to me.  I agree that ‘minetest-data’ doesn’t need to be
public.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] gnu: Add irrlicht.
  2014-11-16 17:30     ` [PATCH 2/4] gnu: Add irrlicht Ludovic Courtès
@ 2014-11-16 18:05       ` David Thompson
  2014-11-16 21:04         ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: David Thompson @ 2014-11-16 18:05 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1111 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> David Thompson <dthompson2@worcester.edu> skribis:
>
>> From 2eac67986d62e8d81857a7148421ab79d327f3e1 Mon Sep 17 00:00:00 2001
>> From: David Thompson <dthompson2@worcester.edu>
>> Date: Fri, 5 Sep 2014 13:16:50 -0400
>> Subject: [PATCH 2/4] gnu: Add irrlicht.
>>
>> * gnu/packages/games.scm (irrlicht): New variable.
>
> [...]
>
>> +              (uri (string-append
>> +                    "mirror://sourceforge/irrlicht/Irrlicht%20SDK/"
>> +                    (string-join (take (string-split version #\.) 2) ".")
>
> Please use ‘version-major+minor’.
>

Oh yeah!  That procedure didn't exist when I first wrote this patch.

>> +    (description
>> +     "The Irrlicht Engine is a high performance realtime 3D engine written in
>> +C++.")
>
> Could you expound a little bit?  :-)
>

Done.

>> +    (license zlib)))
>
> ‘zlib’ here refers to the <package>, not to the <license>.  You
> probably need to a #:prefix in the import and rename references to the
> licenses.

Oops!  Victim of a rebase.

New patch below.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-Add-irrlicht.patch --]
[-- Type: text/x-diff, Size: 8610 bytes --]

From bfa11e0174182ca477debd409705750969a74f5d Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Sun, 16 Nov 2014 12:56:12 -0500
Subject: [PATCH 2/4] Add irrlicht.

---
 gnu/packages/games.scm | 84 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 67 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2b6475b..52be3bc 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -23,8 +23,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages games)
-  #:use-module ((guix licenses)
-                #:hide (zlib))
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (gnu packages)
@@ -54,6 +54,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages zip)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial))
@@ -87,7 +88,7 @@ teaching the game.  It has an advanced evaluation engine based on artificial
 neural networks suitable for both beginners and advanced players.  In
 addition to a command-line interface, it also features an attractive, 3D
 representation of the playing board.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public gnubik
   (package
@@ -117,7 +118,7 @@ each of its faces have a uniform color.  The game is customizable, allowing
 you to set the size of the cube (the default is 3x3) or to change the colors.
 You may even apply photos to the faces instead of colors.  The game is
 scriptable with Guile.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public abbaye
   (package
@@ -179,7 +180,7 @@ France.  The Cathars, who preach about good Christian beliefs, were being
 expelled by the Catholic Church out of the Languedoc region in France.  One of
 them, called Jean Raymond, found an old church in which to hide, not knowing
 that beneath its ruins lay buried an ancient evil.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public pingus
   (package
@@ -225,7 +226,7 @@ giving them commands, like build a bridge, dig a hole, or redirect all animals
 in the other direction.  Multiple such commands are necessary to reach the
 level's exit.  The game is presented in a 2D side view.")
     ;; Some source files are under bsd-3 and gpl2+ licenses.
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public talkfilters
   (package
@@ -244,8 +245,8 @@ level's exit.  The game is presented in a 2D side view.")
     (description "The GNU Talk Filters are programs that convert English text
 into stereotyped or otherwise humorous dialects.  The filters are provided as
 a C library, so they can easily be integrated into other programs.")
-    (license gpl2+)))
- 
+    (license license:gpl2+)))
+
 (define-public cmatrix
   (package
     (name "cmatrix")
@@ -278,7 +279,7 @@ a C library, so they can easily be integrated into other programs.")
 based on the screensaver from the movie's website.  It works with terminal
 settings up to 132x300 and can scroll lines all at the same rate or
 asynchronously and at a user-defined speed.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public chess
   (package
@@ -298,7 +299,7 @@ asynchronously and at a user-defined speed.")
     (description "GNU Chess is a chess engine.  It allows you to compete
 against the computer in a game of chess, either through the default terminal
 interface or via an external visual interface such as GNU XBoard.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define freedink-engine
   (package
@@ -329,7 +330,7 @@ interface or via an external visual interface such as GNU XBoard.")
 for the role-playing game Dink Smallwood.  It supports not only the original
 game data files but it also supports user-produced game mods or \"D-Mods\".
 To that extent, it also includes a front-end for managing all of your D-Mods.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define freedink-data
   (package
@@ -350,7 +351,7 @@ To that extent, it also includes a front-end for managing all of your D-Mods.")
     (synopsis "Game data for GNU Freedink")
     (description
      "This package contains the game data of GNU Freedink.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 ;; TODO: Add freedink-dfarc when there's a wxWidgets package.
 
@@ -416,7 +417,7 @@ including international chess, xiangqi (Chinese chess), shogi (Japanese chess)
 and Makruk.  Several lesser-known variants are also supported.  It presents a
 fully interactive graphical interface and it can load and save games in the
 Portable Game Notation.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 
 (define-public xboing
@@ -469,7 +470,8 @@ Portable Game Notation.")
 you control to bounce a ball around the game zone destroying blocks with a
 proton ball.  Each block carries a different point value.  The more blocks you
 destroy, the better your score.  The person with the highest score wins.")
-    (license (x11-style "file://COPYING" "Very similar to the X11 licence."))))
+    (license (license:x11-style "file://COPYING"
+                                "Very similar to the X11 licence."))))
 
 (define-public gtypist
   (package
@@ -503,7 +505,7 @@ practice touch-typing.  Several tutorials are included; in addition to
 tutorials for the standard QWERTY layout, there are also tutorials for the
 alternative layouts Dvorak and Colemak, as well as for the numpad.  Tutorials
 are primarily in English, however some in other languages are provided.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public tiled
   (package
@@ -537,7 +539,7 @@ clone.")
 
     ;; As noted in 'COPYING', part of it is under GPLv2+, while the rest is
     ;; under BSD-2.
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public openal
   (package
@@ -566,4 +568,52 @@ including air absorption, occlusion, and environmental reverb, are available
 through the EFX extension.  It also facilitates streaming audio, multi-channel
 buffers, and audio capture.")
     (home-page "http://kcat.strangesoft.net/openal.html")
-    (license lgpl2.0+)))
+    (license license:lgpl2.0+)))
+
+(define-public irrlicht
+  (package
+    (name "irrlicht")
+    (version "1.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/irrlicht/Irrlicht%20SDK/"
+                    (version-major+minor version)
+                    "/" version "/irrlicht-" version ".zip"))
+              (sha256
+               (base32
+                "0yz9lvsc8aqk8wj4rnpanxrw90gqpwn9w5hxp94r8hnm2q0vjjw1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-after
+                 'unpack 'fix-build-env
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (substitute* "Makefile"
+                       (("INSTALL_DIR = /usr/local/lib")
+                        (string-append "INSTALL_DIR = " out "/lib")))
+                     ;; The Makefile assumes these directories exist.
+                     (mkdir-p (string-append out "/lib"))
+                     (mkdir-p (string-append out "/include"))))
+                 (alist-replace
+                  'unpack
+                  (lambda* (#:key source #:allow-other-keys)
+                    (and (zero? (system* "unzip" source))
+                         ;; The actual source is buried a few directories deep.
+                         (chdir "irrlicht-1.8.1/source/Irrlicht/")))
+                  ;; No configure script
+                  (alist-delete 'configure %standard-phases)))
+       #:tests? #f ; no check target
+       #:make-flags '("CC=gcc" "sharedlib")))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("mesa" ,mesa)))
+    (synopsis "3D game engine written in C++")
+    (description
+     "The Irrlicht Engine is a high performance realtime 3D engine written in
+C++.  Features include an OpenGL renderer, extensible materials, scene graph
+management, character animation, particle and other special effects, support
+for common mesh file formats, and collision detection.")
+    (home-page "http://irrlicht.sourceforge.net/")
+    (license license:zlib)))
-- 
2.1.1


[-- Attachment #3: Type: text/plain, Size: 136 bytes --]


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] gnu: Add irrlicht.
  2014-11-16 18:05       ` David Thompson
@ 2014-11-16 21:04         ` Ludovic Courtès
  0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2014-11-16 21:04 UTC (permalink / raw)
  To: David Thompson; +Cc: guix-devel

David Thompson <dthompson2@worcester.edu> skribis:

> New patch below.
>
>
> From bfa11e0174182ca477debd409705750969a74f5d Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Sun, 16 Nov 2014 12:56:12 -0500
> Subject: [PATCH 2/4] Add irrlicht.

OK to push with a commit message.  Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-11-16 21:04 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-16 15:57 [PATCH 0/4] gnu: Add minetest David Thompson
2014-11-16 15:58 ` [PATCH 1/4] gnu: Add openal David Thompson
2014-11-16 15:58   ` [PATCH 2/4] gnu: Add irrlicht David Thompson
2014-11-16 15:59     ` [PATCH 3/4] gnu: Add minetest-data David Thompson
2014-11-16 16:00       ` [PATCH 4/4] gnu: Add minetest David Thompson
2014-11-16 16:17       ` [PATCH 3/4] gnu: Add minetest-data Andreas Enge
2014-11-16 16:28         ` David Thompson
2014-11-16 17:32       ` Ludovic Courtès
2014-11-16 17:30     ` [PATCH 2/4] gnu: Add irrlicht Ludovic Courtès
2014-11-16 18:05       ` David Thompson
2014-11-16 21:04         ` Ludovic Courtès
2014-11-16 17:28   ` [PATCH 1/4] gnu: Add openal Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).