gnu: Fix common unquote typos.
[jackhill/guix/guix.git] / gnu / packages / irc.scm
CommitLineData
980f058d 1;;; GNU Guix --- Functional package management for GNU
27930f85 2;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
e288f007 3;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
cc6f4912 4;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org>
8c0756e2 5;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
c1463145 6;;; Copyright © 2016 ng0 <ng0@infotropique.org>
507809be 7;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
e0dbead5 8;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
980f058d
EF
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages irc)
26 #:use-module ((guix licenses) #:prefix license:)
27 #:use-module (guix download)
28 #:use-module (guix packages)
29 #:use-module (guix build-system cmake)
27930f85 30 #:use-module (guix build-system gnu)
6ad13b59 31 #:use-module (guix build-system python)
e288f007
EF
32 #:use-module (gnu packages)
33 #:use-module (gnu packages aspell)
34 #:use-module (gnu packages autogen)
35 #:use-module (gnu packages autotools)
36 #:use-module (gnu packages base)
0c69a17e 37 #:use-module (gnu packages backup)
ac257f12 38 #:use-module (gnu packages check)
980f058d 39 #:use-module (gnu packages compression)
e288f007
EF
40 #:use-module (gnu packages curl)
41 #:use-module (gnu packages cyrus-sasl)
0c69a17e 42 #:use-module (gnu packages databases)
e288f007
EF
43 #:use-module (gnu packages file)
44 #:use-module (gnu packages gettext)
27930f85 45 #:use-module (gnu packages glib)
e288f007
EF
46 #:use-module (gnu packages gnupg)
47 #:use-module (gnu packages guile)
48 #:use-module (gnu packages lua)
27930f85 49 #:use-module (gnu packages ncurses)
980f058d
EF
50 #:use-module (gnu packages kde)
51 #:use-module (gnu packages kde-frameworks)
27930f85 52 #:use-module (gnu packages perl)
980f058d 53 #:use-module (gnu packages pkg-config)
e288f007 54 #:use-module (gnu packages python)
cc6f4912 55 #:use-module (gnu packages python-crypto)
0c69a17e 56 #:use-module (gnu packages ruby)
27930f85 57 #:use-module (gnu packages qt)
e288f007 58 #:use-module (gnu packages tcl)
33dc54b0 59 #:use-module (gnu packages time)
6ad13b59 60 #:use-module (gnu packages tls)
6a069618
EF
61 #:use-module (gnu packages web)
62 #:use-module (srfi srfi-1)
63 #:use-module (srfi srfi-26))
980f058d
EF
64
65(define-public quassel
66 (package
67 (name "quassel")
957ba692 68 (version "0.12.4")
980f058d
EF
69 (source
70 (origin
71 (method url-fetch)
72 (uri (string-append "http://quassel-irc.org/pub/quassel-"
73 version ".tar.bz2"))
36378bd5 74 (patches (search-patches "quassel-fix-tls-check.patch"))
980f058d
EF
75 (sha256
76 (base32
b82c63d0
EF
77 "0ka456fb8ha3w7g74xlzfg6w4azxjjxgrhl4aqpbwg3lnd6fbr4k"))
78 (modules '((guix build utils)))
79 ;; We don't want to install the bundles scripts
80 (snippet
81 '(begin
82 (delete-file-recursively "data/scripts")
83 (substitute* "data/CMakeLists.txt"
84 (("NOT WIN32") "WIN32"))))))
980f058d
EF
85 (build-system cmake-build-system)
86 (arguments
87 ;; The three binaries are not mutually exlusive, and are all built
88 ;; by default.
b82c63d0
EF
89 '(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 5.2 MiB
90 ;;"-DWANT_CORE=OFF" ; 2.4 MiB
91 ;;"-DWANT_MONO=OFF" ; 6.4 MiB
980f058d 92 "-DUSE_QT5=ON" ; default is qt4
b82c63d0
EF
93 "-DWITH_KDE=OFF" ; no to kde integration ...
94 "-DWITH_OXYGEN=ON" ; therefore we install bundled icons
0b166a75 95 "-DWITH_WEBKIT=OFF") ; qtwebkit isn't packaged
980f058d 96 #:tests? #f)) ; no test target
b82c63d0 97 (native-inputs
980f058d 98 `(("extra-cmake-modules" ,extra-cmake-modules)
b82c63d0
EF
99 ("pkg-config" ,pkg-config)
100 ("qttools" ,qttools)))
101 (inputs
102 `(("qca" ,qca)
c695fb76 103 ("qtbase" ,qtbase)
0b166a75 104 ("qtscript" ,qtscript)
980f058d
EF
105 ("snorenotify" ,snorenotify)
106 ("zlib" ,zlib)))
107 (home-page "http://quassel-irc.org/")
108 (synopsis "Distributed IRC client")
109 (description "Quassel is a distributed IRC client, meaning that one or more
110clients can attach to and detach from the central core. It resembles the
111popular combination of screen and a text-based IRC client such as WeeChat or
112irssi, but graphical.")
113 (license (list license:gpl2 license:gpl3)))) ;; dual licensed
27930f85
EF
114
115(define-public irssi
116 (package
117 (name "irssi")
3026de3f 118 (version "1.1.1")
27930f85
EF
119 (source (origin
120 (method url-fetch)
fd41741b
EF
121 (uri (string-append "https://github.com/irssi/irssi/"
122 "releases/download/" version "/irssi-"
123 version ".tar.xz"))
27930f85
EF
124 (sha256
125 (base32
3026de3f 126 "1gx1flfh4a09nb3b5pvf0ygnbl7rry3l4gph8wij29dsl7khfj3q"))))
27930f85
EF
127 (build-system gnu-build-system)
128 (arguments
129 `(#:phases
a61bd6a5
EF
130 (modify-phases %standard-phases
131 (replace 'configure
132 (lambda* (#:key inputs outputs #:allow-other-keys)
d9d23101 133 (let ((out (assoc-ref outputs "out")))
a61bd6a5
EF
134 (setenv "CONFIG_SHELL" (which "bash"))
135 (zero?
136 (system* "./configure"
137 (string-append "--prefix=" out)
7b3f2682
EF
138 (string-append "--with-proxy")
139 (string-append "--with-socks")
140 (string-append "--with-bot")))))))))
27930f85
EF
141 (inputs
142 `(("glib" ,glib)
143 ("ncurses" ,ncurses)
d9d23101 144 ("openssl" ,openssl)
27930f85 145 ("perl" ,perl)))
d9d23101
MB
146 (native-inputs
147 `(("pkg-config" ,pkg-config)))
148 (home-page "https://irssi.org/")
27930f85
EF
149 (synopsis "Terminal-based IRC client")
150 (description
151 "Irssi is a terminal based IRC client for UNIX systems. It also supports
152SILC and ICB protocols via plugins.")
153 (license license:gpl2+)))
e288f007
EF
154
155(define-public weechat
156 (package
157 (name "weechat")
91213c38 158 (version "2.0.1")
e288f007
EF
159 (source (origin
160 (method url-fetch)
10b91cca 161 (uri (string-append "https://weechat.org/files/src/weechat-"
f87b8e25 162 version ".tar.xz"))
e288f007
EF
163 (sha256
164 (base32
91213c38 165 "1l854dramvn9vfba7jpazkjwm4k4i5pshq58vjv6z2mxmcp5hhv9"))
fc1adab1 166 (patches (search-patches "weechat-python.patch"))))
709a3bb7 167 (build-system cmake-build-system)
00840ee0
TGR
168 (native-inputs
169 `(("gettext" ,gettext-minimal)
170 ("pkg-config" ,pkg-config)
171 ;; For tests.
172 ("cpputest" ,cpputest)))
e288f007 173 (inputs `(("ncurses" ,ncurses)
e288f007
EF
174 ("libgcrypt" ,libgcrypt "out")
175 ("zlib" ,zlib)
176 ("aspell" ,aspell)
177 ("curl" ,curl)
178 ("gnutls" ,gnutls)
179 ("guile" ,guile-2.0)
e288f007
EF
180 ("lua" ,lua-5.1)
181 ("python" ,python-2)
182 ("perl" ,perl)
183 ("tcl" ,tcl)))
184 (arguments
00840ee0
TGR
185 `(#:configure-flags
186 (list "-DENABLE_TESTS=ON") ; ‘make test’ fails otherwise
6a069618
EF
187 ;; Tests hang indefinately on non-Intel platforms.
188 #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
189 (%current-system)))
190 '("i686" "x86_64"))
191 '#t '#f)
00840ee0
TGR
192 #:phases
193 (modify-phases %standard-phases
194 (add-after 'unpack 'disable-failing-tests
195 ;; For reasons best left to the imagination, CppUTest cannot skip
196 ;; more than one single test... Resort to manual patching instead.
197 ;; See <https://cpputest.github.io/manual.html#command_line>.
198 (λ _
199 ;; Don't test plugin support for languages we don't enable.
200 (substitute* "tests/unit/test-plugins.cpp"
201 ((".*\\$\\{plugin.name\\} == (javascript|php|ruby)" all)
202 (string-append "// SKIP" all)))
203 (substitute* "tests/scripts/test-scripts.cpp"
204 ((".*\\{ \"(jvascript|php|ruby)\", " all) ; sic
205 (string-append "// SKIP" all)))
206 #t))
207 (add-after 'install 'wrap
208 (lambda* (#:key inputs outputs #:allow-other-keys)
209 (let ((out (assoc-ref outputs "out"))
210 (py2 (assoc-ref inputs "python")))
211 (wrap-program (string-append out "/bin/weechat")
212 `("PATH" ":" prefix (,(string-append py2 "/bin"))))
213 #t))))))
e288f007
EF
214 (synopsis "Extensible chat client")
215 (description "WeeChat (Wee Enhanced Environment for Chat) is an
d65db1d5
TGR
216@dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast.
217The client uses a curses frontend, and there are remote interfaces for Web,
218Qt, Android, and Emacs.
219
220Everything in WeeChat can be done with the keyboard, though it also supports
221using a mouse. It is customizable and extensible with plugins and scripts.")
10b91cca 222 (home-page "https://www.weechat.org/")
e288f007 223 (license license:gpl3)))
c744f5c0 224
225(define-public ircii
226 (package
227 (name "ircii")
228 (version "20151120")
229 (source (origin
230 (method url-fetch)
231 (uri (string-append "https://ircii.warped.com/"
232 name "-" version ".tar.gz"))
233 (sha256
234 (base32
235 "178dc279f5j894qvp96dzz7c0jpryqlcqw5g0dc9yaxg9kgw1lqm"))))
236 (build-system gnu-build-system)
237 ;; TODO: We should package a small socks4/5 library/server to configure
238 ;; ircii with socks client. `ghc-socks' pulls in lots of haskell, which
239 ;; is too big.
240 (arguments
241 `(#:tests? #f
242 #:configure-flags (list
243 "--enable-ipv6"
244 "--with-emacs-meta-keys"
245 (string-append "--with-openssl="
246 (assoc-ref %build-inputs "openssl")))
247 #:phases
248 (modify-phases %standard-phases
249 (add-after 'unpack 'patch-bsdinstall-absolute-path-bins
250 (lambda* (#:key inputs #:allow-other-keys)
251 (substitute* "bsdinstall"
252 (("/bin/strip") "strip")
253 (("/bin/cp") "cp")
254 (("/bin/chmod") "chmod")
255 (("/etc/chown") "chown")
256 (("/bin/chgrp") "chgrp")
257 (("/bin/mkdir") "mkdir")
258 (("/bin/rm") "rm")
259 (("/bin/mv") "mv")))))))
260 (inputs
261 `(("ncurses" ,ncurses)
262 ("openssl" ,openssl)))
263 (native-inputs
264 `(("pkg-config" ,pkg-config)
265 ("perl" ,perl)))
266 (home-page "http://www.eterna.com.au/ircii/")
267 (synopsis "Terminal-based IRC and ICB client")
268 (description
269 "ircII is a terminal based IRC and ICB client for UNIX systems.")
270 (license license:bsd-3)))
99840fbb 271
272(define-public ii
273 (package
274 (name "ii")
e0dbead5 275 (version "1.8")
99840fbb 276 (source (origin
277 (method url-fetch)
278 (uri (string-append "http://dl.suckless.org/tools/"
279 name "-" version ".tar.gz"))
280 (sha256
281 (base32
e0dbead5 282 "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr"))))
99840fbb 283 (build-system gnu-build-system)
284 (arguments
e0dbead5 285 `(#:tests? #f ; no tests
99840fbb 286 #:make-flags (list (string-append "PREFIX=" %output)
287 "CC=gcc")
288 #:phases
289 (modify-phases %standard-phases
e0dbead5 290 (delete 'configure)))) ; no configure
d035eaa3 291 (home-page "https://tools.suckless.org/ii/")
8f65585b 292 (synopsis "FIFO and file system based IRC client")
99840fbb 293 (description
8f65585b 294 "ii (Irc it) is a minimalist FIFO and file system based IRC client.")
99840fbb 295 (license license:expat)))
e4eb2134 296
297(define-public sic
298 (package
299 (name "sic")
300 (version "1.2")
301 (source (origin
302 (method url-fetch)
303 (uri (string-append "http://dl.suckless.org/tools/"
304 name "-" version ".tar.gz"))
305 (sha256
306 (base32
307 "11aiavxp44yayibc58bvimi8mrxvbw1plbci8cnbl4syk42zj1xc"))))
308 (build-system gnu-build-system)
309 (arguments
310 `(#:tests? #f ; no tests
311 #:make-flags (list "CC=gcc"
312 (string-append "PREFIX=" %output))
313 #:phases
314 (modify-phases %standard-phases
315 (delete 'configure)))) ; no configure
d035eaa3 316 (home-page "https://tools.suckless.org/sic/")
e4eb2134 317 (synopsis "Simple IRC client")
318 (description
319 "sic is a simple IRC client, even more minimalistic than ii.")
320 (license license:expat)))
6ad13b59 321
322(define-public limnoria
323 (package
324 (name "limnoria")
d5feb092 325 (version "2017.10.01")
6ad13b59 326 (source
327 (origin
328 (method url-fetch)
329 (uri (pypi-uri "limnoria" version))
330 (sha256
331 (base32
d5feb092 332 "1hd8h257x7a0s4rvb4aqvfi77qfcyv6jaz70nndg7y6p4yhvjmy6"))))
6ad13b59 333 (build-system python-build-system)
334 (inputs
335 `(("python-pytz" ,python-pytz)
336 ("python-chardet" ,python-chardet)
337 ("python-dateutil" ,python-dateutil)
338 ("python-gnupg" ,python-gnupg)
339 ("python-feedparser" ,python-feedparser)
340 ("python-sqlalchemy" ,python-sqlalchemy)
341 ("python-socksipy-branch" ,python-socksipy-branch)
342 ("python-ecdsa" ,python-ecdsa)))
343 (native-inputs
344 `(("python-mock" ,python-mock)))
345 ;; Despite the existence of a test folder there is no test phase.
346 ;; We need to package https://github.com/ProgVal/irctest and write
347 ;; our own testphase.
348 (arguments
349 `(#:tests? #f))
350 (home-page "https://github.com/ProgVal/Limnoria")
351 (synopsis "Modified version of Supybot (an IRC bot and framework)")
352 (description
353 "Modified version of Supybot with Python 3 and IRCv3 support,
354embedded web server, translations (fr, fi, it, hu, de), and many
355other enhancements and bug fixes.")
356 (license license:bsd-3)))
0c69a17e 357
358(define-public epic5
359 (package
360 (name "epic5")
361 (version "2.0.1")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "http://ftp.epicsol.org/pub/"
365 "epic/EPIC5-PRODUCTION/"
366 name "-" version ".tar.xz"))
367 (sha256
368 (base32
369 "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
370 (build-system gnu-build-system)
371 (arguments
372 `(#:test-target "test"
373 #:phases
374 (modify-phases %standard-phases
375 (add-after 'unpack 'patch-perl
376 (lambda _
377 (substitute* "regress/crash-irc"
378 (("perl5") (which "perl")))
379 #t))
380 (add-after 'unpack 'patch-bsdinstall
381 ;; If we just remove /bin/ some part of the bsdinstall breaks.
382 ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
383 ;; means if we leave /etc/ in, install fails.
384 (lambda _
385 (substitute* "bsdinstall"
386 (("/bin/strip") "strip")
387 (("/bin/cp") "cp")
388 (("/bin/chmod") "chmod")
389 (("/bin/chgrp") "chgrp")
390 (("/bin/mkdir") "mkdir")
391 (("/bin/rm") "rm")
392 (("/bin/mv") "mv")
393 (("/etc/") ""))
394 #t))
395 (replace 'configure
396 (lambda* (#:key outputs #:allow-other-keys)
397 ;; The tarball uses a very old version of autconf. It does not
398 ;; understand extra flags like `--enable-fast-install', so
399 ;; we need to invoke it with just what it understands.
400 (let ((out (assoc-ref outputs "out")))
401 ;; 'configure' doesn't understand '--host'.
402 ,@(if (%current-target-system)
403 `((setenv "CHOST" ,(%current-target-system)))
404 '())
405 (setenv "CONFIG_SHELL" (which "bash"))
406 (setenv "SHELL" (which "bash"))
407 (zero?
408 (system* "./configure"
409 (string-append "--prefix=" out)
410 "--with-ipv6" "--with-libarchive"
411 ;; We use libressl because openssl does not come
412 ;; with the lib/libssl.a which is needed for epic5.
413 ;; XXX: No matter which implementation is chosen,
414 ;; epic5 fails to connect to tls ports of roundrobin
415 ;; irc networks. This however is believed to be an
416 ;; protocol issue at epic5 related to ircd.
417 (string-append "--with-ssl="
418 (assoc-ref %build-inputs "libressl"))
419 (string-append "--with-tcl="
420 (assoc-ref %build-inputs "tcl")
421 "/lib/tclConfig.sh")))))))))
422 (inputs
423 `(("libressl" ,libressl)
424 ("ncurses" ,ncurses)
425 ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
426 ("perl" ,perl)
427 ("tcl" ,tcl)
428 ("ruby" ,ruby)))
429 (native-inputs
430 `(("pkg-config" ,pkg-config)))
431 (home-page "http://epicsol.org")
432 (synopsis "Epic5 IRC Client")
433 (description
434 "EPIC is a IRC client that has been under active development for
435over 20 years. It is stable and mature, and offers an excellent ircII
436interface for those who are accustomed to the ircII way of doing things.")
437 (license (list license:bsd-3
438 license:isc
439 license:bsd-4
440 ;; The epic license is equal to the standard three-clause
441 ;; BSD license except that you are not permitted to remove the
442 ;; "Redistribution is permitted" clause of the license if you
443 ;; distribute binaries.
1975ec69 444 (license:non-copyleft "http://epicsol.org/copyright")))))