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