| 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
| 3 | ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> |
| 4 | ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> |
| 5 | ;;; |
| 6 | ;;; This file is part of GNU Guix. |
| 7 | ;;; |
| 8 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
| 9 | ;;; under the terms of the GNU General Public License as published by |
| 10 | ;;; the Free Software Foundation; either version 3 of the License, or (at |
| 11 | ;;; your option) any later version. |
| 12 | ;;; |
| 13 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
| 14 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | ;;; GNU General Public License for more details. |
| 17 | ;;; |
| 18 | ;;; You should have received a copy of the GNU General Public License |
| 19 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 20 | |
| 21 | (define-module (gnu packages toys) |
| 22 | #:use-module (gnu packages bison) |
| 23 | #:use-module (gnu packages flex) |
| 24 | #:use-module (gnu packages gtk) |
| 25 | #:use-module (gnu packages ncurses) |
| 26 | #:use-module (gnu packages perl) |
| 27 | #:use-module (gnu packages pkg-config) |
| 28 | #:use-module (gnu packages xml) |
| 29 | #:use-module (gnu packages xorg) |
| 30 | #:use-module (guix build-system gnu) |
| 31 | #:use-module (guix download) |
| 32 | #:use-module (guix git-download) |
| 33 | #:use-module ((guix licenses) #:prefix license:) |
| 34 | #:use-module (guix packages)) |
| 35 | |
| 36 | (define-public sl |
| 37 | (package |
| 38 | (name "sl") |
| 39 | (version "5.02") |
| 40 | (source |
| 41 | (origin |
| 42 | (method git-fetch) |
| 43 | (uri (git-reference |
| 44 | (url "https://github.com/mtoyoda/sl.git") |
| 45 | (commit version))) |
| 46 | (file-name (git-file-name name version)) |
| 47 | (sha256 |
| 48 | (base32 "1zrfd71zx2px2xpapg45s8xvi81xii63yl0h60q72j71zh4sif8b")))) |
| 49 | (build-system gnu-build-system) |
| 50 | (inputs |
| 51 | `(("ncurses" ,ncurses))) |
| 52 | (arguments |
| 53 | `(#:phases |
| 54 | (modify-phases %standard-phases |
| 55 | (delete 'configure) ; no configure script |
| 56 | (delete 'check) ; no tests |
| 57 | (replace 'install ; no ‘make install’ target |
| 58 | (lambda* (#:key outputs #:allow-other-keys) |
| 59 | (let* ((out (assoc-ref outputs "out")) |
| 60 | (bin (string-append out "/bin")) |
| 61 | (man (string-append out "/share/man")) |
| 62 | (man1 (string-append man "/man1")) |
| 63 | (man1-ja (string-append man "/ja/man1"))) |
| 64 | (install-file "sl" bin) |
| 65 | (install-file "sl.1" man1) |
| 66 | (mkdir-p man1-ja) |
| 67 | (copy-file "sl.1.ja" (string-append man1-ja "/sl.1")) |
| 68 | #t)))))) |
| 69 | (home-page "http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html") |
| 70 | (synopsis "Joke command to correct typing \"sl\" by mistake") |
| 71 | (description |
| 72 | "@dfn{SL} (for Steam Locomotive) displays one of several animated trains |
| 73 | on the text terminal. It serves no useful purpose but to discourage mistakenly |
| 74 | typing @command{sl} instead of @command{ls}.") |
| 75 | (license (license:non-copyleft "file://LICENSE" |
| 76 | "See LICENSE in the distribution.")))) |
| 77 | |
| 78 | (define-public filters |
| 79 | (let ((version "2.55") |
| 80 | (commit "c5c291916b52ed9e6418448a8eee30475fb9adcf")) |
| 81 | (package |
| 82 | (name "filters") |
| 83 | (version "2.55") |
| 84 | (source |
| 85 | (origin |
| 86 | (method git-fetch) |
| 87 | (uri (git-reference |
| 88 | (url "https://git.joeyh.name/filters") |
| 89 | (commit commit))) |
| 90 | (file-name (git-file-name name version)) |
| 91 | (sha256 |
| 92 | (base32 "1gaigpda1w9wxfh8an3sam1hpacc1bhxl696w4yj0vzhc6izqvxs")) |
| 93 | (modules '((guix build utils))) |
| 94 | (snippet '(begin |
| 95 | ;; kenny is under nonfree Artistic License (Perl) 1.0. |
| 96 | (delete-file "kenny") |
| 97 | (substitute* "Makefile" |
| 98 | (("kenny") |
| 99 | "")))))) |
| 100 | (build-system gnu-build-system) |
| 101 | (arguments |
| 102 | `(#:make-flags |
| 103 | (list "CC=gcc" (string-append "DESTDIR=" %output)) |
| 104 | #:phases |
| 105 | (modify-phases %standard-phases |
| 106 | (delete 'configure) |
| 107 | (add-after 'unpack 'fix-install-directories |
| 108 | (lambda _ |
| 109 | (substitute* "Makefile" |
| 110 | (("/usr/games") |
| 111 | "/bin/") |
| 112 | (("/usr/share/") |
| 113 | "/share/")) |
| 114 | #t))) |
| 115 | #:tests? #f)) ; no test suite |
| 116 | (native-inputs |
| 117 | `(("bison" ,bison) |
| 118 | ("flex" ,flex))) |
| 119 | (inputs |
| 120 | `(("perl" ,perl))) |
| 121 | (home-page "https://joeyh.name/code/filters/") |
| 122 | (synopsis "Various amusing text filters") |
| 123 | (description |
| 124 | "The filters collection harks back to the late 1980s, when various text |
| 125 | filters were written to munge written language in amusing ways. The earliest |
| 126 | and best known were legends such as the Swedish Chef filter and B1FF. |
| 127 | |
| 128 | This package contains the following filter commands: |
| 129 | @enumerate |
| 130 | @item b1ff: a satire of a stereotypical Usenet newbie |
| 131 | @item censor: comply with the @acronym{CDA, Communications Decency Act} |
| 132 | @item chef: convert English to Mock Swedish |
| 133 | @item cockney: Cockney English |
| 134 | @item elee: k3wl hacker slang |
| 135 | @item fanboy: a stereotypical fan (supports custom fandoms) |
| 136 | @item fudd: Elmer Fudd |
| 137 | @item jethro: hillbilly text filter |
| 138 | @item jibberish: a random selection of these filters |
| 139 | @item jive: Jive English |
| 140 | @item ken: turn English into Cockney |
| 141 | @item kraut: a bad German accent |
| 142 | @item ky00te: a very cute accent |
| 143 | @item LOLCAT: as seen in Internet GIFs everywhere |
| 144 | @item nethackify: wiped-out text as found in nethack |
| 145 | @item newspeak: à la 1984 |
| 146 | @item nyc: Brooklyn English |
| 147 | @item pirate: talk like a pirate |
| 148 | @item rasterman: straight from the keyboard of Carsten Haitzler |
| 149 | @item scottish: fake Scottish (Dwarven) accent |
| 150 | @item scramble: scramble the \"inner\" letters of each word |
| 151 | @item spammer: turn honest text into something liable to be flagged as spam |
| 152 | @item studly: studly caps. |
| 153 | @item uniencode: use glorious Unicode to the fullest possible extent |
| 154 | @item upside-down: flip the text upside down |
| 155 | @end enumerate |
| 156 | |
| 157 | The GNU project hosts a similar collection of filters, the GNU talkfilters.") |
| 158 | (license ; see debian/copyright |
| 159 | (list license:gpl2+ ; most of the filters |
| 160 | license:gpl2 ; rasterman, ky00te.dir/* nethackify, pirate |
| 161 | license:gpl3+ ; scramble, scottish |
| 162 | license:public-domain ; jethro, kraut, ken, studly |
| 163 | license:gpl1+ ; cockney, jive, nyc only say "gpl" |
| 164 | license:expat))))) ; newspeak |
| 165 | |
| 166 | (define-public xsnow |
| 167 | (package |
| 168 | (name "xsnow") |
| 169 | (version "2.0.15") |
| 170 | (source |
| 171 | (origin |
| 172 | (method url-fetch) |
| 173 | (uri (string-append |
| 174 | "https://www.ratrabbit.nl/ratrabbit/system/files/xsnow/xsnow-" |
| 175 | version ".tar.gz")) |
| 176 | (sha256 |
| 177 | (base32 "086s42frbz9bk550414v908yrax4iwwlvlxv4zwp39cyp7wgws03")))) |
| 178 | (build-system gnu-build-system) |
| 179 | (arguments |
| 180 | '(#:phases |
| 181 | (modify-phases %standard-phases |
| 182 | (add-before 'configure 'fix-install-path |
| 183 | (lambda _ |
| 184 | ;; Install program to bin instead of games. |
| 185 | (substitute* "src/Makefile.in" |
| 186 | (("(gamesdir = \\$\\(exec_prefix\\)/)games" _ prefix) |
| 187 | (string-append prefix "bin"))) |
| 188 | #t))))) |
| 189 | (inputs |
| 190 | `(("gtk+" ,gtk+) |
| 191 | ("libx11" ,libx11) |
| 192 | ("libxpm" ,libxpm) |
| 193 | ("libxt" ,libxt) |
| 194 | ("libxxml2" ,libxml2))) |
| 195 | (native-inputs |
| 196 | `(("pkg-config" ,pkg-config))) |
| 197 | (home-page "https://www.ratrabbit.nl/ratrabbit/content/xsnow/introduction") |
| 198 | (synopsis "Let it snow on the desktop") |
| 199 | (description "@code{Xsnow} animates snowfall and Santa with reindeer on |
| 200 | the desktop background. Additional customizable effects include wind, stars |
| 201 | and various scenery elements.") |
| 202 | (license license:gpl3+))) |