guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#32638: [PATCH] games.scm - add frotz packages


From: Kei Kebreau
Subject: bug#32638: [PATCH] games.scm - add frotz packages
Date: Sat, 08 Sep 2018 13:47:57 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Benjamin Slade <address@hidden> 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 <address@hidden>
>  ;;; Copyright © 2018 Tim Gesthuizen <address@hidden>
>  ;;; Copyright © 2018 Madalin Ionel-Patrascu <address@hidden>
> +;;; Copyright © 2018 Benjamin Slade <address@hidden>
>  ;;;
>  ;;; 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 via email to

[Prev in Thread] Current Thread [Next in Thread]