diff options
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r-- | gnu/packages/games.scm | 243 |
1 files changed, 229 insertions, 14 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 653e0c7206..34998cea28 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -17,6 +17,8 @@ ;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net> +;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> +;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,6 +36,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages games) + #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) @@ -61,6 +64,7 @@ #:use-module (gnu packages libunwind) #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages python) @@ -220,7 +224,7 @@ that beneath its ruins lay buried an ancient evil.") (sha256 (base32 "0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m")) - (patches (list (search-patch "pingus-sdl-libs-config.patch"))))) + (patches (search-patches "pingus-sdl-libs-config.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("scons" ,scons))) @@ -598,8 +602,8 @@ for common mesh file formats, and collision detection.") (sha256 (base32 "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh")) - (patches (list (search-patch "mars-sfml-2.3.patch") - (search-patch "mars-install.patch"))))) + (patches (search-patches "mars-sfml-2.3.patch" + "mars-install.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; There are no tests @@ -1185,7 +1189,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.6.3.12") + (version "1.6.4.23") (source (origin (method url-fetch) (uri (string-append @@ -1193,7 +1197,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "02bnd4nk1qzrfqckqkwb6sbjzsmacv968ih74cdgcykslpsr684d")))) + "1ja2w86rz3pliq0sdc7yxppsdjg3d1ymcx9fdsiwnw6fv5a8nbzj")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1709,8 +1713,7 @@ Z64 video plugin.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2")) - (patches - (list (search-patch "mupen64plus-ui-console-notice.patch"))))) + (patches (search-patches "mupen64plus-ui-console-notice.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1859,6 +1862,74 @@ and a game metadata scraper.") (home-page "http://www.emulationstation.org") (license license:expat))) +(define openttd-engine + (package + (name "openttd-engine") + (version "1.6.0") + (source + (origin (method url-fetch) + (uri (string-append "http://binaries.openttd.org/releases/" + version "/openttd-" version "-source.tar.xz")) + (sha256 + (base32 + "1cjf9gz7d0sn7893wv9d00q724sxv3d81bgb0c5f5ppz2ssyc4jc")) + (modules '((guix build utils))) + (snippet + ;; The DOS port contains proprietary software. + '(delete-file-recursively "os/dos")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + ;; The build process fails if the configure script is passed the + ;; option "--enable-fast-install". + (replace 'configure + (lambda* (#:key inputs outputs #: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")))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("allegro" ,allegro-4) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("lzo" ,lzo) + ("sdl" ,sdl) + ("xz" ,xz) + ("zlib" ,zlib))) + (synopsis "Transportation economics simulator") + (description "OpenTTD is a game in which you transport goods and +passengers by land, water and air. It is a re-implementation of Transport +Tycoon Deluxe with many enhancements including multiplayer mode, +internationalization support, conditional orders and the ability to clone, +autoreplace and autoupdate vehicles.") + (home-page "http://openttd.org/") + ;; This package is GPLv2, except for a few files located in + ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib + ;; licenses. In addition, this software contains an in-game downloader + ;; from which the user may find non-functional data licensed under + ;; 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-public openttd + (package + (inherit openttd-engine) + (name "openttd"))) + (define-public pinball (package (name "pinball") @@ -1871,12 +1942,11 @@ and a game metadata scraper.") (sha256 (base32 "1f2whlrfidwfh8lvr8cspcyirc6840r5d1ajm7x99qmngygrhixs")) - (patches (map search-patch - '("pinball-const-fix.patch" - "pinball-cstddef.patch" - "pinball-missing-separators.patch" - "pinball-src-deps.patch" - "pinball-system-ltdl.patch"))))) + (patches (search-patches "pinball-const-fix.patch" + "pinball-cstddef.patch" + "pinball-missing-separators.patch" + "pinball-src-deps.patch" + "pinball-system-ltdl.patch")))) (build-system gnu-build-system) (inputs `(("glu" ,glu) @@ -1965,7 +2035,7 @@ players.") (sha256 (base32 "1hxrlv6n8py48j487i6wbb4n4vd55w0na69r7ccmmr9vmrsw5mlk")) - (patches (list (search-patch "einstein-build.patch"))))) + (patches (search-patches "einstein-build.patch")))) (build-system gnu-build-system) (inputs `(("freetype" ,freetype) @@ -2026,3 +2096,148 @@ is attributed to Albert Einstein.") the chat server psyced with the specific config located at http://lavachat.symlynx.com/unix/") (license license:gpl2+))) + +(define-public redeclipse + (let ((data-sources + '(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q") + ("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il") + ("appleflap" "1cn41c6xs68l88rmphqh4rlsh6h04xnkkvklxdpqpvvr4zlsmi85") + ("blendbrush" "0wjbgnniirl9arv274m8mpdqbbq7d09g0pq1z9dl56sazmbk5yy0") + ("caustics" "0gxv1pqhi6c27mqi9mwqyfnzv9rq5sva1vgxhb9ljh231rmkdc15") + ("crosshairs" "0vlyhd10mly2qnjpwvss9ani7dg3v2njpf7457ilx7fk9a3hlbkk") + ("elyvisions" "0s0l77rd9fd09imvj05pwcz4bqrn3j8qsw8prv5pi5bqa50mbn19") + ("fonts" "0apn8j9lf43nmnidq1f0azhrr1n896g7si4djbix1bwll6ild0mq") + ("freezurbern" "0y60s3g8v8bl2m6pk2yr9fzl67ymv821x6l2f9hszzydlcjwlscn") + ("john" "1lmwn0r7qpyac2qrnkv9llhsbyzqpgr27hxq2qn1rfbq12fja0ld") + ("jojo" "0sh3ricqlqw868a0mz2n9iw7lhp650pysd2wkcdizhcmw2hlayx9") + ("jwin" "1r459jhxx64j3vdw886ypkm6zg0yg6cr2qark54i1zdskjhp762k") + ("luckystrike" "08xq87crcz0jq45q1g6p8h4xrm1bcqzd019zp7n0f9c3p9j6al91") + ("maps" "1f0hqh8mbd4nzqi4hja4k5f380nszhx8igajg5ini4p9cp39x9vi") + ("mayhem" "1hn9jp64aiz8k6p2nxyg82h2nc8fadgghzhrm26y7i4bz9xwxacm") + ("mikeplus64" "1kj2zznxykgm3f1h1fvd8xzim5f292lyh96l2gj5km1nynzjmaap") + ("misc" "1phmzjs5rmika3568b7jb6ywbsi40r711rhg8cbsflllcp7hdidf") + ("nobiax" "08in9c24m2pq7x371q10ny4q3l1l3zb8m029iypy2lx9gr99i7hm") + ("particles" "0wcd3s6vhrjknffnfqrcpkcqk1r01f1fiz6q7n4srhpdv3i4d6vm") + ("philipk" "1s0kmap8iv5sddanrhycblskj3ywvz9xg2m11f6vnfy108palkga") + ("projectiles" "0xdhrs9rsncd1f88s5igdbfksli7h0irg5jdbj6p2a3rgdzb3gnj") + ("props" "1sbh3a94pmzic78bil0dvdh4fd8s6gh52f77jdram3w0gwv79x3r") + ("skyboxes" "0hy95a6ps0fk4cq8j6pjipk8rnsjna9bm0ly2l373gbshlfg6zgi") + ("sounds" "1pnyd7acm19sj1k1cy9hq3n3dnzzaiak7j5f0h7fikiybq5rdk7b") + ("textures" "0gxfnc4xm0kp3pd7lhd4yy1dqq00g727h21l64nyiw2b2d6n1755") + ("torley" "1cri5mf8ls8mvpn1x1p9hacyg9ibilaiz07gqv2hl2q8ww5xc1s6") + ("trak" "0xyk5z59kn9ym9n5fdcrwhqig6gjcjgnrgi9rqbbai713w9vpsbq") + ("ulukai" "0ziv9c4inmza40mas1w9dp048y6f646x00bs7kqv33hd1snbg3v3") + ("unnamed" "0hm291k9azilnp0m04zhm52vml1rhxk1z4l74v66spbikr6s2zdx") + ("vanities" "1qbc2v67kdrlvq10miw3dfmg3j9w9bq1hgqrzjcbph0l4gra1ndw") + ("vegetation" "13928yw0wflcj620cmp8rqwplaw8508f3j4zi32vxida1ksz6xn0") + ("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3") + ("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g")))) + (package + (name "redeclipse") + (version "1.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/red-eclipse/base" + "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y0jv5lz69zisiw8sd5z9a9v21zc83by1sx9b7dly78ngif4gc4l")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags (list "CC=gcc" "-Csrc" + (string-append "INSTDIR=" + (assoc-ref %outputs "out") "/bin")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-data + (lambda* (#:key inputs #:allow-other-keys) + (delete-file-recursively "data") + (mkdir "data") + (for-each (lambda (name) + (system* "tar" "-xvf" + (assoc-ref inputs name) + "-Cdata" + "--transform" + (string-append "s/" + name "-1.5.3/" + name "/"))) + (list ,@(map car data-sources))) + #t)) + (delete 'configure) ; no configure script + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append (assoc-ref inputs "sdl-union") + "/include/SDL")) + #t)) + (add-after 'install 'copy-data + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "config" + (string-append out "/config")) + (copy-recursively "data" + (string-append out "/data"))) + #t)) + (add-after 'copy-data 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (rename-file "redeclipse_linux" + ".redeclipse_linux-real") + (rename-file "redeclipse_server_linux" + ".redeclipse_server_linux-real") + (call-with-output-file "redeclipse_linux" + (lambda (port) + (format port "#!~a/bin/sh +# Run the thing from its home, otherwise it just bails out. +cd \"~a\" +exec -a \"$0\" ~a/.redeclipse_linux-real~%" + (assoc-ref inputs "bash") ;implicit input + (string-append out) + (string-append bin)))) + (call-with-output-file "redeclipse_server_linux" + (lambda (port) + (format port "#!~a/bin/sh +# Run the thing from its home, otherwise it just bails out. +cd \"~a\" +exec -a \"$0\" ~a/.redeclipse_server_linux-real~%" + (assoc-ref inputs "bash") ;implicit input + (string-append out) + (string-append bin)))) + (chmod "redeclipse_linux" #o555) + (chmod "redeclipse_server_linux" #o555))) + #t))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("glu" ,glu) + ("sdl-union" ,(sdl-union)) + ;; Create origin records for the many separate data packages. + ,@(map (match-lambda + ((name hash) + (list name + (origin + (method url-fetch) + (uri (string-append + "https://github.com/red-eclipse/" + name "/archive/v" version ".tar.gz")) + (sha256 (base32 hash)) + (file-name (string-append name "-" version + ".tar.gz")))))) + data-sources))) + (home-page "http://redeclipse.net/") + (synopsis "Arena shooter derived from the Cube 2 engine") + (description + "Red Eclipse is an arena shooter, created from the Cube2 engine. +Offering an innovative parkour system and distinct but all potent weapons, +Red Eclipse provides fast paced and accessible gameplay.") + ;; The engine is under Zlib; data files are covered by the other + ;; licenses. More details at <http://redeclipse.net/wiki/License>. + (license (list license:expat + license:zlib + license:cc-by-sa3.0 + license:cc-by3.0 + license:cc0))))) |