From: Kei Kebreau <kkebreau@posteo.net>
To: Benjamin Slade <slade@jnanam.net>
Cc: 32638-done@debbugs.gnu.org
Subject: bug#32638: [PATCH] games.scm - add frotz packages
Date: Sat, 08 Sep 2018 13:47:57 -0400 [thread overview]
Message-ID: <87h8izanjm.fsf@posteo.net> (raw)
In-Reply-To: <87ftyky9cw.fsf@jnanam.net> (Benjamin Slade's message of "Fri, 07 Sep 2018 21:08:15 -0600")
Benjamin Slade <slade@jnanam.net> writes:
> gnu: Add frotz, frotz-dumb-terminal, frotz-sdl
>
> * gnu/packages/games.scm (frotz): New variable.
> * gnu/packages/games.scm (frotz-dumb-terminal): New variable.
> * gnu/packages/games.scm (frotz-sdl): New variable.
>
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index 728f76380..eb8ce7e8e 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -34,6 +34,7 @@
> ;;; Copyright © 2018 okapi <okapi@firemail.cc>
> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
> ;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
> +;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -5553,3 +5554,159 @@ open-source FPS of its kind.")
> (license (list license:gpl2+
> license:bsd-3 ; /source/d0_blind_id folder and others
> (license:x11-style "" "See file rcon.pl.")))))
> +
> +(define-public frotz
> + (package
> + (name "frotz")
> + (version "2.44")
> + (source (origin
> + (method url-fetch)
> + (uri (list (string-append
> + "http://www.ifarchive.org/if-archive/infocom/interpreters/"
> + name "/" name "-" version ".tar.gz")
> + (string-append
> + "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
> + name "/" name "-" version ".tar.gz")))
> + (sha256
> + (base32
> + "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f ; there are no tests
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'configure)
> + (add-before 'build 'curses
> + (lambda _
> + (substitute* "Makefile"
> + (("lcurses") "lncurses"))
> + #t))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin"))
> + (man (string-append out "/share/man/man6")))
> + (install-file "frotz" bin)
> + (mkdir-p man)
> + (install-file "doc/frotz.6" man)
> + #t))))))
> + (inputs `(("libmodplug" ,libmodplug)
> + ("libsamplerate" ,libsamplerate)
> + ("libsndfile" ,libsndfile)
> + ("libvorbis" ,libvorbis)
> + ("ncurses" ,ncurses)))
> + (synopsis "Portable Z-machine interpreter (ncurses version)
> +for text adventure games")
I don't know that we prefer line breaks in the synopsis, so I removed it.
> + (description "Frotz is an interpreter for Infocom games
> +and other Z-machine games in the text adventure/interactive fiction genre.
> +This version of Frotz complies with standard 1.0 of Graham Nelson's specification.
> +It plays all Z-code games V1-V8, including V6, with sound support through libao,
> +and uses ncurses for text display.")
I adjusted the line breaks here to make them more consistent with the
other two frotz package descriptions.
> + (home-page "http://frotz.sourceforge.net")
> + (license license:gpl2+)))
> +
> +(define-public frotz-dumb-terminal
> + (package
> + (name "frotz-dumb-terminal")
> + (version "2.44")
> + (source (origin
> + (method url-fetch)
> + (uri (list (string-append
> + "http://www.ifarchive.org/if-archive/infocom/interpreters/"
> + "frotz" "/" "frotz" "-" version ".tar.gz")
> + (string-append
> + "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
> + "frotz" "/" "frotz" "-" version ".tar.gz")))
> + (sha256
> + (base32
> + "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f ; there are no tests
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'configure)
> + (replace 'build
> + (lambda _
> + (invoke "make" "dumb")))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin"))
> + (man (string-append out "/share/man/man6")))
> + (install-file "dfrotz" bin)
> + (mkdir-p man)
> + (install-file "doc/dfrotz.6" man)
> + #t))))))
> + (synopsis "Portable Z-machine dumb interpreter for text adventure games")
> + (description "Frotz is an interpreter for Infocom games and
> +other Z-machine games in the text adventure/interactive fiction genre.
> +dfrotz is the dumb interface version. You get no screen control; everything
> +is just printed to the terminal line by line. The terminal handles all the
> +scrolling. Maybe you'd like to experience what it's like to play Adventure on
> +a teletype. A much cooler use for compiling Frotz with the dumb interface is
> +that it can be wrapped in CGI scripting, PHP, and the like to allow people
> +to play games on webpages. It can also be made into a chat bot.")
> + (home-page "http://frotz.sourceforge.net")
> + (license license:gpl2+)))
> +
> +(define-public frotz-sdl
> + (let* ((commit "4de8c34f2116fff554af6216c30ec9d41bf50b24"))
> + (package
> + (name "frotz-sdl")
> + (version "2.45pre")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://gitlab.com/DavidGriffith/frotz")
> + (commit commit)))
> + (sha256
> + (base32
> + "18ms21pcrl7ipcnyqnf8janamkryzx78frsgd9kfk67jvbj0z2k8"))))
I added a file-name field here because the linter complained about it. I
wonder if it complained the first time and I just missed it?
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f ; there are no tests
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'configure)
> + (add-before 'build 'curses
> + (lambda _
> + (substitute* "Makefile"
> + (("lcurses") "lncurses")
> + (("^BUILD_DATE_TIME =.*$")
> + "BUILD_DATE_TIME = \"2.45pre-20180907.00000\"\n"))
> + #t))
I renamed this phase to "patch-makefile", as the reproducibility change
doesn't have to do with the curses change.
> + (replace 'build
> + (lambda _
> + (invoke "make" "sdl")))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin"))
> + (man (string-append out "/share/man/man6")))
> + (install-file "sfrotz" bin)
> + (mkdir-p man)
> + (install-file "doc/sfrotz.6" man)
> + #t))))))
> + (native-inputs
> + `(("pkg-config" ,pkg-config)
> + ("which" ,which)
> + ("perl" ,perl)))
> + (inputs `(("sdl2" ,sdl2)
> + ("sdl2-mixer" ,sdl2-mixer)
> + ("libmodplug" ,libmodplug)
> + ("libsamplerate" ,libsamplerate)
> + ("libsndfile" ,libsndfile)
> + ("libvorbis" ,libvorbis)
> + ("ncurses" ,ncurses)
> + ("freetype" ,freetype)
> + ("libjpeg-turbo" ,libjpeg-turbo)))
> + (synopsis "Portable Z-machine interpreter (SDL port) for text adventure games")
> + (description "Frotz is an interpreter for Infocom games and other Z-machine
> +games in the text adventure/interactive fiction genre. This version of Frotz
> +using SDL fully supports all these versions of the Z-Machine including the
> +graphical version 6. Graphics and sound are created through the use of the SDL
> +libraries. AIFF sound effects and music in MOD and OGG formats are supported
> +when packaged in Blorb container files or optionally from individual files.")
> + (home-page "http://frotz.sourceforge.net")
> + (license license:gpl2+))))
Thanks again! I've pushed this to master with the mentioned changes!
prev parent reply other threads:[~2018-09-08 17:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-05 2:43 [bug#32638] [PATCH] games.scm - add frotz packages Benjamin Slade
2018-09-06 18:20 ` Kei Kebreau
2018-09-06 19:25 ` Benjamin Slade
2018-09-08 3:08 ` Benjamin Slade
2018-09-08 17:47 ` Kei Kebreau [this message]
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=87h8izanjm.fsf@posteo.net \
--to=kkebreau@posteo.net \
--cc=32638-done@debbugs.gnu.org \
--cc=slade@jnanam.net \
/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).