--- Begin Message ---
Subject: |
[PATCH] games.scm - add frotz packages |
Date: |
Tue, 04 Sep 2018 20:43:47 -0600 |
User-agent: |
mu4e 1.0; emacs 26.1 |
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.
games.scm.patch
Description: add frotz pkgs to games.scm
--
Benjamin Slade - https://babbagefiles.xyz
`(pgp_fp: ,(21BA 2AE1 28F6 DF36 110A 0E9C A320 BBE8 2B52 EE19))
'(sent by mu4e on Emacs running under GNU/Linux . https://gnu.org )
`(Choose Linux ,(Choose Freedom) . https://linux.com )
--- End Message ---
--- Begin Message ---
Subject: |
Re: [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!
--- End Message ---