From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:38115) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j5GJB-0007A7-H0 for guix-patches@gnu.org; Fri, 21 Feb 2020 16:58:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j5GJ8-0005qI-Rj for guix-patches@gnu.org; Fri, 21 Feb 2020 16:58:05 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:42322) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j5GJ8-0005ps-IU for guix-patches@gnu.org; Fri, 21 Feb 2020 16:58:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1j5GJ8-0006iO-Go for guix-patches@gnu.org; Fri, 21 Feb 2020 16:58:02 -0500 Subject: [bug#39619] [v2] Re: bug#39619: Acknowledgement ([PATCH 0/4] Add nheko matrix client) Resent-Message-ID: From: =?UTF-8?Q?Nicol=C3=B2?= Balzarotti In-Reply-To: <874kvjg9n8.fsf@nicolasgoaziou.fr> References: <20200215212305.20862-1-nicolo@nixo.xyz> <87pnecs0zx.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> <874kvjg9n8.fsf@nicolasgoaziou.fr> Date: Fri, 21 Feb 2020 22:57:16 +0100 Message-ID: <87zhdbk3ib.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Nicolas Goaziou Cc: 39619@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Nicolas Goaziou writes: Hi,=20 > Hello, > > Nicol=C3=B2 Balzarotti 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 cli= ent 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 lik= e 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 missi= ng 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 sen= t 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) --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-mtxclient.patch >From 804536593ad1b4ecb93db92656e821837cc24754 Mon Sep 17 00:00:00 2001 From: nixo 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 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-Add-tweeny.patch >From f4529478acdbc6a139d952666ef732f4dbb21041 Mon Sep 17 00:00:00 2001 From: nixo 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 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0003-gnu-Add-lmdbxx.patch Content-Transfer-Encoding: quoted-printable >From d4c9c7f3239a38c7ad24a7af72b452506718fc73 Mon Sep 17 00:00:00 2001 From: nixo 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 limite= d only by the size of the virtual address space =E2=80=94 not physical RAM.") (license license:openldap2.8))) =20 +(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=3D" (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 librar= y") + (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") --=20 2.25.0 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0004-gnu-Add-nheko.patch Content-Transfer-Encoding: quoted-printable >From 38ac0d6fe76c2202118dd6499110974062ff7232 Mon Sep 17 00:00:00 2001 From: nixo 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 =C2=A9 2019 Tanguy Le Carrour ;;; Copyright =C2=A9 2019, 2020 Brett Gilio ;;; Copyright =C2=A9 2019, 2020 Timotej Lazar +;;; Copyright =C2=A9 2020 Nicol=C3=B2 Balzarotti ;;; ;;; 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))) =20 +(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=3DRelease" + "-DCMAKE_CXX_FLAGS=3D-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 a= n IRC +client. + +There is support for: +@itemize +@item E2E encryption (text messages only: attachments are currently sent u= nencrypted). +@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") --=20 2.25.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thanks, Nicol=C3=B2 > > Regards, > > --=20 > Nicolas Goaziou --=-=-=--