From: "Nicolò Balzarotti" <anothersms@gmail.com>
To: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Cc: 39619@debbugs.gnu.org
Subject: [bug#39619] [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client)
Date: Fri, 21 Feb 2020 22:57:16 +0100 [thread overview]
Message-ID: <87zhdbk3ib.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <874kvjg9n8.fsf@nicolasgoaziou.fr>
[-- 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
next prev parent reply other threads:[~2020-02-21 21:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2020-02-22 23:48 ` bug#39619: " Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zhdbk3ib.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me \
--to=anothersms@gmail.com \
--cc=39619@debbugs.gnu.org \
--cc=mail@nicolasgoaziou.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).