gnu: Add wl-clipboard.
[jackhill/guix/guix.git] / gnu / packages / gobby.scm
CommitLineData
c8105e81 1;;; GNU Guix --- Functional package management for GNU
50631fe9 2;;; Copyright © 2016, 2017 Andy Wingo <wingo@igalia.com>
6a84ec8e 3;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
c8105e81
AW
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages gobby)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix utils)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix build-system gnu)
26 #:use-module (gnu packages)
27 #:use-module (gnu packages glib)
28 #:use-module (gnu packages gnome)
6a84ec8e 29 #:use-module (gnu packages gsasl)
c8105e81
AW
30 #:use-module (gnu packages gtk)
31 #:use-module (gnu packages pkg-config)
32 #:use-module (gnu packages tls)
33 #:use-module (gnu packages xml))
34
35(define-public libnet6
36 (package
37 (name "libnet6")
38 (version "1.3.14")
39 (source (origin
40 (method url-fetch)
41 (uri (string-append "http://releases.0x539.de/net6/net6-"
42 version ".tar.gz"))
43 (sha256
44 (base32
45 "088yqq60wjx3jqjlhl12893p15gl9asjpavrbhh590qzpqndhp8m"))))
46 (build-system gnu-build-system)
47 (native-inputs
48 `(("pkg-config" ,pkg-config)))
49 (arguments
50 `(#:configure-flags
51 '("CXXFLAGS=-std=c++11") ; required by libsigc++
52 #:phases
53 (modify-phases %standard-phases
54 (add-before 'configure 'update-gnutls-api
55 (lambda _
56 (substitute* "src/encrypt.cpp"
57 ;; The GnuTLS API to set authentication and other parameters
58 ;; and priorities changed in 3.4; update to allow ANON_DH via
59 ;; the new API.
60 (("gnutls_kx_set_priority\\(session, kx_prio\\)")
61 (string-append "gnutls_priority_set_direct"
62 "(session, \"NORMAL:+ANON-DH\", NULL)"))))))))
63 (inputs
64 `(("libsigc++" ,libsigc++)
65 ("gnutls" ,gnutls)))
66 (home-page "https://gobby.github.io/")
67 (synopsis "Network access framework for IPv4/IPv6")
68 (description
69 "Library which that provides a TCP protocol abstraction for C++.")
70 (license license:lgpl2.1)))
22a3cff3
AW
71
72(define-public obby
73 (package
74 (name "obby")
75 (version "0.4.8")
76 (source (origin
77 (method url-fetch)
78 (uri (string-append "http://releases.0x539.de/obby/obby-"
79 version ".tar.gz"))
80 (file-name (string-append name "-" version ".tar.gz"))
81 (sha256
82 (base32
83 "0rwvp0kzsb8y6mq73rzb8yk4kvsrz64i2zf4lfqs3kh0x2k7n7bx"))))
84 (build-system gnu-build-system)
85 (native-inputs
86 `(("pkg-config" ,pkg-config)))
87 (inputs
88 `(("libsigc++" ,libsigc++)
89 ("gnutls" ,gnutls)
90 ("libnet6" ,libnet6)))
91 (arguments
92 ;; Required by libsigc++.
93 `(#:configure-flags '("CXXFLAGS=-std=c++11")))
94 (home-page "https://gobby.github.io/")
95 (synopsis "Library for building collaborative editors")
96 (description
97 "Library that provides synced document buffers. It supports multiple
98documents in one session. Obby is used by the Gobby collaborative editor.")
99 (license license:gpl2+)))
e9070933 100
50631fe9
AW
101;; Although there is a newer version of Gobby defined below, the protocols are
102;; incompatible; you need Gobby 0.4 if you want to connect to servers running
103;; the 0.4 protocol.
104(define-public gobby-0.4
105 (package
106 (name "gobby")
107 (version "0.4.13")
108 (source (origin
109 (method url-fetch)
110 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
111 version ".tar.gz"))
112 (file-name (string-append name "-" version ".tar.gz"))
113 (sha256
114 (base32
115 "0w8q01lf6bcdz537b29m7rwlbc7k87b12vnpm1h6219ypvzqkgcc"))))
116 (build-system gnu-build-system)
117 (native-inputs
118 `(("pkg-config" ,pkg-config)
119 ("intltool" ,intltool)))
120 (inputs
121 `(("libxml++-2" ,libxml++-2)
122 ("gnutls" ,gnutls)
123 ("gtkmm-2" ,gtkmm-2)
124 ("gtksourceview-2" ,gtksourceview-2)
125 ("libnet6" ,libnet6)
126 ("obby" ,obby)))
127 (arguments
128 ;; Required by libsigc++.
129 `(#:configure-flags '("CXXFLAGS=-std=c++11")))
130 (home-page "https://gobby.github.io/")
131 (synopsis "Collaborative editor")
132 (description
133 "Collaborative editor that supports multiple documents in one session and
134a multi-user chat. Gobby allows multiple users to edit the same document
135together over the internet in real-time.
136
137This is the older 0.4 version of Gobby. Use this version only if you need to
138connect to a server running the old 0.4 protocol.")
139 (license license:gpl2+)))
140
e9070933
AW
141(define-public gobby
142 (package
143 (name "gobby")
97291c0c 144 (version "0.5.0")
e9070933
AW
145 (source (origin
146 (method url-fetch)
147 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
148 version ".tar.gz"))
149 (file-name (string-append name "-" version ".tar.gz"))
150 (sha256
151 (base32
97291c0c 152 "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"))))
e9070933
AW
153 (build-system gnu-build-system)
154 (native-inputs
155 `(("pkg-config" ,pkg-config)
156 ("intltool" ,intltool)))
157 (inputs
97291c0c
AI
158 `(("gnutls" ,gnutls)
159 ("gsasl" ,gsasl)
e9070933
AW
160 ("gtkmm-2" ,gtkmm-2)
161 ("gtksourceview-2" ,gtksourceview-2)
97291c0c
AI
162 ("libinfinity" ,libinfinity)
163 ("libxml++-2" ,libxml++-2)))
e9070933
AW
164 (arguments
165 ;; Required by libsigc++.
97291c0c
AI
166 `(#:configure-flags '("CXXFLAGS=-std=c++11")
167 #:phases
168 (modify-phases %standard-phases
169 (add-after 'install 'move-executable
170 (lambda* (#:key outputs #:allow-other-keys)
171 (with-directory-excursion (assoc-ref outputs "out")
172 (rename-file "bin/gobby-0.5" "bin/gobby"))
173 #t)))))
e9070933
AW
174 (home-page "https://gobby.github.io/")
175 (synopsis "Collaborative editor")
176 (description
177 "Collaborative editor that supports multiple documents in one session and
178a multi-user chat. Gobby allows multiple users to edit the same document
179together over the internet in real-time.")
180 (license license:gpl2+)))
6a84ec8e
AI
181
182(define-public libinfinity
183 (package
184 (name "libinfinity")
185 (version "0.6.8")
186 (source
187 (origin
188 (method url-fetch)
189 (uri (string-append "http://releases.0x539.de/libinfinity/libinfinity-"
190 version ".tar.gz"))
191 (sha256
192 (base32
193 "0nylsb6qz9pjw3agjp27c4za205i6zg6i5g1vgs5vbdnbh77wkhc"))))
194 (build-system gnu-build-system)
195 (inputs
196 `(("glib" ,glib)
197 ("gsasl" ,gsasl)
198 ("gtk+" ,gtk+-2)
199 ("libxml2" ,libxml2)))
200 (native-inputs
201 `(("pkg-config" ,pkg-config)))
202 (arguments
203 `(#:configure-flags (list "--with-inftextgtk"
204 "--with-infgtk")))
205 (home-page "https://gobby.github.io/")
206 (synopsis "Infininote protocol implementation")
207 (description "libinfinity is a library to build collaborative text
208editors. Changes to the text buffers are synced to all other clients over a
209central server. Even though a central server is involved, the local user sees
210his changes applied instantly and the merging is done on the individual
211clients.")
212 (license license:lgpl2.1+)))