aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm242
1 files changed, 242 insertions, 0 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b502cd0ec4..c23f624251 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -7730,6 +7730,114 @@ the World and demonstrating that he is even more evil than his brother Vlad.")
;; Drascula uses a BSD-like license.
(license (license:non-copyleft "file:///readme.txt"))))
+(define (make-lure-package name language hash)
+ (package
+ (name name)
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/scummvm/extras/"
+ "Lure%20of%20the%20Temptress/"
+ name "-" version ".zip"))
+ (sha256
+ (base32 hash))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share"))
+ (data (string-append share "/" ,name "/" ,language))
+ (apps (string-append share "/applications"))
+ (bin (string-append out "/bin"))
+ (executable (string-append bin "/" ,name))
+ (scummvm (assoc-ref %build-inputs "scummvm")))
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip")))
+ (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+ (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+ (for-each (lambda (f) (install-file f doc))
+ (find-files "." "\\.(txt|PDF|pdf)$")))
+ (for-each (lambda (f) (install-file f data))
+ (find-files "." "\\.(vga|VGA)$"))
+ ;; Build the executable.
+ (mkdir-p bin)
+ (let ((bash (assoc-ref %build-inputs "bash")))
+ (with-output-to-file executable
+ (lambda ()
+ (format #t "#!~a/bin/bash~%" bash)
+ (format #t "exec ~a/bin/scummvm -q ~a -p ~a lure~%"
+ scummvm ,language data))))
+ (chmod executable #o755)
+ ;; Create desktop file. There is no dedicated
+ ;; icon for the game, so we borrow SCUMMVM's.
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/" ,name ".desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Lure of the Temptress~@
+ GenericName=Lure~@
+ Exec=~a~@
+ Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+ Categories=AdventureGame;Game;RolePlaying;~@
+ Keywords=game;adventure;roleplaying;2D,fantasy;~@
+ Comment=Classic 2D point and click adventure game~@
+ Comment[de]=klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier~@
+ Comment[fr]=Jeu classique d'aventure pointer-et-cliquer en 2D~@
+ Comment[it]=Gioco classico di avventura punta e clicca 2D~@
+ Type=Application~%"
+ executable scummvm)))
+ #t))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (inputs
+ `(("bash" ,bash)
+ ("scummvm" ,scummvm)))
+ (home-page "https://www.scummvm.org")
+ (synopsis "2D point and click fantasy adventure game")
+ (description
+ "Lure of the Temptress is a classic 2D point and click adventure game.
+
+You are Diermot, an unwilling hero who'd prefer a quiet life, and are, to all
+intents and purposes, a good man. After decades of unrest the King has united
+the warring factions in his kingdom and all his lands are at peace, except
+a remote region around a town called Turnvale. A revolt has recently taken
+place in Turnvale, a revolt orchestrated by an apprentice sorceress called
+Selena, the titular temptress. The king calls together his finest horsemen
+and heads off (with you in tow) to Turnvale just to witness how hellish
+mercenary monsters called Skorl are invading the town.
+
+The king's men are defeated, the king is killed and you fall of your horse and
+bang your head heavily on the ground. You have been *unconscious for a while
+when you realize that you are in a dingy cell guarded by a not so friendly
+Skorl. Maybe it would be an idea to try and escape...")
+ (license (license:non-copyleft "file:///README"))))
+
+(define-public lure
+ (make-lure-package
+ "lure" "en" "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk"))
+
+(define-public lure-de
+ (make-lure-package
+ "lure-de" "de" "0sqq7h5llml6rv85x0bfv4bgzwhs4c82p4w4zmfcaab6cjlad0sy"))
+
+(define-public lure-es
+ (make-lure-package
+ "lure-es" "es" "1dvv5znvlsakw6w5r16calv9jkgw27aymgybsf4q22lcmpxbj1lk"))
+
+(define-public lure-fr
+ (make-lure-package
+ "lure-fr" "fr" "1y51jjb7f8023832g44vd1jsb6ni85586pi2n5hjg9qjk6gi90r9"))
+
+(define-public lure-it
+ (make-lure-package
+ "lure-it" "it" "1ks6n39r1cllisrrh6pcr39swsdv7ng3gx5c47vaw71zzfr70hjj"))
+
(define-public gnurobots
(package
(name "gnurobots")
@@ -9666,3 +9774,137 @@ challenges.")
license:bsd-3 ;src/md5sum
license:lgpl2.1+ ;src/iqsort.h
license:expat))))
+
+(define-public eboard
+ (package
+ (name "eboard")
+ (version "1.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fbergo/eboard.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1z4pwpqyvxhlda99h6arh2rjk90fbms9q29fqizjblrdn01dlxn1"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+-2)
+ ("libpng" ,libpng)
+ ("gstreamer" ,gstreamer)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (make-file-writable "eboard-config")
+ (setenv "CC" "gcc")
+ (invoke "./configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))
+ #t))
+ (add-before 'install 'make-required-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "out")
+ "/share/eboard"))
+ #t)))))
+ (synopsis "Graphical user interface to play chess")
+ (description
+ "Eboard is a chess board interface for ICS (Internet Chess Servers)
+and chess engines.")
+ (home-page "https://www.bergo.eng.br/eboard/")
+ (license license:gpl2+)))
+
+(define-public chessx
+ (package
+ (name "chessx")
+ (version "1.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/chessx/chessx/"
+ version "/chessx-" version ".tgz"))
+ (sha256
+ (base32 "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtsvg" ,qtsvg)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "chessx.pro"
+ (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
+ (string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
+ #t))
+ (add-after 'fix-paths 'make-qt-deterministic
+ (lambda _
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+ #t))
+ (replace 'configure
+ (lambda _
+ (invoke "qmake")
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "release/chessx" (string-append out "/bin"))
+ (install-file "unix/chessx.desktop"
+ (string-append out "/share/applications")))
+ #t)))))
+ (synopsis "Chess game database")
+ (description
+ "ChessX is a chess database. With ChessX you can operate on your
+collection of chess games in many ways: browse, edit, add, organize, analyze,
+etc. You can also play games on FICS or against an engine.")
+ (home-page "http://chessx.sourceforge.net/")
+ (license license:gpl2+)))
+
+(define-public stockfish
+ (package
+ (name "stockfish")
+ (version "11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/official-stockfish/Stockfish.git")
+ (commit (string-append "sf_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12mppipinymj8s1ipq9a7is453vncly49c32ym9wvyklsgyxfzlk"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:make-flags (list "-C" "src"
+ "build"
+ (string-append "PREFIX="
+ (assoc-ref %outputs "out"))
+ (string-append "ARCH="
+ ,(match (%current-system)
+ ("x86_64-linux" "x86-64")
+ ("i686-linux" "x86-32")
+ ("aarch64-linux" "general-64")
+ ("armhf-linux" "armv7")
+ ("mips64el-linux" "general-64")
+ (_ "general-32"))))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (synopsis "Strong chess engine")
+ (description
+ "Stockfish is a very strong chess engines. It is much stronger than the
+best human chess grandmasters. It can be used with UCI-compatible GUIs like
+ChessX.")
+ (home-page "https://stockfishchess.org/")
+ (license license:gpl3+)))