diff mbox series

[bug#46013] gnu: nheko: Update to 0.8.0.

Message ID 20210121010323.3172-1-mike@rohleder.de
State Accepted
Headers show
Series [bug#46013] gnu: nheko: Update to 0.8.0. | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Michael Rohleder Jan. 21, 2021, 1:03 a.m. UTC
* 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(-)

Comments

Jonathan Brielmaier Jan. 21, 2021, 7:13 a.m. UTC | #1
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 ...
Nicolò Balzarotti Jan. 21, 2021, 8:38 a.m. UTC | #2
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
Michael Rohleder Jan. 21, 2021, 7:58 p.m. UTC | #3
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)
Michael Rohleder Jan. 21, 2021, 7:59 p.m. UTC | #4
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.
diff mbox series

Patch

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+)))