diff options
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r-- | gnu/packages/games.scm | 136 |
1 files changed, 108 insertions, 28 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7bfd05cc7f..aef6f01215 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 @@ -2503,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) @@ -2525,27 +2524,108 @@ 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 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) (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 |