gnu: ruby-pandoc-ruby: Use pandoc instead of ghc-pandoc.
[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>
7c45593b 3;;; Copyright © 2017, 2019 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
0fe041bd 50 `(#:phases
c8105e81
AW
51 (modify-phases %standard-phases
52 (add-before 'configure 'update-gnutls-api
53 (lambda _
54 (substitute* "src/encrypt.cpp"
55 ;; The GnuTLS API to set authentication and other parameters
56 ;; and priorities changed in 3.4; update to allow ANON_DH via
57 ;; the new API.
58 (("gnutls_kx_set_priority\\(session, kx_prio\\)")
59 (string-append "gnutls_priority_set_direct"
60 "(session, \"NORMAL:+ANON-DH\", NULL)"))))))))
61 (inputs
62 `(("libsigc++" ,libsigc++)
63 ("gnutls" ,gnutls)))
64 (home-page "https://gobby.github.io/")
65 (synopsis "Network access framework for IPv4/IPv6")
66 (description
67 "Library which that provides a TCP protocol abstraction for C++.")
68 (license license:lgpl2.1)))
22a3cff3
AW
69
70(define-public obby
71 (package
72 (name "obby")
73 (version "0.4.8")
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "http://releases.0x539.de/obby/obby-"
77 version ".tar.gz"))
78 (file-name (string-append name "-" version ".tar.gz"))
79 (sha256
80 (base32
81 "0rwvp0kzsb8y6mq73rzb8yk4kvsrz64i2zf4lfqs3kh0x2k7n7bx"))))
82 (build-system gnu-build-system)
83 (native-inputs
84 `(("pkg-config" ,pkg-config)))
85 (inputs
86 `(("libsigc++" ,libsigc++)
87 ("gnutls" ,gnutls)
88 ("libnet6" ,libnet6)))
22a3cff3
AW
89 (home-page "https://gobby.github.io/")
90 (synopsis "Library for building collaborative editors")
91 (description
92 "Library that provides synced document buffers. It supports multiple
93documents in one session. Obby is used by the Gobby collaborative editor.")
94 (license license:gpl2+)))
e9070933 95
50631fe9
AW
96;; Although there is a newer version of Gobby defined below, the protocols are
97;; incompatible; you need Gobby 0.4 if you want to connect to servers running
98;; the 0.4 protocol.
99(define-public gobby-0.4
100 (package
101 (name "gobby")
102 (version "0.4.13")
103 (source (origin
104 (method url-fetch)
105 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
106 version ".tar.gz"))
107 (file-name (string-append name "-" version ".tar.gz"))
108 (sha256
109 (base32
110 "0w8q01lf6bcdz537b29m7rwlbc7k87b12vnpm1h6219ypvzqkgcc"))))
111 (build-system gnu-build-system)
112 (native-inputs
113 `(("pkg-config" ,pkg-config)
114 ("intltool" ,intltool)))
115 (inputs
116 `(("libxml++-2" ,libxml++-2)
117 ("gnutls" ,gnutls)
118 ("gtkmm-2" ,gtkmm-2)
119 ("gtksourceview-2" ,gtksourceview-2)
120 ("libnet6" ,libnet6)
121 ("obby" ,obby)))
122 (arguments
123 ;; Required by libsigc++.
124 `(#:configure-flags '("CXXFLAGS=-std=c++11")))
125 (home-page "https://gobby.github.io/")
126 (synopsis "Collaborative editor")
127 (description
128 "Collaborative editor that supports multiple documents in one session and
129a multi-user chat. Gobby allows multiple users to edit the same document
130together over the internet in real-time.
131
132This is the older 0.4 version of Gobby. Use this version only if you need to
133connect to a server running the old 0.4 protocol.")
134 (license license:gpl2+)))
135
e9070933
AW
136(define-public gobby
137 (package
138 (name "gobby")
97291c0c 139 (version "0.5.0")
e9070933
AW
140 (source (origin
141 (method url-fetch)
142 (uri (string-append "http://releases.0x539.de/gobby/gobby-"
143 version ".tar.gz"))
144 (file-name (string-append name "-" version ".tar.gz"))
145 (sha256
146 (base32
97291c0c 147 "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"))))
e9070933
AW
148 (build-system gnu-build-system)
149 (native-inputs
150 `(("pkg-config" ,pkg-config)
151 ("intltool" ,intltool)))
152 (inputs
97291c0c
AI
153 `(("gnutls" ,gnutls)
154 ("gsasl" ,gsasl)
e9070933
AW
155 ("gtkmm-2" ,gtkmm-2)
156 ("gtksourceview-2" ,gtksourceview-2)
97291c0c
AI
157 ("libinfinity" ,libinfinity)
158 ("libxml++-2" ,libxml++-2)))
e9070933
AW
159 (arguments
160 ;; Required by libsigc++.
97291c0c
AI
161 `(#:configure-flags '("CXXFLAGS=-std=c++11")
162 #:phases
163 (modify-phases %standard-phases
164 (add-after 'install 'move-executable
165 (lambda* (#:key outputs #:allow-other-keys)
166 (with-directory-excursion (assoc-ref outputs "out")
167 (rename-file "bin/gobby-0.5" "bin/gobby"))
168 #t)))))
e9070933
AW
169 (home-page "https://gobby.github.io/")
170 (synopsis "Collaborative editor")
171 (description
172 "Collaborative editor that supports multiple documents in one session and
173a multi-user chat. Gobby allows multiple users to edit the same document
174together over the internet in real-time.")
175 (license license:gpl2+)))
6a84ec8e
AI
176
177(define-public libinfinity
178 (package
179 (name "libinfinity")
7c45593b 180 (version "0.7.1")
6a84ec8e
AI
181 (source
182 (origin
183 (method url-fetch)
184 (uri (string-append "http://releases.0x539.de/libinfinity/libinfinity-"
185 version ".tar.gz"))
186 (sha256
187 (base32
7c45593b 188 "1jw2fhrcbpyz99bij07iyhy9ffyqdn87vl8cb1qz897y3f2f0vk2"))))
6a84ec8e
AI
189 (build-system gnu-build-system)
190 (inputs
191 `(("glib" ,glib)
192 ("gsasl" ,gsasl)
7c45593b 193 ("gtk+" ,gtk+)
6a84ec8e
AI
194 ("libxml2" ,libxml2)))
195 (native-inputs
196 `(("pkg-config" ,pkg-config)))
197 (arguments
198 `(#:configure-flags (list "--with-inftextgtk"
199 "--with-infgtk")))
200 (home-page "https://gobby.github.io/")
201 (synopsis "Infininote protocol implementation")
202 (description "libinfinity is a library to build collaborative text
203editors. Changes to the text buffers are synced to all other clients over a
204central server. Even though a central server is involved, the local user sees
205his changes applied instantly and the merging is done on the individual
206clients.")
207 (license license:lgpl2.1+)))