gnu: Add rust-crypto-hash-0.3.
[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>
bee2c1a9 5;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
3c986a7d 6;;; Copyright © 2016 Nikita <nikita@n0.is>
507809be 7;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
5929668e 8;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
7eea3afd 9;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
1a290273 10;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
74dc65b8 11;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
c0a4cde0 12;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
3ddece89 13;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
980f058d
EF
14;;;
15;;; This file is part of GNU Guix.
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages irc)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix download)
1a290273 33 #:use-module (guix git-download)
9c44af6b 34 #:use-module (guix utils)
980f058d 35 #:use-module (guix packages)
3ddece89 36 #:use-module (guix utils)
980f058d 37 #:use-module (guix build-system cmake)
1a290273 38 #:use-module (guix build-system glib-or-gtk)
27930f85 39 #:use-module (guix build-system gnu)
6ad13b59 40 #:use-module (guix build-system python)
74dc65b8 41 #:use-module (guix build-system qt)
e288f007 42 #:use-module (gnu packages)
b52bcb24 43 #:use-module (gnu packages admin)
e288f007
EF
44 #:use-module (gnu packages aspell)
45 #:use-module (gnu packages autogen)
46 #:use-module (gnu packages autotools)
47 #:use-module (gnu packages base)
0c69a17e 48 #:use-module (gnu packages backup)
ac257f12 49 #:use-module (gnu packages check)
980f058d 50 #:use-module (gnu packages compression)
e288f007
EF
51 #:use-module (gnu packages curl)
52 #:use-module (gnu packages cyrus-sasl)
0c69a17e 53 #:use-module (gnu packages databases)
e288f007
EF
54 #:use-module (gnu packages file)
55 #:use-module (gnu packages gettext)
c0a4cde0 56 #:use-module (gnu packages geo)
27930f85 57 #:use-module (gnu packages glib)
1a290273 58 #:use-module (gnu packages gnome)
e288f007 59 #:use-module (gnu packages gnupg)
1a290273 60 #:use-module (gnu packages gtk)
e288f007
EF
61 #:use-module (gnu packages guile)
62 #:use-module (gnu packages lua)
5a3614cf 63 #:use-module (gnu packages lxqt)
27930f85 64 #:use-module (gnu packages ncurses)
c0a4cde0 65 #:use-module (gnu packages openldap)
980f058d
EF
66 #:use-module (gnu packages kde)
67 #:use-module (gnu packages kde-frameworks)
c5fcdb5c 68 #:use-module (gnu packages password-utils)
c0a4cde0 69 #:use-module (gnu packages pcre)
27930f85 70 #:use-module (gnu packages perl)
980f058d 71 #:use-module (gnu packages pkg-config)
e288f007 72 #:use-module (gnu packages python)
cc6f4912 73 #:use-module (gnu packages python-crypto)
44d10b1f 74 #:use-module (gnu packages python-xyz)
c0a4cde0 75 #:use-module (gnu packages regex)
0c69a17e 76 #:use-module (gnu packages ruby)
c0a4cde0 77 #:use-module (gnu packages sqlite)
27930f85 78 #:use-module (gnu packages qt)
e288f007 79 #:use-module (gnu packages tcl)
1a290273 80 #:use-module (gnu packages textutils)
33dc54b0 81 #:use-module (gnu packages time)
6ad13b59 82 #:use-module (gnu packages tls)
6a069618
EF
83 #:use-module (gnu packages web)
84 #:use-module (srfi srfi-1)
85 #:use-module (srfi srfi-26))
980f058d
EF
86
87(define-public quassel
88 (package
89 (name "quassel")
3aeac37e 90 (version "0.13.1")
980f058d
EF
91 (source
92 (origin
93 (method url-fetch)
3aeac37e 94 (uri (string-append "https://quassel-irc.org/pub/quassel-"
980f058d
EF
95 version ".tar.bz2"))
96 (sha256
97 (base32
3aeac37e 98 "0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
3a2bb379 99 (patches (search-patches "quassel-qt-514-compat.patch"))
b82c63d0 100 (modules '((guix build utils)))
0e1428ac 101 ;; We don't want to install the bundled inxi script.
b82c63d0
EF
102 (snippet
103 '(begin
0e1428ac 104 (delete-file "data/scripts/inxi")
68ddfb2e 105 #t))))
74dc65b8 106 (build-system qt-build-system)
980f058d
EF
107 (arguments
108 ;; The three binaries are not mutually exlusive, and are all built
109 ;; by default.
4ad62876
EF
110 '(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 6.1 MiB
111 ;;"-DWANT_CORE=OFF" ; 3.0 MiB
112 ;;"-DWANT_MONO=OFF" ; 7.6 MiB
b82c63d0 113 "-DWITH_KDE=OFF" ; no to kde integration ...
4ad62876
EF
114 "-DWITH_BUNDLED_ICONS=ON" ; so we install bundled icons
115 "-DWITH_OXYGEN_ICONS=ON" ; also the oxygen ones
116 "-DWITH_WEBENGINE=OFF") ; we don't depend on qtwebengine
b52bcb24
EF
117 #:phases
118 (modify-phases %standard-phases
119 (add-after 'unpack 'patch-inxi-reference
120 (lambda* (#:key inputs #:allow-other-keys)
121 (let ((inxi (string-append (assoc-ref inputs "inxi") "/bin/inxi")))
0e1428ac 122 (symlink inxi "data/scripts/inxi")
b52bcb24 123 #t))))
980f058d 124 #:tests? #f)) ; no test target
b82c63d0 125 (native-inputs
980f058d 126 `(("extra-cmake-modules" ,extra-cmake-modules)
b82c63d0
EF
127 ("pkg-config" ,pkg-config)
128 ("qttools" ,qttools)))
129 (inputs
b52bcb24 130 `(("inxi" ,inxi-minimal)
5a3614cf 131 ("libdbusmenu-qt" ,libdbusmenu-qt)
b52bcb24 132 ("qca" ,qca)
c695fb76 133 ("qtbase" ,qtbase)
4ad62876 134 ("qtmultimedia" ,qtmultimedia)
0b166a75 135 ("qtscript" ,qtscript)
74dc65b8 136 ("qtsvg" ,qtsvg)
980f058d
EF
137 ("snorenotify" ,snorenotify)
138 ("zlib" ,zlib)))
5b292eac 139 (home-page "https://quassel-irc.org/")
980f058d
EF
140 (synopsis "Distributed IRC client")
141 (description "Quassel is a distributed IRC client, meaning that one or more
142clients can attach to and detach from the central core. It resembles the
143popular combination of screen and a text-based IRC client such as WeeChat or
144irssi, but graphical.")
145 (license (list license:gpl2 license:gpl3)))) ;; dual licensed
27930f85
EF
146
147(define-public irssi
148 (package
149 (name "irssi")
40707f2e 150 (version "1.2.3")
27930f85 151 (source (origin
c954fe66
KK
152 (method url-fetch)
153 (uri (string-append "https://github.com/irssi/irssi/"
154 "releases/download/" version "/irssi-"
155 version ".tar.xz"))
156 (sha256
157 (base32
40707f2e 158 "17vninwcdfxw39xl2q55qircckckjk2xlvkvlwgj5lhlxppvyix6"))))
27930f85
EF
159 (build-system gnu-build-system)
160 (arguments
161 `(#:phases
a61bd6a5
EF
162 (modify-phases %standard-phases
163 (replace 'configure
164 (lambda* (#:key inputs outputs #:allow-other-keys)
d9d23101 165 (let ((out (assoc-ref outputs "out")))
a61bd6a5 166 (setenv "CONFIG_SHELL" (which "bash"))
19621509
TGR
167 (invoke "./configure"
168 (string-append "--prefix=" out)
169 (string-append "--with-proxy")
170 (string-append "--with-socks")
7eea3afd
OP
171 (string-append "--with-bot")))))
172 (add-before 'check 'set-home
173 (lambda _
174 (setenv "HOME" (getcwd)))))))
27930f85
EF
175 (inputs
176 `(("glib" ,glib)
177 ("ncurses" ,ncurses)
d9d23101 178 ("openssl" ,openssl)
27930f85 179 ("perl" ,perl)))
d9d23101
MB
180 (native-inputs
181 `(("pkg-config" ,pkg-config)))
182 (home-page "https://irssi.org/")
27930f85
EF
183 (synopsis "Terminal-based IRC client")
184 (description
185 "Irssi is a terminal based IRC client for UNIX systems. It also supports
186SILC and ICB protocols via plugins.")
187 (license license:gpl2+)))
e288f007
EF
188
189(define-public weechat
190 (package
191 (name "weechat")
5929668e 192 (version "3.1")
e288f007
EF
193 (source (origin
194 (method url-fetch)
10b91cca 195 (uri (string-append "https://weechat.org/files/src/weechat-"
f87b8e25 196 version ".tar.xz"))
e288f007
EF
197 (sha256
198 (base32
5929668e 199 "1xx4fx7785yw3ml3k1z08h3qvrizvcypwl0j6jc7d7qim9sjjnm5"))))
709a3bb7 200 (build-system cmake-build-system)
00840ee0
TGR
201 (native-inputs
202 `(("gettext" ,gettext-minimal)
203 ("pkg-config" ,pkg-config)
204 ;; For tests.
205 ("cpputest" ,cpputest)))
6634b29f
EF
206 (inputs
207 `(("aspell" ,aspell)
208 ("curl" ,curl)
209 ("gnutls" ,gnutls)
210 ("libgcrypt" ,libgcrypt "out")
211 ("ncurses" ,ncurses)
212 ("zlib" ,zlib)
07c0110e 213
6634b29f 214 ;; Scripting language plug-ins.
0b7a94cb 215 ("guile" ,guile-3.0)
6634b29f
EF
216 ("lua" ,lua-5.1)
217 ("perl" ,perl)
218 ("python" ,python)
219 ("tcl" ,tcl)))
e288f007 220 (arguments
00840ee0 221 `(#:configure-flags
87257e6d 222 (list "-DENABLE_PHP=OFF"
70e9d7eb
TGR
223 "-DENABLE_RUBY=OFF"
224 "-DENABLE_TESTS=ON") ; ‘make test’ fails otherwise
87257e6d 225 ;; Tests hang indefinitely on non-Intel platforms.
6a069618
EF
226 #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
227 (%current-system)))
228 '("i686" "x86_64"))
87257e6d 229 '#t '#f)))
e288f007
EF
230 (synopsis "Extensible chat client")
231 (description "WeeChat (Wee Enhanced Environment for Chat) is an
d65db1d5
TGR
232@dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast.
233The client uses a curses frontend, and there are remote interfaces for Web,
234Qt, Android, and Emacs.
235
236Everything in WeeChat can be done with the keyboard, though it also supports
237using a mouse. It is customizable and extensible with plugins and scripts.")
10b91cca 238 (home-page "https://www.weechat.org/")
e288f007 239 (license license:gpl3)))
c744f5c0 240
1a290273
VM
241(define-public srain
242 (package
243 (name "srain")
2a81751f 244 (version "1.1.3")
1a290273
VM
245 (source
246 (origin
247 (method git-fetch)
248 (uri (git-reference
249 (url "https://github.com/SrainApp/srain")
250 (commit version)))
251 (file-name (git-file-name name version))
252 (sha256
2a81751f 253 (base32 "1vqjjsxzc4601dpc8lf9k25rp2c7sjab7l5a6cbfygpr8dqvm6vq"))))
1a290273
VM
254 (arguments
255 `(#:tests? #f ;there are no tests
256 #:phases
257 (modify-phases %standard-phases
258 (add-before 'install 'fix-permissions
259 ;; Make po folder writable for gettext to install translations.
260 (lambda _
261 (for-each make-file-writable
262 (find-files "po" "." #:directories? #t)))))))
263 (build-system glib-or-gtk-build-system)
264 (native-inputs
265 `(("gettext" ,gettext-minimal)
266 ("glib:bin" ,glib "bin")
2a81751f
RG
267 ("pkg-config" ,pkg-config)
268 ("python" ,python-wrapper)))
1a290273
VM
269 (inputs
270 `(("glib-networking" ,glib-networking)
271 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
272 ("gtk+" ,gtk+)
273 ("libconfig" ,libconfig)
274 ("libsecret" ,libsecret)
275 ("libsoup" ,libsoup)
276 ("openssl" ,openssl)))
277 (home-page "https://srain.im")
278 (synopsis "Modern IRC client written in GTK")
279 (description
280 "Srain is an IRC client written in GTK. It aims to be modern and easy to
281use while still remaining useful to power users. It also has partial support
282for the IRCv3 protocol.")
283 (license license:gpl3+)))
284
c744f5c0 285(define-public ircii
286 (package
287 (name "ircii")
bc8554ec 288 (version "20210314")
c744f5c0 289 (source (origin
290 (method url-fetch)
291 (uri (string-append "https://ircii.warped.com/"
292 name "-" version ".tar.gz"))
293 (sha256
294 (base32
bc8554ec 295 "04jczayv1vdn21fcf5zkfaa98sy7d6ydrv2sns2i67gvya2z28j3"))))
c744f5c0 296 (build-system gnu-build-system)
297 ;; TODO: We should package a small socks4/5 library/server to configure
298 ;; ircii with socks client. `ghc-socks' pulls in lots of haskell, which
299 ;; is too big.
300 (arguments
301 `(#:tests? #f
302 #:configure-flags (list
303 "--enable-ipv6"
304 "--with-emacs-meta-keys"
305 (string-append "--with-openssl="
306 (assoc-ref %build-inputs "openssl")))
307 #:phases
308 (modify-phases %standard-phases
309 (add-after 'unpack 'patch-bsdinstall-absolute-path-bins
310 (lambda* (#:key inputs #:allow-other-keys)
311 (substitute* "bsdinstall"
312 (("/bin/strip") "strip")
313 (("/bin/cp") "cp")
314 (("/bin/chmod") "chmod")
315 (("/etc/chown") "chown")
316 (("/bin/chgrp") "chgrp")
317 (("/bin/mkdir") "mkdir")
318 (("/bin/rm") "rm")
319 (("/bin/mv") "mv")))))))
320 (inputs
321 `(("ncurses" ,ncurses)
322 ("openssl" ,openssl)))
323 (native-inputs
324 `(("pkg-config" ,pkg-config)
325 ("perl" ,perl)))
326 (home-page "http://www.eterna.com.au/ircii/")
327 (synopsis "Terminal-based IRC and ICB client")
328 (description
329 "ircII is a terminal based IRC and ICB client for UNIX systems.")
330 (license license:bsd-3)))
99840fbb 331
332(define-public ii
333 (package
334 (name "ii")
e0dbead5 335 (version "1.8")
99840fbb 336 (source (origin
337 (method url-fetch)
338 (uri (string-append "http://dl.suckless.org/tools/"
339 name "-" version ".tar.gz"))
340 (sha256
341 (base32
e0dbead5 342 "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr"))))
99840fbb 343 (build-system gnu-build-system)
344 (arguments
e0dbead5 345 `(#:tests? #f ; no tests
99840fbb 346 #:make-flags (list (string-append "PREFIX=" %output)
9c44af6b 347 ,(string-append "CC=" (cc-for-target)))
99840fbb 348 #:phases
349 (modify-phases %standard-phases
e0dbead5 350 (delete 'configure)))) ; no configure
d035eaa3 351 (home-page "https://tools.suckless.org/ii/")
8f65585b 352 (synopsis "FIFO and file system based IRC client")
99840fbb 353 (description
8f65585b 354 "ii (Irc it) is a minimalist FIFO and file system based IRC client.")
99840fbb 355 (license license:expat)))
e4eb2134 356
357(define-public sic
358 (package
359 (name "sic")
360 (version "1.2")
361 (source (origin
362 (method url-fetch)
363 (uri (string-append "http://dl.suckless.org/tools/"
364 name "-" version ".tar.gz"))
365 (sha256
366 (base32
367 "11aiavxp44yayibc58bvimi8mrxvbw1plbci8cnbl4syk42zj1xc"))))
368 (build-system gnu-build-system)
369 (arguments
370 `(#:tests? #f ; no tests
9c44af6b 371 #:make-flags (list ,(string-append "CC=" (cc-for-target))
e4eb2134 372 (string-append "PREFIX=" %output))
373 #:phases
374 (modify-phases %standard-phases
375 (delete 'configure)))) ; no configure
d035eaa3 376 (home-page "https://tools.suckless.org/sic/")
e4eb2134 377 (synopsis "Simple IRC client")
378 (description
379 "sic is a simple IRC client, even more minimalistic than ii.")
380 (license license:expat)))
6ad13b59 381
3ddece89
W
382(define-public kirc
383 (package
384 (name "kirc")
385 (version "0.2.6")
386 (source (origin
387 (method git-fetch)
388 (uri (git-reference
389 (url "https://github.com/mcpcpc/kirc")
390 (commit version)))
391 (file-name (git-file-name name version))
392 (sha256
393 (base32 "11pwbil44q7sm3mp1khgw8wmwln2n03f1qawlgmg168jzyxqrs16"))))
394 (build-system gnu-build-system)
395 (arguments
396 `(#:tests? #f ; no tests
397 #:make-flags
398 (list (string-append "CC=" ,(cc-for-target))
399 (string-append "PREFIX=" %output))
400 #:phases
401 (modify-phases %standard-phases
402 (delete 'configure)))) ; No ./configure script
403 (synopsis "IRC client written in POSIX C99")
404 (description "Kirc is an Internet Relay Chat (IRC) client. It includes
405support for Simple Authentication and Security Layer (SASL), the
406client-to-client (CTCP) protocol, simple chat history logging, synchronous
407message handling, multi-channel joining at server connection, full support for
408all RFC 2812 commands, and customized color scheme definitions.")
409 (home-page "http://kirc.io/index.html")
410 (license license:expat)))
411
6ad13b59 412(define-public limnoria
413 (package
414 (name "limnoria")
35258a9a 415 (version "2019.11.22")
6ad13b59 416 (source
417 (origin
418 (method url-fetch)
419 (uri (pypi-uri "limnoria" version))
420 (sha256
35258a9a 421 (base32 "0853xk1ps3v6lkmfx50wv56vynnzpl84v66hxnhl8i34zl36kk3c"))))
6ad13b59 422 (build-system python-build-system)
423 (inputs
424 `(("python-pytz" ,python-pytz)
425 ("python-chardet" ,python-chardet)
426 ("python-dateutil" ,python-dateutil)
427 ("python-gnupg" ,python-gnupg)
428 ("python-feedparser" ,python-feedparser)
429 ("python-sqlalchemy" ,python-sqlalchemy)
430 ("python-socksipy-branch" ,python-socksipy-branch)
431 ("python-ecdsa" ,python-ecdsa)))
432 (native-inputs
433 `(("python-mock" ,python-mock)))
434 ;; Despite the existence of a test folder there is no test phase.
435 ;; We need to package https://github.com/ProgVal/irctest and write
436 ;; our own testphase.
437 (arguments
438 `(#:tests? #f))
439 (home-page "https://github.com/ProgVal/Limnoria")
440 (synopsis "Modified version of Supybot (an IRC bot and framework)")
441 (description
442 "Modified version of Supybot with Python 3 and IRCv3 support,
443embedded web server, translations (fr, fi, it, hu, de), and many
444other enhancements and bug fixes.")
445 (license license:bsd-3)))
0c69a17e 446
447(define-public epic5
448 (package
449 (name "epic5")
450 (version "2.0.1")
451 (source (origin
452 (method url-fetch)
453 (uri (string-append "http://ftp.epicsol.org/pub/"
454 "epic/EPIC5-PRODUCTION/"
455 name "-" version ".tar.xz"))
456 (sha256
457 (base32
458 "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
459 (build-system gnu-build-system)
460 (arguments
461 `(#:test-target "test"
462 #:phases
463 (modify-phases %standard-phases
464 (add-after 'unpack 'patch-perl
465 (lambda _
466 (substitute* "regress/crash-irc"
467 (("perl5") (which "perl")))
468 #t))
469 (add-after 'unpack 'patch-bsdinstall
470 ;; If we just remove /bin/ some part of the bsdinstall breaks.
471 ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
472 ;; means if we leave /etc/ in, install fails.
473 (lambda _
474 (substitute* "bsdinstall"
475 (("/bin/strip") "strip")
476 (("/bin/cp") "cp")
477 (("/bin/chmod") "chmod")
478 (("/bin/chgrp") "chgrp")
479 (("/bin/mkdir") "mkdir")
480 (("/bin/rm") "rm")
481 (("/bin/mv") "mv")
482 (("/etc/") ""))
483 #t))
484 (replace 'configure
485 (lambda* (#:key outputs #:allow-other-keys)
486 ;; The tarball uses a very old version of autconf. It does not
487 ;; understand extra flags like `--enable-fast-install', so
488 ;; we need to invoke it with just what it understands.
489 (let ((out (assoc-ref outputs "out")))
490 ;; 'configure' doesn't understand '--host'.
491 ,@(if (%current-target-system)
492 `((setenv "CHOST" ,(%current-target-system)))
493 '())
494 (setenv "CONFIG_SHELL" (which "bash"))
495 (setenv "SHELL" (which "bash"))
5a13cf3d
TGR
496 (invoke "./configure"
497 (string-append "--prefix=" out)
498 "--with-ipv6" "--with-libarchive"
499 ;; We use libressl because openssl does not come
500 ;; with the lib/libssl.a which is needed for epic5.
501 ;; XXX: No matter which implementation is chosen,
502 ;; epic5 fails to connect to tls ports of roundrobin
503 ;; irc networks. This however is believed to be an
504 ;; protocol issue at epic5 related to ircd.
505 (string-append "--with-ssl="
506 (assoc-ref %build-inputs "libressl"))
507 (string-append "--with-tcl="
508 (assoc-ref %build-inputs "tcl")
509 "/lib/tclConfig.sh"))))))))
0c69a17e 510 (inputs
511 `(("libressl" ,libressl)
512 ("ncurses" ,ncurses)
513 ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
514 ("perl" ,perl)
515 ("tcl" ,tcl)
516 ("ruby" ,ruby)))
517 (native-inputs
518 `(("pkg-config" ,pkg-config)))
519 (home-page "http://epicsol.org")
520 (synopsis "Epic5 IRC Client")
521 (description
522 "EPIC is a IRC client that has been under active development for
523over 20 years. It is stable and mature, and offers an excellent ircII
524interface for those who are accustomed to the ircII way of doing things.")
525 (license (list license:bsd-3
526 license:isc
527 license:bsd-4
528 ;; The epic license is equal to the standard three-clause
529 ;; BSD license except that you are not permitted to remove the
530 ;; "Redistribution is permitted" clause of the license if you
531 ;; distribute binaries.
1975ec69 532 (license:non-copyleft "http://epicsol.org/copyright")))))
c0a4cde0
BG
533
534(define-public inspircd
535 (package
536 (name "inspircd")
7b6750a6 537 (version "3.8.1")
c0a4cde0
BG
538 (source
539 (origin
540 (method git-fetch)
541 (uri (git-reference
542 (url "https://github.com/inspircd/inspircd")
543 (commit (string-append "v" version))))
544 (file-name (git-file-name name version))
545 (sha256
7b6750a6 546 (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g"))))
c0a4cde0
BG
547 (build-system gnu-build-system)
548 (arguments
549 `(#:configure-flags (map (lambda (module)
550 (string-append "--enable-extras=" module))
c5fcdb5c
TGR
551 '("m_argon2.cpp"
552 "m_geo_maxmind.cpp"
c0a4cde0
BG
553 "m_ldap.cpp"
554 "m_mysql.cpp"
555 "m_pgsql.cpp"
556 "m_regex_pcre.cpp"
557 "m_regex_posix.cpp"
558 "m_regex_stdlib.cpp"
559 "m_regex_re2.cpp"
560 "m_regex_tre.cpp"
561 "m_sqlite3.cpp"
562 "m_ssl_gnutls.cpp"
563 "m_ssl_openssl.cpp"
564 "m_ssl_mbedtls.cpp"
565 "m_sslrehashsignal.cpp"))
566 #:tests? #f ; Figure out later.
567 #:phases
568 (modify-phases %standard-phases
569 (add-before 'configure 'module-configure
570 (lambda* (#:key configure-flags #:allow-other-keys)
571 (apply invoke "./configure"
572 configure-flags)
573 #t))
574 (replace 'configure
575 (lambda* (#:key outputs #:allow-other-keys)
576 (let* ((out (assoc-ref outputs "out"))
577 (out-lib (string-append out "/lib/"))
578 (out-bin (string-append out "/bin/"))
579 (out-etc (string-append out "/etc/"))
580 (name "inspircd"))
581 (invoke "./configure"
582 (string-append "--prefix=" out-lib name)
583 (string-append "--binary-dir=" out-bin)
584 (string-append "--module-dir=" out-lib name "/modules/")
585 (string-append "--config-dir=" out-etc name)))
586 #t)))))
587 (native-inputs
fb71e5a8
TGR
588 `(("pkg-config" ,pkg-config)))
589 (inputs
c5fcdb5c
TGR
590 `(("argon2" ,argon2)
591 ("gnutls" ,gnutls)
c0a4cde0 592 ("libmaxminddb" ,libmaxminddb)
c0a4cde0 593 ("mbedtls-apache" ,mbedtls-apache)
fb71e5a8 594 ("mysql" ,mysql)
c0a4cde0
BG
595 ("openldap" ,openldap)
596 ("openssl" ,openssl)
597 ("pcre" ,pcre "bin")
598 ("perl" ,perl)
c0a4cde0
BG
599 ("postgresql" ,postgresql)
600 ("re2" ,re2)
601 ("sqlite" ,sqlite)
602 ("tre" ,tre)))
603 (synopsis "Modular IRC server written in C++")
604 (description "InspIRCd is a modular Internet Relay Chat
605server written in C++ for Unix-like operating systems.")
606 (home-page "https://www.inspircd.org/")
607 (license license:gpl2)))