diff mbox series

[bug#38395] gnu: mumble: Update to 1.3.0.

Message ID 20191127014038.GD17004@sax.terramar.selidor.net
State Accepted
Headers show
Series [bug#38395] gnu: mumble: Update to 1.3.0. | expand

Commit Message

Ivan Vilata i Balaguer Nov. 27, 2019, 1:40 a.m. UTC
Hi!  This patch updates Mumble to 1.3.0.  It came about as a fix to
<https://issues.guix.gnu.org/issue/38054>, but I'm posting it here directly
since fixing that issue was just a byproduct of the version update.

Notes from the patch comment indicating other differences with the previous
package version:

> Besides the update in itself, bundled software components are enabled as
> long as they are not already implemented in an existing package (in which
> case the package is used instead).  Some comments were added to indicate why
> bundled software components are kept or removed, why features are disabled,
> and the reason to include each license.

Cheers!

Comments

Ivan Vilata i Balaguer Dec. 4, 2019, 8:17 p.m. UTC | #1
Is there anything still missing in the patch that I could work on for it to
get merged?  Thanks!
Christine Lemmer-Webber Dec. 4, 2019, 11:24 p.m. UTC | #2
Ivan Vilata i Balaguer writes:

> Is there anything still missing in the patch that I could work on for it to
> get merged?  Thanks!

Hi!

I tried getting it to run but I ran into errors compiling it.  But then
I didn't get around to posting what they were to the list and something
else came up and I don't remember what they were. :\

I can see if I can find time to look again soon but I can't promise
anything.
Efraim Flashner Dec. 5, 2019, 9:02 a.m. UTC | #3
On Wed, Dec 04, 2019 at 03:17:18PM -0500, Ivan Vilata i Balaguer wrote:
> Is there anything still missing in the patch that I could work on for it to
> get merged?  Thanks!
> 

With the 'staging' branch being merged into master the patch no longer
cleanly applies.

Also, since you've removed a patch from the gnu/packages/patches folder
you need to remove it also from gnu/local.mk. The two other things are
the commit message doesn't list all of the changes and with the new
qt-build-system that would probably be a better choice than wrapping the
binaries yourself, but with an updated patch without that I can help
work on that since it is such a new change.
Ivan Vilata i Balaguer Dec. 6, 2019, 6:28 p.m. UTC | #4
Efraim Flashner (2019-12-05 11:02:36 +0200) wrote:

> On Wed, Dec 04, 2019 at 03:17:18PM -0500, Ivan Vilata i Balaguer wrote:
> > Is there anything still missing in the patch that I could work on for it to
> > get merged?  Thanks!
> > 
> 
> With the 'staging' branch being merged into master the patch no longer
> cleanly applies.
> 
> Also, since you've removed a patch from the gnu/packages/patches folder
> you need to remove it also from gnu/local.mk. The two other things are
> the commit message doesn't list all of the changes and with the new
> qt-build-system that would probably be a better choice than wrapping the
> binaries yourself, but with an updated patch without that I can help
> work on that since it is such a new change.

Thanks Efraim for the info!  I don't think I'll have time to work on this
during the next week, but I'll try again ASAP and get back to you.

Cheers,
diff mbox series

Patch

diff --git a/gnu/packages/patches/mumble-1.2.19-abs.patch b/gnu/packages/patches/mumble-1.2.19-abs.patch
deleted file mode 100644
index 683325f4bc..0000000000
--- a/gnu/packages/patches/mumble-1.2.19-abs.patch
+++ /dev/null
@@ -1,31 +0,0 @@ 
-From ea861fe86743c8402bbad77d8d1dd9de8dce447e Mon Sep 17 00:00:00 2001
-From: Mikkel Krautz <mikkel@krautz.dk>
-Date: Fri, 29 Dec 2017 14:47:25 +0100
-Subject: [PATCH] AudioOutput: do not use non-existant template version of
- std::abs.
-
-This change fixes AudioOutput to use the float overload of std::abs:
-
-    float std::abs(float);
-
-instead of a non-existant template version (for newer Boost 1.66).
-
-Fixes mumble-voip/mumble#3281
-
----
- src/mumble/AudioOutput.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mumble/AudioOutput.cpp b/src/mumble/AudioOutput.cpp
-index cbe0c0e2b..7a0a5e2ab 100644
---- a/src/mumble/AudioOutput.cpp
-+++ b/src/mumble/AudioOutput.cpp
-@@ -437,7 +437,7 @@ bool AudioOutput::mix(void *outbuff, unsigned int nsamp) {
- 					top[2] = 0.0f;
- 				}
- 
--				if (std::abs<float>(front[0] * top[0] + front[1] * top[1] + front[2] * top[2]) > 0.01f) {
-+				if (std::abs(front[0] * top[0] + front[1] * top[1] + front[2] * top[2]) > 0.01f) {
- 					// Not perpendicular. Assume Y up and rotate 90 degrees.
- 
- 					float azimuth = 0.0f;
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index abb68f62b2..e1ad2f90f5 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -12,6 +12,7 @@ 
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@ 
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -378,30 +380,34 @@  address of one of the participants.")
 (define-public mumble
   (package
     (name "mumble")
-    (version "1.2.19")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://mumble.info/snapshot/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh"))
-              (patches (search-patches "mumble-1.2.19-abs.patch"))
+                "03dqg5yf6d7ilc1wydpshnv1ndssppcbadqcq20jm5j4fdaf53cs"))
               (modules '((guix build utils)))
               (snippet
                `(begin
                   ;; Remove bundled software.
-                  (for-each delete-file-recursively '("3rdparty"
-                                                      "speex"
-                                                      "speexbuild"
-                                                      "opus-build"
-                                                      "opus-src"
-                                                      "sbcelt-helper-build"
-                                                      "sbcelt-lib-build"
-                                                      "sbcelt-src"))
-                  ;; TODO: Celt is still bundled. It has been merged into Opus
-                  ;; and will be removed after 1.3.0.
-                  ;; https://github.com/mumble-voip/mumble/issues/1999
+                  ;; Keep arc4random, celt-0.7.0, celt-0.11.0, qqbonjour, rnnoise, smallft.
+                  (for-each delete-file-recursively '("3rdparty/GL" ; in mesa
+                                                      "3rdparty/mach-override-build" ; for macx
+                                                      "3rdparty/mach-override-src"
+                                                      "3rdparty/minhook-build" ; for win32
+                                                      "3rdparty/minhook-src"
+                                                      "3rdparty/opus-build" ; in opus
+                                                      "3rdparty/opus-src"
+                                                      "3rdparty/sbcelt-helper-build" ; not enabled
+                                                      "3rdparty/sbcelt-lib-build"
+                                                      "3rdparty/sbcelt-src"
+                                                      "3rdparty/speex-build" ; in speex
+                                                      "3rdparty/speex-src"
+                                                      "3rdparty/speexdsp-src" ; in speexdsp
+                                                      "3rdparty/xinputcheck-build" ; for win32
+                                                      "3rdparty/xinputcheck-src"))
                   #t))))
     (build-system gnu-build-system)
     (arguments
@@ -409,23 +415,25 @@  address of one of the participants.")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "qmake" "main.pro" "-recursive"
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (invoke "qmake" "main.pro" "QMAKE_LRELEASE=lrelease"
+                     (string-append "MUMBLE_PYTHON="
+                                    (string-append (assoc-ref inputs "python") "/bin/python3"))
                      (string-append "CONFIG+="
                                     (string-join
-                                     (list "no-update"
-                                           "no-ice"
+                                     ;; Options used are listed in the same order
+                                     ;; as in the "INSTALL" file
+                                     ;; (plus the final "packaged" and "release").
+                                     (list "no-bundled-speex" ; in speex
+                                           "no-bundled-opus" ; in opus
+                                           "no-g15" ; not packaged
+                                           "no-jackaudio" ; use pulse
+                                           "no-oss" ; use pulse
+                                           "no-alsa" ; use pulse
+                                           "no-update"
                                            "no-embed-qt-translations"
-                                           "no-bundled-speex"
-                                           "pch"
-                                           "no-bundled-opus"
-                                           "no-celt"
-                                           "no-alsa"
-                                           "no-oss"
-                                           "no-portaudio"
-                                           "speechd"
-                                           "no-g15"
-                                           "no-bonjour"
+                                           "no-ice" ; not packaged
+                                           "packaged"
                                            "release")))
                      (string-append "DEFINES+="
                                     "PLUGIN_PATH="
@@ -435,6 +443,10 @@  address of one of the participants.")
            (lambda _
              (substitute* "src/mumble/TextToSpeech_unix.cpp"
                (("libspeechd.h") "speech-dispatcher/libspeechd.h"))))
+         (add-before 'install 'disable-murmur-ice
+           (lambda _
+             (substitute* "scripts/murmur.ini.system"
+               (("^ice=") ";ice="))))
          (replace 'install ; install phase does not exist
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -462,24 +474,38 @@  address of one of the participants.")
                (for-each (lambda (file) (install-file file lib))
                          (find-files "." "\\.so\\."))
                (for-each (lambda (file) (install-file file lib))
-                         (find-files "release/plugins" "\\.so$"))))))))
+                         (find-files "release/plugins" "\\.so$")))))
+         (add-after 'install 'wrap-executable
+           ;; Add path to plugins for SVG support (otherwise many icons are not shown).
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (program)
+                           (wrap-program (string-append out "/bin/" program)
+                             `("QT_PLUGIN_PATH" ":" prefix
+                               ,(map (lambda (label)
+                                       (string-append (assoc-ref inputs label)
+                                                      "/lib/qt5/plugins"))
+                                     '("qtbase" "qtsvg")))))
+                         '("mumble" "mumble-overlay"))))))))
     (inputs
      `(("avahi" ,avahi)
-       ("protobuf" ,protobuf-3.5)
-       ("openssl" ,openssl)
-       ("libsndfile" ,libsndfile)
        ("boost" ,boost)
-       ("opus" ,opus)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ("speech-dispatcher" ,speech-dispatcher)
-       ("libx11" ,libx11)
+       ("libsndfile" ,libsndfile)
        ("libxi" ,libxi)
-       ("qt-4" ,qt-4)
-       ("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+       ("mesa" ,mesa) ; avoid bundled
+       ("openssl" ,openssl)
+       ("opus" ,opus) ; avoid bundled
+       ("protobuf" ,protobuf)
+       ("pulseaudio" ,pulseaudio)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("speech-dispatcher" ,speech-dispatcher)
+       ("speex" ,speex) ; avoid bundled
+       ("speexdsp" ,speexdsp))) ; avoid bundled
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ("qttools" ,qttools)))
     (synopsis "Low-latency, high quality voice chat software")
     (description
      "Mumble is an low-latency, high quality voice chat
@@ -487,9 +513,9 @@  software primarily intended for use while gaming.
 Mumble consists of two applications for separate usage:
 @code{mumble} for the client, and @code{murmur} for the server.")
     (home-page "https://wiki.mumble.info/wiki/Main_Page")
-    (license (list license:bsd-3
-                   ;; The bundled celt is bsd-2. Remove after 1.3.0.
-                   license:bsd-2))))
+    (license (list license:bsd-3 ; mumble celt-0.7.0 qqbonjour rnnoise smallft
+                   license:bsd-2 ; celt-0.11.0
+                   license:isc)))) ; arc4random
 
 (define-public twinkle
   (package