From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxytu-0003eA-Hx for guix-patches@gnu.org; Thu, 06 Sep 2018 14:21:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxytq-0001HM-Eb for guix-patches@gnu.org; Thu, 06 Sep 2018 14:21:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43350) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fxytq-0001HE-6r for guix-patches@gnu.org; Thu, 06 Sep 2018 14:21:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fxytq-0004oJ-1V for guix-patches@gnu.org; Thu, 06 Sep 2018 14:21:02 -0400 Subject: [bug#32638] [PATCH] games.scm - add frotz packages Resent-Message-ID: From: Kei Kebreau References: <874lf48xzw.fsf@jnanam.net> Date: Thu, 06 Sep 2018 14:20:31 -0400 In-Reply-To: <874lf48xzw.fsf@jnanam.net> (Benjamin Slade's message of "Tue, 04 Sep 2018 20:43:47 -0600") Message-ID: <87o9daa3o0.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Benjamin Slade Cc: 32638@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Benjamin, > 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..0ae2d0548 100644 > --- a/gnu/packages/games.scm > +++ b/gnu/packages/games.scm > @@ -34,6 +34,7 @@ > ;;; Copyright =C2=A9 2018 okapi > ;;; Copyright =C2=A9 2018 Tim Gesthuizen > ;;; Copyright =C2=A9 2018 Madalin Ionel-Patrascu > +;;; Copyright =C2=A9 2018 Benjamin Slade > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -5553,3 +5554,153 @@ 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/i= nterpreters/" > + name "/" name "-" version ".tar.gz") > + (string-append > + "ftp://ftp.ifarchive.org/if-archive/infocom/in= terpreters/" > + 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")))) The "curses" phase above can be considered a replacement for the configure phase. Also, be sure that the phase returns #t, as the "substitute*" procedure has an unspecified return value. > + (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") > + (description "Frotz is an interpreter for Infocom games and > +other Z-machine games in the text adventure/interactive fiction genre. T= his 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.") In the description, sentences should be separated by two spaces. Running "./pre-inst-env guix lint frotz" will check these sorts of things (and more) automatically for you. As an aside, if you can keep the line lengths of the description at or under 80 characters wide, please do so. > + (home-page "http://frotz.sourceforge.net") > + (license license:gpl2))) Licensing trivia: The license for this software appears to be GPL2+. The COPYING file says GPL v2, which defaults to GPL v2 or later unless specified otherwise, and some source files are explicitly listed with the GPL v2 or later. > + > +(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/i= nterpreters/" > + "frotz" "/" "frotz" "-" version ".tar.gz") > + (string-append > + "ftp://ftp.ifarchive.org/if-archive/infocom/in= terpreters/" > + "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 ga= mes") > + (description "Frotz is an interpreter for Infocom games and > +other Z-machine games in the text adventure/interactive fiction genre. d= frotz is the > +dumb interface version. You get no screen control; everything is just pr= inted to the > +terminal line by line. The terminal handles all the scrolling. Maybe yo= u'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 als= o be made > +into a chat bot.") > + (home-page "http://frotz.sourceforge.net") > + (license license:gpl2))) > + Same comments as above for the description and license. > +(define-public frotz-sdl > + (let* ((commit "4de8c34f2116fff554af6216c30ec9d41bf50b24")) > + (package > + (name "frotz-sdl") > + (version "2.45pre") Why the git checkout? I assume the stable version's SDL port is not working? > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://gitlab.com/DavidGriffith/frotz") > + (commit commit))) > + (sha256 > + (base32 > + "18ms21pcrl7ipcnyqnf8janamkryzx78frsgd9kfk67jvbj0z2k8"= )))) > + (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")))) > + (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))) > + (inputs `(("sdl2" ,sdl2) > + ("sdl2-mixer" ,sdl2-mixer)=20=20=20=20=20=20=20=20=20=20= =20=20=20 > + ("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") I don't think a hyphen is necessary in "SDL-port". > + (description "Frotz is an interpreter for Infocom games and other = Z-machine > +games in the text adventure/interactive fiction genre. This version of F= rotz using > +SDL fully supports all these versions of the Z-Machine including the gra= phical > +version 6. Graphics and sound are created through the use of the SDL li= braries. > +AIFF sound effects and music in MOD and OGG formats are supported when p= ackaged in > +Blorb container files or optionally from individual files.") > + (home-page "http://frotz.sourceforge.net") > + (license license:gpl2)))) Same comments as above for the curses/configure phases, description and lic= ense. Also! frotz-sdl doesn't build reproducibly because of a timestamp in the Makefile named BUILD_DATE_TIME that ends up in the final binary. Please substitute that as well in the configure phase. Other than the comments above, all of the packages here work fine! Thanks for contributing! --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAluRb+8ACgkQ5qXuPBlG eg0QeRAAtoPpWK4EvuHff56j/CuDyrrbnJscUXQ4+sSaDwpejWtV0KFK8/fcR8qV bwlj/Fc21jUg92/ZPlTeKKyoloXmJzZKmPiyH/nyyFmLd9e3Xy0TF1gke7+FKJEV 0mqfTisNig/dDr+wuniL6shOEVpBUJu5/s/f8qgFgN0jwLB7ku1zRh2LpEL9qX29 WxFUyhQ7AFRO3bGZx4MGA1Z4pit6Mr7gP2KRf7EpBRwpBquYhr0+eifk8qREZLZ9 Rdu2Go4U+GNxcErulI73IfOCg5/fpePSIQipcr0nJJB+OR6FFHiM8i2I0JdvDS0U DsUmOHBf51JE9hXeGf6MLkZuAbPnefaw77VmG6yRhknwJphwNCj8T53TWwJk7Leg bm4F1NqhJYBHIX9tkr4o8SVUFLIwFZ3VwowsoJhAAM822yooJ1HcZ7ksUQ7zCsxH znJhKpk1W4NStu1sCiry3ZhocBd/BxFk8igK20AfNCYjwcSlr2YCwHCxf6yNhmIj 0ZzTVigsAsSpVDssfzGdcf03tiTFGP5N9xmjDm5OH6Q8SpHvcpzhzkt4NY/E2+GV 4u4J78eVPMXoT8N6TLShS0K9xKLheU1NpFx2CSd3h8bVKmEwNhluZqIM00ZZjgRs 6EdjtBS/y1hF1z1dmWTzD1UQKlMEcMMEM5t3C6nAnIpi4bW7+hg= =5UCj -----END PGP SIGNATURE----- --=-=-=--