all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Thompson <dthompson2@worcester.edu>
To: guix-devel@gnu.org
Subject: [PATCH 4/4] gnu: Add minetest.
Date: Sun, 16 Nov 2014 11:00:10 -0500	[thread overview]
Message-ID: <877fyvqgol.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <87a93rqgpi.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me>

[-- 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

  reply	other threads:[~2014-11-16 16:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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       ` David Thompson [this message]
2014-11-16 16:17       ` 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877fyvqgol.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me \
    --to=dthompson2@worcester.edu \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.