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