unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
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!

      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).