all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#29210] [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino.
@ 2017-11-08 10:38 Rutger Helling
  2017-11-14 22:46 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Rutger Helling @ 2017-11-08 10:38 UTC (permalink / raw)
  To: 29210


[-- Attachment #1.1: Type: text/plain, Size: 112 bytes --]

Hey Guix, 

these patches add libsignal-protocol-c and enable the OMEMO plugin for
dino, as well as update dino.

[-- Attachment #1.2: Type: text/html, Size: 305 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-messaging-Add-libsignal-protocol-c.patch --]
[-- Type: text/x-diff; name=0001-gnu-messaging-Add-libsignal-protocol-c.patch, Size: 2470 bytes --]

From 4212f0c4ffe43464ed7bd2e9f1a8f10e308ec792 Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Wed, 8 Nov 2017 11:16:29 +0100
Subject: [PATCH] gnu: messaging: Add libsignal-protocol-c.

* gnu/packages/messaging.scm (libsignal-protocol-c): New variable.
---
 gnu/packages/messaging.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 72dbbcd1e..4f436b5a5 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -124,6 +125,39 @@ keys, no previous conversation is compromised.")
     (home-page "https://otr.cypherpunks.ca/")
     (license (list license:lgpl2.1 license:gpl2))))
 
+(define-public libsignal-protocol-c
+  (package
+  (name "libsignal-protocol-c")
+  (version "2.3.1")
+  (source (origin
+           (method url-fetch)
+           (uri (string-append "https://github.com/WhisperSystems/"
+                               "libsignal-protocol-c/archive/v" version
+                               ".tar.gz"))
+           (file-name (string-append name "-" version ".tar.gz"))
+           (sha256
+            (base32
+             "1klz9jvbnmfc3qy2x6qcswzw14a7kyzs51dlg18yllvir1f1kz0s"))))
+  (arguments
+   `(#:tests? #f
+     ; Required for proper linking.
+     #:configure-flags '("-DBUILD_SHARED_LIBS=on")))
+     ; FIXME: With the below additional flags the tests pass, however this
+     ; causes problems with timestamps, therefore the tests are disabled for
+     ; now:
+     ; -DCMAKE_BUILD_TYPE=Debug
+     ; -DBUILD_TESTING=1
+  (build-system cmake-build-system)
+  (inputs `( ; Required for tests:
+            ("check", check)
+            ("openssl", openssl)))
+  (native-inputs `(("pkg-config", pkg-config)))
+  (home-page "https://github.com/WhisperSystems/libsignal-protocol-c")
+  (synopsis "Ratcheting forward secrecy protocol")
+  (description "libsignal-protocol-c is a ratcheting forward secrecy protocol
+that works in synchronous and asynchronous messaging environments.")
+  (license license:gpl3)))
+
 (define-public bitlbee
   (package
     (name "bitlbee")
-- 
2.15.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-messaging-Enable-OMEMO-for-dino.patch --]
[-- Type: text/x-diff; name=0002-gnu-messaging-Enable-OMEMO-for-dino.patch, Size: 2804 bytes --]

From db99f5874d24e0aa3e74005bf7200f459451aeb7 Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Wed, 8 Nov 2017 11:18:38 +0100
Subject: [PATCH] gnu: messaging: Enable OMEMO for dino.

* gnu/packages/messaging.scm (dino) Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c, libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes".
---
 gnu/packages/messaging.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 4f436b5a5..67d369fbd 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -570,7 +570,7 @@ end-to-end encryption support; XML console.")
 (define-public dino
   ;; The only release tarball is for version 0.0, but it is very old and fails
   ;; to build.
-  (let ((commit "54a25fd926070a977138cec94908c55806e22f4a")
+  (let ((commit "f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5")
         (revision "1"))
     (package
       (name "dino")
@@ -579,19 +579,19 @@ end-to-end encryption support; XML console.")
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/dino/dino.git")
-                      (commit commit)))
+                      (commit commit)
+                      (recursive? #t))) ; Needed for the 'libsignal-protocol-c'
+                                        ; submodule.
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "1m100wzr5xqaj3r4vprxj0961833wqk0p7z94nmjsf2f0s67v5r3"))))
+                  "14vk5jmvn8igjikrvg7pinrzahw8gryysb1v9y3vw47ncyic8b7p"))))
       (build-system cmake-build-system)
       (arguments
        `(#:tests? #f ; there are no tests
          #:parallel-build? #f ; not supported
-         #:configure-flags
-         ;; FIXME: we disable the omemo plugin because it needs
-         ;; libsignal-protocol, for which we don't have a package yet.
-         '("-DDISABLED_PLUGINS=omemo")
+         ; Use our libsignal-protocol-c instead of the git submodule.
+         #:configure-flags '("-DSHARED_SIGNAL_PROTOCOL=yes")
          #:modules ((guix build cmake-build-system)
                     ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
                     (guix build utils))
@@ -604,6 +604,8 @@ end-to-end encryption support; XML console.")
              (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
       (inputs
        `(("libgee" ,libgee)
+         ("libsignal-protocol-c", libsignal-protocol-c)
+         ("libgcrypt", libgcrypt)
          ("libsoup" ,libsoup)
          ("sqlite" ,sqlite)
          ("gpgme" ,gpgme)
-- 
2.15.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#29210] [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino.
  2017-11-08 10:38 [bug#29210] [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino Rutger Helling
@ 2017-11-14 22:46 ` Ludovic Courtès
  2017-11-15  7:39   ` Rutger Helling
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2017-11-14 22:46 UTC (permalink / raw)
  To: Rutger Helling; +Cc: 29210

Hi Rutger,

Rutger Helling <rhelling@mykolab.com> skribis:

> From 4212f0c4ffe43464ed7bd2e9f1a8f10e308ec792 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 8 Nov 2017 11:16:29 +0100
> Subject: [PATCH] gnu: messaging: Add libsignal-protocol-c.
>
> * gnu/packages/messaging.scm (libsignal-protocol-c): New variable.

[...]

> +  (arguments
> +   `(#:tests? #f
> +     ; Required for proper linking.
> +     #:configure-flags '("-DBUILD_SHARED_LIBS=on")))
> +     ; FIXME: With the below additional flags the tests pass, however this
> +     ; causes problems with timestamps, therefore the tests are disabled for
> +     ; now:
> +     ; -DCMAKE_BUILD_TYPE=Debug
> +     ; -DBUILD_TESTING=1

What are the timestamp issues you’re referring to above?  It would be
nice if we could have our cake and eat it too.  :-)

Besides, the default in ‘cmake-build-system’ is
“-DCMAKE_BUILD_TYPE=RelWithDebugInfo” (i.e., “-O2 -g”), and I think we
should keep it this way here.

Nipick: please use two semicolons for block comments like this (one
semicolon is for margin comments).

> +  (home-page "https://github.com/WhisperSystems/libsignal-protocol-c")
> +  (synopsis "Ratcheting forward secrecy protocol")
> +  (description "libsignal-protocol-c is a ratcheting forward secrecy protocol
> +that works in synchronous and asynchronous messaging environments.")

Nitpicking here as well: it’s an /implementation/ of the protocol.
Could you also expound the description a little bit?

> +  (license license:gpl3)))

Since source file headers don’t say anything particular, it’s ‘gpl3+’
(“or any later version”.)

Could you send an updated patch?

> From db99f5874d24e0aa3e74005bf7200f459451aeb7 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 8 Nov 2017 11:18:38 +0100
> Subject: [PATCH] gnu: messaging: Enable OMEMO for dino.
>
> * gnu/packages/messaging.scm (dino) Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c, libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes".

OK!

Thank you,
Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#29210] [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino.
  2017-11-14 22:46 ` Ludovic Courtès
@ 2017-11-15  7:39   ` Rutger Helling
  2017-11-16  8:51     ` bug#29210: " Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Rutger Helling @ 2017-11-15  7:39 UTC (permalink / raw)
  To: ludo; +Cc: 29210


[-- Attachment #1.1: Type: text/plain, Size: 2583 bytes --]

Hey Ludo, 

thanks for the review. Here's a second version of the first patch with
your changes.
I've tried adding only -DBUILD_TESTING, and I think that fixed the
timestamp issues.
The tests now run properly and it seems to build in a reproducible way. 

The second patch is unchanged, but added again for convenience. 

On 2017-11-14 23:46, ludo@gnu.org wrote:

> Hi Rutger,
> 
> Rutger Helling <rhelling@mykolab.com> skribis:
> 
>> From 4212f0c4ffe43464ed7bd2e9f1a8f10e308ec792 Mon Sep 17 00:00:00 2001
>> From: Rutger Helling <rhelling@mykolab.com>
>> Date: Wed, 8 Nov 2017 11:16:29 +0100
>> Subject: [PATCH] gnu: messaging: Add libsignal-protocol-c.
>> 
>> * gnu/packages/messaging.scm (libsignal-protocol-c): New variable.
> 
> [...]
> 
>> +  (arguments
>> +   `(#:tests? #f
>> +     ; Required for proper linking.
>> +     #:configure-flags '("-DBUILD_SHARED_LIBS=on")))
>> +     ; FIXME: With the below additional flags the tests pass, however this
>> +     ; causes problems with timestamps, therefore the tests are disabled for
>> +     ; now:
>> +     ; -DCMAKE_BUILD_TYPE=Debug
>> +     ; -DBUILD_TESTING=1
> 
> What are the timestamp issues you're referring to above?  It would be
> nice if we could have our cake and eat it too.  :-)
> 
> Besides, the default in 'cmake-build-system' is
> "-DCMAKE_BUILD_TYPE=RelWithDebugInfo" (i.e., "-O2 -g"), and I think we
> should keep it this way here.
> 
> Nipick: please use two semicolons for block comments like this (one
> semicolon is for margin comments).
> 
>> +  (home-page "https://github.com/WhisperSystems/libsignal-protocol-c")
>> +  (synopsis "Ratcheting forward secrecy protocol")
>> +  (description "libsignal-protocol-c is a ratcheting forward secrecy protocol
>> +that works in synchronous and asynchronous messaging environments.")
> 
> Nitpicking here as well: it's an /implementation/ of the protocol.
> Could you also expound the description a little bit?
> 
>> +  (license license:gpl3)))
> 
> Since source file headers don't say anything particular, it's 'gpl3+'
> ("or any later version".)
> 
> Could you send an updated patch?
> 
>> From db99f5874d24e0aa3e74005bf7200f459451aeb7 Mon Sep 17 00:00:00 2001
>> From: Rutger Helling <rhelling@mykolab.com>
>> Date: Wed, 8 Nov 2017 11:18:38 +0100
>> Subject: [PATCH] gnu: messaging: Enable OMEMO for dino.
>> 
>> * gnu/packages/messaging.scm (dino) Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c, libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes".
> 
> OK!
> 
> Thank you,
> Ludo'.

[-- Attachment #1.2: Type: text/html, Size: 4211 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-messaging-Add-libsignal-protocol-c-v2.patch --]
[-- Type: text/x-diff; name=0001-gnu-messaging-Add-libsignal-protocol-c-v2.patch, Size: 2384 bytes --]

From f805dc9314964f3c60d82651e7f31e2b4011116d Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Wed, 15 Nov 2017 08:26:17 +0100
Subject: [PATCH] gnu: messaging: Add libsignal-protocol-c.

* gnu/packages/messaging.scm (libsignal-protocol-c): New variable.
---
 gnu/packages/messaging.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 72dbbcd1e..77c13e2e7 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -124,6 +125,35 @@ keys, no previous conversation is compromised.")
     (home-page "https://otr.cypherpunks.ca/")
     (license (list license:lgpl2.1 license:gpl2))))
 
+(define-public libsignal-protocol-c
+  (package
+  (name "libsignal-protocol-c")
+  (version "2.3.1")
+  (source (origin
+           (method url-fetch)
+           (uri (string-append "https://github.com/WhisperSystems/"
+                               "libsignal-protocol-c/archive/v" version
+                               ".tar.gz"))
+           (file-name (string-append name "-" version ".tar.gz"))
+           (sha256
+            (base32
+             "1klz9jvbnmfc3qy2x6qcswzw14a7kyzs51dlg18yllvir1f1kz0s"))))
+  (arguments
+   `(;; Required for proper linking and for tests to run.
+     #:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1")))
+  (build-system cmake-build-system)
+  (inputs `( ;; Required for tests:
+            ("check", check)
+            ("openssl", openssl)))
+  (native-inputs `(("pkg-config", pkg-config)))
+  (home-page "https://github.com/WhisperSystems/libsignal-protocol-c")
+  (synopsis "Implementation of a ratcheting forward secrecy protocol")
+  (description "libsignal-protocol-c is an implementation of a ratcheting
+forward secrecy protocol that works in synchronous and asynchronous
+messaging environments.  It can be used with messaging software to provide
+end-to-end encryption.")
+  (license license:gpl3+)))
+
 (define-public bitlbee
   (package
     (name "bitlbee")
-- 
2.15.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-messaging-Enable-OMEMO-for-dino.patch --]
[-- Type: text/x-diff; name=0002-gnu-messaging-Enable-OMEMO-for-dino.patch, Size: 2804 bytes --]

From db99f5874d24e0aa3e74005bf7200f459451aeb7 Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Wed, 8 Nov 2017 11:18:38 +0100
Subject: [PATCH] gnu: messaging: Enable OMEMO for dino.

* gnu/packages/messaging.scm (dino) Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c, libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes".
---
 gnu/packages/messaging.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 4f436b5a5..67d369fbd 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -570,7 +570,7 @@ end-to-end encryption support; XML console.")
 (define-public dino
   ;; The only release tarball is for version 0.0, but it is very old and fails
   ;; to build.
-  (let ((commit "54a25fd926070a977138cec94908c55806e22f4a")
+  (let ((commit "f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5")
         (revision "1"))
     (package
       (name "dino")
@@ -579,19 +579,19 @@ end-to-end encryption support; XML console.")
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/dino/dino.git")
-                      (commit commit)))
+                      (commit commit)
+                      (recursive? #t))) ; Needed for the 'libsignal-protocol-c'
+                                        ; submodule.
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "1m100wzr5xqaj3r4vprxj0961833wqk0p7z94nmjsf2f0s67v5r3"))))
+                  "14vk5jmvn8igjikrvg7pinrzahw8gryysb1v9y3vw47ncyic8b7p"))))
       (build-system cmake-build-system)
       (arguments
        `(#:tests? #f ; there are no tests
          #:parallel-build? #f ; not supported
-         #:configure-flags
-         ;; FIXME: we disable the omemo plugin because it needs
-         ;; libsignal-protocol, for which we don't have a package yet.
-         '("-DDISABLED_PLUGINS=omemo")
+         ; Use our libsignal-protocol-c instead of the git submodule.
+         #:configure-flags '("-DSHARED_SIGNAL_PROTOCOL=yes")
          #:modules ((guix build cmake-build-system)
                     ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
                     (guix build utils))
@@ -604,6 +604,8 @@ end-to-end encryption support; XML console.")
              (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
       (inputs
        `(("libgee" ,libgee)
+         ("libsignal-protocol-c", libsignal-protocol-c)
+         ("libgcrypt", libgcrypt)
          ("libsoup" ,libsoup)
          ("sqlite" ,sqlite)
          ("gpgme" ,gpgme)
-- 
2.15.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#29210: [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino.
  2017-11-15  7:39   ` Rutger Helling
@ 2017-11-16  8:51     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2017-11-16  8:51 UTC (permalink / raw)
  To: Rutger Helling; +Cc: 29210-done

Heya,

Rutger Helling <rhelling@mykolab.com> skribis:

> From f805dc9314964f3c60d82651e7f31e2b4011116d Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 15 Nov 2017 08:26:17 +0100
> Subject: [PATCH] gnu: messaging: Add libsignal-protocol-c.
>
> * gnu/packages/messaging.scm (libsignal-protocol-c): New variable.

Perfect, applied.

> From db99f5874d24e0aa3e74005bf7200f459451aeb7 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 8 Nov 2017 11:18:38 +0100
> Subject: [PATCH] gnu: messaging: Enable OMEMO for dino.
>
> * gnu/packages/messaging.scm (dino) Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c, libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes".

I reformatted the commit log and applied.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-16  8:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-08 10:38 [bug#29210] [PATCH] gnu: messaging: Add libsignal-protocol-c and enable OMEMO for dino Rutger Helling
2017-11-14 22:46 ` Ludovic Courtès
2017-11-15  7:39   ` Rutger Helling
2017-11-16  8:51     ` bug#29210: " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.