From: Efraim Flashner <efraim@flashner.co.il>
To: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Cc: 38805@debbugs.gnu.org
Subject: [bug#38805] [PATCH] Add lure.
Date: Mon, 10 Feb 2020 09:27:34 +0200 [thread overview]
Message-ID: <20200210072734.GB9296@E5400> (raw)
In-Reply-To: <871rr3z034.fsf@nicolasgoaziou.fr>
[-- Attachment #1: Type: text/plain, Size: 7401 bytes --]
Just a couple of formatting suggestions, otherwise it looks good!
On Mon, Feb 10, 2020 at 02:45:51AM +0100, Nicolas Goaziou wrote:
> Hello,
>
> Efraim Flashner <efraim@flashner.co.il> writes:
>
> > I think for people looking for the game in other languages finding it as
> > game-lang would be easier than as a separate output. So my vote would be
> > different packages, assumably all inheriting from the english one.
>
> Thank you for the review!
>
> Unfortunately, inheritance doesn't cut it, as I need to parametrize the
> localized packages.
>
> What do you think about the following update?
>
> Regards,
>
> --
> Nicolas Goaziou
> From 8a22035948190f63d941cd8e51b69bf4a37bdca3 Mon Sep 17 00:00:00 2001
> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> Date: Mon, 30 Dec 2019 02:43:59 +0100
> Subject: [PATCH] gnu: Add lure.
>
> * gnu/packages/games.scm (make-lure-package):
> (lure):
> (lure-de):
> (lure-es):
> (lure-fr):
> (lure-it): New variables.
I would do it as (lure, lure-de, lure-es, lure-fr, lure-it): New variables.
> ---
> gnu/packages/games.scm | 111 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 111 insertions(+)
>
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index 78e0042aac..e9543679cd 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -7730,6 +7730,117 @@ 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/lure")))
IMO you should have share as out/share, it allows for easier reuse of
the variable.
> + (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
> + "/bin/unzip")))
> + (invoke unzip "-j" (assoc-ref %build-inputs "source")))
> + (let ((doc (string-append out "/share/doc/lure-" ,version)))
> + (for-each (lambda (f) (install-file f doc))
> + (find-files "." "\\.(txt|PDF|pdf)$")))
> + (for-each (lambda (f)
> + (install-file f (string-append share "/" ,language)))
> + (find-files "." "\\.(vga|VGA)$"))
I would move the following let variables to the top let and leave the
other two (unzip, doc) as you have them.
> + (let* ((bin (string-append out "/bin"))
> + (apps (string-append out "/share/applications"))
> + (executable (string-append bin "/" ,name))
> + (bash (assoc-ref %build-inputs "bash"))
> + (scummvm (assoc-ref %build-inputs "scummvm")))
> + ;; Build the executable.
> + (mkdir-p bin)
> + (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
> + (string-append share "/" ,language))))
> + (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
> + `(("bash" ,bash)
> + ("unzip" ,unzip)))
> + (inputs
> + `(("scummvm" ,scummvm)))
> + (home-page "https://www.scummvm.org")
> + (synopsis "2D point and click fantasy adventure game")
> + (description
> + "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...
> +
> +Note that this package only contains game-data. The game engine is provided
> +by ScummVM.")
> + (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")
> --
> 2.25.0
>
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-02-10 7:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-30 2:02 [bug#38805] [PATCH] Add lure Nicolas Goaziou
2020-02-03 16:31 ` Nicolas Goaziou
2020-02-06 19:39 ` Efraim Flashner
2020-02-10 1:45 ` Nicolas Goaziou
2020-02-10 7:27 ` Efraim Flashner [this message]
2020-02-10 9:51 ` bug#38805: " Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200210072734.GB9296@E5400 \
--to=efraim@flashner.co.il \
--cc=38805@debbugs.gnu.org \
--cc=mail@nicolasgoaziou.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).