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