1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017 Andy Wingo <wingo@igalia.com>
3 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
5 ;;; This file is part of GNU Guix.
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.
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.
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/>.
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)
29 #:use-module (gnu packages gsasl)
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))
35 (define-public libnet6
41 (uri (string-append "http://releases.0x539.de/net6/net6-"
45 "088yqq60wjx3jqjlhl12893p15gl9asjpavrbhh590qzpqndhp8m"))))
46 (build-system gnu-build-system)
48 `(("pkg-config" ,pkg-config)))
51 '("CXXFLAGS=-std=c++11") ; required by libsigc++
53 (modify-phases %standard-phases
54 (add-before 'configure 'update-gnutls-api
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
60 (("gnutls_kx_set_priority\\(session, kx_prio\\)")
61 (string-append "gnutls_priority_set_direct"
62 "(session, \"NORMAL:+ANON-DH\", NULL)"))))))))
64 `(("libsigc++" ,libsigc++)
66 (home-page "https://gobby.github.io/")
67 (synopsis "Network access framework for IPv4/IPv6")
69 "Library which that provides a TCP protocol abstraction for C++.")
70 (license license:lgpl2.1)))
78 (uri (string-append "http://releases.0x539.de/obby/obby-"
80 (file-name (string-append name "-" version ".tar.gz"))
83 "0rwvp0kzsb8y6mq73rzb8yk4kvsrz64i2zf4lfqs3kh0x2k7n7bx"))))
84 (build-system gnu-build-system)
86 `(("pkg-config" ,pkg-config)))
88 `(("libsigc++" ,libsigc++)
90 ("libnet6" ,libnet6)))
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")
97 "Library that provides synced document buffers. It supports multiple
98 documents in one session. Obby is used by the Gobby collaborative editor.")
99 (license license:gpl2+)))
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
104 (define-public gobby-0.4
110 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
112 (file-name (string-append name "-" version ".tar.gz"))
115 "0w8q01lf6bcdz537b29m7rwlbc7k87b12vnpm1h6219ypvzqkgcc"))))
116 (build-system gnu-build-system)
118 `(("pkg-config" ,pkg-config)
119 ("intltool" ,intltool)))
121 `(("libxml++-2" ,libxml++-2)
124 ("gtksourceview-2" ,gtksourceview-2)
128 ;; Required by libsigc++.
129 `(#:configure-flags '("CXXFLAGS=-std=c++11")))
130 (home-page "https://gobby.github.io/")
131 (synopsis "Collaborative editor")
133 "Collaborative editor that supports multiple documents in one session and
134 a multi-user chat. Gobby allows multiple users to edit the same document
135 together over the internet in real-time.
137 This is the older 0.4 version of Gobby. Use this version only if you need to
138 connect to a server running the old 0.4 protocol.")
139 (license license:gpl2+)))
147 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
149 (file-name (string-append name "-" version ".tar.gz"))
152 "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"))))
153 (build-system gnu-build-system)
155 `(("pkg-config" ,pkg-config)
156 ("intltool" ,intltool)))
161 ("gtksourceview-2" ,gtksourceview-2)
162 ("libinfinity" ,libinfinity)
163 ("libxml++-2" ,libxml++-2)))
165 ;; Required by libsigc++.
166 `(#:configure-flags '("CXXFLAGS=-std=c++11")
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"))
174 (home-page "https://gobby.github.io/")
175 (synopsis "Collaborative editor")
177 "Collaborative editor that supports multiple documents in one session and
178 a multi-user chat. Gobby allows multiple users to edit the same document
179 together over the internet in real-time.")
180 (license license:gpl2+)))
182 (define-public libinfinity
189 (uri (string-append "http://releases.0x539.de/libinfinity/libinfinity-"
193 "0nylsb6qz9pjw3agjp27c4za205i6zg6i5g1vgs5vbdnbh77wkhc"))))
194 (build-system gnu-build-system)
199 ("libxml2" ,libxml2)))
201 `(("pkg-config" ,pkg-config)))
203 `(#:configure-flags (list "--with-inftextgtk"
205 (home-page "https://gobby.github.io/")
206 (synopsis "Infininote protocol implementation")
207 (description "libinfinity is a library to build collaborative text
208 editors. Changes to the text buffers are synced to all other clients over a
209 central server. Even though a central server is involved, the local user sees
210 his changes applied instantly and the merging is done on the individual
212 (license license:lgpl2.1+)))