Upgrade Nheko

DoneSubmitted by Nicolò Balzarotti.
Details
4 participants
  • Nicolò Balzarotti
  • Ludovic Courtès
  • Maxime Devos
  • Tobias Geerinckx-Rice
Owner
unassigned
Severity
normal
Merged with
N
N
Nicolò Balzarotti wrote on 21 Jan 01:37 +0100
(address . guix-patches@gnu.org)
875z3ryvk0.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me
Hi guix! Today nheko 0.8.0 was released.
This patch series upgrades it and its dependency, mtxclient.I alsotook some time to unbundle all its dependencies (addingcpp-httplib, blurhash, and single-applicaiton-qt5).
About this last dependency (single-applicaiton-qt5), I'm unsure on howto name it. Also, devs are suggested to include its source directly,and by default builds a static library. The main SingleApplicationclass inherit from a Qt*Application class which is choosen at buildtime, so the library to be useful in the target program must be builtwith the correct flag (I'm using the one used by nheko by default).
Nheko builds and run fine. It should support voice call now, but Icannot test it (I get `[error] WebRTC: failed to start device monitor',not sure if the problem is in my setup, in gstreamer or in my package).
From 38be202dce880dd77a5ce774c0c8877bed84975e Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 10:08:20 +0100Subject: [PATCH 1/5] gnu: Add cpp-httplib.
* gnu/packages/cpp.scm (cpp-httplib): New variable.--- gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)
Toggle diff (67 lines)diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scmindex 45d3faeafb..2a03ec58c5 100644--- a/gnu/packages/cpp.scm+++ b/gnu/packages/cpp.scm@@ -16,6 +16,7 @@ ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -57,6 +58,7 @@ #:use-module (gnu packages logging) #:use-module (gnu packages maths) #:use-module (gnu packages perl)+ #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print)@@ -475,6 +477,44 @@ tools: @end itemize\n") (license license:bsd-3))) +(define-public cpp-httplib+ (package+ (name "cpp-httplib")+ (version "0.8.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/yhirose/cpp-httplib")+ (commit (string-append "v" version))))+ (sha256+ (base32 "1l9n58ml7sygy723ws0z6brdbx4spc6fya6vgim11hpiy5b7zdkx"))+ (file-name (git-file-name name version))))+ (build-system cmake-build-system)+ (arguments+ `(#:configure-flags+ '("-DBUILD_SHARED_LIBS=ON"+ "-DHTTPLIB_COMPILE=ON")+ #:phases+ (modify-phases %standard-phases+ (replace 'check+ (lambda* (#:key source #:allow-other-keys)+ ;; openssl genrsa wants to write a file in the git checkout+ (copy-file (string-append source "/test") "test")+ (chmod "test" #o744)+ (invoke "make"))))))+ (native-inputs+ `(("python" ,python) ; required to build shared lib+ ;; required for tests+ ("openssl" ,openssl)+ ("zlib" ,zlib)))+ (home-page "https://github.com/yhirose/cpp-httplib")+ (synopsis "C++ header-only HTTP/HTTPS server and client library")+ (description "cpp-httplib is a C++11 single-file header-only cross+platform blocking HTTP/HTTPS library, easy to setup. Just include the+@file{httplib.h} file in your code!")+ (license license:expat)))+ (define-public cpplint (package (name "cpplint")-- 2.29.2
From 8fb37dd519fcc7038e54cdc858310983e29770f1 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 17:56:04 +0100Subject: [PATCH 2/5] gnu: Add blurhash.
* gnu/packages/image.scm (blurhash): New variable.--- gnu/packages/image.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
Toggle diff (53 lines)diff --git a/gnu/packages/image.scm b/gnu/packages/image.scmindex 935333dee2..d633b2aeab 100644--- a/gnu/packages/image.scm+++ b/gnu/packages/image.scm@@ -28,6 +28,7 @@ ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -59,6 +60,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext)+ #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gimp) #:use-module (gnu packages gl)@@ -1996,6 +1998,30 @@ SNG is implemented by a compiler/decompiler called sng that losslessly translates between SNG and PNG.") (license license:zlib))) +(define-public blurhash+ (package+ (name "blurhash")+ (version "0.0.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/Nheko-Reborn/blurhash")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))+ (build-system meson-build-system)+ (native-inputs+ `(("cmake" ,cmake)+ ("doctest" ,doctest)+ ("gcc" ,gcc-8)))+ (home-page "https://github.com/Nheko-Reborn/blurhash")+ (synopsis "C++ blurhash encoder/decoder")+ (description "Simple encoder and decoder for blurhashes. Contains a+command line program as well as a shared library.")+ (license license:boost1.0)))+ (define-public lodepng ;; There are no tags in the repository, so we take the version as defined in ;; lodepng.cpp.-- 2.29.2
From 170fd188f809dd5f1f613a7bbfcf336efc191bd0 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 17:59:24 +0100Subject: [PATCH 3/5] gnu: mtxclient: Update to 0.4.0.
* gnu/packages/messaging.scm (mtxclient): Update to 0.4.0.--- gnu/packages/messaging.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Toggle diff (33 lines)diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex c585326124..0368780fa6 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -18,7 +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>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>@@ -2227,7 +2227,7 @@ QMatrixClient project.") (define-public mtxclient (package (name "mtxclient")- (version "0.3.1")+ (version "0.4.0") (source (origin (method git-fetch)@@ -2236,7 +2236,7 @@ QMatrixClient project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))+ (base32 "1x820rcfz5r203dc8a0rzavcjjx10fsv1dicqg65m6kxx1w95j5r")))) (arguments `(#:configure-flags (list-- 2.29.2
From e04e1025240dbe2abb990d7dcc39189a39179d69 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 19:23:17 +0100Subject: [PATCH 4/5] gnu: Add single-application-qt5.
* gnu/packages/qt.scm (single-application-qt5): New variable.--- gnu/packages/qt.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+)
Toggle diff (76 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex 79d41b3e73..205d99c017 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -20,6 +20,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -1947,6 +1948,61 @@ using the Chromium browser project. The Chromium source code has Google service and binaries removed, and adds modular support for using system libraries.") (license license:lgpl2.1+))) +(define-public single-application-qt5+ ;; Change in function signature, nheko requires at least this commit+ (let ((commit "dc8042b5db58f36e06ba54f16f38b16c5eea9053"))+ (package+ (name "single-application-qt5")+ (version (string-append "3.2.0-" (string-take commit 7)))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/itay-grudev/SingleApplication")+ (commit commit)))+ (file-name (git-file-name name version))+ (sha256+ (base32+ "163aa2x2qb0h8w26si5ql833ilj427jjbdwlz1p2p8iaq6dh0vq1"))))+ (build-system cmake-build-system)+ (arguments+ `(#:tests? #f ; no check target+ ;; Projects can decide how to build this library. You might need to+ ;; override this flag (QApplication, QGuiApplication or+ ;; QCoreApplication).+ #:configure-flags '("-DQAPPLICATION_CLASS=QApplication")+ #:phases+ (modify-phases %standard-phases+ ;; No install target, install things manually+ (replace 'install+ (lambda* (#:key inputs outputs source #:allow-other-keys)+ (let* ((qt (assoc-ref inputs "qtbase"))+ (qt-version ,(version-major (package-version qt)))+ (out (assoc-ref outputs "out")))+ (install-file+ "libSingleApplication.a" (string-append out "/lib"))+ (for-each+ (lambda (file)+ (install-file+ (string-append source "/" file)+ (string-append out "/include")))+ '("SingleApplication"+ "singleapplication.h" "singleapplication_p.h"))+ #t))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (home-page "https://github.com/itay-grudev/SingleApplication")+ (synopsis "Replacement of QtSingleApplication for Qt5 and Qt6")+ (description+ "SingleApplication is a replacement of the QtSingleApplication for Qt5 and Qt6.++nKeeps the Primary Instance of your Application and kills each subsequent+instances. It can (if enabled) spawn secondary (non-related to the primary)+instances and can send data to the primary instance from secondary+instances.")+ (license license:expat))))+ (define-public python-sip (package (name "python-sip")-- 2.29.2
From 5308eda5d0210beb1edfb0cdf44530a13673af41 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 18:00:51 +0100Subject: [PATCH 5/5] gnu: nheko: Update to 0.8.0.
* gnu/packages/messaging.scm (nheko): Update to 0.8.0.--- gnu/packages/messaging.scm | 50 +++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 11 deletions(-)
Toggle diff (97 lines)diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex 0368780fa6..c5e0c828b0 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -2277,7 +2277,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (define-public nheko (package (name "nheko")- (version "0.7.2")+ (version "0.8.0") (source (origin (method git-fetch)@@ -2286,19 +2286,40 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))+ (base32 "00d6wx3lcgbks74jkdyifqxf8nlravqh88fyljd0sy7kzbah9msf"))+ (modules '((guix build utils)))+ (snippet+ '(begin+ (delete-file-recursively "third_party")+ #t)))) (arguments `(#:tests? #f ;no test target #:configure-flags- (list- "-DCMAKE_BUILD_TYPE=Release"- "-DCMAKE_CXX_FLAGS=-fpermissive")+ '("-DCMAKE_BUILD_TYPE=Release"+ "-DBUILD_DOCS=ON"+ ;; Fix required because we are using a static SingleApplication+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "+ ;; Compile Qml will make Nheko faster, but you will need to recompile+ ;; it, when you update Qt. That's fine for us.+ "-DCOMPILE_QML=ON") #:phases (modify-phases %standard-phases- (add-after 'unpack 'remove-Werror- (lambda _- (substitute* "CMakeLists.txt"- (("-Werror") ""))+ (add-after 'unpack 'unbundle-dependencies+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((single-app (assoc-ref inputs "single-application")))+ (substitute* "CMakeLists.txt"+ ;; Remove include and source dirs,replace with the correct one+ (("third_party/blurhash/blurhash.cpp") "")+ (("third_party/cpp-httplib-0.5.12")+ (string-append "\"" single-app "/include\""))+ (("add_subdirectory.*third_party/SingleApplication.*") "")+ ;; Link using the correct static/shared libs+ (("SingleApplication::SingleApplication")+ (string-append+ ;; Dynamic libraries+ "httplib" "\n" "blurhash" "\n"+ ;; Static library+ single-app "/lib/libSingleApplication.a")))) #t)) (add-after 'unpack 'fix-determinism (lambda _@@ -2308,7 +2329,10 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (build-system qt-build-system) (inputs `(("boost" ,boost)+ ("blurhash" ,blurhash)+ ("cpp-httplib" ,cpp-httplib) ("cmark" ,cmark)+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for calls ("json-modern-cxx" ,json-modern-cxx) ("libolm" ,libolm) ("lmdb" ,lmdb)@@ -2317,6 +2341,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("openssl" ,openssl) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols2" ,qtquickcontrols2)@@ -2325,8 +2350,11 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("tweeny" ,tweeny) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)- ("qtlinguist" ,qttools)))+ `(("doxygen" ,doxygen)+ ("graphviz" ,graphviz)+ ("pkg-config" ,pkg-config)+ ("qtlinguist" ,qttools)+ ("single-application" ,single-application-qt5))) (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-- 2.29.2
N
N
Nicolò Balzarotti wrote on 28 Jan 00:02 +0100
Re: bug#46012: Acknowledgement (Upgrade Nheko)
(address . 46012@debbugs.gnu.org)
87ft2mc7a4.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me
In the meanwhile a new version has been released, so here's the updatepatch set. Discussion happened on bug#46013, v3, compared to v2, justupdates mtxclient to v 0.4.1 (with relative hash) and nheko to 0.8.1.
From 06f9fa6103ce202299bb51bea8ff2b1e46a39644 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:44:04 +0100Subject: [PATCH v3 1/4] gnu: Add cpp-httplib.
* gnu/packages/cpp.scm (cpp-httplib): New variable.--- gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)
Toggle diff (67 lines)diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scmindex 73a3ceb2df..a1bef2332f 100644--- a/gnu/packages/cpp.scm+++ b/gnu/packages/cpp.scm@@ -16,6 +16,7 @@ ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -57,6 +58,7 @@ #:use-module (gnu packages logging) #:use-module (gnu packages maths) #:use-module (gnu packages perl)+ #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print)@@ -475,6 +477,44 @@ tools: @end itemize\n") (license license:bsd-3))) +(define-public cpp-httplib+ (package+ (name "cpp-httplib")+ (version "0.8.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/yhirose/cpp-httplib")+ (commit (string-append "v" version))))+ (sha256+ (base32 "1l9n58ml7sygy723ws0z6brdbx4spc6fya6vgim11hpiy5b7zdkx"))+ (file-name (git-file-name name version))))+ (build-system cmake-build-system)+ (arguments+ `(#:configure-flags+ '("-DBUILD_SHARED_LIBS=ON"+ "-DHTTPLIB_COMPILE=ON")+ #:phases+ (modify-phases %standard-phases+ (replace 'check+ (lambda* (#:key source #:allow-other-keys)+ ;; openssl genrsa wants to write a file in the git checkout+ (copy-file (string-append source "/test") "test")+ (chmod "test" #o744)+ (invoke "make"))))))+ (native-inputs+ `(("python" ,python) ; required to build shared lib+ ;; required for tests+ ("openssl" ,openssl)+ ("zlib" ,zlib)))+ (home-page "https://github.com/yhirose/cpp-httplib")+ (synopsis "C++ header-only HTTP/HTTPS server and client library")+ (description "cpp-httplib is a C++11 single-file header-only cross+platform blocking HTTP/HTTPS library, easy to setup. Just include the+@file{httplib.h} file in your code!")+ (license license:expat)))+ (define-public cpplint (package (name "cpplint")-- 2.30.0
From a465b378ec920f990b72e80df31a42a6083c3f23 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 17:56:04 +0100Subject: [PATCH v3 2/4] gnu: Add blurhash.
* gnu/packages/image.scm (blurhash): New variable.--- gnu/packages/image.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
Toggle diff (53 lines)diff --git a/gnu/packages/image.scm b/gnu/packages/image.scmindex 935333dee2..d633b2aeab 100644--- a/gnu/packages/image.scm+++ b/gnu/packages/image.scm@@ -28,6 +28,7 @@ ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -59,6 +60,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext)+ #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gimp) #:use-module (gnu packages gl)@@ -1996,6 +1998,30 @@ SNG is implemented by a compiler/decompiler called sng that losslessly translates between SNG and PNG.") (license license:zlib))) +(define-public blurhash+ (package+ (name "blurhash")+ (version "0.0.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/Nheko-Reborn/blurhash")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))+ (build-system meson-build-system)+ (native-inputs+ `(("cmake" ,cmake)+ ("doctest" ,doctest)+ ("gcc" ,gcc-8)))+ (home-page "https://github.com/Nheko-Reborn/blurhash")+ (synopsis "C++ blurhash encoder/decoder")+ (description "Simple encoder and decoder for blurhashes. Contains a+command line program as well as a shared library.")+ (license license:boost1.0)))+ (define-public lodepng ;; There are no tags in the repository, so we take the version as defined in ;; lodepng.cpp.-- 2.30.0
From ff300d202fd083f2ad7a67c736dcb29f6588e2f6 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:54:55 +0100Subject: [PATCH v3 4/4] gnu: nheko: Update to 0.8.1.
* gnu/packages/messaging.scm (nheko): Update to 0.8.1.[source snippet]: Remove third_party folder.[arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phasewrap-program and unbundle-dependencies.[inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain,and unbundle blurhash, cpp-httplib and single-application.[native-inputs]: Add doxygen, graphviz used to build documentation.[description]: Simplify by removing the long list, add new features.(mtxclient): Update to 0.4.1.[arguments]: Remove set-home phase.--- gnu/packages/messaging.scm | 90 +++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 36 deletions(-)
Toggle diff (175 lines)diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex 1820a146d1..806d939738 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -18,7 +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>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>@@ -2227,7 +2227,7 @@ QMatrixClient project.") (define-public mtxclient (package (name "mtxclient")- (version "0.3.1")+ (version "0.4.1") (source (origin (method git-fetch)@@ -2236,7 +2236,7 @@ QMatrixClient project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))+ (base32 "1044zil3izhb3whhfjah7w0kg5mr3hys32cjffky681d3mb3wi5n")))) (arguments `(#:configure-flags (list@@ -2249,12 +2249,6 @@ QMatrixClient project.") (substitute* "CMakeLists.txt" (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)") "# 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@@ -2277,7 +2271,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (define-public nheko (package (name "nheko")- (version "0.7.2")+ (version "0.8.1") (source (origin (method git-fetch)@@ -2286,30 +2280,64 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))+ (base32 "1v7k3ifzi05fdr06hmws1wkfl1bmhrnam3dbwahp086vkj0r8524"))+ (modules '((guix build utils)))+ (snippet+ '(begin+ (delete-file-recursively "third_party")+ #t)))) (arguments `(#:tests? #f ;no test target #:configure-flags- (list- "-DCMAKE_BUILD_TYPE=Release"- "-DCMAKE_CXX_FLAGS=-fpermissive")+ '("-DCMAKE_BUILD_TYPE=Release"+ "-DBUILD_DOCS=ON"+ ;; Fix required because we are using a static SingleApplication+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "+ ;; Compile Qml will make Nheko faster, but you will need to recompile+ ;; it, when you update Qt. That's fine for us.+ "-DCOMPILE_QML=ON") #:phases (modify-phases %standard-phases- (add-after 'unpack 'remove-Werror- (lambda _- (substitute* "CMakeLists.txt"- (("-Werror") ""))+ (add-after 'unpack 'unbundle-dependencies+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((single-app (assoc-ref inputs "single-application")))+ (substitute* "CMakeLists.txt"+ ;; Remove include and source dirs,replace with the correct one+ (("third_party/blurhash/blurhash.cpp") "")+ (("third_party/cpp-httplib-0.5.12")+ (string-append "\"" single-app "/include\""))+ (("add_subdirectory.*third_party/SingleApplication.*") "")+ ;; Link using the correct static/shared libs+ (("SingleApplication::SingleApplication")+ (string-append+ ;; Dynamic libraries+ "httplib" "\n" "blurhash" "\n"+ ;; Static library+ single-app "/lib/libSingleApplication.a")))) #t)) (add-after 'unpack 'fix-determinism (lambda _ ;; Make Qt deterministic. (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")- #t)))))+ #t))+ (add-after 'install 'wrap-program+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))+ (wrap-program (string-append out "/bin/nheko")+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))+ #t)))))) (build-system qt-build-system) (inputs `(("boost" ,boost)+ ("blurhash" ,blurhash)+ ("cpp-httplib" ,cpp-httplib) ("cmark" ,cmark)+ ("gst-plugins-base" ,gst-plugins-base)+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for voip+ ("gst-plugins-good" ,gst-plugins-good) ; rtpmanager for voip ("json-modern-cxx" ,json-modern-cxx)+ ("libnice" ,libnice) ; for voip ("libolm" ,libolm) ("lmdb" ,lmdb) ("lmdbxx" ,lmdbxx)@@ -2317,15 +2345,19 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("openssl" ,openssl) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) ("spdlog" ,spdlog)+ ("single-application" ,single-application-qt5) ("tweeny" ,tweeny) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)+ `(("doxygen" ,doxygen)+ ("graphviz" ,graphviz)+ ("pkg-config" ,pkg-config) ("qtlinguist" ,qttools))) (home-page "https://github.com/Nheko-Reborn/nheko") (synopsis "Desktop client for Matrix using Qt and C++14")@@ -2333,22 +2365,8 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") 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")+Many matrix features are supported, including user registration, rooms, typing+notification, emojis, E2E encryption, and voip calls.") (license license:gpl3+))) (define-public quaternion-- 2.30.0
From ff300d202fd083f2ad7a67c736dcb29f6588e2f6 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:54:55 +0100Subject: [PATCH v3 4/4] gnu: nheko: Update to 0.8.1.
* gnu/packages/messaging.scm (nheko): Update to 0.8.1.[source snippet]: Remove third_party folder.[arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phasewrap-program and unbundle-dependencies.[inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain,and unbundle blurhash, cpp-httplib and single-application.[native-inputs]: Add doxygen, graphviz used to build documentation.[description]: Simplify by removing the long list, add new features.(mtxclient): Update to 0.4.1.[arguments]: Remove set-home phase.--- gnu/packages/messaging.scm | 90 +++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 36 deletions(-)
Toggle diff (175 lines)diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex 1820a146d1..806d939738 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -18,7 +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>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>@@ -2227,7 +2227,7 @@ QMatrixClient project.") (define-public mtxclient (package (name "mtxclient")- (version "0.3.1")+ (version "0.4.1") (source (origin (method git-fetch)@@ -2236,7 +2236,7 @@ QMatrixClient project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))+ (base32 "1044zil3izhb3whhfjah7w0kg5mr3hys32cjffky681d3mb3wi5n")))) (arguments `(#:configure-flags (list@@ -2249,12 +2249,6 @@ QMatrixClient project.") (substitute* "CMakeLists.txt" (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)") "# 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@@ -2277,7 +2271,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (define-public nheko (package (name "nheko")- (version "0.7.2")+ (version "0.8.1") (source (origin (method git-fetch)@@ -2286,30 +2280,64 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))+ (base32 "1v7k3ifzi05fdr06hmws1wkfl1bmhrnam3dbwahp086vkj0r8524"))+ (modules '((guix build utils)))+ (snippet+ '(begin+ (delete-file-recursively "third_party")+ #t)))) (arguments `(#:tests? #f ;no test target #:configure-flags- (list- "-DCMAKE_BUILD_TYPE=Release"- "-DCMAKE_CXX_FLAGS=-fpermissive")+ '("-DCMAKE_BUILD_TYPE=Release"+ "-DBUILD_DOCS=ON"+ ;; Fix required because we are using a static SingleApplication+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "+ ;; Compile Qml will make Nheko faster, but you will need to recompile+ ;; it, when you update Qt. That's fine for us.+ "-DCOMPILE_QML=ON") #:phases (modify-phases %standard-phases- (add-after 'unpack 'remove-Werror- (lambda _- (substitute* "CMakeLists.txt"- (("-Werror") ""))+ (add-after 'unpack 'unbundle-dependencies+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((single-app (assoc-ref inputs "single-application")))+ (substitute* "CMakeLists.txt"+ ;; Remove include and source dirs,replace with the correct one+ (("third_party/blurhash/blurhash.cpp") "")+ (("third_party/cpp-httplib-0.5.12")+ (string-append "\"" single-app "/include\""))+ (("add_subdirectory.*third_party/SingleApplication.*") "")+ ;; Link using the correct static/shared libs+ (("SingleApplication::SingleApplication")+ (string-append+ ;; Dynamic libraries+ "httplib" "\n" "blurhash" "\n"+ ;; Static library+ single-app "/lib/libSingleApplication.a")))) #t)) (add-after 'unpack 'fix-determinism (lambda _ ;; Make Qt deterministic. (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")- #t)))))+ #t))+ (add-after 'install 'wrap-program+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))+ (wrap-program (string-append out "/bin/nheko")+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))+ #t)))))) (build-system qt-build-system) (inputs `(("boost" ,boost)+ ("blurhash" ,blurhash)+ ("cpp-httplib" ,cpp-httplib) ("cmark" ,cmark)+ ("gst-plugins-base" ,gst-plugins-base)+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for voip+ ("gst-plugins-good" ,gst-plugins-good) ; rtpmanager for voip ("json-modern-cxx" ,json-modern-cxx)+ ("libnice" ,libnice) ; for voip ("libolm" ,libolm) ("lmdb" ,lmdb) ("lmdbxx" ,lmdbxx)@@ -2317,15 +2345,19 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("openssl" ,openssl) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) ("spdlog" ,spdlog)+ ("single-application" ,single-application-qt5) ("tweeny" ,tweeny) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)+ `(("doxygen" ,doxygen)+ ("graphviz" ,graphviz)+ ("pkg-config" ,pkg-config) ("qtlinguist" ,qttools))) (home-page "https://github.com/Nheko-Reborn/nheko") (synopsis "Desktop client for Matrix using Qt and C++14")@@ -2333,22 +2365,8 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") 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")+Many matrix features are supported, including user registration, rooms, typing+notification, emojis, E2E encryption, and voip calls.") (license license:gpl3+))) (define-public quaternion-- 2.30.0
T
T
Tobias Geerinckx-Rice wrote on 27 Apr 15:13 +0200
(no subject)
(address . control@debbugs.gnu.org)
877dknswe4.fsf@nckx
merge 47273 46012 48057
N
N
Nicolò Balzarotti wrote on 27 Apr 15:56 +0200
Re: [bug#46012] Acknowledgement (Upgrade Nheko)
(address . 46012@debbugs.gnu.org)
87k0onrfu7.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me
Nicolò Balzarotti <anothersms@gmail.com> writes:
Toggle quote (3 lines)> In the meanwhile a new version has been released, so here's the update> patch set. Discussion happened on bug#46013, v3, compared to v2, just> updates mtxclient to v 0.4.1 (with relative hash) and nheko to 0.8.1.
A new version has been release. I updated the patchset accordingly.This (v4) updates mtxclient to 0.5.1, changes lmdbxx repo to the oneused by nheko (nheko is the only package in guix using lmdbxx) andupgrades nheko to 0.8.2. I upgraded them all in the same commit as eachupgrade breaks the other package.
Thanks!
From 438b0f93f2f962be12f7b0f0ce6e3f6f81fa8a03 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:44:04 +0100Subject: [PATCH v4 1/4] gnu: Add cpp-httplib.
* gnu/packages/cpp.scm (cpp-httplib): New variable.--- gnu/packages/cpp.scm | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-)
Toggle diff (68 lines)diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scmindex 58345e7c33..77af6a05f9 100644--- a/gnu/packages/cpp.scm+++ b/gnu/packages/cpp.scm@@ -18,7 +18,7 @@ ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>-+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -65,6 +65,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl)+ #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print)@@ -555,6 +556,44 @@ tools: @end itemize\n") (license license:bsd-3))) +(define-public cpp-httplib+ (package+ (name "cpp-httplib")+ (version "0.8.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/yhirose/cpp-httplib")+ (commit (string-append "v" version))))+ (sha256+ (base32 "1l9n58ml7sygy723ws0z6brdbx4spc6fya6vgim11hpiy5b7zdkx"))+ (file-name (git-file-name name version))))+ (build-system cmake-build-system)+ (arguments+ `(#:configure-flags+ '("-DBUILD_SHARED_LIBS=ON"+ "-DHTTPLIB_COMPILE=ON")+ #:phases+ (modify-phases %standard-phases+ (replace 'check+ (lambda* (#:key source #:allow-other-keys)+ ;; openssl genrsa wants to write a file in the git checkout+ (copy-file (string-append source "/test") "test")+ (chmod "test" #o744)+ (invoke "make"))))))+ (native-inputs+ `(("python" ,python) ; required to build shared lib+ ;; required for tests+ ("openssl" ,openssl)+ ("zlib" ,zlib)))+ (home-page "https://github.com/yhirose/cpp-httplib")+ (synopsis "C++ header-only HTTP/HTTPS server and client library")+ (description "cpp-httplib is a C++11 single-file header-only cross+platform blocking HTTP/HTTPS library, easy to setup. Just include the+@file{httplib.h} file in your code!")+ (license license:expat)))+ (define-public cpplint (package (name "cpplint")-- 2.31.1
From 38ee912b3664a23b68015e011340a773cd0a4073 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 17:56:04 +0100Subject: [PATCH v4 2/4] gnu: Add blurhash.
* gnu/packages/image.scm (blurhash): New variable.--- gnu/packages/image.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
Toggle diff (53 lines)diff --git a/gnu/packages/image.scm b/gnu/packages/image.scmindex d0c12016ca..a12d067ed7 100644--- a/gnu/packages/image.scm+++ b/gnu/packages/image.scm@@ -29,6 +29,7 @@ ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -60,6 +61,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext)+ #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gimp) #:use-module (gnu packages gl)@@ -2035,6 +2037,30 @@ SNG is implemented by a compiler/decompiler called sng that losslessly translates between SNG and PNG.") (license license:zlib))) +(define-public blurhash+ (package+ (name "blurhash")+ (version "0.0.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/Nheko-Reborn/blurhash")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))+ (build-system meson-build-system)+ (native-inputs+ `(("cmake" ,cmake)+ ("doctest" ,doctest)+ ("gcc" ,gcc-8)))+ (home-page "https://github.com/Nheko-Reborn/blurhash")+ (synopsis "C++ blurhash encoder/decoder")+ (description "Simple encoder and decoder for blurhashes. Contains a+command line program as well as a shared library.")+ (license license:boost1.0)))+ (define-public lodepng ;; There are no tags in the repository, so we take the version as defined in ;; lodepng.cpp.-- 2.31.1
From a843f4b89ceaa1bf9d269ff3037f948bb0edbd47 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 19:23:17 +0100Subject: [PATCH v4 3/4] gnu: Add single-application-qt5.
* gnu/packages/qt.scm (single-application-qt5): New variable.--- gnu/packages/qt.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+)
Toggle diff (76 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex b206deaeba..c9eef185c9 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -21,6 +21,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -1806,6 +1807,61 @@ using the Chromium browser project. The Chromium source code has Google service and binaries removed, and adds modular support for using system libraries.") (license license:lgpl2.1+))) +(define-public single-application-qt5+ ;; Change in function signature, nheko requires at least this commit+ (let ((commit "dc8042b5db58f36e06ba54f16f38b16c5eea9053"))+ (package+ (name "single-application-qt5")+ (version (string-append "3.2.0-" (string-take commit 7)))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/itay-grudev/SingleApplication")+ (commit commit)))+ (file-name (git-file-name name version))+ (sha256+ (base32+ "163aa2x2qb0h8w26si5ql833ilj427jjbdwlz1p2p8iaq6dh0vq1"))))+ (build-system cmake-build-system)+ (arguments+ `(#:tests? #f ; no check target+ ;; Projects can decide how to build this library. You might need to+ ;; override this flag (QApplication, QGuiApplication or+ ;; QCoreApplication).+ #:configure-flags '("-DQAPPLICATION_CLASS=QApplication")+ #:phases+ (modify-phases %standard-phases+ ;; No install target, install things manually+ (replace 'install+ (lambda* (#:key inputs outputs source #:allow-other-keys)+ (let* ((qt (assoc-ref inputs "qtbase"))+ (qt-version ,(version-major (package-version qt)))+ (out (assoc-ref outputs "out")))+ (install-file+ "libSingleApplication.a" (string-append out "/lib"))+ (for-each+ (lambda (file)+ (install-file+ (string-append source "/" file)+ (string-append out "/include")))+ '("SingleApplication"+ "singleapplication.h" "singleapplication_p.h"))+ #t))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (home-page "https://github.com/itay-grudev/SingleApplication")+ (synopsis "Replacement of QtSingleApplication for Qt5 and Qt6")+ (description+ "SingleApplication is a replacement of the QtSingleApplication for Qt5 and Qt6.++nKeeps the Primary Instance of your Application and kills each subsequent+instances. It can (if enabled) spawn secondary (non-related to the primary)+instances and can send data to the primary instance from secondary+instances.")+ (license license:expat))))+ (define-public python-sip (package (name "python-sip")-- 2.31.1
From 03aed56b74489ff6f626257b6d653aeecc7c8e6a Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:54:55 +0100Subject: [PATCH v4 4/4] gnu: nheko: Update to 0.8.2.
* gnu/packages/messaging.scm (nheko): Update to 0.8.2.[source snippet]: Remove third_party folder.[arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phasewrap-program and unbundle-dependencies.[inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain,and unbundle blurhash, cpp-httplib and single-application, remove tweeny.[native-inputs]: Add doxygen, graphviz used to build documentation.[description]: Simplify by removing the long list, add new features.(mtxclient): Update to 0.5.1.[arguments]: Remove set-home phase.* gnu/packages/databases.scm (lmdbxx): Update to 1.0.0.[source]: Change repository to a fork required by nheko.[home-page]: Update accordingly.--- gnu/packages/databases.scm | 10 ++--- gnu/packages/messaging.scm | 91 ++++++++++++++++++++++---------------- 2 files changed, 57 insertions(+), 44 deletions(-)
Toggle diff (215 lines)diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scmindex f9e63f3722..88d5120f2e 100644--- a/gnu/packages/databases.scm+++ b/gnu/packages/databases.scm@@ -39,7 +39,7 @@ ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>-;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>@@ -2437,16 +2437,16 @@ virtual address space — not physical RAM.") (define-public lmdbxx (package (name "lmdbxx")- (version "0.9.14.0")+ (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference- (url "https://github.com/drycpp/lmdbxx")+ (url "https://github.com/hoytech/lmdbxx") (commit version))) (file-name (git-file-name name version)) (sha256- (base32 "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))+ (base32 "12k5rz74d1l0skcks9apry1svkl96g9lf5dcgylgjmh7v1jm0b7c")))) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))@@ -2455,7 +2455,7 @@ virtual address space — not physical RAM.") (delete 'configure)))) (build-system gnu-build-system) (inputs `(("lmdb" ,lmdb)))- (home-page "http://lmdbxx.sourceforge.net")+ (home-page "https://github.com/hoytech/lmdbxx") (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-checkeddiff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex c356498fd2..b8bb172020 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -18,7 +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>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>@@ -2250,7 +2250,7 @@ QMatrixClient project.") (define-public mtxclient (package (name "mtxclient")- (version "0.3.1")+ (version "0.5.1") (source (origin (method git-fetch)@@ -2259,7 +2259,7 @@ QMatrixClient project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))+ (base32 "1xznfx2bhw0ahwmkxm0rs05vz05ijk5k4190rj6qp3bvb9byiajh")))) (arguments `(#:configure-flags (list@@ -2272,12 +2272,6 @@ QMatrixClient project.") (substitute* "CMakeLists.txt" (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)") "# 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@@ -2300,7 +2294,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (define-public nheko (package (name "nheko")- (version "0.7.2")+ (version "0.8.2") (source (origin (method git-fetch)@@ -2309,30 +2303,60 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))+ (base32 "0362hkbprc6jqlgmvzwxyvify4b1ldjakyqdz55m25xsypbpv2f3"))+ (modules '((guix build utils)))+ (snippet+ '(begin+ (delete-file-recursively "third_party"))))) (arguments `(#:tests? #f ;no test target #:configure-flags- (list- "-DCMAKE_BUILD_TYPE=Release"- "-DCMAKE_CXX_FLAGS=-fpermissive")+ '("-DCMAKE_BUILD_TYPE=Release"+ "-DBUILD_DOCS=ON"+ ;; Fix required because we are using a static SingleApplication+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "+ ;; Compile Qml will make Nheko faster, but you will need to recompile+ ;; it, when you update Qt. That's fine for us.+ "-DCOMPILE_QML=ON") #:phases (modify-phases %standard-phases- (add-after 'unpack 'remove-Werror- (lambda _- (substitute* "CMakeLists.txt"- (("-Werror") ""))- #t))+ (add-after 'unpack 'unbundle-dependencies+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((single-app (assoc-ref inputs "single-application")))+ (substitute* "CMakeLists.txt"+ ;; Remove include and source dirs,replace with the correct one+ (("third_party/blurhash/blurhash.cpp") "")+ (("third_party/cpp-httplib-0.5.12")+ (string-append "\"" single-app "/include\""))+ (("add_subdirectory.*third_party/SingleApplication.*") "")+ ;; Link using the correct static/shared libs+ (("SingleApplication::SingleApplication")+ (string-append+ ;; Dynamic libraries+ "httplib" "\n" "blurhash" "\n"+ ;; Static library+ single-app "/lib/libSingleApplication.a")))))) (add-after 'unpack 'fix-determinism (lambda _ ;; Make Qt deterministic.- (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")- #t)))))+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")))+ (add-after 'install 'wrap-program+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))+ (wrap-program (string-append out "/bin/nheko")+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))))))) (build-system qt-build-system) (inputs `(("boost" ,boost)+ ("blurhash" ,blurhash)+ ("cpp-httplib" ,cpp-httplib) ("cmark" ,cmark)+ ("gst-plugins-base" ,gst-plugins-base)+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for voip+ ("gst-plugins-good" ,gst-plugins-good) ; rtpmanager for voip ("json-modern-cxx" ,json-modern-cxx)+ ("libnice" ,libnice) ; for voip ("libolm" ,libolm) ("lmdb" ,lmdb) ("lmdbxx" ,lmdbxx)@@ -2340,15 +2364,18 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("openssl" ,openssl) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) ("spdlog" ,spdlog)- ("tweeny" ,tweeny)+ ("single-application" ,single-application-qt5) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)+ `(("doxygen" ,doxygen)+ ("graphviz" ,graphviz)+ ("pkg-config" ,pkg-config) ("qtlinguist" ,qttools))) (home-page "https://github.com/Nheko-Reborn/nheko") (synopsis "Desktop client for Matrix using Qt and C++14")@@ -2356,22 +2383,8 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") 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")+Many matrix features are supported, including user registration, rooms, typing+notification, emojis, E2E encryption, and voip calls.") (license license:gpl3+))) (define-public quaternion-- 2.31.1
M
M
Maxime Devos wrote on 27 Apr 20:09 +0200
0d873a1e5f8db448e279d558d9f6845e161cccb7.camel@telenet.be
Nicolò Balzarotti schreef op di 27-04-2021 om 15:56 [+0200]:
Toggle quote (5 lines)> + (synopsis "C++ header-only HTTP/HTTPS server and client library")> + (description "cpp-httplib is a C++11 single-file header-only cross> +platform blocking HTTP/HTTPS library, easy to setup. Just include the> +@file{httplib.h} file in your code!")
This is a little misleading, as shared libraries are build, as BUILD_SHARED_LIBSis enabled. Maybe "cpp-http is a single-file header-only library" -->"cpp-http can be used as a single-file header-only library"?
About ‘header-only’: this is true, but ultimately irrelevant to the user(= C++ developer on a Guix System or using Guix on top of a foreign distro).But there's also a desirable thing called ‘portability’, the user might besearching for a single-header web server software to distribute to otherpeople (not on Guix) in source form ...
I'm conflicted if "single-file header" should be included in the description.If you decide to remove it, I suggest you add a comment like
;; this package is not graftable, as everything is implemented in a single ;; header
to prevent trouble in a (admittedly somewhat far-fetched, no insult intendedto its developers) future where cpp-httplib becomes a very popular dependencyin Guix.
Toggle quote (9 lines)> + #:phases> + (modify-phases %standard-phases> + (replace 'check> + (lambda* (#:key source #:allow-other-keys)> + ;; openssl genrsa wants to write a file in the git checkout> + (copy-file (string-append source "/test") "test")> + (chmod "test" #o744)> + (invoke "make"))))))
Tests most likely should not be run when cross-compiling. I'm not 100% sure,but you might need to do something like
Toggle quote (4 lines)> + (lambda* (#:key tests? source #:allow-other-keys)> + ;; openssl genrsa wants to write a file in the git checkout> + (when tests?> + (copy-file
(string-append source "/test") "test")
Toggle quote (3 lines)> + (chmod "test" #o744)> + (invoke "make")))))))
Search for example for "when tests?" in gnu/packages/python-xyz.scm.
Toggle quote (2 lines)> + ("zlib" ,zlib)))
In https://github.com/yhirose/cpp-httplib/blob/master/httplib.h I seea few lines
#ifdef CPPHTTPLIB_ZLIB_SUPPORT #include <zlib.h> #endif
so it seems zlib should be in (inputs ...) instead.
I also saw these lines:
#ifdef CPPHTTPLIB_BROTLI_SUPPORT #include <brotli/decode.h> #include <brotli/encode.h> #endif
Would it be useful to include brotli?
#ifdef CPPHTTPLIB_OPENSSL_SUPPORT #include <openssl/err.h> #include <openssl/md5.h> ...
Likewise, for openssl?
Greetings,Maxime.
-----BEGIN PGP SIGNATURE-----
iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYIhTRBccbWF4aW1lZGV2b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vk4AQDTpwkB30S1On0jKIQEbcdCWT4ueEqjY2juhlzJibCa6QEApqJrVdZepIHcGbb3A/KgU69qUJh7XDBl1KSHAqDUOg8==uVKs-----END PGP SIGNATURE-----

N
N
Nicolò Balzarotti wrote on 27 Apr 23:00 +0200
87eeevqw7t.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me
Hi Maxime, many thanks for the review!
Maxime Devos <maximedevos@telenet.be> writes:
Toggle quote (11 lines)> Nicolò Balzarotti schreef op di 27-04-2021 om 15:56 [+0200]:>> + (synopsis "C++ header-only HTTP/HTTPS server and client library")>> + (description "cpp-httplib is a C++11 single-file header-only cross>> +platform blocking HTTP/HTTPS library, easy to setup. Just include the>> +@file{httplib.h} file in your code!")>> This is a little misleading, as shared libraries are build, as BUILD_SHARED_LIBS> is enabled. Maybe "cpp-http is a single-file header-only library" -->> "cpp-http can be used as a single-file header-only > library"?>
I removed it from the synopsis, and reworded the description to: 1. makeit sound less like marketing, and keeping the single-header thing as a bonus.
Toggle quote (16 lines)> About ‘header-only’: this is true, but ultimately irrelevant to the user> (= C++ developer on a Guix System or using Guix on top of a foreign distro).> But there's also a desirable thing called ‘portability’, the user might be> searching for a single-header web server software to distribute to other> people (not on Guix) in source form ...>> I'm conflicted if "single-file header" should be included in the description.> If you decide to remove it, I suggest you add a comment like>> ;; this package is not graftable, as everything is implemented in a single> ;; header>> to prevent trouble in a (admittedly somewhat far-fetched, no insult intended> to its developers) future where cpp-httplib becomes a very popular dependency> in Guix.>
I don't know enought about grafts, so I trust you on that. I did notknow where to put the comment, so I added it at the very top.
I also noticed that this was updated since last time, so I updated it to0.8.8 (latest tagged version).
Toggle quote (22 lines)>> + #:phases>> + (modify-phases %standard-phases>> + (replace 'check>> + (lambda* (#:key source #:allow-other-keys)>> + ;; openssl genrsa wants to write a file in the git checkout>> + (copy-file (string-append source "/test") "test")>> + (chmod "test" #o744)>> + (invoke "make"))))))>> Tests most likely should not be run when cross-compiling.
> I'm not 100% sure, but you might need to do something like>>> + (lambda* (#:key tests? source #:allow-other-keys)>> + ;; openssl genrsa wants to write a file in the git checkout>> + (when tests?>> + (copy-file> (string-append source "/test") "test")>> + (chmod "test" #o744)>> + (invoke "make")))))))>
Didn't think about that, I wrapped it in a `when tests?` (and added`tests?` as argument to the lambda) as you suggested. I also changed ita bit making it more clear. There are now tests requiring networkaccess, so I disabled them.
Toggle quote (28 lines)>>> + ("zlib" ,zlib)))>> In <https://github.com/yhirose/cpp-httplib/blob/master/httplib.h> I see> a few lines>> #ifdef CPPHTTPLIB_ZLIB_SUPPORT> #include <zlib.h>> #endif>> so it seems zlib should be in (inputs ...) instead.>
> I also saw these lines:>> #ifdef CPPHTTPLIB_BROTLI_SUPPORT> #include <brotli/decode.h>> #include <brotli/encode.h>> #endif>> Would it be useful to include brotli?>> #ifdef CPPHTTPLIB_OPENSSL_SUPPORT> #include <openssl/err.h>> #include <openssl/md5.h>> ...>> Likewise, for openssl?
Sure, added brotli and moved openssl to inputs. I also aadded the"HTTPLIB_REQUIRE_" flags just to be sure they are used int the build.They shouldn't be needed as HTTPLIB_USE_*_IF_AVAILABLE defaults to ON,but if they change default we are covered.

Regarding why openssl and zlib were in native-inputs, this is (probably)how it went: I built it without openssl, tests failed to run because thecommand openssl was required to generate a certificate, so I added it tonative-inputs. Then probably I added zlib not noticing I placed itunder native-inputs, at least that's how I think it went.
nheko still builds and run, so here the v5 of the series.
Toggle quote (4 lines)>> Greetings,> Maxime.
Thanks, Nicolò
From 5ea66aa57f81976d39c60f59357ddf6027fadabb Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:44:04 +0100Subject: [PATCH v5 1/4] gnu: Add cpp-httplib.
* gnu/packages/cpp.scm (cpp-httplib): New variable.--- gnu/packages/cpp.scm | 63 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-)
Toggle diff (90 lines)diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scmindex 58345e7c33..307e5c3028 100644--- a/gnu/packages/cpp.scm+++ b/gnu/packages/cpp.scm@@ -18,7 +18,7 @@ ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>-+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -65,6 +65,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl)+ #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print)@@ -555,6 +556,66 @@ tools: @end itemize\n") (license license:bsd-3))) +(define-public cpp-httplib+ ;; this package is not graftable, as everything is implemented in a single+ ;; header+ (package+ (name "cpp-httplib")+ (version "0.8.8")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/yhirose/cpp-httplib")+ (commit (string-append "v" version))))+ (sha256+ (base32 "0c0gyfbvm34bgrqy9fhfxw1f8nb9zhf063j7xq91k892flb7qm1c"))+ (file-name (git-file-name name version))))+ (build-system cmake-build-system)+ (arguments+ `(#:configure-flags+ '("-DBUILD_SHARED_LIBS=ON"+ "-DHTTPLIB_COMPILE=ON"+ "-DHTTPLIB_REQUIRE_BROTLI=ON"+ "-DHTTPLIB_REQUIRE_OPENSSL=ON"+ "-DHTTPLIB_REQUIRE_ZLIB=ON")+ #:phases+ (modify-phases %standard-phases+ (add-after 'unpack 'disable-network-tests+ (lambda _+ (for-each+ (lambda (test)+ (substitute* "test/test.cc"+ (((string-append "\\(" test))+ (string-append "(DISABLED_" test))))+ ;; There are tests requiring network access, disable them+ '("AbsoluteRedirectTest" "BaseAuthTest" "CancelTest"+ "ChunkedEncodingTest" "ChunkedEncodingTest"+ "DecodeWithChunkedEncoding" "DefaultHeadersTest"+ "DigestAuthTest" "HttpsToHttpRedirectTest"+ "RangeTest" "RedirectTest" "RelativeRedirectTest"+ "SSLClientTest" "SendAPI" "TooManyRedirectTest" "UrlWithSpace"+ "YahooRedirectTest" "YahooRedirectTest"))))+ (replace 'check+ (lambda* (#:key source tests? #:allow-other-keys)+ ;; openssl genrsa wants to write a file in the git checkout+ (when tests?+ (with-directory-excursion "../source/test"+ (invoke "make"))))))))+ (native-inputs+ ;; required to build shared lib+ `(("python" ,python)))+ (inputs+ `(("brotli" ,brotli)+ ("openssl" ,openssl)+ ("zlib" ,zlib)))+ (home-page "https://github.com/yhirose/cpp-httplib")+ (synopsis "C++ HTTP/HTTPS server and client library")+ (description "cpp-httplib is a C++11 single-file cross platform blocking+HTTP/HTTPS library, easy to setup. It can also be used as a single-header+library.")+ (license license:expat)))+ (define-public cpplint (package (name "cpplint")-- 2.31.1
From f2982d9f3a8f6fcf66950ed78259125f3750ca08 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 17:56:04 +0100Subject: [PATCH v5 2/4] gnu: Add blurhash.
* gnu/packages/image.scm (blurhash): New variable.--- gnu/packages/image.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
Toggle diff (53 lines)diff --git a/gnu/packages/image.scm b/gnu/packages/image.scmindex d0c12016ca..a12d067ed7 100644--- a/gnu/packages/image.scm+++ b/gnu/packages/image.scm@@ -29,6 +29,7 @@ ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -60,6 +61,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext)+ #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gimp) #:use-module (gnu packages gl)@@ -2035,6 +2037,30 @@ SNG is implemented by a compiler/decompiler called sng that losslessly translates between SNG and PNG.") (license license:zlib))) +(define-public blurhash+ (package+ (name "blurhash")+ (version "0.0.1")+ (source+ (origin+ (method git-fetch)+ (uri (git-reference+ (url "https://github.com/Nheko-Reborn/blurhash")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))+ (build-system meson-build-system)+ (native-inputs+ `(("cmake" ,cmake)+ ("doctest" ,doctest)+ ("gcc" ,gcc-8)))+ (home-page "https://github.com/Nheko-Reborn/blurhash")+ (synopsis "C++ blurhash encoder/decoder")+ (description "Simple encoder and decoder for blurhashes. Contains a+command line program as well as a shared library.")+ (license license:boost1.0)))+ (define-public lodepng ;; There are no tags in the repository, so we take the version as defined in ;; lodepng.cpp.-- 2.31.1
From a709f28a8dacd890a46eb848bbf6b42efaa6a447 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 20 Jan 2021 19:23:17 +0100Subject: [PATCH v5 3/4] gnu: Add single-application-qt5.
* gnu/packages/qt.scm (single-application-qt5): New variable.--- gnu/packages/qt.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+)
Toggle diff (76 lines)diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scmindex b206deaeba..c9eef185c9 100644--- a/gnu/packages/qt.scm+++ b/gnu/packages/qt.scm@@ -21,6 +21,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>+;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;;@@ -1806,6 +1807,61 @@ using the Chromium browser project. The Chromium source code has Google service and binaries removed, and adds modular support for using system libraries.") (license license:lgpl2.1+))) +(define-public single-application-qt5+ ;; Change in function signature, nheko requires at least this commit+ (let ((commit "dc8042b5db58f36e06ba54f16f38b16c5eea9053"))+ (package+ (name "single-application-qt5")+ (version (string-append "3.2.0-" (string-take commit 7)))+ (source+ (origin+ (method git-fetch)+ (uri+ (git-reference+ (url "https://github.com/itay-grudev/SingleApplication")+ (commit commit)))+ (file-name (git-file-name name version))+ (sha256+ (base32+ "163aa2x2qb0h8w26si5ql833ilj427jjbdwlz1p2p8iaq6dh0vq1"))))+ (build-system cmake-build-system)+ (arguments+ `(#:tests? #f ; no check target+ ;; Projects can decide how to build this library. You might need to+ ;; override this flag (QApplication, QGuiApplication or+ ;; QCoreApplication).+ #:configure-flags '("-DQAPPLICATION_CLASS=QApplication")+ #:phases+ (modify-phases %standard-phases+ ;; No install target, install things manually+ (replace 'install+ (lambda* (#:key inputs outputs source #:allow-other-keys)+ (let* ((qt (assoc-ref inputs "qtbase"))+ (qt-version ,(version-major (package-version qt)))+ (out (assoc-ref outputs "out")))+ (install-file+ "libSingleApplication.a" (string-append out "/lib"))+ (for-each+ (lambda (file)+ (install-file+ (string-append source "/" file)+ (string-append out "/include")))+ '("SingleApplication"+ "singleapplication.h" "singleapplication_p.h"))+ #t))))))+ (inputs+ `(("qtbase" ,qtbase)))+ (home-page "https://github.com/itay-grudev/SingleApplication")+ (synopsis "Replacement of QtSingleApplication for Qt5 and Qt6")+ (description+ "SingleApplication is a replacement of the QtSingleApplication for Qt5 and Qt6.++nKeeps the Primary Instance of your Application and kills each subsequent+instances. It can (if enabled) spawn secondary (non-related to the primary)+instances and can send data to the primary instance from secondary+instances.")+ (license license:expat))))+ (define-public python-sip (package (name "python-sip")-- 2.31.1
From 2564b19691b0721407ee48f90de18353796278d0 Mon Sep 17 00:00:00 2001From: nixo <nicolo@nixo.xyz>Date: Wed, 27 Jan 2021 23:54:55 +0100Subject: [PATCH v5 4/4] gnu: nheko: Update to 0.8.2.
* gnu/packages/messaging.scm (nheko): Update to 0.8.2.[source snippet]: Remove third_party folder.[arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phasewrap-program and unbundle-dependencies.[inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain,and unbundle blurhash, cpp-httplib and single-application, remove tweeny.[native-inputs]: Add doxygen, graphviz used to build documentation.[description]: Simplify by removing the long list, add new features.(mtxclient): Update to 0.5.1.[arguments]: Remove set-home phase.* gnu/packages/databases.scm (lmdbxx): Update to 1.0.0.[source]: Change repository to a fork required by nheko.[home-page]: Update accordingly.--- gnu/packages/databases.scm | 10 ++--- gnu/packages/messaging.scm | 91 ++++++++++++++++++++++---------------- 2 files changed, 57 insertions(+), 44 deletions(-)
Toggle diff (215 lines)diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scmindex f9e63f3722..88d5120f2e 100644--- a/gnu/packages/databases.scm+++ b/gnu/packages/databases.scm@@ -39,7 +39,7 @@ ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>-;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>@@ -2437,16 +2437,16 @@ virtual address space — not physical RAM.") (define-public lmdbxx (package (name "lmdbxx")- (version "0.9.14.0")+ (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference- (url "https://github.com/drycpp/lmdbxx")+ (url "https://github.com/hoytech/lmdbxx") (commit version))) (file-name (git-file-name name version)) (sha256- (base32 "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))+ (base32 "12k5rz74d1l0skcks9apry1svkl96g9lf5dcgylgjmh7v1jm0b7c")))) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))@@ -2455,7 +2455,7 @@ virtual address space — not physical RAM.") (delete 'configure)))) (build-system gnu-build-system) (inputs `(("lmdb" ,lmdb)))- (home-page "http://lmdbxx.sourceforge.net")+ (home-page "https://github.com/hoytech/lmdbxx") (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-checkeddiff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scmindex c356498fd2..b8bb172020 100644--- a/gnu/packages/messaging.scm+++ b/gnu/packages/messaging.scm@@ -18,7 +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>+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>@@ -2250,7 +2250,7 @@ QMatrixClient project.") (define-public mtxclient (package (name "mtxclient")- (version "0.3.1")+ (version "0.5.1") (source (origin (method git-fetch)@@ -2259,7 +2259,7 @@ QMatrixClient project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x"))))+ (base32 "1xznfx2bhw0ahwmkxm0rs05vz05ijk5k4190rj6qp3bvb9byiajh")))) (arguments `(#:configure-flags (list@@ -2272,12 +2272,6 @@ QMatrixClient project.") (substitute* "CMakeLists.txt" (("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)") "# 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@@ -2300,7 +2294,7 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (define-public nheko (package (name "nheko")- (version "0.7.2")+ (version "0.8.2") (source (origin (method git-fetch)@@ -2309,30 +2303,60 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256- (base32 "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s"))))+ (base32 "0362hkbprc6jqlgmvzwxyvify4b1ldjakyqdz55m25xsypbpv2f3"))+ (modules '((guix build utils)))+ (snippet+ '(begin+ (delete-file-recursively "third_party"))))) (arguments `(#:tests? #f ;no test target #:configure-flags- (list- "-DCMAKE_BUILD_TYPE=Release"- "-DCMAKE_CXX_FLAGS=-fpermissive")+ '("-DCMAKE_BUILD_TYPE=Release"+ "-DBUILD_DOCS=ON"+ ;; Fix required because we are using a static SingleApplication+ "-DCMAKE_CXX_FLAGS= \"-DQAPPLICATION_CLASS=QApplication\" "+ ;; Compile Qml will make Nheko faster, but you will need to recompile+ ;; it, when you update Qt. That's fine for us.+ "-DCOMPILE_QML=ON") #:phases (modify-phases %standard-phases- (add-after 'unpack 'remove-Werror- (lambda _- (substitute* "CMakeLists.txt"- (("-Werror") ""))- #t))+ (add-after 'unpack 'unbundle-dependencies+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((single-app (assoc-ref inputs "single-application")))+ (substitute* "CMakeLists.txt"+ ;; Remove include and source dirs,replace with the correct one+ (("third_party/blurhash/blurhash.cpp") "")+ (("third_party/cpp-httplib-0.5.12")+ (string-append "\"" single-app "/include\""))+ (("add_subdirectory.*third_party/SingleApplication.*") "")+ ;; Link using the correct static/shared libs+ (("SingleApplication::SingleApplication")+ (string-append+ ;; Dynamic libraries+ "httplib" "\n" "blurhash" "\n"+ ;; Static library+ single-app "/lib/libSingleApplication.a")))))) (add-after 'unpack 'fix-determinism (lambda _ ;; Make Qt deterministic.- (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")- #t)))))+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")))+ (add-after 'install 'wrap-program+ (lambda* (#:key inputs outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))+ (wrap-program (string-append out "/bin/nheko")+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))))))) (build-system qt-build-system) (inputs `(("boost" ,boost)+ ("blurhash" ,blurhash)+ ("cpp-httplib" ,cpp-httplib) ("cmark" ,cmark)+ ("gst-plugins-base" ,gst-plugins-base)+ ("gst-plugins-bad" ,gst-plugins-bad) ; sdp & webrtc for voip+ ("gst-plugins-good" ,gst-plugins-good) ; rtpmanager for voip ("json-modern-cxx" ,json-modern-cxx)+ ("libnice" ,libnice) ; for voip ("libolm" ,libolm) ("lmdb" ,lmdb) ("lmdbxx" ,lmdbxx)@@ -2340,15 +2364,18 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") ("openssl" ,openssl) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative)+ ("qtkeychain" ,qtkeychain) ("qtgraphicaleffects" ,qtgraphicaleffects) ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) ("spdlog" ,spdlog)- ("tweeny" ,tweeny)+ ("single-application" ,single-application-qt5) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)+ `(("doxygen" ,doxygen)+ ("graphviz" ,graphviz)+ ("pkg-config" ,pkg-config) ("qtlinguist" ,qttools))) (home-page "https://github.com/Nheko-Reborn/nheko") (synopsis "Desktop client for Matrix using Qt and C++14")@@ -2356,22 +2383,8 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") 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")+Many matrix features are supported, including user registration, rooms, typing+notification, emojis, E2E encryption, and voip calls.") (license license:gpl3+))) (define-public quaternion-- 2.31.1
L
L
Ludovic Courtès wrote on 3 Sep 22:07 +0200
Re: bug#46012: Upgrade Nheko
(name . Nicolò Balzarotti)(address . anothersms@gmail.com)
87y28dzamc.fsf_-_@gnu.org
Hi Nicolò,
Nicolò Balzarotti <anothersms@gmail.com> skribis:
Toggle quote (7 lines)>>From 5ea66aa57f81976d39c60f59357ddf6027fadabb Mon Sep 17 00:00:00 2001> From: nixo <nicolo@nixo.xyz>> Date: Wed, 27 Jan 2021 23:44:04 +0100> Subject: [PATCH v5 1/4] gnu: Add cpp-httplib.>> * gnu/packages/cpp.scm (cpp-httplib): New variable.
[...]
Toggle quote (7 lines)>>From f2982d9f3a8f6fcf66950ed78259125f3750ca08 Mon Sep 17 00:00:00 2001> From: nixo <nicolo@nixo.xyz>> Date: Wed, 20 Jan 2021 17:56:04 +0100> Subject: [PATCH v5 2/4] gnu: Add blurhash.>> * gnu/packages/image.scm (blurhash): New variable.
[...]
Toggle quote (7 lines)>>From a709f28a8dacd890a46eb848bbf6b42efaa6a447 Mon Sep 17 00:00:00 2001> From: nixo <nicolo@nixo.xyz>> Date: Wed, 20 Jan 2021 19:23:17 +0100> Subject: [PATCH v5 3/4] gnu: Add single-application-qt5.> > * gnu/packages/qt.scm (single-application-qt5): New variable.
[...]
Toggle quote (19 lines)>>From 2564b19691b0721407ee48f90de18353796278d0 Mon Sep 17 00:00:00 2001> From: nixo <nicolo@nixo.xyz>> Date: Wed, 27 Jan 2021 23:54:55 +0100> Subject: [PATCH v5 4/4] gnu: nheko: Update to 0.8.2.>> * gnu/packages/messaging.scm (nheko): Update to 0.8.2.> [source snippet]: Remove third_party folder.> [arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phase> wrap-program and unbundle-dependencies.> [inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain,> and unbundle blurhash, cpp-httplib and single-application, remove tweeny.> [native-inputs]: Add doxygen, graphviz used to build documentation.> [description]: Simplify by removing the long list, add new features.> (mtxclient): Update to 0.5.1.> [arguments]: Remove set-home phase.> * gnu/packages/databases.scm (lmdbxx): Update to 1.0.0.> [source]: Change repository to a fork required by nheko.> [home-page]: Update accordingly.
I’m really sorry that it took 7 months (!), but I’ve now applied thisseries. I had to tweak ‘single-application-qt5’ to adjust it to theqtbase -> qtbase-5 rename, but that’s about it.
Thank you, and thanks Maxime for the review—much appreciated, as always!
Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 46012@debbugs.gnu.org