From 8e1a146fde935cc1635c7a9f162e95c16871a8cf Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 13 Sep 2017 22:06:12 +0530 Subject: [PATCH 1/6] gnu: Add catcodec. * gnu/packages/game-development.scm (catcodec): New variable. --- gnu/packages/game-development.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 5633456d4..9916a1cb3 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Peter Mikkelsen +;;; Copyright © 2017 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -192,6 +193,31 @@ necessary. ;; The MD5 implementation contained in GRFID is under the zlib license. (license (list license:gpl2 license:gpl2+ license:zlib)))) +(define-public catcodec + (package + (name "catcodec") + (version "1.0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://binaries.openttd.org/extra/catcodec/" + version "/catcodec-" version "-source.tar.xz")) + (sha256 + (base32 + "1qg0c2i4p29sxj0q6qp2jynlrzm5pphz2xhcjqlxa69ycrnlxzs7")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list (string-append "prefix=" %output)) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://dev.openttdcoop.org/projects/catcodec") + (synopsis "Encode/decode OpenTTD sounds") + (description "catcodec encodes and decodes sounds for OpenTTD. These +sounds are not much more than some metadata (description and filename) and raw +PCM data.") + (license license:gpl2))) + (define-public gzochi (package (name "gzochi") -- 2.14.1 From f5c1a501c9ba193178db40d514aa337807cdfefb Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 13 Sep 2017 22:21:56 +0530 Subject: [PATCH 2/6] licenses: Add CC-Sampling+ 1.0. * guix/licenses.scm (cc-sampling-plus-1.0): New variable. --- guix/licenses.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/guix/licenses.scm b/guix/licenses.scm index b7dadd975..6de611da2 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -41,6 +41,7 @@ cc0 cc-by2.0 cc-by3.0 cc-by4.0 cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0 + cc-sampling-plus-1.0 cddl1.0 cecill cecill-b cecill-c artistic2.0 clarified-artistic @@ -206,6 +207,11 @@ at URI, which may be a file:// URI pointing the package's tree." "http://creativecommons.org/licenses/by/2.0/" "Creative Commons Attribution 2.0 Generic")) +(define cc-sampling-plus-1.0 + (license "CC-Sampling+ 1.0" + "https://creativecommons.org/licenses/sampling+/1.0" + "Creative Commons Sampling Plus 1.0")) + (define cddl1.0 (license "CDDL 1.0" "http://directory.fsf.org/wiki/License:CDDLv1.0" -- 2.14.1 From 3c5f0b4ecbe05f7957c324946ab108fce73dd875 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 13 Sep 2017 22:35:02 +0530 Subject: [PATCH 3/6] gnu: Add openttd-opensfx. * gnu/packages/games.scm (openttd-opensfx): New variable. --- gnu/packages/games.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7bfd05cc7..ed386fc84 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2525,6 +2525,44 @@ OpenGFX provides you with... @end enumerate") (license license:gpl2))) +(define openttd-opensfx + (package + (name "openttd-opensfx") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://binaries.openttd.org/extra/opensfx/" + version "/opensfx-" version "-source.tar.gz")) + (sha256 + (base32 + "03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5")))) + (build-system gnu-build-system) + (native-inputs + `(("catcodec" ,catcodec) + ("python" ,python2-minimal))) + (arguments + `(#:make-flags + (list (string-append "INSTALL_DIR=" %output + "/share/games/openttd/baseset/opensfx")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-reproducible + (lambda _ + ;; Remove the time dependency of the installed tarball by setting + ;; the modification times if its members to 0. + (substitute* "scripts/Makefile.def" + (("-cf") " --mtime=@0 -cf")) + #t)) + (delete 'configure)))) + (home-page "http://dev.openttdcoop.org/projects/opensfx") + (synopsis "Base sounds for OpenTTD") + (description "OpenSFX is a set of free base sounds for OpenTTD which make +it possible to play OpenTTD without requiring the proprietary sound files from +the original Transport Tycoon Deluxe.") + (license license:cc-sampling-plus-1.0))) + (define-public openttd (package (inherit openttd-engine) -- 2.14.1 From 041b20b236b936fea9813d65e2bc76c657f2f7a0 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 14 Sep 2017 04:18:03 +0530 Subject: [PATCH 4/6] gnu: Add openttd-openmsx. * gnu/packages/games.scm (openttd-openmsx): New variable. --- gnu/packages/games.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ed386fc84..891c17ab1 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2563,6 +2563,44 @@ it possible to play OpenTTD without requiring the proprietary sound files from the original Transport Tycoon Deluxe.") (license license:cc-sampling-plus-1.0))) +(define openttd-openmsx + (package + (name "openttd-openmsx") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://binaries.openttd.org/extra/openmsx/" + version "/openmsx-" version "-source.tar.gz")) + (sha256 + (base32 + "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c")))) + (build-system gnu-build-system) + (native-inputs + `(("python" ,python2-minimal))) + (arguments + `(#:make-flags + (list (string-append "INSTALL_DIR=" %output + "/share/games/openttd/baseset")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'post-install + ;; Rename openmsx-version to openmsx + (lambda* (#:key outputs #:allow-other-keys) + (let ((install-directory (string-append (assoc-ref outputs "out") + "/share/games/openttd/baseset"))) + (rename-file (string-append install-directory "/openmsx-" ,version) + (string-append install-directory "/openmsx")) + #t)))))) + (home-page "http://dev.openttdcoop.org/projects/openmsx") + (synopsis "Music set for OpenTTD") + (description "OpenMSX is a music set for OpenTTD which makes it possible +to play OpenTTD without requiring the proprietary music from the original +Transport Tycoon Deluxe.") + (license license:gpl2))) + (define-public openttd (package (inherit openttd-engine) -- 2.14.1 From 63ec3d03804e0dd093472d7e0a7a78be4e6ece5c Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 14 Sep 2017 04:19:26 +0530 Subject: [PATCH 5/6] gnu: openttd: Include openttd-openmsx and openttd-opensfx. * gnu/packages/games.scm (openttd-opengfx)[arguments]: Change installation directory from /share/openttd/baseset/opengfx to /share/games/openttd/baseset/opengfx. (openttd-engine)[arguments]: Support #:configure-flags keyword argument in 'configure' phase. (openttd)[inputs]: Add timidity++. [native-inputs]: Add openttd-openmsx and openttd-opensfx. [arguments]: Configure with timidity as MIDI player. Install data from openttd-openmsx and openttd-opensfx. --- gnu/packages/games.scm | 57 ++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 891c17ab1..022a3ca44 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2427,17 +2427,19 @@ and a game metadata scraper.") ;; The build process fails if the configure script is passed the ;; option "--enable-fast-install". (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key inputs outputs (configure-flags '()) + #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (lzo (assoc-ref inputs "lzo"))) (zero? - (system* "./configure" - (string-append "--prefix=" out) - ;; Provide the "lzo" path. - (string-append "--with-liblzo2=" - lzo "/lib/liblzo2.a") - ;; Put the binary in 'bin' instead of 'games'. - "--binary-dir=bin")))))))) + (apply system* "./configure" + (string-append "--prefix=" out) + ;; Provide the "lzo" path. + (string-append "--with-liblzo2=" + lzo "/lib/liblzo2.a") + ;; Put the binary in 'bin' instead of 'games'. + "--binary-dir=bin" + configure-flags)))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("allegro" ,allegro-4) @@ -2464,10 +2466,6 @@ engine. When you start it you will be prompted to download a graphics set.") ;; different terms. (license (list license:bsd-3 license:gpl2 license:lgpl2.1+ license:zlib)))) -;; TODO Add 'openttd-opengfx' and 'openttd-openmsx' packages and make -;; 'openttd' a wrapper around them. The engine is playable by itself, -;; but it asks a user to download graphics if it's not found. - (define openttd-opengfx (package (name "openttd-opengfx") @@ -2485,7 +2483,7 @@ engine. When you start it you will be prompted to download a graphics set.") '(#:make-flags (list "CC=gcc" (string-append "INSTALL_DIR=" (assoc-ref %outputs "out") - "/share/openttd/baseset")) + "/share/games/openttd/baseset/opengfx")) #:phases (modify-phases %standard-phases (replace 'configure @@ -2606,22 +2604,27 @@ Transport Tycoon Deluxe.") (inherit openttd-engine) (name "openttd") (arguments - (substitute-keyword-arguments (package-arguments openttd-engine) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'install-data - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* - ((opengfx (assoc-ref inputs "opengfx")) - (out (assoc-ref outputs "out")) - (gfx-dir - (string-append out - "/share/games/openttd/baseset/opengfx"))) - (mkdir-p gfx-dir) - (copy-recursively opengfx gfx-dir)) - #t)))))) + `(#:configure-flags + (list (string-append "--with-midi=" (assoc-ref %build-inputs "timidity++") + "/bin/timidity")) + ,@(substitute-keyword-arguments (package-arguments openttd-engine) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'install-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each + (lambda (input) + (copy-recursively (assoc-ref inputs input) + (assoc-ref outputs "out"))) + (list "opengfx" "openmsx" "opensfx")) + #t))))))) + (inputs + `(("timidity++" ,timidity++) + ,@(package-inputs openttd-engine))) (native-inputs `(("opengfx" ,openttd-opengfx) + ("openmsx" ,openttd-openmsx) + ("opensfx" ,openttd-opensfx) ,@(package-native-inputs openttd-engine))))) (define-public pinball -- 2.14.1 From 17f0628c11256f22c536b3723365fc9a1ccdafdd Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 19 Sep 2017 18:10:27 +0530 Subject: [PATCH 6/6] gnu: openttd-opengfx: Disable parallel build. * gnu/packages/games.scm (openttd-opengfx)[arguments]: Set #:parallel-build? to #f. --- gnu/packages/games.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 022a3ca44..aef6f0121 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2501,7 +2501,8 @@ engine. When you start it you will be prompted to download a graphics set.") ;; different software versions than upstream does, some of the md5sums ;; are different. However, the package is still reproducible, it's safe ;; to disable this test. - #:tests? #f)) + #:tests? #f + #:parallel-build? #f)) (native-inputs `(("dos2unix" ,dos2unix) ("gimp" ,gimp) ("grfcodec" ,grfcodec) -- 2.14.1