From 70ba67f64ea66fc50ac5dd7f4266ac4c814efbf1 Mon Sep 17 00:00:00 2001
From: LibreMiami <packaging-guix@libremiami.org>
Date: Sun, 21 Feb 2021 23:10:00 +0000
Subject: [PATCH] gnu: mumble: Update to 1.3.4.

* gnu/packages/telephony.scm (mumble) [version]: Update to 1.3.4.
[snippet]: Change logic from list of directories to delete to list of
directories to keep.
[native-inputs]: Add perl and ruby. Change python to python-wrapper.

Co-authored-by: jgart <jgart@dismail.de>
Co-authored-by: Raghav Gururajan <rg@raghavgururajan.name>
---
 gnu/packages/telephony.scm | 100 ++++++++++++++++++++-----------------
 1 file changed, 53 insertions(+), 47 deletions(-)

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index df6df83dd2..60d74cbae4 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -73,6 +74,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages speech)
   #:use-module (gnu packages tls)
@@ -515,37 +517,39 @@ address of one of the participants.")
 (define-public mumble
   (package
     (name "mumble")
-    (version "1.3.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://mumble.info/snapshot/stable/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "101gw1334zmqsbjrba5dq1v4p2nxcs37g2yrzvkcra6s9ri4fw3j"))
-              (modules '((guix build utils)))
-              (snippet
-               `(begin
-                  ;; Remove bundled software.  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/speex-build" ; in speex
-                      "3rdparty/speex-src"
-                      "3rdparty/speexdsp-src" ; in speexdsp
-                      "3rdparty/xinputcheck-build" ; for win32
-                      "3rdparty/xinputcheck-src"))
-                  #t))))
+    (version "1.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/mumble-voip/mumble/releases/download/"
+                           version "/mumble-" version ".tar.gz"))
+       (sha256
+        (base32
+         "14v0rgy1a5alxmz7ly95y38bdj0hx79yysgkcd8r8p9qqfzlwpv1"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (let ((keep
+                  '("arc4random-src"
+                    "celt-0.7.0-build"
+                    "celt-0.7.0-src"
+                    "celt-0.11.0-build"
+                    "celt-0.11.0-src"
+                    "qqbonjour-src"
+                    "rnnoise-build"
+                    "rnnoise-src"
+                    "smallft-src")))
+	     (with-directory-excursion "3rdparty"
+	       (for-each delete-file-recursively
+			 (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep))))
+             #t)))))
     (build-system qt-build-system)
     (arguments
-     `(#:tests? #f  ; no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -563,8 +567,8 @@ address of one of the participants.")
                                            "no-bundled-opus" ; in opus
                                            "no-g15" ; not packaged
                                            "no-jackaudio" ; use pulse
-                                           "no-oss" ; use pulse
-                                           "no-alsa" ; use pulse
+                                           "no-oss"       ; use pulse
+                                           "no-alsa"      ; use pulse
                                            "no-update"
                                            "no-embed-qt-translations"
                                            "no-ice" ; not packaged
@@ -587,20 +591,20 @@ address of one of the participants.")
              #t))
          (add-before 'configure 'fix-mumble-overlay
            (lambda* (#:key outputs #:allow-other-keys)
-              (with-output-to-file "scripts/mumble-overlay"
-                (lambda ()
-                  (format #t "#!~a~%" (which "bash"))
-                  (format #t "export LD_PRELOAD=\"~a $LD_PRELOAD\"~%"
-                          (string-append (assoc-ref outputs "out")
-                                         "/lib/mumble/libmumble.so.1"))
-                  (format #t "exec \"${@}\"")))
-              #t))
+             (with-output-to-file "scripts/mumble-overlay"
+               (lambda ()
+                 (format #t "#!~a~%" (which "bash"))
+                 (format #t "export LD_PRELOAD=\"~a $LD_PRELOAD\"~%"
+                         (string-append (assoc-ref outputs "out")
+                                        "/lib/mumble/libmumble.so.1"))
+                 (format #t "exec \"${@}\"")))
+             #t))
          (add-before 'install 'disable-murmur-ice
            (lambda _
              (substitute* "scripts/murmur.ini.system"
                (("^ice=") ";ice="))
              #t))
-         (replace 'install ; install phase does not exist
+         (replace 'install              ; install phase does not exist
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (etc (string-append out "/etc/murmur"))
@@ -634,20 +638,22 @@ address of one of the participants.")
        ("boost" ,boost)
        ("libsndfile" ,libsndfile)
        ("libxi" ,libxi)
-       ("mesa" ,mesa) ; avoid bundled
+       ("mesa" ,mesa)                   ; avoid bundled
        ("openssl" ,openssl)
-       ("opus" ,opus) ; avoid bundled
+       ("opus" ,opus)                   ; avoid bundled
        ("protobuf" ,protobuf)
        ("pulseaudio" ,pulseaudio)
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)
        ("speech-dispatcher" ,speech-dispatcher)
-       ("speex" ,speex) ; avoid bundled
-       ("speexdsp" ,speexdsp))) ; avoid bundled
+       ("speex" ,speex)                 ; avoid bundled
+       ("speexdsp" ,speexdsp)))         ; avoid bundled
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("qttools" ,qttools)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("ruby" ,ruby)))
     (synopsis "Low-latency, high quality voice chat software")
     (description
      "Mumble is an low-latency, high quality voice chat
-- 
2.29.2

