gnu: Add texlive-todonotes.
[jackhill/guix/guix.git] / gnu / packages / gobby.scm
index 961028d..91484c7 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2016, 2017 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2017, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
@@ -45,9 +47,7 @@
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     `(#:configure-flags
-       '("CXXFLAGS=-std=c++11")         ; required by libsigc++
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-gnutls-api
            (lambda _
@@ -86,9 +86,6 @@
      `(("libsigc++" ,libsigc++)
        ("gnutls" ,gnutls)
        ("libnet6" ,libnet6)))
-    (arguments
-     ;; Required by libsigc++.
-     `(#:configure-flags '("CXXFLAGS=-std=c++11")))
     (home-page "https://gobby.github.io/")
     (synopsis "Library for building collaborative editors")
     (description
 documents in one session.  Obby is used by the Gobby collaborative editor.")
     (license license:gpl2+)))
 
-(define-public gobby
+;; Although there is a newer version of Gobby defined below, the protocols are
+;; incompatible; you need Gobby 0.4 if you want to connect to servers running
+;; the 0.4 protocol.
+(define-public gobby-0.4
   (package
     (name "gobby")
     (version "0.4.13")
@@ -127,5 +127,81 @@ documents in one session.  Obby is used by the Gobby collaborative editor.")
     (description
      "Collaborative editor that supports multiple documents in one session and
 a multi-user chat.  Gobby allows multiple users to edit the same document
+together over the internet in real-time.
+
+This is the older 0.4 version of Gobby.  Use this version only if you need to
+connect to a server running the old 0.4 protocol.")
+    (license license:gpl2+)))
+
+(define-public gobby
+  (package
+    (name "gobby")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://releases.0x539.de/gobby/gobby-"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "165x0r668ma5blziisvbr8qig3jw9hf7i6w8r7wwvz3wsac3bswc"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("gnutls" ,gnutls)
+       ("gsasl" ,gsasl)
+       ("gtkmm-2" ,gtkmm-2)
+       ("gtksourceview-2" ,gtksourceview-2)
+       ("libinfinity" ,libinfinity)
+       ("libxml++-2" ,libxml++-2)))
+    (arguments
+     ;; Required by libsigc++.
+     `(#:configure-flags '("CXXFLAGS=-std=c++11")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion (assoc-ref outputs "out")
+               (rename-file "bin/gobby-0.5" "bin/gobby"))
+             #t)))))
+    (home-page "https://gobby.github.io/")
+    (synopsis "Collaborative editor")
+    (description
+     "Collaborative editor that supports multiple documents in one session and
+a multi-user chat.  Gobby allows multiple users to edit the same document
 together over the internet in real-time.")
     (license license:gpl2+)))
+
+(define-public libinfinity
+  (package
+    (name "libinfinity")
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://releases.0x539.de/libinfinity/libinfinity-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1jw2fhrcbpyz99bij07iyhy9ffyqdn87vl8cb1qz897y3f2f0vk2"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("glib" ,glib)
+       ("gsasl" ,gsasl)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:configure-flags (list "--with-inftextgtk"
+                               "--with-infgtk")))
+    (home-page "https://gobby.github.io/")
+    (synopsis "Infininote protocol implementation")
+    (description "libinfinity is a library to build collaborative text
+editors.  Changes to the text buffers are synced to all other clients over a
+central server.  Even though a central server is involved, the local user sees
+his changes applied instantly and the merging is done on the individual
+clients.")
+    (license license:lgpl2.1+)))