Commit | Line | Data |
---|---|---|
7c706558 | 1 | ;;; GNU Guix --- Functional package management for GNU |
649b5e1b | 2 | ;;; Copyright © 2014, 2015 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> |
7c706558 MW |
6 | ;;; |
7 | ;;; This file is part of GNU Guix. | |
8 | ;;; | |
9 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
10 | ;;; under the terms of the GNU General Public License as published by | |
11 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
12 | ;;; your option) any later version. | |
13 | ;;; | |
14 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
15 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;;; GNU General Public License for more details. | |
18 | ;;; | |
19 | ;;; You should have received a copy of the GNU General Public License | |
20 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
21 | ||
22 | (define-module (gnu packages messaging) | |
8b3099cf MW |
23 | #:use-module ((guix licenses) |
24 | #:select (gpl2+ gpl2 lgpl2.1 bsd-2)) | |
7c706558 MW |
25 | #:use-module (guix packages) |
26 | #:use-module (guix download) | |
27 | #:use-module (guix build-system gnu) | |
8b3099cf | 28 | #:use-module (gnu packages) |
b977cd2b JL |
29 | #:use-module (gnu packages enchant) |
30 | #:use-module (gnu packages gnome) | |
31 | #:use-module (gnu packages gtk) | |
32 | #:use-module (gnu packages libcanberra) | |
33 | #:use-module (gnu packages openssl) | |
34 | #:use-module (gnu packages xml) | |
8b3099cf MW |
35 | #:use-module (gnu packages gnupg) |
36 | #:use-module (gnu packages pkg-config) | |
37 | #:use-module (gnu packages glib) | |
8b3099cf MW |
38 | #:use-module (gnu packages python) |
39 | #:use-module (gnu packages perl) | |
ea119a28 | 40 | #:use-module (gnu packages tcl) |
8b3099cf | 41 | #:use-module (gnu packages compression) |
ea119a28 TUBK |
42 | #:use-module (gnu packages check) |
43 | #:use-module (gnu packages admin) | |
a7fd7b68 AE |
44 | #:use-module (gnu packages linux) |
45 | #:use-module (gnu packages tls)) | |
7c706558 MW |
46 | |
47 | (define-public libotr | |
48 | (package | |
49 | (name "libotr") | |
649b5e1b | 50 | (version "4.1.0") |
7c706558 MW |
51 | (source (origin |
52 | (method url-fetch) | |
53 | (uri (string-append "https://otr.cypherpunks.ca/libotr-" | |
54 | version ".tar.gz")) | |
55 | (sha256 | |
649b5e1b | 56 | (base32 "0c6rkh58s6wqzcrpccwdik5qs91qj6dgd60a340d72gc80cqknsg")))) |
7c706558 MW |
57 | (build-system gnu-build-system) |
58 | (propagated-inputs | |
59 | `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h | |
60 | (inputs `(("libgpg-error" ,libgpg-error))) | |
7c706558 MW |
61 | (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit") |
62 | (description | |
63 | "OTR allows you to have private conversations over instant messaging by | |
64 | providing: | |
65 | * Encryption: No one else can read your instant messages. | |
66 | * Authentication: You are assured the correspondent is who you think it is. | |
67 | * Deniability: The messages you send do not have digital signatures that are | |
68 | checkable by a third party. Anyone can forge messages after a conversation | |
69 | to make them look like they came from you. However, during a conversation, | |
70 | your correspondent is assured the messages he sees are authentic and | |
71 | unmodified. | |
72 | * Perfect forward secrecy: If you lose control of your private keys, no | |
73 | previous conversation is compromised.") | |
74 | (home-page "https://otr.cypherpunks.ca/") | |
75 | (license (list lgpl2.1 gpl2)))) | |
76 | ||
77 | (define-public libotr-3 | |
78 | (package (inherit libotr) | |
79 | (version "3.2.1") | |
80 | (source (origin | |
81 | (method url-fetch) | |
82 | (uri (string-append "https://otr.cypherpunks.ca/libotr-" | |
83 | version ".tar.gz")) | |
84 | (sha256 | |
85 | (base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l")))))) | |
86 | ||
8b3099cf MW |
87 | (define-public bitlbee |
88 | (package | |
89 | (name "bitlbee") | |
3a6fb858 | 90 | (version "3.4") |
8b3099cf MW |
91 | (source (origin |
92 | (method url-fetch) | |
93 | (uri (string-append "http://get.bitlbee.org/src/bitlbee-" | |
94 | version ".tar.gz")) | |
95 | (sha256 | |
3a6fb858 MW |
96 | (base32 "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf")) |
97 | (patches (list (search-patch "bitlbee-configure-doc-fix.patch"))))) | |
8b3099cf MW |
98 | (build-system gnu-build-system) |
99 | (native-inputs `(("pkg-config" ,pkg-config) | |
100 | ("check" ,check))) | |
101 | (inputs `(("glib" ,glib) | |
fa40e4d4 | 102 | ("libotr" ,libotr) |
8b3099cf | 103 | ("gnutls" ,gnutls) |
8b3099cf MW |
104 | ("python" ,python-2) |
105 | ("perl" ,perl))) | |
106 | (arguments | |
107 | `(#:phases (alist-cons-after | |
108 | 'install 'install-etc | |
109 | (lambda* (#:key (make-flags '()) #:allow-other-keys) | |
110 | (zero? (apply system* "make" "install-etc" make-flags))) | |
111 | (alist-replace | |
112 | 'configure | |
113 | ;; bitlbee's configure script does not tolerate many of the | |
114 | ;; variable settings that Guix would pass to it. | |
115 | (lambda* (#:key outputs #:allow-other-keys) | |
116 | (zero? (system* "./configure" | |
117 | (string-append "--prefix=" | |
118 | (assoc-ref outputs "out")) | |
119 | "--otr=1"))) | |
120 | %standard-phases)))) | |
121 | (synopsis "IRC to instant messaging gateway") | |
122 | (description "BitlBee brings IM (instant messaging) to IRC clients, for | |
123 | people who have an IRC client running all the time and don't want to run an | |
124 | additional IM client. BitlBee currently supports XMPP/Jabber (including | |
125 | Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter | |
126 | microblogging network (plus all other Twitter API compatible services like | |
127 | identi.ca and status.net).") | |
128 | (home-page "http://www.bitlbee.org/") | |
129 | (license (list gpl2+ bsd-2)))) | |
130 | ||
b977cd2b JL |
131 | (define-public hexchat |
132 | (package | |
133 | (name "hexchat") | |
134 | (version "2.10.1") | |
135 | (source (origin | |
136 | (method url-fetch) | |
137 | (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" | |
138 | version ".tar.xz")) | |
139 | (sha256 | |
140 | (base32 | |
141 | "1ag9rmfisv0hsbk05jq4f1rnap7kwg90vgbmkr9zklkh6imfxk7z")))) | |
142 | (build-system gnu-build-system) | |
143 | (native-inputs `(("pkg-config" ,pkg-config) | |
144 | ("intltool" ,intltool))) | |
145 | (inputs `(("dbus-glib" ,dbus-glib) | |
146 | ("dbus" ,dbus) | |
147 | ("enchant" ,enchant) | |
148 | ("glib:bin" ,glib "bin") ;need glib-genmarshal | |
149 | ("gtk" ,gtk+-2) | |
150 | ("libcanberra" ,libcanberra) | |
151 | ("libnotify" ,libnotify) | |
152 | ("openssl" ,openssl) | |
153 | ("perl-xml-parser" ,perl-xml-parser) ;for addons | |
154 | ("python-2" ,python-2))) ;for addons | |
155 | (synopsis "Graphical IRC Client") | |
156 | (description | |
157 | "HexChat lets you connect to multiple IRC networks at once. The main window | |
158 | shows the list of currently connected networks and their channels, the current | |
159 | conversation and the list of users. It uses colors to differentiate between | |
160 | users and to highlight messages. It checks spelling using available | |
161 | dictionaries. HexChat can be extended with multiple addons.") | |
162 | (home-page "http://hexchat.net/") | |
163 | (license gpl2+))) | |
164 | ||
ea119a28 TUBK |
165 | (define-public ngircd |
166 | (package | |
167 | (name "ngircd") | |
168 | (version "22") | |
169 | (source (origin | |
170 | (method url-fetch) | |
171 | (uri (string-append "http://arthur.barton.de/pub/ngircd/ngircd-" | |
172 | version ".tar.xz")) | |
173 | (sha256 | |
174 | (base32 | |
175 | "17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4")) | |
176 | (patches (list (search-patch "ngircd-no-dns-in-tests.patch") | |
177 | (search-patch "ngircd-handle-zombies.patch"))))) | |
178 | (build-system gnu-build-system) | |
179 | ;; Needed for the test suite. | |
180 | (native-inputs `(("procps" ,procps) | |
181 | ("expect" ,expect) | |
182 | ("inetutils" ,inetutils))) | |
183 | ;; XXX Add libident, libwrap. | |
184 | (inputs `(("zlib" ,zlib) | |
185 | ("gnutls" ,gnutls) | |
186 | ,@(if (string-suffix? "-linux" | |
187 | (or (%current-target-system) | |
188 | (%current-system))) | |
189 | `(("linux-pam" ,linux-pam)) | |
190 | '()))) | |
191 | (arguments | |
192 | `(#:configure-flags | |
193 | '("--with-gnutls" "--with-iconv" "--enable-ipv6" | |
194 | ,@(if (string-suffix? "-linux" | |
195 | (or (%current-target-system) | |
196 | (%current-system))) | |
197 | '("--with-pam") | |
198 | '())) | |
199 | #:phases | |
200 | ;; Necessary for the test suite. | |
201 | (alist-cons-after | |
202 | 'configure 'post-configure | |
203 | (lambda _ | |
204 | (substitute* "src/ngircd/Makefile" | |
9af288a6 TUBK |
205 | (("/bin/sh") (which "sh"))) |
206 | ;; The default getpid.sh does a sloppy grep over 'ps -ax' output, | |
207 | ;; which fails arbitrarily. | |
208 | (with-output-to-file "src/testsuite/getpid.sh" | |
209 | (lambda () | |
210 | (display | |
211 | (string-append | |
212 | "#!" (which "sh") "\n" | |
213 | "ps -C \"$1\" -o pid=\n")))) | |
214 | ;; Our variant of getpid.sh does not work for interpreter names if a | |
215 | ;; shebang script is run directly as "./foo", so patch cases where | |
216 | ;; the test suite relies on this. | |
217 | (substitute* "src/testsuite/start-server.sh" | |
218 | ;; It runs 'getpid.sh sh' to test if it works at all. Run it on | |
219 | ;; 'make' instead. | |
220 | (("getpid.sh sh") "getpid.sh make"))) | |
ea119a28 TUBK |
221 | %standard-phases))) |
222 | (home-page "http://ngircd.barton.de/") | |
223 | (synopsis "Lightweight Internet Relay Chat server for small networks") | |
224 | (description | |
225 | "ngIRCd is a lightweight Internet Relay Chat server for small or private | |
226 | networks. It is easy to configure, can cope with dynamic IP addresses, and | |
227 | supports IPv6, SSL-protected connections as well as PAM for authentication.") | |
228 | (license gpl2+))) | |
229 | ||
7c706558 | 230 | ;;; messaging.scm ends here |