* [bug#35757] [PATCH] Add drascula
@ 2019-05-15 20:37 Nicolas Goaziou
2019-05-20 8:13 ` Danny Milosavljevic
0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Goaziou @ 2019-05-15 20:37 UTC (permalink / raw)
To: 35757
[-- Attachment #1: Type: text/plain, Size: 148 bytes --]
Hello,
The following patch adds Drascula: The Vampire Strikes Back as
a standalone SCUMMVM game.
Feedback welcome.
Regards,
--
Nicolas Goaziou
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Add drascula --]
[-- Type: text/x-diff, Size: 6749 bytes --]
From 36e9befc3b015d870d7d3794809b54ec0b6d2b33 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 15 May 2019 22:32:50 +0200
Subject: [PATCH] gnu: Add drascula.
* gnu/packages/games.scm (drascula): New variable.
---
gnu/packages/games.scm | 120 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 120 insertions(+)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 202221a987..9ab4849506 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -86,6 +86,7 @@
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages docbook)
+ #:use-module (gnu packages emulators)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fonts)
@@ -7161,3 +7162,122 @@ and cones of view for monsters. Aiming for a replayable streamlined experience,
the game avoids complex inventory management and character building, relying
on items and player adaptability for character progression.")
(license license:isc)))
+
+(define-public drascula
+ (package
+ (name "drascula")
+ (version "1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scummvm/extras/"
+ "Drascula_%20The%20Vampire%20Strikes%20Back/"
+ "drascula-" version ".zip"))
+ (sha256
+ (base32
+ "1pj29rpb754sn6a56f8brfv6f2m1p5qgaqik7d68pfi2bb5zccdp"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share/drascula"))
+ (scummvm (assoc-ref %build-inputs "scummvm")))
+ ;; Install data.
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version)))
+ (for-each
+ (lambda (input)
+ (invoke unzip
+ "-j"
+ (assoc-ref %build-inputs input)
+ "-x" "__MACOSX")
+ ;; Every input provides "readme.txt", and we want to
+ ;; preserve them all. Therefore we rename them first.
+ (match input
+ ("drascula-int"
+ (rename-file "readme.txt" "readme-international.txt"))
+ ("drascula-audio"
+ (rename-file "readme.txt" "readme-audio.txt"))
+ (_ #f))
+ ;; Install documentation.
+ (for-each (lambda (f) (install-file f doc))
+ (find-files "." "\\.(txt|doc)$"))
+ ;; Install data.
+ (for-each (lambda (f) (install-file f share))
+ (find-files "." "\\.(ogg|00[0-9])$")))
+ '("drascula-audio" "drascula-int" "source")))
+ ;; Create standalone executable.
+ (let* ((bin (string-append out "/bin"))
+ (executable (string-append bin "/drascula"))
+ (bash (string-append (assoc-ref %build-inputs "bash")
+ "/bin/bash")))
+ (mkdir-p bin)
+ (with-output-to-file executable
+ (lambda ()
+ (format #t "#!~a~%" bash)
+ (format #t
+ "exec ~a/bin/scummvm --path=~a drascula~%"
+ scummvm share)))
+ (chmod executable #o755))
+ ;; Create desktop file. There is no dedicated icon for the
+ ;; game, so we borrow SCUMMVM's.
+ (let ((apps (string-append out "/share/applications")))
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/drascula.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Drascula: The Vampire Strikes Back~@
+ GenericName=Drascula~@
+ Exec=~a/bin/drascula~@
+ 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]=Jeux classique d'aventure pointer-et-cliquer en 2D~@
+ Comment[it]=Gioco classico di avventura punta e clicca 2D~@
+ Type=Application~%"
+ out scummvm))))
+ #t))))
+ (native-inputs
+ `(("bash" ,bash)
+ ("unzip" ,unzip)))
+ (inputs
+ `(("scummvm" ,scummvm)
+ ("drascula-int"
+ ,(let ((version "1.1"))
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scummvm/extras/"
+ "Drascula_%20The%20Vampire%20Strikes%20Back/"
+ "drascula-int-" version ".zip"))
+ (sha256
+ (base32
+ "12236i7blamal92p1i8dgp3nhp2yicics4whsl63v682bj999n14")))))
+ ("drascula-audio"
+ ,(let ((version "2.0"))
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scummvm/extras/"
+ "Drascula_%20The%20Vampire%20Strikes%20Back/"
+ "drascula-audio-" version ".zip"))
+ (sha256
+ (base32
+ "00g4izmsqzxb8ry1vhfx6jrygl58lvlij09nw01ds4zddsiznsky")))))))
+ (home-page "https://www.scummvm.org")
+ (synopsis "Classic 2D point and click adventure game")
+ (description "Drascula: The Vampire Strikes Back is a classic humorous 2D
+point and click adventure game.
+
+In Drascula you play the role of John Hacker, a British estate agent, that
+gets to meet a gorgeous blond girl who is kidnapped by the notorious vampire
+Count Drascula and embark on a fun yet dangerous quest to rescue her.
+Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING
+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"))))
--
2.21.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#35757] [PATCH] Add drascula
2019-05-15 20:37 [bug#35757] [PATCH] Add drascula Nicolas Goaziou
@ 2019-05-20 8:13 ` Danny Milosavljevic
2019-05-20 21:37 ` bug#35757: " Nicolas Goaziou
0 siblings, 1 reply; 3+ messages in thread
From: Danny Milosavljevic @ 2019-05-20 8:13 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: 35757
[-- Attachment #1: Type: text/plain, Size: 471 bytes --]
LGTM except for
>+ (license (license:non-copyleft "file://readme.txt"))))
That is an invalid URL.
Should be:
+ (license (license:non-copyleft "file:///readme.txt"))))
There are cases where you want to refer to files on a specific host
(I've actually used file manager programs which support drag&drop
across hosts--it's nice).
See also https://tools.ietf.org/html/rfc8089 for possible forms.
What is also valid by now is "file:readme.txt".
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#35757: [PATCH] Add drascula
2019-05-20 8:13 ` Danny Milosavljevic
@ 2019-05-20 21:37 ` Nicolas Goaziou
0 siblings, 0 replies; 3+ messages in thread
From: Nicolas Goaziou @ 2019-05-20 21:37 UTC (permalink / raw)
To: Danny Milosavljevic; +Cc: 35757-done
Hello,
Danny Milosavljevic <dannym@scratchpost.org> writes:
> LGTM except for
>
>>+ (license (license:non-copyleft "file://readme.txt"))))
>
> That is an invalid URL.
>
> Should be:
>
> + (license (license:non-copyleft "file:///readme.txt"))))
Oops. Fixed.
Pushed. Thank you.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-05-20 21:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-15 20:37 [bug#35757] [PATCH] Add drascula Nicolas Goaziou
2019-05-20 8:13 ` Danny Milosavljevic
2019-05-20 21:37 ` bug#35757: " Nicolas Goaziou
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.