all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0.
@ 2021-01-21  1:03 Michael Rohleder
  2021-01-21  7:13 ` Jonathan Brielmaier
  2021-01-21  8:38 ` [bug#46013] " Nicolò Balzarotti
  0 siblings, 2 replies; 6+ messages in thread
From: Michael Rohleder @ 2021-01-21  1:03 UTC (permalink / raw)
  To: 46013

* gnu/packages/messaging.scm (nheko): Update to 0.8.0.
[arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phase wrap-program.
[inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain.
[description]: Add items for new features.
(mtxclient): Update to 0.4.0.
[arguments]: Remove set-home phase.
---
This nheko needs a newer mtxclient (and current nheko doesn't build with new mtxclient),
so we need to update them together.

I tested voice calls (which seems to work), but couldn't get video calls to work:
"[ui] [error] Missing GStreamer plugins: opengl qmlgl" (at runtime)
Do we have these gstreamer plugins?

I think the new features and fixes are worth a push (voice over matrix is nice and
enough for me) and perhaps the video thing can be fixed later on (I leaved it out of the
description).

(Hint for people upgrading from current nheko: One needs to remove ~/.config/nheko
and ~/.cache/nheko or this version will segfault.  This known upstream (and afaik won't
be fixed))

 gnu/packages/messaging.scm | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 1820a146d1..b3a34fb4cb 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -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
@@ -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.0")
     (source
      (origin
        (method git-fetch)
@@ -2286,30 +2280,34 @@ 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"))))
     (arguments
      `(#:tests? #f                      ;no test target
        #:configure-flags
        (list
-        "-DCMAKE_BUILD_TYPE=Release"
-        "-DCMAKE_CXX_FLAGS=-fpermissive")
+        "-DCMAKE_BUILD_TYPE=Release")
        #: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)))))
+             #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)
        ("cmark" ,cmark)
+       ("gst-plugins-base" ,gst-plugins-base) ;for voip
+       ("gst-plugins-bad" ,gst-plugins-bad)   ;for voip
        ("json-modern-cxx" ,json-modern-cxx)
+       ("libnice" ,libnice)             ;for voip
        ("libolm" ,libolm)
        ("lmdb" ,lmdb)
        ("lmdbxx" ,lmdbxx)
@@ -2318,6 +2316,7 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtkeychain" ,qtkeychain)
        ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols2" ,qtquickcontrols2)
        ("qtsvg" ,qtsvg)
@@ -2336,10 +2335,12 @@ client.
 There is support for:
 @itemize
 @item E2E encryption (text messages only: attachments are currently sent unencrypted).
+@item VoIP calls (voice).
 @item User registration.
 @item Creating, joining & leaving rooms.
 @item Sending & receiving invites.
 @item Sending & receiving files and emoji.
+@item Replies with text, images and other media.
 @item Typing notifications.
 @item Username auto-completion.
 @item Message & mention notifications.
@@ -2348,6 +2349,7 @@ There is support for:
 @item Basic communities support.
 @item Room switcher (@key{ctrl-K}).
 @item Light, Dark & System themes.
+@item Creating seperate profiles (command line only, use -p).
 @end itemize")
     (license license:gpl3+)))
 
-- 
2.30.0





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

* [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0.
  2021-01-21  1:03 [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0 Michael Rohleder
@ 2021-01-21  7:13 ` Jonathan Brielmaier
  2021-01-21 19:59   ` bug#46013: " Michael Rohleder
  2021-01-21  8:38 ` [bug#46013] " Nicolò Balzarotti
  1 sibling, 1 reply; 6+ messages in thread
From: Jonathan Brielmaier @ 2021-01-21  7:13 UTC (permalink / raw)
  To: 46013

On 21.01.21 02:03, Michael Rohleder wrote:
> * gnu/packages/messaging.scm (nheko): Update to 0.8.0.
> [arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phase wrap-program.
> [inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain.
> [description]: Add items for new features.
> (mtxclient): Update to 0.4.0.
> [arguments]: Remove set-home phase.

Nicolo did almost the same in http://issues.guix.gnu.org/46012 ...




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

* [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0.
  2021-01-21  1:03 [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0 Michael Rohleder
  2021-01-21  7:13 ` Jonathan Brielmaier
@ 2021-01-21  8:38 ` Nicolò Balzarotti
  2021-01-21 19:58   ` Michael Rohleder
  1 sibling, 1 reply; 6+ messages in thread
From: Nicolò Balzarotti @ 2021-01-21  8:38 UTC (permalink / raw)
  To: Michael Rohleder, 46013

Michael Rohleder <mike@rohleder.de> writes:

> * gnu/packages/messaging.scm (nheko): Update to 0.8.0.
>
Hi! As Jonathan already noted, I did upgrade nheko too.

> (Hint for people upgrading from current nheko: One needs to remove ~/.config/nheko
> and ~/.cache/nheko or this version will segfault.  This known upstream (and afaik won't
> be fixed))
>
I reported an issue upstream [1], and it seems the problem is with disk
cache (as you noted, you are removing .cache/nheko) and the proper fix
is to add "-DCOMPILE_QML=ON".  

> +       ("libnice" ,libnice)             ;for voip

I found it in the readme, but not in the cmake file, is this needed?

> +@item VoIP calls (voice).
> +@item Replies with text, images and other media.
> +@item Creating seperate profiles (command line only, use -p).

Ops, I forgot to add them.  Maybe as we are doing with other packages,
this list should be converted into a simplier description.

>      (license license:gpl3+)))

During this upgrade, I noticed 3 bundled libraries (two of them released
under expat.  So this should be changed.  But if you want to take over
my patches and submit a new one integrating my changes (mainly
unvendoring the dependencies), this would be great.

Thanks, Nicolò

[1] https://github.com/Nheko-Reborn/nheko/issues/390





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

* [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0.
  2021-01-21  8:38 ` [bug#46013] " Nicolò Balzarotti
@ 2021-01-21 19:58   ` Michael Rohleder
  2021-01-21 20:45     ` Nicolò Balzarotti
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Rohleder @ 2021-01-21 19:58 UTC (permalink / raw)
  To: Nicolò Balzarotti; +Cc: 46013

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

Hi Nicolo!

Nicolò Balzarotti <anothersms@gmail.com> writes:
> Hi! As Jonathan already noted, I did upgrade nheko too.

Yes.  Unfortunately, we "miss" each other only on some minutes ;)

>> (Hint for people upgrading from current nheko: One needs to remove ~/.config/nheko
>> and ~/.cache/nheko or this version will segfault.  This known upstream (and afaik won't
>> be fixed))
>>
> I reported an issue upstream [1], and it seems the problem is with disk
> cache (as you noted, you are removing .cache/nheko) and the proper fix
> is to add "-DCOMPILE_QML=ON".  

Ok.
(Hard to test for me now ;)

>> +       ("libnice" ,libnice)             ;for voip
>
> I found it in the readme, but not in the cmake file, is this needed?

Yes, otherwise voice calls don't work as the "nice" gst-plugin is loaded
at runtime.

>>      (license license:gpl3+)))
>
> During this upgrade, I noticed 3 bundled libraries (two of them released
> under expat.  So this should be changed.  But if you want to take over
> my patches and submit a new one integrating my changes (mainly
> unvendoring the dependencies), this would be great.

I think, it might be better to base on your patches to not complicate
things even more.

I think, the most important part missing in your patch is the wrapping
of the GST_PLUGIN variable.  Otherwise gstreamer/voip doen't work at all.
(But this could also be added after bumping, I guess)

-- 
Imagination is more important than knowledge  - Albert Einstein

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 511 bytes --]

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

* bug#46013: [PATCH] gnu: nheko: Update to 0.8.0.
  2021-01-21  7:13 ` Jonathan Brielmaier
@ 2021-01-21 19:59   ` Michael Rohleder
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Rohleder @ 2021-01-21 19:59 UTC (permalink / raw)
  To: Jonathan Brielmaier; +Cc: 46013-close

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

Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:

> On 21.01.21 02:03, Michael Rohleder wrote:
>> * gnu/packages/messaging.scm (nheko): Update to 0.8.0.
>> [arguments]: Remove -fpermissive flag, remove remove-Werror phase, add phase wrap-program.
>> [inputs]: Add gst-plugins-base, gst-plugins-bad, libnice, qtkeychain.
>> [description]: Add items for new features.
>> (mtxclient): Update to 0.4.0.
>> [arguments]: Remove set-home phase.
>
> Nicolo did almost the same in http://issues.guix.gnu.org/46012 ...
>

I'm sorry!

I think, he did this patch very differently and to make it easier for
everyone, I close this.

-- 
Testing can show the presense of bugs, but not their absence.
		-- Dijkstra

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 511 bytes --]

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

* [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0.
  2021-01-21 19:58   ` Michael Rohleder
@ 2021-01-21 20:45     ` Nicolò Balzarotti
  0 siblings, 0 replies; 6+ messages in thread
From: Nicolò Balzarotti @ 2021-01-21 20:45 UTC (permalink / raw)
  To: Michael Rohleder; +Cc: 46013

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

Michael Rohleder <mike@rohleder.de> writes:

> Hi Nicolo!

Hi Michael & all,

> I think, it might be better to base on your patches to not complicate
> things even more.
Done, I updated the copyright line for you, used your commit message
(updated accordingly).

> I think, the most important part missing in your patch is the wrapping
> of the GST_PLUGIN variable.  Otherwise gstreamer/voip doen't work at all.
> (But this could also be added after bumping, I guess)
With you wrapper phase (and adding gst-plugin-good) I got voip call
working!

For video calls, I get this:
> Missing GStreamer plugins: opengl qmlgl

But qmlgl should be in -good, so we should take a look at gstreamer to
check why it is not included.


[-- Attachment #2: v2-0001-gnu-Add-cpp-httplib.patch --]
[-- Type: text/x-patch, Size: 2730 bytes --]

From 38be202dce880dd77a5ce774c0c8877bed84975e Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Wed, 20 Jan 2021 10:08:20 +0100
Subject: [PATCH v2 1/4] gnu: Add cpp-httplib.

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

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 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


[-- Attachment #3: v2-0002-gnu-Add-blurhash.patch --]
[-- Type: text/x-patch, Size: 2268 bytes --]

From 8fb37dd519fcc7038e54cdc858310983e29770f1 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Wed, 20 Jan 2021 17:56:04 +0100
Subject: [PATCH v2 2/4] gnu: Add blurhash.

* gnu/packages/image.scm (blurhash): New variable.
---
 gnu/packages/image.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 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


[-- Attachment #4: v2-0003-gnu-Add-single-application-qt5.patch --]
[-- Type: text/x-patch, Size: 3649 bytes --]

From 4cb222f16727f74ecc1550d72c3d52b20ab0d20b Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Wed, 20 Jan 2021 19:23:17 +0100
Subject: [PATCH v2 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(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 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


[-- Attachment #5: v2-0004-gnu-nheko-Update-to-0.8.0.patch --]
[-- Type: text/x-patch, Size: 8592 bytes --]

From da2f4404144dac9930faa3031e48fd8aae9053d1 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Wed, 20 Jan 2021 18:00:51 +0100
Subject: [PATCH v2 4/4] gnu: nheko: Update to 0.8.0.

* gnu/packages/messaging.scm (nheko): Update to 0.8.0.

[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.
[native-inputs]: Add doxygen, graphviz used to build documentation.
[description]: Simplify by removing the long list, add new features.
(mtxclient): Update to 0.4.0.
[arguments]: Remove set-home phase.
---
 gnu/packages/messaging.scm | 92 +++++++++++++++++++++++---------------
 1 file changed, 55 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index c585326124..db41e436d7 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -18,13 +18,13 @@
 ;;; 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>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 Robert Karszniewicz <avoidr@posteo.de>
 ;;;
@@ -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
@@ -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.0")
     (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 "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 _
              ;; 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.29.2


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

end of thread, other threads:[~2021-01-21 20:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-21  1:03 [bug#46013] [PATCH] gnu: nheko: Update to 0.8.0 Michael Rohleder
2021-01-21  7:13 ` Jonathan Brielmaier
2021-01-21 19:59   ` bug#46013: " Michael Rohleder
2021-01-21  8:38 ` [bug#46013] " Nicolò Balzarotti
2021-01-21 19:58   ` Michael Rohleder
2021-01-21 20:45     ` Nicolò Balzarotti

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.