unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#39619] [PATCH 0/4] Add nheko matrix client
@ 2020-02-15 21:23 nixo
       [not found] ` <handler.39619.B.158180183921379.ack@debbugs.gnu.org>
  0 siblings, 1 reply; 14+ messages in thread
From: nixo @ 2020-02-15 21:23 UTC (permalink / raw)
  To: 39619; +Cc: nixo

Hello Guix!

Nheko is a well-known desktop matrix client.  I'm using nheko-reborn
like others are doing [1] since mujx/nheko is abandoned.

This patch series adds the program and its missing dependencies
mtxclient, lmdbxx and, tweeny.  Guix lint does not complain, and I've
checked and not found non-determinism problems on two different
(x64) computers (not tested on other architectures).

Thanks! Nicolò

[1] https://repology.org/project/nheko/information

nixo (4):
  gnu: Add mtxclient.
  gnu: Add tweeny.
  gnu: Add lmdbxx.
  gnu: Add nheko.

 gnu/packages/cpp.scm       |  28 ++++++++
 gnu/packages/databases.scm |  31 ++++++++-
 gnu/packages/messaging.scm | 139 ++++++++++++++++++++++++++++++++++++-
 3 files changed, 195 insertions(+), 3 deletions(-)

-- 
2.25.0

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

* [bug#39619] [PATCH 1/4] gnu: Add mtxclient.
       [not found] ` <handler.39619.B.158180183921379.ack@debbugs.gnu.org>
@ 2020-02-15 21:30   ` nixo
  2020-02-15 21:30     ` [bug#39619] [PATCH 2/4] gnu: Add tweeny nixo
                       ` (3 more replies)
  2020-02-16  0:09   ` [bug#39619] Acknowledgement ([PATCH 0/4] Add nheko matrix client) Nicolò Balzarotti
  2020-02-18  9:22   ` [bug#39619] [v2] Re: bug#39619: " Nicolò Balzarotti
  2 siblings, 4 replies; 14+ messages in thread
From: nixo @ 2020-02-15 21:30 UTC (permalink / raw)
  To: 39619; +Cc: nixo

* gnu/packages/messaging.scm (mtxclient): New variable.
---
 gnu/packages/messaging.scm | 58 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 56 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 120daacdc6..2592d34dc2 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -68,6 +69,7 @@
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
@@ -1787,6 +1789,58 @@ implementation.  Quaternion and libqmatrixclient together form the
 QMatrixClient project.")
     (license license:lgpl2.1+)))
 
+(define-public mtxclient
+  (package
+    (name "mtxclient")
+    (version "0.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/mtxclient.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj"))))
+    (arguments
+     `(#:configure-flags
+       (list
+        ;; Disable example binaries (not installed)
+        "-DBUILD_LIB_EXAMPLES=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'disable-network-tests
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("add_test\\(BasicConnectivity") "# add_test")
+               (("add_test\\(ClientAPI") "# add_test")
+               (("add_test\\(MediaAPI") "# add_test")
+               (("add_test\\(Encryption") "# add_test"))
+             #t))
+         (add-before 'configure 'set-home
+           (lambda _
+             ;; Tries to create package registry file
+             ;; So, set HOME.
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("libolm" ,libolm)
+       ("libsodium" ,libsodium)
+       ("openssl" ,openssl)
+       ("nlohmann-json-cpp" ,nlohmann-json-cpp)
+       ("spdlog" ,spdlog)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/Nheko-Reborn/mtxclient")
+    (synopsis "Client API library for the Matrix protocol")
+    (description "@code{mtxclient} is a C++ library that implements client API
+for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
+    (license license:expat)))
+
 (define-public quaternion
   (package
     (name "quaternion")
@@ -1795,8 +1849,8 @@ QMatrixClient project.")
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/QMatrixClient/Quaternion")
-              (commit version)))
+             (url "https://github.com/QMatrixClient/Quaternion")
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0gpv6b3nn3lsyym8809kiqkpdszfasldqjpk5s542zyn41gdlql4"))))
-- 
2.25.0

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

* [bug#39619] [PATCH 2/4] gnu: Add tweeny.
  2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
@ 2020-02-15 21:30     ` nixo
       [not found]       ` <handler.39621.B.158180225922123.ack@debbugs.gnu.org>
  2020-02-15 21:30     ` [bug#39622] [PATCH 3/4] gnu: Add lmdbxx nixo
                       ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: nixo @ 2020-02-15 21:30 UTC (permalink / raw)
  To: 39619; +Cc: nixo

* gnu/packages/cpp.scm (tweeny): New variable.
---
 gnu/packages/cpp.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index ae1e3e3356..8098553828 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -410,3 +410,31 @@ SObjectizer supports not only the Actor Model but also the Publish-Subscribe
 Model and CSP-like channels.  The goal of SObjectizer is to simplify
 development of concurrent and multithreaded applications in C++.")
     (license license:bsd-3)))
+
+(define-public tweeny
+  (package
+    (name "tweeny")
+    (version "3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mobius3/tweeny.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1adm4c17pi7xf3kf6sjyxibz5rdg1ka236p72xsm6js4j9gzlbp4"))))
+    (arguments '(#:tests? #f))          ; no check target
+    (build-system cmake-build-system)
+    (home-page "https://mobius3.github.io/tweeny/")
+    (synopsis "Modern C++ tweening library")
+    (description "@code{Tweeny} is an inbetweening library designed for the
+creation of complex animations for games and other beautiful interactive
+software.  It leverages features of modern @code{C++} to empower developers with
+an intuitive API for declaring tweenings of any type of value, as long as they
+support arithmetic operations.  The goal of @code{Tweeny} is to provide means to
+create fluid interpolations when animating position, scale, rotation, frames or
+other values of screen objects, by setting their values as the tween starting
+point and then, after each tween step, plugging back the result.")
+    (license license:expat)))
-- 
2.25.0

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

* [bug#39622] [PATCH 3/4] gnu: Add lmdbxx.
  2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
  2020-02-15 21:30     ` [bug#39619] [PATCH 2/4] gnu: Add tweeny nixo
@ 2020-02-15 21:30     ` nixo
       [not found]       ` <handler.39622.B.158180225922130.ack@debbugs.gnu.org>
  2020-02-15 21:30     ` [bug#39623] [PATCH 4/4] gnu: Add nheko nixo
       [not found]     ` <handler.39620.B.158180225622091.ack@debbugs.gnu.org>
  3 siblings, 1 reply; 14+ messages in thread
From: nixo @ 2020-02-15 21:30 UTC (permalink / raw)
  To: 39619, 39622; +Cc: nixo

* gnu/packages/databases.scm (lmdbxx): New variable.
---
 gnu/packages/databases.scm | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 587d993918..58ad64418e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -2105,6 +2105,35 @@ multiple cores.  The size of each database is limited only by the size of the
 virtual address space — not physical RAM.")
     (license license:openldap2.8)))
 
+(define-public lmdbxx
+  (package
+    (name "lmdbxx")
+    (version "0.9.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/drycpp/lmdbxx.git")
+                    (commit (string-append version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))
+    (arguments
+     `(#:make-flags (list
+                     (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs `(("lmdb" ,lmdb)))
+    (build-system gnu-build-system)
+    (home-page "http://lmdbxx.sourceforge.net")
+    (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
+    (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
+@code{LMDB} embedded database library, offering both an error-checked
+procedural interface and an object-oriented resource interface with RAII
+semantics.")
+    (license license:unlicense)))
+
 (define-public libpqxx
   (package
     (name "libpqxx")
@@ -2122,7 +2151,7 @@ virtual address space — not physical RAM.")
      `(("python" ,python-2)))
     (inputs `(("postgresql" ,postgresql)))
     (arguments
-     `(#:tests? #f   ; # FAIL:  1
+     `(#:tests? #f                      ; # FAIL:  1
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-sed-command
-- 
2.25.0

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

* [bug#39623] [PATCH 4/4] gnu: Add nheko.
  2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
  2020-02-15 21:30     ` [bug#39619] [PATCH 2/4] gnu: Add tweeny nixo
  2020-02-15 21:30     ` [bug#39622] [PATCH 3/4] gnu: Add lmdbxx nixo
@ 2020-02-15 21:30     ` nixo
       [not found]       ` <handler.39623.B.158180226322189.ack@debbugs.gnu.org>
       [not found]     ` <handler.39620.B.158180225622091.ack@debbugs.gnu.org>
  3 siblings, 1 reply; 14+ messages in thread
From: nixo @ 2020-02-15 21:30 UTC (permalink / raw)
  To: 39619, 39623; +Cc: nixo

* gnu/packages/messaging.scm (nheko): New variable.
---
 gnu/packages/messaging.scm | 81 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2592d34dc2..11dd011c3f 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -72,6 +72,7 @@
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pcre)
@@ -1841,6 +1842,86 @@ QMatrixClient project.")
 for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
     (license license:expat)))
 
+(define-public nheko
+  (package
+    (name "nheko")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/nheko.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"))))
+    (arguments
+     `(#:tests? #f                      ; no test target
+       ;; #:parallel-build? #f          ; debug non-determinism
+       #:configure-flags
+       (list
+        ;; TODO: BUILD_DOCS=ON
+        "-DCMAKE_BUILD_TYPE=Release"
+        "-DCMAKE_CXX_FLAGS=-fpermissive"
+        (string-append "-DLMDBXX_INCLUDE_DIR="
+                       (assoc-ref %build-inputs "lmdbxx") "/include/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-Werror
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("-Werror") ""))
+             #t))
+         (add-after 'unpack 'fix-determinism
+           (lambda _
+             ;; Make Qt deterministic.
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("cmark" ,cmark)
+       ("libolm" ,libolm)
+       ("lmdb" ,lmdb)
+       ("lmdbxx" ,lmdbxx)
+       ("mtxclient" ,mtxclient)
+       ("openssl" ,openssl)
+       ("nlohmann-json-cpp" ,nlohmann-json-cpp)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtmultimedia" ,qtmultimedia)
+       ("spdlog" ,spdlog)
+       ("tweeny" ,tweeny)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (build-system qt-build-system)
+    (home-page "https://github.com/Nheko-Reborn/nheko")
+    (synopsis "Desktop client for Matrix using Qt and C++14")
+    (description "@code{Nheko} want to provide a native desktop app for the
+Matrix protocol that feels more like a mainstream chat app and less like an IRC
+client.
+
+Most of the features you would expect from a chat application are missing right
+now but we are getting close to a more feature complete client.  Specifically
+there is support for:
+@itemize
+@item E2E encryption (text messages only: attachments are currently sent unencrypted).
+@item User registration.
+@item Creating, joining & leaving rooms.
+@item Sending & receiving invites.
+@item Sending & receiving files and emoji.
+@item Typing notifications.
+@item Username auto-completion.
+@item Message & mention notifications.
+@item Redacting messages.
+@item Read receipts.
+@item Basic communities support.
+@item Room switcher (@key{ctrl-K}).
+@item Light, Dark & System themes.
+@end itemize\n")
+    (license license:gpl3+)))
+
 (define-public quaternion
   (package
     (name "quaternion")
-- 
2.25.0

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

* bug#39621: Acknowledgement ([PATCH 2/4] gnu: Add tweeny.)
       [not found]       ` <handler.39621.B.158180225922123.ack@debbugs.gnu.org>
@ 2020-02-15 21:34         ` Nicolò Balzarotti
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-15 21:34 UTC (permalink / raw)
  To: 39621-done

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39621@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39621: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39621
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* bug#39622: Acknowledgement ([PATCH 3/4] gnu: Add lmdbxx.)
       [not found]       ` <handler.39622.B.158180225922130.ack@debbugs.gnu.org>
@ 2020-02-15 21:34         ` Nicolò Balzarotti
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-15 21:34 UTC (permalink / raw)
  To: 39622-done

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39622@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39622: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39622
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* bug#39623: Acknowledgement ([PATCH 4/4] gnu: Add nheko.)
       [not found]       ` <handler.39623.B.158180226322189.ack@debbugs.gnu.org>
@ 2020-02-15 21:34         ` Nicolò Balzarotti
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-15 21:34 UTC (permalink / raw)
  To: 39623-done

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39623@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39623: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39623
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* bug#39620: Acknowledgement ([PATCH 1/4] gnu: Add mtxclient.)
       [not found]     ` <handler.39620.B.158180225622091.ack@debbugs.gnu.org>
@ 2020-02-15 21:34       ` Nicolò Balzarotti
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-15 21:34 UTC (permalink / raw)
  To: 39620-done

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39620@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39620: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39620
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* [bug#39619] Acknowledgement ([PATCH 0/4] Add nheko matrix client)
       [not found] ` <handler.39619.B.158180183921379.ack@debbugs.gnu.org>
  2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
@ 2020-02-16  0:09   ` Nicolò Balzarotti
  2020-02-18  9:22   ` [bug#39619] [v2] Re: bug#39619: " Nicolò Balzarotti
  2 siblings, 0 replies; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-16  0:09 UTC (permalink / raw)
  To: 39619

[-- Attachment #1: Type: text/plain, Size: 92 bytes --]

I cleaned up a bit the patch (removed unnecessary comments) and added
the copyright line.



[-- Attachment #2: 0004-gnu-Add-nheko.patch --]
[-- Type: text/x-patch, Size: 4096 bytes --]

From dc713bc525e831a05c7e9433e62da47bcf13c669 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 21:08:12 +0100
Subject: [PATCH] gnu: Add nheko.

* gnu/packages/messaging.scm (nheko): New variable.
---
 gnu/packages/messaging.scm | 78 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2592d34dc2..fe4e8fa072 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pcre)
@@ -1841,6 +1843,82 @@ QMatrixClient project.")
 for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
     (license license:expat)))
 
+(define-public nheko
+  (package
+    (name "nheko")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/nheko.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"))))
+    (arguments
+     `(#:tests? #f                      ; no test target
+       #:configure-flags
+       (list
+        "-DCMAKE_BUILD_TYPE=Release"
+        "-DCMAKE_CXX_FLAGS=-fpermissive")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-Werror
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("-Werror") ""))
+             #t))
+         (add-after 'unpack 'fix-determinism
+           (lambda _
+             ;; Make Qt deterministic.
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("cmark" ,cmark)
+       ("libolm" ,libolm)
+       ("lmdb" ,lmdb)
+       ("lmdbxx" ,lmdbxx)
+       ("mtxclient" ,mtxclient)
+       ("openssl" ,openssl)
+       ("nlohmann-json-cpp" ,nlohmann-json-cpp)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtmultimedia" ,qtmultimedia)
+       ("spdlog" ,spdlog)
+       ("tweeny" ,tweeny)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (build-system qt-build-system)
+    (home-page "https://github.com/Nheko-Reborn/nheko")
+    (synopsis "Desktop client for Matrix using Qt and C++14")
+    (description "@code{Nheko} want to provide a native desktop app for the
+Matrix protocol that feels more like a mainstream chat app and less like an IRC
+client.
+
+Most of the features you would expect from a chat application are missing right
+now but we are getting close to a more feature complete client.  Specifically
+there is support for:
+@itemize
+@item E2E encryption (text messages only: attachments are currently sent unencrypted).
+@item User registration.
+@item Creating, joining & leaving rooms.
+@item Sending & receiving invites.
+@item Sending & receiving files and emoji.
+@item Typing notifications.
+@item Username auto-completion.
+@item Message & mention notifications.
+@item Redacting messages.
+@item Read receipts.
+@item Basic communities support.
+@item Room switcher (@key{ctrl-K}).
+@item Light, Dark & System themes.
+@end itemize\n")
+    (license license:gpl3+)))
+
 (define-public quaternion
   (package
     (name "quaternion")
-- 
2.25.0


[-- Attachment #3: Type: text/plain, Size: 868 bytes --]



Sorry for the mess,
Nicolò

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39619@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39619: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39619
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* [bug#39619] [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client)
       [not found] ` <handler.39619.B.158180183921379.ack@debbugs.gnu.org>
  2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
  2020-02-16  0:09   ` [bug#39619] Acknowledgement ([PATCH 0/4] Add nheko matrix client) Nicolò Balzarotti
@ 2020-02-18  9:22   ` Nicolò Balzarotti
  2020-02-21 16:58     ` Nicolas Goaziou
  2 siblings, 1 reply; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-18  9:22 UTC (permalink / raw)
  To: 39619

[-- Attachment #1: Type: text/plain, Size: 123 bytes --]


I just noticed that nlohmann-json-cpp is deprecated for json-modern-cxx,
fixed it in the two patches that were using it.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-mtxclient.patch --]
[-- Type: text/x-patch, Size: 3723 bytes --]

From 6cc03e66a8a6eec796a1ee89f163fd3ad255d203 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 20:43:44 +0100
Subject: [PATCH 1/4] gnu: Add mtxclient.

* gnu/packages/messaging.scm (mtxclient): New variable.
---
 gnu/packages/messaging.scm | 58 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 56 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 120daacdc6..ab590518e3 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -68,6 +69,7 @@
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
@@ -1787,6 +1789,58 @@ implementation.  Quaternion and libqmatrixclient together form the
 QMatrixClient project.")
     (license license:lgpl2.1+)))
 
+(define-public mtxclient
+  (package
+    (name "mtxclient")
+    (version "0.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/mtxclient.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj"))))
+    (arguments
+     `(#:configure-flags
+       (list
+        ;; Disable example binaries (not installed)
+        "-DBUILD_LIB_EXAMPLES=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'disable-network-tests
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("add_test\\(BasicConnectivity") "# add_test")
+               (("add_test\\(ClientAPI") "# add_test")
+               (("add_test\\(MediaAPI") "# add_test")
+               (("add_test\\(Encryption") "# add_test"))
+             #t))
+         (add-before 'configure 'set-home
+           (lambda _
+             ;; Tries to create package registry file
+             ;; So, set HOME.
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("libolm" ,libolm)
+       ("libsodium" ,libsodium)
+       ("openssl" ,openssl)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("spdlog" ,spdlog)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/Nheko-Reborn/mtxclient")
+    (synopsis "Client API library for the Matrix protocol")
+    (description "@code{mtxclient} is a C++ library that implements client API
+for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
+    (license license:expat)))
+
 (define-public quaternion
   (package
     (name "quaternion")
@@ -1795,8 +1849,8 @@ QMatrixClient project.")
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/QMatrixClient/Quaternion")
-              (commit version)))
+             (url "https://github.com/QMatrixClient/Quaternion")
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0gpv6b3nn3lsyym8809kiqkpdszfasldqjpk5s542zyn41gdlql4"))))
-- 
2.25.0


[-- Attachment #3: 0004-gnu-Add-nheko.patch --]
[-- Type: text/x-patch, Size: 4096 bytes --]

From 2736484eae06b069d0e7e0688f8be412a045f32d Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 21:08:12 +0100
Subject: [PATCH 4/4] gnu: Add nheko.

* gnu/packages/messaging.scm (nheko): New variable.
---
 gnu/packages/messaging.scm | 78 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index ab590518e3..b514a971df 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pcre)
@@ -1841,6 +1843,82 @@ QMatrixClient project.")
 for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
     (license license:expat)))
 
+(define-public nheko
+  (package
+    (name "nheko")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/nheko.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"))))
+    (arguments
+     `(#:tests? #f                      ; no test target
+       #:configure-flags
+       (list
+        "-DCMAKE_BUILD_TYPE=Release"
+        "-DCMAKE_CXX_FLAGS=-fpermissive")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-Werror
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("-Werror") ""))
+             #t))
+         (add-after 'unpack 'fix-determinism
+           (lambda _
+             ;; Make Qt deterministic.
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("cmark" ,cmark)
+       ("libolm" ,libolm)
+       ("lmdb" ,lmdb)
+       ("lmdbxx" ,lmdbxx)
+       ("mtxclient" ,mtxclient)
+       ("openssl" ,openssl)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtmultimedia" ,qtmultimedia)
+       ("spdlog" ,spdlog)
+       ("tweeny" ,tweeny)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (build-system qt-build-system)
+    (home-page "https://github.com/Nheko-Reborn/nheko")
+    (synopsis "Desktop client for Matrix using Qt and C++14")
+    (description "@code{Nheko} want to provide a native desktop app for the
+Matrix protocol that feels more like a mainstream chat app and less like an IRC
+client.
+
+Most of the features you would expect from a chat application are missing right
+now but we are getting close to a more feature complete client.  Specifically
+there is support for:
+@itemize
+@item E2E encryption (text messages only: attachments are currently sent unencrypted).
+@item User registration.
+@item Creating, joining & leaving rooms.
+@item Sending & receiving invites.
+@item Sending & receiving files and emoji.
+@item Typing notifications.
+@item Username auto-completion.
+@item Message & mention notifications.
+@item Redacting messages.
+@item Read receipts.
+@item Basic communities support.
+@item Room switcher (@key{ctrl-K}).
+@item Light, Dark & System themes.
+@end itemize\n")
+    (license license:gpl3+)))
+
 (define-public quaternion
   (package
     (name "quaternion")
-- 
2.25.0


[-- Attachment #4: Type: text/plain, Size: 855 bytes --]



Thanks, Nicolò

help-debbugs@gnu.org (GNU bug Tracking System) writes:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 39619@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> -- 
> 39619: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39619
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems

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

* [bug#39619] [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client)
  2020-02-18  9:22   ` [bug#39619] [v2] Re: bug#39619: " Nicolò Balzarotti
@ 2020-02-21 16:58     ` Nicolas Goaziou
  2020-02-21 21:57       ` Nicolò Balzarotti
  0 siblings, 1 reply; 14+ messages in thread
From: Nicolas Goaziou @ 2020-02-21 16:58 UTC (permalink / raw)
  To: Nicolò Balzarotti; +Cc: 39619

Hello,

Nicolò Balzarotti <anothersms@gmail.com> writes:

> I just noticed that nlohmann-json-cpp is deprecated for json-modern-cxx,
> fixed it in the two patches that were using it.

Thank you for the patches.

Unfortunately, I cannot build nheko because of a missing lmdbxx input.

Some comments follow.

> +           (lambda _
> +             (substitute* "CMakeLists.txt"
> +               (("add_test\\(BasicConnectivity") "# add_test")
> +               (("add_test\\(ClientAPI") "# add_test")
> +               (("add_test\\(MediaAPI") "# add_test")
> +               (("add_test\\(Encryption") "# add_test"))

Nitpick: I suggest to use a single regexp for these.

> +    (inputs
> +     `(("boost" ,boost)
> +       ("libolm" ,libolm)
> +       ("libsodium" ,libsodium)
> +       ("openssl" ,openssl)
> +       ("json-modern-cxx" ,json-modern-cxx)
> +       ("spdlog" ,spdlog)
> +       ("zlib" ,zlib)))

Could you re-order inputs alphabetically?

> +    (description "@code{mtxclient} is a C++ library that implements client API
> +for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")

Nitpick: "It's" -> "It is".
> +    (license license:expat)))
> +
>  (define-public quaternion
>    (package
>      (name "quaternion")
> @@ -1795,8 +1849,8 @@ QMatrixClient project.")
>       (origin
>         (method git-fetch)
>         (uri (git-reference
> -              (url "https://github.com/QMatrixClient/Quaternion")
> -              (commit version)))
> +             (url "https://github.com/QMatrixClient/Quaternion")
> +             (commit version)))

This change is unrelated to the patch. Could you remove it?

> +    (inputs
> +     `(("boost" ,boost)
> +       ("cmark" ,cmark)
> +       ("libolm" ,libolm)
> +       ("lmdb" ,lmdb)
> +       ("lmdbxx" ,lmdbxx)

What is that?
> +       ("mtxclient" ,mtxclient)
> +       ("openssl" ,openssl)
> +       ("json-modern-cxx" ,json-modern-cxx)
> +       ("qtbase" ,qtbase)
> +       ("qtsvg" ,qtsvg)
> +       ("qtmultimedia" ,qtmultimedia)
> +       ("spdlog" ,spdlog)
> +       ("tweeny" ,tweeny)
> +       ("zlib" ,zlib)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("qtlinguist" ,qttools)))

Isn't it a bit confusing?

> +    (build-system qt-build-system)

Nitpick: usually, build-system is above inputs and arguments.

> +    (home-page "https://github.com/Nheko-Reborn/nheko")
> +    (synopsis "Desktop client for Matrix using Qt and C++14")
> +    (description "@code{Nheko} want to provide a native desktop app for the
> +Matrix protocol that feels more like a mainstream chat app and less like an IRC
> +client.

"that feels more..." sounds link marketing buzz. Maybe we could remove it.

> +Most of the features you would expect from a chat application are missing right
> +now but we are getting close to a more feature complete client.

I'm not sure this part is warranted either.

> Specifically
> +there is support for:
> +@itemize
> +@item E2E encryption (text messages only: attachments are currently sent unencrypted).
> +@item User registration.
> +@item Creating, joining & leaving rooms.
> +@item Sending & receiving invites.
> +@item Sending & receiving files and emoji.
> +@item Typing notifications.
> +@item Username auto-completion.
> +@item Message & mention notifications.
> +@item Redacting messages.
> +@item Read receipts.
> +@item Basic communities support.
> +@item Room switcher (@key{ctrl-K}).
> +@item Light, Dark & System themes.
> +@end itemize\n")

No need for the final newline.

Regards,

-- 
Nicolas Goaziou

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

* [bug#39619] [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client)
  2020-02-21 16:58     ` Nicolas Goaziou
@ 2020-02-21 21:57       ` Nicolò Balzarotti
  2020-02-22 23:48         ` bug#39619: " Nicolas Goaziou
  0 siblings, 1 reply; 14+ messages in thread
From: Nicolò Balzarotti @ 2020-02-21 21:57 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 39619

[-- Attachment #1: Type: text/plain, Size: 4997 bytes --]

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

Hi, 
> Hello,
>
> Nicolò Balzarotti <anothersms@gmail.com> writes:
>
>> I just noticed that nlohmann-json-cpp is deprecated for json-modern-cxx,
>> fixed it in the two patches that were using it.
>
> Thank you for the patches.
>

thanks for your review.

> Unfortunately, I cannot build nheko because of a missing lmdbxx input.
>
lmdbxx was patch #3, but I created some noise sending replying to
guix-patches and creating multiple issues.  I'm sending it again with
other fixes applied.

> Some comments follow.
>
>> +           (lambda _
>> +             (substitute* "CMakeLists.txt"
>> +               (("add_test\\(BasicConnectivity") "# add_test")
>> +               (("add_test\\(ClientAPI") "# add_test")
>> +               (("add_test\\(MediaAPI") "# add_test")
>> +               (("add_test\\(Encryption") "# add_test"))
>
> Nitpick: I suggest to use a single regexp for these.

Sure, done.  I'm not much confident with substitute* yet.

>
>> +    (inputs
>> +     `(("boost" ,boost)
>> +       ("libolm" ,libolm)
>> +       ("libsodium" ,libsodium)
>> +       ("openssl" ,openssl)
>> +       ("json-modern-cxx" ,json-modern-cxx)
>> +       ("spdlog" ,spdlog)
>> +       ("zlib" ,zlib)))
>
> Could you re-order inputs alphabetically?

Done

>
>> +    (description "@code{mtxclient} is a C++ library that implements client API
>> +for the Matrix protocol.  It's built on to of @code{Boost.Asio}.")
>
> Nitpick: "It's" -> "It is".

Done
>> +    (license license:expat)))
>> +
>>  (define-public quaternion
>>    (package
>>      (name "quaternion")
>> @@ -1795,8 +1849,8 @@ QMatrixClient project.")
>>       (origin
>>         (method git-fetch)
>>         (uri (git-reference
>> -              (url "https://github.com/QMatrixClient/Quaternion")
>> -              (commit version)))
>> +             (url "https://github.com/QMatrixClient/Quaternion")
>> +             (commit version)))
>
> This change is unrelated to the patch. Could you remove it?
I'm sorry
>
>> +    (inputs
>> +     `(("boost" ,boost)
>> +       ("cmark" ,cmark)
>> +       ("libolm" ,libolm)
>> +       ("lmdb" ,lmdb)
>> +       ("lmdbxx" ,lmdbxx)
>
> What is that?
See previous comment

>> +       ("mtxclient" ,mtxclient)
>> +       ("openssl" ,openssl)
>> +       ("json-modern-cxx" ,json-modern-cxx)
>> +       ("qtbase" ,qtbase)
>> +       ("qtsvg" ,qtsvg)
>> +       ("qtmultimedia" ,qtmultimedia)
>> +       ("spdlog" ,spdlog)
>> +       ("tweeny" ,tweeny)
>> +       ("zlib" ,zlib)))
>> +    (native-inputs
>> +     `(("pkg-config" ,pkg-config)
>> +       ("qtlinguist" ,qttools)))
>
> Isn't it a bit confusing?
I copied it from
./gnu/packages/lxqt.scm:1332:          ("qtlinguist" ,qttools)))
./gnu/packages/sync.scm:193:       ("qtlinguist" ,qttools)))
./gnu/packages/music.scm:279:         ("qtlinguist" ,qttools)))
./gnu/packages/music.scm:4128:       ("qtlinguist" ,qttools)))

I can change it if needed, but I found other instances searching for
"qtlinguist" as cmake complained about it.  If those instances were
"qttools" I would have not found it.

>
>> +    (build-system qt-build-system)
>
> Nitpick: usually, build-system is above inputs and arguments.
>
>> +    (home-page "https://github.com/Nheko-Reborn/nheko")
>> +    (synopsis "Desktop client for Matrix using Qt and C++14")
>> +    (description "@code{Nheko} want to provide a native desktop app for the
>> +Matrix protocol that feels more like a mainstream chat app and less like an IRC
>> +client.
>
> "that feels more..." sounds link marketing buzz. Maybe we could remove it.
>
>> +Most of the features you would expect from a chat application are missing right
>> +now but we are getting close to a more feature complete client.
>
> I'm not sure this part is warranted either.
Removed and rephrased

>
>> Specifically
>> +there is support for:
>> +@itemize
>> +@item E2E encryption (text messages only: attachments are currently sent unencrypted).
>> +@item User registration.
>> +@item Creating, joining & leaving rooms.
>> +@item Sending & receiving invites.
>> +@item Sending & receiving files and emoji.
>> +@item Typing notifications.
>> +@item Username auto-completion.
>> +@item Message & mention notifications.
>> +@item Redacting messages.
>> +@item Read receipts.
>> +@item Basic communities support.
>> +@item Room switcher (@key{ctrl-K}).
>> +@item Light, Dark & System themes.
>> +@end itemize\n")
>
> No need for the final newline.

I wasn't sure, as there are dozens of instances with the newline after

rep -ri --line-number  '@end itemize[^\\n]'  | wc -l
181

grep -ri --line-number  '@end itemize\\n'  | wc -l
277


I removed it, but if there's a standard, it would be better if it was
respected (as for "new" contributors it's difficult to understand the
right way just by looking at existing packages)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-mtxclient.patch --]
[-- Type: text/x-patch, Size: 3132 bytes --]

From 804536593ad1b4ecb93db92656e821837cc24754 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 20:43:44 +0100
Subject: [PATCH 1/4] gnu: Add mtxclient.

* gnu/packages/messaging.scm (mtxclient): New variable.
---
 gnu/packages/messaging.scm | 52 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 120daacdc6..df80168d7c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -68,6 +69,7 @@
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
@@ -1787,6 +1789,56 @@ implementation.  Quaternion and libqmatrixclient together form the
 QMatrixClient project.")
     (license license:lgpl2.1+)))
 
+(define-public mtxclient
+  (package
+    (name "mtxclient")
+    (version "0.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/mtxclient.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj"))))
+    (arguments
+     `(#:configure-flags
+       (list
+        ;; Disable example binaries (not installed)
+        "-DBUILD_LIB_EXAMPLES=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'disable-network-tests
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("add_test\\([BasicConnectivity|ClientAPI|MediaAPI|Encryption]")
+                "# add_test"))
+             #t))
+         (add-before 'configure 'set-home
+           (lambda _
+             ;; Tries to create package registry file
+             ;; So, set HOME.
+             (setenv "HOME" "/tmp")
+             #t)))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("boost" ,boost)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("libolm" ,libolm)
+       ("libsodium" ,libsodium)
+       ("openssl" ,openssl)
+       ("spdlog" ,spdlog)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/Nheko-Reborn/mtxclient")
+    (synopsis "Client API library for the Matrix protocol")
+    (description "@code{mtxclient} is a C++ library that implements client API
+for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
+    (license license:expat)))
+
 (define-public quaternion
   (package
     (name "quaternion")
-- 
2.25.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-tweeny.patch --]
[-- Type: text/x-patch, Size: 2019 bytes --]

From f4529478acdbc6a139d952666ef732f4dbb21041 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 20:59:10 +0100
Subject: [PATCH 2/4] gnu: Add tweeny.

* gnu/packages/cpp.scm (tweeny): New variable.
---
 gnu/packages/cpp.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index ae1e3e3356..8098553828 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -410,3 +410,31 @@ SObjectizer supports not only the Actor Model but also the Publish-Subscribe
 Model and CSP-like channels.  The goal of SObjectizer is to simplify
 development of concurrent and multithreaded applications in C++.")
     (license license:bsd-3)))
+
+(define-public tweeny
+  (package
+    (name "tweeny")
+    (version "3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mobius3/tweeny.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1adm4c17pi7xf3kf6sjyxibz5rdg1ka236p72xsm6js4j9gzlbp4"))))
+    (arguments '(#:tests? #f))          ; no check target
+    (build-system cmake-build-system)
+    (home-page "https://mobius3.github.io/tweeny/")
+    (synopsis "Modern C++ tweening library")
+    (description "@code{Tweeny} is an inbetweening library designed for the
+creation of complex animations for games and other beautiful interactive
+software.  It leverages features of modern @code{C++} to empower developers with
+an intuitive API for declaring tweenings of any type of value, as long as they
+support arithmetic operations.  The goal of @code{Tweeny} is to provide means to
+create fluid interpolations when animating position, scale, rotation, frames or
+other values of screen objects, by setting their values as the tween starting
+point and then, after each tween step, plugging back the result.")
+    (license license:expat)))
-- 
2.25.0


[-- Attachment #4: 0003-gnu-Add-lmdbxx.patch --]
[-- Type: text/x-patch, Size: 1953 bytes --]

From d4c9c7f3239a38c7ad24a7af72b452506718fc73 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 21:04:07 +0100
Subject: [PATCH 3/4] gnu: Add lmdbxx.

* gnu/packages/databases.scm (lmdbxx): New variable.
---
 gnu/packages/databases.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 587d993918..5f7377636f 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -2105,6 +2105,35 @@ multiple cores.  The size of each database is limited only by the size of the
 virtual address space — not physical RAM.")
     (license license:openldap2.8)))
 
+(define-public lmdbxx
+  (package
+    (name "lmdbxx")
+    (version "0.9.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/drycpp/lmdbxx.git")
+                    (commit (string-append version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (build-system gnu-build-system)
+    (inputs `(("lmdb" ,lmdb)))
+    (home-page "http://lmdbxx.sourceforge.net")
+    (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
+    (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
+@code{LMDB} embedded database library, offering both an error-checked
+procedural interface and an object-oriented resource interface with RAII
+semantics.")
+    (license license:unlicense)))
+
 (define-public libpqxx
   (package
     (name "libpqxx")
-- 
2.25.0


[-- Attachment #5: 0004-gnu-Add-nheko.patch --]
[-- Type: text/x-patch, Size: 3933 bytes --]

From 38ac0d6fe76c2202118dd6499110974062ff7232 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Sat, 15 Feb 2020 21:08:12 +0100
Subject: [PATCH 4/4] gnu: Add nheko.

* gnu/packages/messaging.scm (nheko): New variable.
---
 gnu/packages/messaging.scm | 76 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index df80168d7c..9e665fb08c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pcre)
@@ -1839,6 +1841,80 @@ QMatrixClient project.")
 for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
     (license license:expat)))
 
+(define-public nheko
+  (package
+    (name "nheko")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Nheko-Reborn/nheko.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"))))
+    (arguments
+     `(#:tests? #f                      ; no test target
+       #:configure-flags
+       (list
+        "-DCMAKE_BUILD_TYPE=Release"
+        "-DCMAKE_CXX_FLAGS=-fpermissive")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-Werror
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("-Werror") ""))
+             #t))
+         (add-after 'unpack 'fix-determinism
+           (lambda _
+             ;; Make Qt deterministic.
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t)))))
+    (build-system qt-build-system)
+    (inputs
+     `(("boost" ,boost)
+       ("cmark" ,cmark)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("libolm" ,libolm)
+       ("lmdb" ,lmdb)
+       ("lmdbxx" ,lmdbxx)
+       ("mtxclient" ,mtxclient)
+       ("openssl" ,openssl)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtmultimedia" ,qtmultimedia)
+       ("spdlog" ,spdlog)
+       ("tweeny" ,tweeny)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qtlinguist" ,qttools)))
+    (home-page "https://github.com/Nheko-Reborn/nheko")
+    (synopsis "Desktop client for Matrix using Qt and C++14")
+    (description "@code{Nheko} want to provide a native desktop app for the
+Matrix protocol that feels more like a mainstream chat app and less like an IRC
+client.
+
+There is support for:
+@itemize
+@item E2E encryption (text messages only: attachments are currently sent unencrypted).
+@item User registration.
+@item Creating, joining & leaving rooms.
+@item Sending & receiving invites.
+@item Sending & receiving files and emoji.
+@item Typing notifications.
+@item Username auto-completion.
+@item Message & mention notifications.
+@item Redacting messages.
+@item Read receipts.
+@item Basic communities support.
+@item Room switcher (@key{ctrl-K}).
+@item Light, Dark & System themes.
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public quaternion
   (package
     (name "quaternion")
-- 
2.25.0


[-- Attachment #6: Type: text/plain, Size: 67 bytes --]


Thanks, Nicolò


>
> Regards,
>
> -- 
> Nicolas Goaziou

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

* bug#39619: [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client)
  2020-02-21 21:57       ` Nicolò Balzarotti
@ 2020-02-22 23:48         ` Nicolas Goaziou
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolas Goaziou @ 2020-02-22 23:48 UTC (permalink / raw)
  To: Nicolò Balzarotti; +Cc: 39619-done

Hello,

Nicolò Balzarotti <anothersms@gmail.com> writes:

> lmdbxx was patch #3, but I created some noise sending replying to
> guix-patches and creating multiple issues.  I'm sending it again with
> other fixes applied.

OK. I applied your patches with the two small changes below:
> +         (add-before 'configure 'disable-network-tests
> +           (lambda _
> +             (substitute* "CMakeLists.txt"
> +               (("add_test\\([BasicConnectivity|ClientAPI|MediaAPI|Encryption]")
> +                "# add_test"))

I changed the regexp to:

  "add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption)"

instead.

> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/drycpp/lmdbxx.git")
> +                    (commit (string-append version))))

I removed the `string-append' call.

I also added copyright lines for you in "cpp.scm" and "databases.scm".

Thank you!

Regards,

-- 
Nicolas Goaziou

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

end of thread, other threads:[~2020-02-22 23:49 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-15 21:23 [bug#39619] [PATCH 0/4] Add nheko matrix client nixo
     [not found] ` <handler.39619.B.158180183921379.ack@debbugs.gnu.org>
2020-02-15 21:30   ` [bug#39619] [PATCH 1/4] gnu: Add mtxclient nixo
2020-02-15 21:30     ` [bug#39619] [PATCH 2/4] gnu: Add tweeny nixo
     [not found]       ` <handler.39621.B.158180225922123.ack@debbugs.gnu.org>
2020-02-15 21:34         ` bug#39621: Acknowledgement ([PATCH 2/4] gnu: Add tweeny.) Nicolò Balzarotti
2020-02-15 21:30     ` [bug#39622] [PATCH 3/4] gnu: Add lmdbxx nixo
     [not found]       ` <handler.39622.B.158180225922130.ack@debbugs.gnu.org>
2020-02-15 21:34         ` bug#39622: Acknowledgement ([PATCH 3/4] gnu: Add lmdbxx.) Nicolò Balzarotti
2020-02-15 21:30     ` [bug#39623] [PATCH 4/4] gnu: Add nheko nixo
     [not found]       ` <handler.39623.B.158180226322189.ack@debbugs.gnu.org>
2020-02-15 21:34         ` bug#39623: Acknowledgement ([PATCH 4/4] gnu: Add nheko.) Nicolò Balzarotti
     [not found]     ` <handler.39620.B.158180225622091.ack@debbugs.gnu.org>
2020-02-15 21:34       ` bug#39620: Acknowledgement ([PATCH 1/4] gnu: Add mtxclient.) Nicolò Balzarotti
2020-02-16  0:09   ` [bug#39619] Acknowledgement ([PATCH 0/4] Add nheko matrix client) Nicolò Balzarotti
2020-02-18  9:22   ` [bug#39619] [v2] Re: bug#39619: " Nicolò Balzarotti
2020-02-21 16:58     ` Nicolas Goaziou
2020-02-21 21:57       ` Nicolò Balzarotti
2020-02-22 23:48         ` bug#39619: " Nicolas Goaziou

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).