* [PATCH 1/2] gnu: Add minetest-data.
@ 2014-09-06 18:27 David Thompson
2014-09-06 18:27 ` [PATCH 2/2] gnu: Add minetest David Thompson
2014-09-06 21:18 ` [PATCH 1/2] gnu: Add minetest-data Ludovic Courtès
0 siblings, 2 replies; 4+ messages in thread
From: David Thompson @ 2014-09-06 18:27 UTC (permalink / raw)
To: guix-devel
* gnu/packages/games.scm (minetest-data): New variable.
---
gnu/packages/games.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 50 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3faf892..40f8fbf 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -25,6 +25,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
@@ -45,6 +46,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))
@@ -225,7 +227,7 @@ level's exit. The game is presented in a 2D side view.")
(origin
(method url-fetch)
(uri (string-append "http://www.hyperrealm.com/" name "/"
- name "-" version ".tar.gz"))
+ name "-" version ".tar.gz"))
(sha256
(base32 "19nc5vq4bnkjvhk8srqddzhcs93jyvpm9r6lzjzwc1mgf08yg0a6"))))
(build-system gnu-build-system)
@@ -235,7 +237,7 @@ level's exit. The game is presented in a 2D side view.")
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+)))
-
+
(define-public cmatrix
(package
(name "cmatrix")
@@ -305,11 +307,11 @@ interface or via an external visual interface such as GNU XBoard.")
(build-system gnu-build-system)
(arguments
'(#:phases
- (alist-cons-before
+ (alist-cons-before
'configure 'pre-conf
;; This is GNU. So use gnuchess as the first choice of engine
(lambda _
- (substitute* "xboard.conf.in"
+ (substitute* "xboard.conf.in"
(("-firstChessProgram fairymax") "-firstChessProgram gnuchess")))
%standard-phases)))
(inputs `(("cairo" ,cairo)
@@ -401,3 +403,47 @@ 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))
+ ("coreutils" ,coreutils)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let ((tar (string-append (assoc-ref %build-inputs "tar")
+ "/bin/tar"))
+ (cp (string-append (assoc-ref %build-inputs
+ "coreutils")
+ "/bin/cp"))
+ (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)
+ (system* cp "-r" "." 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.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] gnu: Add minetest.
2014-09-06 18:27 [PATCH 1/2] gnu: Add minetest-data David Thompson
@ 2014-09-06 18:27 ` David Thompson
2014-09-06 21:20 ` Ludovic Courtès
2014-09-06 21:18 ` [PATCH 1/2] gnu: Add minetest-data Ludovic Courtès
1 sibling, 1 reply; 4+ messages in thread
From: David Thompson @ 2014-09-06 18:27 UTC (permalink / raw)
To: guix-devel
* 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 | 67 ++++++++++++++++++++++
.../patches/minetest-subgame-env-var.patch | 52 +++++++++++++++++
3 files changed, 120 insertions(+)
create mode 100644 gnu/packages/patches/minetest-subgame-env-var.patch
diff --git a/gnu-system.am b/gnu-system.am
index 9328d13..26bf78f 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -358,6 +358,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 40f8fbf..c3b44b5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -46,6 +46,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))
@@ -447,3 +450,67 @@ 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 shouldn't be necessary for future releases.
+ (patches (list (search-patch "minetest-subgame-env-var.patch")))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:phases (alist-cons-before
+ 'configure 'set-cpath
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; 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 cdr 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..d3024a5
--- /dev/null
+++ b/gnu/packages/patches/minetest-subgame-env-var.patch
@@ -0,0 +1,52 @@
+From 80a1054060006e9e6c3f87d8c0826b1f620789f1 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.
+
+---
+ src/subgame.cpp | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/src/subgame.cpp b/src/subgame.cpp
+index f2465c9..24a4af5 100644
+--- a/src/subgame.cpp
++++ b/src/subgame.cpp
+@@ -66,6 +66,19 @@ SubgameSpec findSubgame(const std::string &id)
+ std::string share = porting::path_share;
+ std::string user = porting::path_user;
+ std::vector<GameFindPath> find_paths;
++
++ char *search_paths = getenv("MINETEST_SUBGAME_PATH");
++ char *search_path = strtok(search_paths, ":");
++
++ while(search_path != NULL) {
++ std::string path = std::string(search_path);
++ find_paths.push_back(GameFindPath(
++ path + DIR_DELIM + id, false));
++ find_paths.push_back(GameFindPath(
++ path + DIR_DELIM + id + "_game", false));
++ search_path = strtok(NULL, ":");
++ }
++
+ find_paths.push_back(GameFindPath(
+ user + DIR_DELIM + "games" + DIR_DELIM + id + "_game", true));
+ find_paths.push_back(GameFindPath(
+@@ -129,6 +142,15 @@ 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");
++
++ char *search_paths = getenv("MINETEST_SUBGAME_PATH");
++ char *search_path = strtok(search_paths, ":");
++
++ while(search_path != NULL) {
++ gamespaths.insert(std::string(search_path));
++ search_path = strtok(NULL, ":");
++ }
++
+ for(std::set<std::string>::const_iterator i = gamespaths.begin();
+ i != gamespaths.end(); i++){
+ std::vector<fs::DirListNode> dirlist = fs::GetDirListing(*i);
+--
+2.1.0
+
--
2.1.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] gnu: Add minetest-data.
2014-09-06 18:27 [PATCH 1/2] gnu: Add minetest-data David Thompson
2014-09-06 18:27 ` [PATCH 2/2] gnu: Add minetest David Thompson
@ 2014-09-06 21:18 ` Ludovic Courtès
1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2014-09-06 21:18 UTC (permalink / raw)
To: David Thompson; +Cc: guix-devel
Hi!
Some style comments:
David Thompson <dthompson2@worcester.edu> skribis:
> * gnu/packages/games.scm (minetest-data): New variable.
> (method url-fetch)
> (uri (string-append "http://www.hyperrealm.com/" name "/"
> - name "-" version ".tar.gz"))
> + name "-" version ".tar.gz"))
> (sha256
> (base32 "19nc5vq4bnkjvhk8srqddzhcs93jyvpm9r6lzjzwc1mgf08yg0a6"))))
Looks like some whitespace cleanup, which should rather be in a separate patch.
> (build-system gnu-build-system)
> @@ -235,7 +237,7 @@ level's exit. The game is presented in a 2D side view.")
> 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+)))
> -
> +
> (define-public cmatrix
> (package
> (name "cmatrix")
> @@ -305,11 +307,11 @@ interface or via an external visual interface such as GNU XBoard.")
> (build-system gnu-build-system)
> (arguments
> '(#:phases
> - (alist-cons-before
> + (alist-cons-before
> 'configure 'pre-conf
> ;; This is GNU. So use gnuchess as the first choice of engine
> (lambda _
> - (substitute* "xboard.conf.in"
> + (substitute* "xboard.conf.in"
Ditto.
> + (native-inputs
> + `(("source" ,source)
> + ("tar" ,tar)
> + ("gzip" ,(@ (gnu packages compression) gzip))
> + ("coreutils" ,coreutils)))
Remove coreutils.
> + (arguments
> + `(#:modules ((guix build utils))
> + #:builder (begin
> + (use-modules (guix build utils))
> + (let ((tar (string-append (assoc-ref %build-inputs "tar")
> + "/bin/tar"))
> + (cp (string-append (assoc-ref %build-inputs
> + "coreutils")
> + "/bin/cp"))
Remove ‘cp’.
> + (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)
> + (system* cp "-r" "." install-dir)))))
Use ‘copy-recursively’ instead.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] gnu: Add minetest.
2014-09-06 18:27 ` [PATCH 2/2] gnu: Add minetest David Thompson
@ 2014-09-06 21:20 ` Ludovic Courtès
0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2014-09-06 21:20 UTC (permalink / raw)
To: David Thompson; +Cc: guix-devel
David Thompson <dthompson2@worcester.edu> skribis:
> * 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.
LGTM.
> 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..d3024a5
> --- /dev/null
> +++ b/gnu/packages/patches/minetest-subgame-env-var.patch
> @@ -0,0 +1,52 @@
> +From 80a1054060006e9e6c3f87d8c0826b1f620789f1 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.
If the patch is submitted upstream, could you add a link to that?
Otherwise just a line saying that this is a Guix-only patch.
OK to push with this!
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-09-06 21:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-06 18:27 [PATCH 1/2] gnu: Add minetest-data David Thompson
2014-09-06 18:27 ` [PATCH 2/2] gnu: Add minetest David Thompson
2014-09-06 21:20 ` Ludovic Courtès
2014-09-06 21:18 ` [PATCH 1/2] gnu: Add minetest-data 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).