gnu: prosody: Add OpenSSL and Coreutils to the PATH of programs.
[jackhill/guix/guix.git] / gnu / packages / messaging.scm
CommitLineData
7c706558 1;;; GNU Guix --- Functional package management for GNU
0c0207a9 2;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
b977cd2b 3;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
ea119a28 4;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
2e88d113 5;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
1ae27aac 6;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
07ab3b8e 7;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
ebfc2ecc 8;;; Copyright © 2016 ng0 <ng0@libertad.pw>
bc1c995e 9;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
5b494618 10;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
7c706558
MW
11;;;
12;;; This file is part of GNU Guix.
13;;;
14;;; GNU Guix is free software; you can redistribute it and/or modify it
15;;; under the terms of the GNU General Public License as published by
16;;; the Free Software Foundation; either version 3 of the License, or (at
17;;; your option) any later version.
18;;;
19;;; GNU Guix is distributed in the hope that it will be useful, but
20;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;;; GNU General Public License for more details.
23;;;
24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
27(define-module (gnu packages messaging)
29e83e1c 28 #:use-module ((guix licenses) #:prefix license:)
b1a2bc89 29 #:use-module (guix utils)
7c706558
MW
30 #:use-module (guix packages)
31 #:use-module (guix download)
901c1aae 32 #:use-module (guix git-download)
7c706558 33 #:use-module (guix build-system gnu)
b1a2bc89 34 #:use-module (guix build-system glib-or-gtk)
246bc76a 35 #:use-module (guix build-system python)
ebfc2ecc 36 #:use-module (guix build-system perl)
c413c6ad 37 #:use-module (guix build-system cmake)
8b3099cf 38 #:use-module (gnu packages)
bc1c995e 39 #:use-module (gnu packages aidc)
b1a2bc89
MW
40 #:use-module (gnu packages autotools)
41 #:use-module (gnu packages avahi)
5b494618 42 #:use-module (gnu packages base)
b1a2bc89 43 #:use-module (gnu packages check)
901c1aae 44 #:use-module (gnu packages crypto)
b1a2bc89
MW
45 #:use-module (gnu packages cyrus-sasl)
46 #:use-module (gnu packages databases)
99828fa7 47 #:use-module (gnu packages documentation)
b977cd2b 48 #:use-module (gnu packages enchant)
ebfc2ecc 49 #:use-module (gnu packages gettext)
b977cd2b
JL
50 #:use-module (gnu packages gnome)
51 #:use-module (gnu packages gtk)
b1a2bc89
MW
52 #:use-module (gnu packages xorg)
53 #:use-module (gnu packages xdisorg)
b977cd2b 54 #:use-module (gnu packages libcanberra)
ebfc2ecc 55 #:use-module (gnu packages man)
8f3afba4 56 #:use-module (gnu packages networking)
b1a2bc89 57 #:use-module (gnu packages libidn)
1ae27aac 58 #:use-module (gnu packages lua)
b977cd2b 59 #:use-module (gnu packages xml)
8b3099cf 60 #:use-module (gnu packages gnupg)
b1a2bc89 61 #:use-module (gnu packages ncurses)
8b3099cf
MW
62 #:use-module (gnu packages pkg-config)
63 #:use-module (gnu packages glib)
8b3099cf 64 #:use-module (gnu packages python)
ebfc2ecc 65 #:use-module (gnu packages pcre)
8b3099cf 66 #:use-module (gnu packages perl)
ea119a28 67 #:use-module (gnu packages tcl)
8b3099cf 68 #:use-module (gnu packages compression)
ea119a28
TUBK
69 #:use-module (gnu packages check)
70 #:use-module (gnu packages admin)
a7fd7b68 71 #:use-module (gnu packages linux)
a10052ac 72 #:use-module (gnu packages tls)
901c1aae 73 #:use-module (gnu packages icu4c)
aeca1c0e 74 #:use-module (gnu packages qt)
901c1aae 75 #:use-module (gnu packages video)
ebfc2ecc 76 #:use-module (gnu packages web)
3b38d78e
EE
77 #:use-module (gnu packages xiph)
78 #:use-module (gnu packages audio)
ebfc2ecc 79 #:use-module (gnu packages bison)
3b38d78e 80 #:use-module (gnu packages fontutils))
7c706558
MW
81
82(define-public libotr
83 (package
84 (name "libotr")
89e58e8e 85 (version "4.1.1")
7c706558
MW
86 (source (origin
87 (method url-fetch)
88 (uri (string-append "https://otr.cypherpunks.ca/libotr-"
89 version ".tar.gz"))
90 (sha256
89e58e8e 91 (base32
e3d3546e 92 "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
fc1adab1 93 (patches (search-patches "libotr-test-auth-fix.patch"))))
7c706558
MW
94 (build-system gnu-build-system)
95 (propagated-inputs
96 `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h
97 (inputs `(("libgpg-error" ,libgpg-error)))
89e58e8e 98 (native-inputs `(("perl" ,perl))) ; for the test suite
7c706558
MW
99 (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit")
100 (description
101 "OTR allows you to have private conversations over instant messaging by
008b5257
MW
102providing: (1) Encryption: No one else can read your instant messages. (2)
103Authentication: You are assured the correspondent is who you think it is. (3)
104Deniability: The messages you send do not have digital signatures that are
105checkable by a third party. Anyone can forge messages after a conversation to
106make them look like they came from you. However, during a conversation, your
107correspondent is assured the messages he sees are authentic and
108unmodified. (4) Perfect forward secrecy: If you lose control of your private
109keys, no previous conversation is compromised.")
7c706558 110 (home-page "https://otr.cypherpunks.ca/")
29e83e1c 111 (license (list license:lgpl2.1 license:gpl2))))
7c706558 112
11057c4b
AW
113;; These patches together fix https://github.com/bitlbee/bitlbee/pull/55, are
114;; already upstream, and should be unnecessary when the next bitlbee comes
115;; out.
116(define %bitlbee-buddy-nick-change-patch
117 (origin
118 (method url-fetch)
119 (uri "https://github.com/bitlbee/bitlbee/commit/a42fda42.patch")
120 (sha256
121 (base32
122 "1mzjhcdn0rxir5mzgqz9kv142ai38p1iq2lajqx89wb7x0bp51zx"))))
123(define %bitlbee-always-use-nicks-patch
124 (origin
125 (method url-fetch)
126 (uri "https://github.com/bitlbee/bitlbee/commit/3320d6d9.patch")
127 (sha256
128 (base32
129 "14d9kb5zdzh5hzakdvrbviz83rix0j2lq9rzb58b2fn92fp8yixd"))))
130
8b3099cf
MW
131(define-public bitlbee
132 (package
133 (name "bitlbee")
ac47ad99 134 (version "3.4.2")
8b3099cf
MW
135 (source (origin
136 (method url-fetch)
95791189 137 (uri (string-append "https://get.bitlbee.org/src/bitlbee-"
8b3099cf
MW
138 version ".tar.gz"))
139 (sha256
11057c4b
AW
140 (base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39"))
141 (patches
142 (list %bitlbee-buddy-nick-change-patch
143 %bitlbee-always-use-nicks-patch))))
8b3099cf
MW
144 (build-system gnu-build-system)
145 (native-inputs `(("pkg-config" ,pkg-config)
146 ("check" ,check)))
147 (inputs `(("glib" ,glib)
fa40e4d4 148 ("libotr" ,libotr)
8b3099cf 149 ("gnutls" ,gnutls)
8b3099cf
MW
150 ("python" ,python-2)
151 ("perl" ,perl)))
152 (arguments
153 `(#:phases (alist-cons-after
154 'install 'install-etc
155 (lambda* (#:key (make-flags '()) #:allow-other-keys)
156 (zero? (apply system* "make" "install-etc" make-flags)))
157 (alist-replace
158 'configure
159 ;; bitlbee's configure script does not tolerate many of the
160 ;; variable settings that Guix would pass to it.
161 (lambda* (#:key outputs #:allow-other-keys)
162 (zero? (system* "./configure"
163 (string-append "--prefix="
164 (assoc-ref outputs "out"))
165 "--otr=1")))
166 %standard-phases))))
167 (synopsis "IRC to instant messaging gateway")
168 (description "BitlBee brings IM (instant messaging) to IRC clients, for
169people who have an IRC client running all the time and don't want to run an
170additional IM client. BitlBee currently supports XMPP/Jabber (including
171Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter
172microblogging network (plus all other Twitter API compatible services like
173identi.ca and status.net).")
174 (home-page "http://www.bitlbee.org/")
29e83e1c 175 (license (list license:gpl2+ license:bsd-2))))
8b3099cf 176
b977cd2b
JL
177(define-public hexchat
178 (package
179 (name "hexchat")
8ea83d60 180 (version "2.12.2")
b977cd2b
JL
181 (source (origin
182 (method url-fetch)
183 (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
184 version ".tar.xz"))
185 (sha256
186 (base32
8ea83d60 187 "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd"))))
b977cd2b
JL
188 (build-system gnu-build-system)
189 (native-inputs `(("pkg-config" ,pkg-config)
190 ("intltool" ,intltool)))
191 (inputs `(("dbus-glib" ,dbus-glib)
192 ("dbus" ,dbus)
193 ("enchant" ,enchant)
194 ("glib:bin" ,glib "bin") ;need glib-genmarshal
195 ("gtk" ,gtk+-2)
196 ("libcanberra" ,libcanberra)
197 ("libnotify" ,libnotify)
198 ("openssl" ,openssl)
71af71dc
TGR
199
200 ;; Bindings for add-on scripts.
201 ("luajit" ,luajit)
202 ("perl-xml-parser" ,perl-xml-parser)
203 ("python-2" ,python-2)))
b977cd2b
JL
204 (synopsis "Graphical IRC Client")
205 (description
71af71dc
TGR
206 "HexChat lets you connect to multiple IRC networks at once. The main
207window shows the list of currently connected networks and their channels, the
208current conversation and the list of users. It uses colors to differentiate
209between users and to highlight messages. It checks spelling using available
b977cd2b
JL
210dictionaries. HexChat can be extended with multiple addons.")
211 (home-page "http://hexchat.net/")
29e83e1c 212 (license license:gpl2+)))
b977cd2b 213
ea119a28
TUBK
214(define-public ngircd
215 (package
216 (name "ngircd")
217 (version "22")
218 (source (origin
219 (method url-fetch)
220 (uri (string-append "http://arthur.barton.de/pub/ngircd/ngircd-"
221 version ".tar.xz"))
222 (sha256
223 (base32
224 "17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4"))
fc1adab1
AK
225 (patches (search-patches "ngircd-no-dns-in-tests.patch"
226 "ngircd-handle-zombies.patch"))))
ea119a28
TUBK
227 (build-system gnu-build-system)
228 ;; Needed for the test suite.
229 (native-inputs `(("procps" ,procps)
230 ("expect" ,expect)
231 ("inetutils" ,inetutils)))
8f3afba4 232 ;; XXX Add libident.
ea119a28 233 (inputs `(("zlib" ,zlib)
8f3afba4 234 ("libwrap" ,tcp-wrappers)
ea119a28
TUBK
235 ("gnutls" ,gnutls)
236 ,@(if (string-suffix? "-linux"
237 (or (%current-target-system)
238 (%current-system)))
239 `(("linux-pam" ,linux-pam))
240 '())))
241 (arguments
242 `(#:configure-flags
8f3afba4 243 '("--with-gnutls" "--with-iconv" "--enable-ipv6" "--with-tcp-wrappers"
ea119a28
TUBK
244 ,@(if (string-suffix? "-linux"
245 (or (%current-target-system)
246 (%current-system)))
247 '("--with-pam")
248 '()))
249 #:phases
250 ;; Necessary for the test suite.
251 (alist-cons-after
252 'configure 'post-configure
253 (lambda _
254 (substitute* "src/ngircd/Makefile"
9af288a6
TUBK
255 (("/bin/sh") (which "sh")))
256 ;; The default getpid.sh does a sloppy grep over 'ps -ax' output,
257 ;; which fails arbitrarily.
258 (with-output-to-file "src/testsuite/getpid.sh"
259 (lambda ()
260 (display
261 (string-append
262 "#!" (which "sh") "\n"
263 "ps -C \"$1\" -o pid=\n"))))
264 ;; Our variant of getpid.sh does not work for interpreter names if a
265 ;; shebang script is run directly as "./foo", so patch cases where
266 ;; the test suite relies on this.
267 (substitute* "src/testsuite/start-server.sh"
268 ;; It runs 'getpid.sh sh' to test if it works at all. Run it on
269 ;; 'make' instead.
270 (("getpid.sh sh") "getpid.sh make")))
ea119a28
TUBK
271 %standard-phases)))
272 (home-page "http://ngircd.barton.de/")
273 (synopsis "Lightweight Internet Relay Chat server for small networks")
274 (description
275 "ngIRCd is a lightweight Internet Relay Chat server for small or private
276networks. It is easy to configure, can cope with dynamic IP addresses, and
277supports IPv6, SSL-protected connections as well as PAM for authentication.")
29e83e1c 278 (license license:gpl2+)))
ea119a28 279
b1a2bc89
MW
280(define-public pidgin
281 (package
282 (name "pidgin")
e31f05d4 283 (version "2.11.0")
b1a2bc89
MW
284 (source
285 (origin
286 (method url-fetch)
287 (uri (string-append "mirror://sourceforge/pidgin/Pidgin/"
288 version "/" name "-" version ".tar.bz2"))
289 (sha256
290 (base32
e31f05d4 291 "0crkggjj6y07v1kdwil9vw532b0vrs6p33nmlvdkpnl60m2169pp"))
fc1adab1 292 (patches (search-patches "pidgin-add-search-path.patch"))))
b1a2bc89
MW
293 (build-system glib-or-gtk-build-system)
294 (native-inputs
295 `(("pkg-config" ,pkg-config)
296 ("check" ,check)
297 ("intltool" ,intltool)
298 ("gconf" ,gconf)
299 ("python" ,python-2)
300 ("doxygen" ,doxygen)))
301 (inputs
302 `(("gtk+" ,gtk+-2)
303 ("libgcrypt" ,libgcrypt)
304 ("gnutls" ,gnutls)
305 ("cyrus-sasl" ,cyrus-sasl)
306 ("dbus" ,dbus)
307 ("dbus-glib" ,dbus-glib)
308 ("python2-dbus" ,python2-dbus)
309 ("libidn" ,libidn)
310 ("libltdl" ,libltdl)
311 ("libxml2" ,libxml2)
312 ;; TODO: gstreamer: patches needed to support gstreamer-1.0 or later
313 ;; TODO: farstream
314 ;; TODO: meanwhile
315 ;; TODO: network-manager
316 ;; TODO: gtkspell
317 ;; TODO: libxephyr
318 ;; TODO: libgadu
319 ("libxslt" ,libxslt)
320 ("avahi" ,avahi)
321 ("ncurses" ,ncurses)
322 ("sqlite" ,sqlite)
323 ("libice" ,libice)
324 ("libsm" ,libsm)
325 ("libxscrnsaver" ,libxscrnsaver)
326 ("startup-notification" ,startup-notification)))
327 (arguments
328 `(#:configure-flags
329 (list "--disable-gtkspell"
330 "--disable-tcl"
331 "--disable-meanwhile"
332 "--disable-nm" ; XXX remove when we have network-manager
333 "--disable-vv" ; XXX remove when we have farstream and gstreamer
334 "--disable-gstreamer" ; XXX patches needed to support gstreamer-1.0
335 "--enable-cyrus-sasl"
336 (string-append "--with-ncurses-headers="
337 (assoc-ref %build-inputs "ncurses")
338 "/include"))))
339 (native-search-paths
340 (list (search-path-specification
341 (variable "PURPLE_PLUGIN_PATH")
342 (files (list (string-append "lib/purple-"
343 (version-prefix version 1))
344 "lib/pidgin")))))
345 (home-page "http://www.pidgin.im/")
346 (synopsis "Graphical multi-protocol instant messaging client")
347 (description
348 "Pidgin is a modular instant messaging client that supports many popular
349chat protocols.")
350 (license
351 (list
29e83e1c 352 license:gpl2+ ; Most of the code
353 license:lgpl2.1 ; GG protocol plugin (libpurple/protocols/gg/lib)
354 license:lgpl2.0+ ; OSCAR protocol plugin (libpurple/protocols/oscar)
b1a2bc89 355 ;; The following licenses cover the zephyr protocol plugin:
29e83e1c 356 (license:non-copyleft
b1a2bc89
MW
357 "file://libpurple/protocols/zephyr/mit-copyright.h"
358 "See libpurple/protocols/zephyr/mit-copyright.h in the distribution.")
29e83e1c 359 (license:non-copyleft
b1a2bc89
MW
360 "file://libpurple/protocols/zephyr/mit-sipb-copyright.h"
361 "See libpurple/protocols/zephyr/mit-sipb-copyright.h in the distribution.")))))
362
0a143f67
MW
363(define-public pidgin-otr
364 (package
365 (name "pidgin-otr")
f9733422 366 (version "4.0.2")
0a143f67
MW
367 (source (origin
368 (method url-fetch)
369 (uri (string-append "https://otr.cypherpunks.ca/"
370 name "-" version ".tar.gz"))
371 (sha256
372 (base32
f9733422 373 "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
0a143f67
MW
374 (build-system gnu-build-system)
375 (native-inputs
376 `(("pkg-config" ,pkg-config)
377 ("intltool" ,intltool)))
378 (inputs
379 `(("pidgin" ,pidgin)
380 ("libotr" ,libotr)
381 ("libgpg-error" ,libgpg-error)
382 ("libgcrypt" ,libgcrypt)
383 ("glib" ,glib)
384 ("gtk+" ,gtk+-2)))
385 (home-page "https://otr.cypherpunks.ca/")
386 (synopsis "Off-the-Record Messaging plugin for Pidgin")
387 (description
388 "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant
389messaging client. OTR (Off-the-Record) Messaging allows you to have private
390conversations over instant messaging by providing: (1) Encryption: No one else
391can read your instant messages. (2) Authentication: You are assured the
392correspondent is who you think it is. (3) Deniability: The messages you send
393do not have digital signatures that are checkable by a third party. Anyone
394can forge messages after a conversation to make them look like they came from
395you. However, during a conversation, your correspondent is assured the
396messages he sees are authentic and unmodified. (4) Perfect forward secrecy:
397If you lose control of your private keys, no previous conversation is
398compromised.")
29e83e1c 399 (license license:gpl2)))
0a143f67 400
a10052ac
DT
401(define-public znc
402 (package
403 (name "znc")
48dc9f3a 404 (version "1.6.4")
a10052ac
DT
405 (source (origin
406 (method url-fetch)
eb2371bc 407 (uri (string-append "http://znc.in/releases/archive/znc-"
a10052ac
DT
408 version ".tar.gz"))
409 (sha256
410 (base32
48dc9f3a 411 "070d6b1i3jy66m4ci4ypxkg4pbwqbzbzss1y1ycgq2w62zmrf423"))))
a10052ac
DT
412 (build-system gnu-build-system)
413 (arguments
414 '(#:tests? #f ; tries to download GoogleTest with wget
415 #:configure-flags '("--enable-python"
416 "--enable-perl"
417 "--enable-cyrus")))
418 (native-inputs
419 `(("pkg-config" ,pkg-config)
420 ("perl" ,perl)
421 ("python" ,python)))
422 (inputs
423 `(("openssl" ,openssl)
424 ("zlib" ,zlib)
425 ("icu4c" ,icu4c)
426 ("cyrus-sasl" ,cyrus-sasl)))
427 (home-page "http://znc.in")
428 (synopsis "IRC network bouncer")
429 (description "ZNC is an IRC network bouncer or BNC. It can detach the
430client from the actual IRC server, and also from selected channels. Multiple
431clients from different locations can connect to a single ZNC account
432simultaneously and therefore appear under the same nickname on IRC.")
29e83e1c 433 (license license:asl2.0)))
a10052ac 434
246bc76a
RW
435(define-public python-nbxmpp
436 (package
437 (name "python-nbxmpp")
438 (version "0.5.3")
439 (source
440 (origin
441 (method url-fetch)
442 (uri (string-append "https://pypi.python.org/packages/source/n/nbxmpp/"
443 "nbxmpp-" version ".tar.gz"))
444 (sha256
445 (base32
446 "0dcr786dyips1fdvgsn8yvpgcz5j7217fi05c29cfypdl8jnp6mp"))))
447 (build-system python-build-system)
448 ;; No tests included
449 (arguments `(#:tests? #f))
450 (home-page "http://python-nbxmpp.gajim.org")
451 (synopsis "Non-blocking Jabber/XMPP module")
452 (description
453 "The goal of this python library is to provide a way for Python
454applications to use Jabber/XMPP networks in a non-blocking way. This library
455was initially a fork of xmpppy, but is using non-blocking sockets.")
29e83e1c 456 (license license:gpl3+)))
246bc76a
RW
457
458(define-public python2-nbxmpp
459 (package-with-python2 python-nbxmpp))
460
1f321f87
RW
461(define-public gajim
462 (package
463 (name "gajim")
0f6b6cb9 464 (version "0.16.6")
1f321f87
RW
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "https://gajim.org/downloads/"
468 (version-major+minor version)
469 "/gajim-" version ".tar.bz2"))
470 (sha256
471 (base32
0f6b6cb9 472 "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk"))))
1f321f87
RW
473 (build-system gnu-build-system)
474 (arguments
0f6b6cb9 475 `(#:phases
1f321f87
RW
476 (modify-phases %standard-phases
477 (add-after 'install 'wrap-program
0f6b6cb9
AI
478 (lambda* (#:key outputs #:allow-other-keys)
479 ;; Make sure all Python scripts run with the correct PYTHONPATH.
480 (let ((out (assoc-ref outputs "out"))
481 (path (getenv "PYTHONPATH")))
482 (for-each (lambda (name)
483 (let ((file (string-append out "/bin/" name)))
484 ;; Wrapping destroys identification of intended
485 ;; application, so we need to override "APP".
486 (substitute* file
487 (("APP=`basename \\$0`")
488 (string-append "APP=" name)))
489 (wrap-program file
490 `("PYTHONPATH" ":" prefix (,path)))))
491 '("gajim" "gajim-remote" "gajim-history-manager")))
492 #t)))))
1f321f87
RW
493 (native-inputs
494 `(("intltool" ,intltool)))
495 (propagated-inputs
496 `(("python2-nbxmpp" ,python2-nbxmpp)
497 ("python2-pyopenssl" ,python2-pyopenssl)
498 ("python2-gnupg" ,python2-gnupg)))
499 (inputs
500 `(("python2-pygtk" ,python2-pygtk)
501 ("python" ,python-2)))
502 (home-page "https://gajim.org/")
503 (synopsis "Jabber (XMPP) client")
504 (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
505Among its features are: a tabbed chat window and single window modes; support
506for group chat (with Multi-User Chat protocol), invitation, chat to group chat
507transformation; audio and video conferences; file transfer; TLS, GPG and
508end-to-end encryption support; XML console.")
d6465efa 509 (license license:gpl3)))
1f321f87 510
1ae27aac
RW
511(define-public prosody
512 (package
513 (name "prosody")
514 (version "0.9.10")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "https://prosody.im/downloads/source/"
518 "prosody-" version ".tar.gz"))
519 (sha256
520 (base32
521 "0bv6s5c0iizz015hh1lxlwlw1iwvisywajm2rcrbdfyrskzfwdj8"))))
522 (build-system gnu-build-system)
523 (arguments
524 `(#:tests? #f ; no "check" target
7f39e131 525 #:configure-flags (list "--no-example-certs")
1ae27aac
RW
526 #:modules ((ice-9 match)
527 (srfi srfi-1)
528 (guix build gnu-build-system)
529 (guix build utils))
530 #:phases
531 (modify-phases %standard-phases
532 (add-after 'unpack 'fix-configure-script
533 (lambda _
534 ;; The configure script aborts when it encounters unexpected
535 ;; arguments. Make it more tolerant.
536 (substitute* "configure"
537 (("exit 1") ""))
538 #t))
539 (add-after 'install 'wrap-programs
540 (lambda* (#:key inputs outputs #:allow-other-keys)
541 ;; Make sure all executables in "bin" find the required Lua
542 ;; modules at runtime.
543 (let* ((out (assoc-ref outputs "out"))
544 (bin (string-append out "/bin/"))
545 (deps (delete #f (map (match-lambda
546 ((label . directory)
547 (if (string-prefix? "lua" label)
548 directory #f)))
549 inputs)))
5b494618
CL
550 (lua-path (string-join
551 (map (lambda (path)
552 (string-append
553 path "/share/lua/5.1/?.lua;"
554 path "/share/lua/5.1/?/?.lua"))
555 (cons out deps))
556 ";"))
557 (lua-cpath (string-join
558 (map (lambda (path)
559 (string-append
560 path "/lib/lua/5.1/?.so;"
561 path "/lib/lua/5.1/?/?.so"))
562 (cons out deps))
563 ";"))
564 (openssl (assoc-ref inputs "openssl"))
565 (coreutils (assoc-ref inputs "coreutils"))
566 (path (map (lambda (dir)
567 (string-append dir "/bin"))
568 (list openssl coreutils))))
1ae27aac
RW
569 (for-each (lambda (file)
570 (wrap-program file
5b494618
CL
571 `("LUA_PATH" ";" = (,lua-path))
572 `("LUA_CPATH" ";" = (,lua-cpath))
573 `("PATH" ":" prefix ,path)))
1ae27aac
RW
574 (find-files bin ".*"))
575 #t))))))
576 (inputs
577 `(("libidn" ,libidn)
578 ("openssl" ,openssl)
579 ("lua" ,lua-5.1)
580 ("lua5.1-expat" ,lua5.1-expat)
581 ("lua5.1-socket" ,lua5.1-socket)
582 ("lua5.1-filesystem" ,lua5.1-filesystem)
4a384221
CL
583 ;; See <https://prosody.im/doc/depends#luasec>.
584 ("lua5.1-sec" ,lua5.1-sec-0.5)))
1ae27aac
RW
585 (home-page "https://prosody.im/")
586 (synopsis "Jabber (XMPP) server")
587 (description "Prosody is a modern XMPP communication server. It aims to
588be easy to set up and configure, and efficient with system resources.
589Additionally, for developers it aims to be easy to extend and give a flexible
590system on which to rapidly develop added functionality, or prototype new
591protocols.")
29e83e1c 592 (license license:x11)))
1ae27aac 593
901c1aae 594(define-public libtoxcore
595 (let ((revision "1")
596 (commit "755f084e8720b349026c85afbad58954cb7ff1d4"))
597 (package
598 (name "libtoxcore")
599 (version (string-append "0.0.0" "-"
600 revision "."(string-take commit 7)))
601 (source (origin
602 (method git-fetch)
603 (uri (git-reference
604 (url "https://github.com/irungentoo/toxcore.git")
605 (commit commit)))
606 (file-name (string-append name "-" version "-checkout"))
607 (sha256
608 (base32
609 "0ap1gvlyihnfivv235dbrgsxsiiz70bhlmlr5gn1027w3h5kqz8w"))))
610 (build-system gnu-build-system)
611 (native-inputs
612 `(("autoconf" ,autoconf)
613 ("automake" ,automake)
614 ("libtool" ,libtool)
615 ;; TODO: Add when test suite is capable of passing.
616 ;; ("check" ,check)
617 ("pkg-config" ,pkg-config)))
618 (inputs
619 `(("libsodium" ,libsodium)
620 ("opus" ,opus)
621 ("libvpx" ,libvpx)))
622 (arguments
623 `(#:phases
624 (modify-phases %standard-phases
625 (add-after 'unpack 'autoconf
626 (lambda _
627 (zero? (system* "autoreconf" "-vfi")))))
628 #:tests? #f)) ; FIXME: Testsuite fails, reasons unspecific.
629 (synopsis "Library for the Tox encrypted messenger protocol")
630 (description
631 "C library implementation of the Tox encrypted messenger protocol.")
29e83e1c 632 (license license:gpl3+)
901c1aae 633 (home-page "https://tox.chat"))))
634
0ed5554a 635;; Some tox clients move to c-toxcore, which seems to be where all the
636;; recent development happens. It is run by the same developers as toxcore,
637;; forked into a group namespace.
638(define-public c-toxcore
639 (package
640 (name "c-toxcore")
641 (version "0.1.1")
642 (source
643 (origin
644 (method url-fetch)
645 (uri (string-append "https://github.com/TokTok/c-toxcore/archive/v"
646 version ".tar.gz"))
647 (file-name (string-append name "-" version ".tar.gz"))
648 (sha256
649 (base32
650 "0dybpz44pi0zm8djppjna0r8yh5wvl3l885dv2f1wp5366bk59n3"))))
651 (build-system gnu-build-system)
652 (native-inputs
653 `(("autoconf" ,autoconf)
654 ("automake" ,automake)
655 ("libtool" ,libtool)
656 ("check" ,check)
657 ("pkg-config" ,pkg-config)))
658 (inputs
659 `(("libsodium" ,libsodium)
660 ("opus" ,opus)
661 ("libvpx" ,libvpx)))
662 (arguments
663 `(#:phases
664 (modify-phases %standard-phases
665 (add-after 'unpack 'autoconf
666 ;; The tarball source is not bootstrapped.
667 (lambda _
668 (zero? (system* "autoreconf" "-vfi")))))
669 #:tests? #f)) ; FIXME: Testsuite fails, needs internet connection.
670 (synopsis "Library for the Tox encrypted messenger protocol")
671 (description
672 "Official fork of the C library implementation of the Tox
673encrypted messenger protocol.")
674 (license license:gpl3+)
675 (home-page "https://tox.chat")))
676
3b38d78e
EE
677(define-public utox
678 (package
679 (name "utox")
c413c6ad 680 (version "0.11.0")
3b38d78e
EE
681 (source
682 (origin
683 (method url-fetch)
c413c6ad 684 (uri (string-append "https://github.com/uTox/uTox/archive/v"
3b38d78e
EE
685 version ".tar.gz"))
686 (file-name (string-append name "-" version ".tar.gz"))
687 (sha256
688 (base32
c413c6ad 689 "15s4iwjk1s0kihjqn0f07c9618clbphpr827mds3xddkiwnjz37v"))))
690 (build-system cmake-build-system)
3b38d78e 691 (arguments
c413c6ad 692 '(#:tests? #f ; No test phase.
3b38d78e
EE
693 #:phases
694 (modify-phases %standard-phases
c413c6ad 695 (add-after 'unpack 'fix-freetype-include
696 (lambda _
697 (substitute* "CMakeLists.txt"
698 (("/usr/include/freetype2")
699 (string-append (assoc-ref %build-inputs "freetype")
700 "/include/freetype2")))))
701 (add-before 'install 'patch-cmake-find-utox
702 (lambda _
703 (substitute* "../build/cmake_install.cmake"
704 (("/uTox-0.11.0/utox")
705 "/build/utox")))))))
3b38d78e 706 (inputs
c413c6ad 707 ;; TODO: Fix the file chooser dialog; which input does it need?
3b38d78e
EE
708 `(("dbus" ,dbus)
709 ("filteraudio" ,filteraudio)
710 ("fontconfig" ,fontconfig)
711 ("freetype" ,freetype)
712 ("libsodium" ,libsodium)
c413c6ad 713 ("c-toxcore" ,c-toxcore)
3b38d78e
EE
714 ("libvpx" ,libvpx)
715 ("libx11" ,libx11)
716 ("libxext" ,libxext)
717 ("libxrender" ,libxrender)
718 ("openal" ,openal)
719 ("v4l-utils" ,v4l-utils)))
3b38d78e 720 (synopsis "Lightweight Tox client")
c27b31e8 721 (description
722 "Utox is a lightweight Tox client. Tox is a distributed and secure
3b38d78e
EE
723instant messenger with audio and video chat capabilities.")
724 (home-page "http://utox.org/")
29e83e1c 725 (license license:gpl3)))
c413c6ad 726
bc1c995e
AP
727(define-public qtox
728 (package
729 (name "qtox")
730 (version "1.5.1")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (string-append "https://github.com/qTox/qTox/archive/v"
735 version ".tar.gz"))
736 (sha256
737 (base32 "0y15mc39x54k1kz36cw9412kl1p1p6nzlx97gagv4gg3vybfhbjv"))
738 (file-name (string-append name "-" version ".tar.gz"))))
739 (inputs
740 `(("ffmpeg" ,ffmpeg)
741 ("glib" ,glib)
742 ("gtk+" ,gtk+-2)
743 ("libsodium" ,libsodium)
744 ("libtoxcore" ,libtoxcore)
745 ("libvpx" ,libvpx)
746 ("libxscrnsaver" ,libxscrnsaver)
747 ("libx11" ,libx11)
748 ("openal" ,openal)
749 ("qrencode" ,qrencode)
750 ("qt" ,qt)
751 ("sqlcipher" ,sqlcipher)))
752 (native-inputs
753 `(("pkg-config" ,pkg-config)
754 ("qmake" ,qt)))
755 (build-system gnu-build-system)
756 (arguments
757 '(#:phases
758 (modify-phases %standard-phases
759 (add-after 'unpack 'fix-reproducibility-issues
760 (lambda _
761 (substitute* "src/main.cpp"
762 (("__DATE__") "\"\"")
763 (("__TIME__") "\"\"")
764 (("TIMESTAMP") "\"\""))
765 #t))
766 (replace 'configure
767 (lambda* (#:key outputs #:allow-other-keys)
768 (zero?
769 (system* "qmake"
770 (string-append "PREFIX="
771 (assoc-ref outputs "out")))))))))
772 (home-page "https://qtox.github.io/")
773 (synopsis "Tox chat client using Qt")
774 (description "qTox is a Tox client that follows the Tox design
775guidelines. It provides an easy to use application that allows you to
776connect with friends and family without anyone else listening in.")
777 (license license:gpl3+)))
3b38d78e 778
aeca1c0e 779(define-public pybitmessage
780 (package
781 (name "pybitmessage")
782 (version "0.6.1")
783 (source
784 (origin
785 (method url-fetch)
786 (uri (string-append "https://github.com/Bitmessage/"
787 "PyBitmessage/archive/v" version ".tar.gz"))
788 (file-name (string-append name "-" version ".tar.gz"))
789 (sha256
790 (base32
791 "1ffj7raxpp277kphj98190fxrwfx16vmbspk7k3azg3bh5f5idnf"))))
792 (inputs
793 `(("python" ,python-2)
794 ("python:tk" ,python-2 "tk")
795 ("openssl" ,openssl)
796 ("sqlite" ,sqlite)
797 ("qt" ,qt-4)
798 ("python2-pyqt-4" ,python2-pyqt-4)
799 ("python2-sip" ,python2-sip)
800 ("python2-pysqlite" ,python2-pysqlite)
801 ("python2-pyopenssl" ,python2-pyopenssl)))
802 (native-inputs
803 `(("pkg-config" ,pkg-config)))
804 (build-system gnu-build-system)
805 (arguments
806 `(#:imported-modules ((guix build python-build-system)
807 ,@%gnu-build-system-modules)
808 #:make-flags (list (string-append "PREFIX="
809 (assoc-ref %outputs "out")))
810 #:tests? #f ; no test target
811 #:phases
812 (modify-phases %standard-phases
813 (add-before 'build 'fix-makefile
814 (lambda* (#:key inputs #:allow-other-keys)
815 (substitute* "Makefile"
816 (("mkdir -p \\$\\{DESTDIR\\}/usr") "")
817 (("/usr/local") "")
818 (("/usr") "")
819 (("#!/bin/sh") (string-append "#!" (which "bash")))
820 (("python2") (which "python"))
821 (("/opt/openssl-compat-bitcoin/lib/")
822 (string-append (assoc-ref inputs "openssl") "/lib/")))
823 #t))
824 (add-after 'unpack 'fix-unmatched-python-shebangs
825 (lambda* (#:key inputs #:allow-other-keys)
826 (substitute* "src/bitmessagemain.py"
827 (("#!/usr/bin/env python2.7")
828 (string-append "#!" (which "python"))))
829 (substitute* "src/bitmessagecli.py"
830 (("#!/usr/bin/env python2.7.x")
831 (string-append "#!" (which "python"))))
832 #t))
833 (add-after 'unpack 'fix-depends
834 (lambda* (#:key inputs #:allow-other-keys)
835 (substitute* "src/depends.py"
836 (("libcrypto.so")
837 (string-append (assoc-ref inputs "openssl")
838 "/lib/libcrypto.so")))
839 #t))
840 (add-after 'unpack 'fix-local-files-in-paths
841 (lambda* (#:key outputs #:allow-other-keys)
842 (substitute* "src/proofofwork.py"
843 (("bitmsghash.so")
844 (string-append (assoc-ref outputs "out")
845 "/lib/bitmsghash.so")))
846 #t))
847 (add-after 'unpack 'fix-pyelliptic
848 (lambda* (#:key inputs #:allow-other-keys)
849 (substitute* "src/pyelliptic/openssl.py"
850 (("libcrypto.so")
851 (string-append (assoc-ref inputs "openssl")
852 "/lib/libcrypto.so"))
853 (("libssl.so")
854 (string-append (assoc-ref inputs "openssl")
855 "/lib/libssl.so")))
856 #t))
857 ;; XXX: Make does not build and install bitmsghash, do it
858 ;; and place it in /lib.
859 (add-before 'build 'build-and-install-bitmsghash
860 (lambda* (#:key outputs #:allow-other-keys)
861 (chdir "src/bitmsghash")
862 (system* "make")
863 (chdir "../..")
864 (install-file "src/bitmsghash/bitmsghash.so"
865 (string-append (assoc-ref outputs "out") "/lib"))
866 #t))
867 (add-after 'install 'wrap
868 (@@ (guix build python-build-system) wrap)))))
869 (license license:expat)
870 (description
871 "Distributed and trustless peer-to-peer communications protocol
872for sending encrypted messages to one person or many subscribers.")
873 (synopsis "Distributed peer-to-peer communication")
874 (home-page "https://bitmessage.org/")))
875
c788c5fe
JD
876(define-public ytalk
877 (package
878 (name "ytalk")
879 (version "3.3.0")
880 (source
881 (origin
882 (method url-fetch)
883 (uri (string-append "ftp://ftp.ourproject.org/pub/ytalk/ytalk-"
884 version ".tar.gz"))
885 (sha256
886 (base32
887 "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf"))))
888 (build-system gnu-build-system)
889 (inputs
890 `(("ncurses" ,ncurses)))
891 (home-page "http://ytalk.ourproject.org")
892 (synopsis "Multi-user chat program")
893 (description "Ytalk is a replacement for the BSD talk program. Its main
894advantage is the ability to communicate with any arbitrary number of users at
895once. It supports both talk protocols (\"talk\" and \"ntalk\") and can communicate
896with several different talk daemons at the same time.")
897 (license license:gpl2+)))
898
3973e137 899(define-public gloox
900 (package
901 (name "gloox")
902 (version "1.0.17")
903 (source
904 (origin
905 (method url-fetch)
906 (uri (string-append "https://camaya.net/download/gloox-"
907 version ".tar.bz2"))
908 (sha256
909 (base32
910 "09c01jr5nrm7f1ly42wg0pqqscmp48pv8y2fjx1vwbavjxdq59ri"))))
911 (build-system gnu-build-system)
912 (inputs
913 `(("libidn" ,libidn)
914 ("gnutls" ,gnutls)
915 ("zlib" ,zlib)))
916 (native-inputs
917 `(("pkg-config" ,pkg-config)))
918 (synopsis "Portable high-level Jabber/XMPP library for C++")
919 (description
920 "gloox is a full-featured Jabber/XMPP client library,
921written in ANSI C++. It makes writing spec-compliant clients easy
922and allows for hassle-free integration of Jabber/XMPP functionality
923into existing applications.")
924 (home-page "https://camaya.net/gloox")
925 (license license:gpl3)))
c788c5fe 926
ebfc2ecc 927(define-public perl-net-psyc
928 (package
929 (name "perl-net-psyc")
930 (version "1.1")
931 (source
932 (origin
933 (method url-fetch)
934 (uri (string-append "http://perlpsyc.psyc.eu/"
935 "perlpsyc-" version ".zip"))
936 (file-name (string-append name "-" version ".zip"))
937 (sha256
938 (base32
939 "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
940 ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
941 ;; we can add it back when this is no longer the case.
942 (snippet '(delete-file "contrib/psycmp3"))))
943 (build-system perl-build-system)
944 (inputs
945 `(("perl-curses" ,perl-curses)
946 ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
947 (arguments
948 `(#:phases
949 (modify-phases %standard-phases
950 (delete 'configure) ; No configure script
951 ;; There is a Makefile, but it does not install everything
952 ;; (leaves out psycion) and says
953 ;; "# Just to give you a rough idea". XXX: Fix it upstream.
954 (replace 'build
955 (lambda _
956 (zero? (system* "make" "manuals"))))
957 (replace 'install
958 (lambda* (#:key outputs #:allow-other-keys)
959 (let* ((out (assoc-ref outputs "out"))
960 (doc (string-append out "/share/doc/perl-net-psyc"))
961 (man1 (string-append out "/share/man/man1"))
962 (man3 (string-append out "/share/man/man3"))
963 (bin (string-append out "/bin"))
964 (libpsyc (string-append out "/lib/psyc/ion"))
965 (libperl (string-append out "/lib/perl5/site_perl/"
966 ,(package-version perl))))
967
968 (copy-recursively "lib/perl5" libperl)
969 (copy-recursively "lib/psycion" libpsyc)
970 (copy-recursively "bin" bin)
971 (install-file "cgi/psycpager" (string-append doc "/cgi"))
972 (copy-recursively "contrib" (string-append doc "/contrib"))
973 (copy-recursively "hooks" (string-append doc "/hooks"))
974 (copy-recursively "sdj" (string-append doc "/sdj"))
975 (install-file "README.txt" doc)
976 (install-file "TODO.txt" doc)
977 (copy-recursively "share/man/man1" man1)
978 (copy-recursively "share/man/man3" man3)
979 #t)))
980 (add-after 'install 'wrap-programs
981 (lambda* (#:key outputs #:allow-other-keys)
982 ;; Make sure all executables in "bin" find the Perl modules
983 ;; provided by this package at runtime.
984 (let* ((out (assoc-ref outputs "out"))
985 (bin (string-append out "/bin/"))
986 (path (getenv "PERL5LIB")))
987 (for-each (lambda (file)
988 (wrap-program file
989 `("PERL5LIB" ":" prefix (,path))))
990 (find-files bin "\\.*$"))
991 #t))))))
992 (description
993 "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and
994Gtk2 event loops. This package includes 12 applications and additional scripts:
995psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console
996for @uref{https://torproject.org,tor} router) and many more.")
997 (synopsis "Perl implementation of PSYC protocol")
998 (home-page "http://perlpsyc.psyc.eu/")
999 (license (list license:gpl2
1000 (package-license perl)
1001 ;; contrib/irssi-psyc.pl:
1002 license:public-domain
1003 ;; bin/psycplay states AGPL with no version:
1004 license:agpl3+))))
1005
1006(define-public libpsyc
1007 (package
1008 (name "libpsyc")
1009 (version "20160913")
1010 (source (origin
1011 (method url-fetch)
1012 (uri (string-append "http://www.psyced.org/files/"
1013 name "-" version ".tar.xz"))
1014 (sha256
1015 (base32
1016 "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p"))))
1017 (build-system gnu-build-system)
1018 (native-inputs
1019 `(("perl" ,perl)
1020 ("netcat" ,netcat)
1021 ("procps" ,procps)))
1022 (arguments
1023 `(#:make-flags
1024 (list "CC=gcc"
1025 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1026 #:phases
1027 (modify-phases %standard-phases
1028 ;; The rust bindings are the only ones in use, the lpc bindings
1029 ;; are in psyclpc. The other bindings are not used by anything,
1030 ;; the chances are high that the bindings do not even work,
1031 ;; therefore we do not include them.
1032 ;; TODO: Get a cargo build system in Guix.
1033 (delete 'configure)))) ; no configure script
1034 (home-page "http://about.psyc.eu/libpsyc")
1035 (description
1036 "@code{libpsyc} is a PSYC library in C which implements
1037core aspects of PSYC, useful for all kinds of clients and servers
1038including psyced.")
1039 (synopsis "PSYC library in C")
1040 (license license:agpl3+)))
1041
cf3678df 1042;; This commit removes the historic bundled pcre and makes psyclpc reproducible.
ebfc2ecc 1043(define-public psyclpc
1044 (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba")
1045 (revision "2"))
1046 (package
1047 (name "psyclpc")
1048 (version (string-append "20160821-" revision "." (string-take commit 7)))
1049 (source (origin
1050 (method git-fetch)
1051 (uri (git-reference
1052 (url "git://git.psyced.org/git/psyclpc")
1053 (commit commit)))
1054 (file-name (string-append name "-" version "-checkout"))
1055 (sha256
1056 (base32
1057 "1viwqymbhn3cwvx0zl58rlzl5gw47zxn0ldg2nbi55ghm5zxl1z5"))))
1058 (build-system gnu-build-system)
1059 (arguments
1060 `(#:tests? #f ; There are no tests/checks.
1061 #:configure-flags
1062 ;; If you have questions about this part, look at
1063 ;; "src/settings/psyced" and the ebuild.
1064 (list
1065 "--enable-use-tls=yes"
1066 "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
1067 (string-append "--prefix="
1068 (assoc-ref %outputs "out"))
1069 ;; src/Makefile: Set MUD_LIB to the directory which contains
1070 ;; the mud data. defaults to MUD_LIB = @libdir@
1071 (string-append "--libdir="
1072 (assoc-ref %outputs "out")
1073 "/opt/psyced/world")
1074 (string-append "--bindir="
1075 (assoc-ref %outputs "out")
1076 "/opt/psyced/bin")
1077 ;; src/Makefile: Set ERQ_DIR to directory which contains the
1078 ;; stuff which ERQ can execute (hopefully) savely. Was formerly
1079 ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
1080 (string-append "--libexecdir="
1081 (assoc-ref %outputs "out")
1082 "/opt/psyced/run"))
1083 #:phases
1084 (modify-phases %standard-phases
1085 (add-before 'configure 'chdir-to-src
1086 ;; We need to pass this as env variables
1087 ;; and manually change the directory.
1088 (lambda _
1089 (chdir "src")
1090 (setenv "CONFIG_SHELL" (which "sh"))
1091 (setenv "SHELL" (which "sh"))
1092 #t)))
1093 #:make-flags (list "install-all")))
1094 (inputs
1095 `(("zlib" ,zlib)
1096 ("openssl" ,openssl)
1097 ("pcre" ,pcre)))
1098 (native-inputs
1099 `(("pkg-config" ,pkg-config)
1100 ("bison" ,bison)
1101 ("gettext" ,gettext-minimal)
1102 ("help2man" ,help2man)
1103 ("autoconf" ,autoconf)
1104 ("automake" ,automake)))
1105 (home-page "http://lpc.psyc.eu/")
1106 (synopsis "psycLPC is a multi-user network server programming language")
1107 (description
1108 "LPC is a bytecode language, invented to specifically implement
1109multi user virtual environments on the internet. This technology is used for
1110MUDs and also the psyced implementation of the Protocol for SYnchronous
1111Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and
1112many bug fixes.")
1113 (license license:gpl2))))
1114
7c706558 1115;;; messaging.scm ends here