* [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.