Subject: phonon: install Qt extensions, add gstreamer backend.

From: Thomas Danckaert <[email-masked]>
Date: Thu, 02 Mar 2017 11:40:16 +0100 (CET)

Hi,

the first patch installs qt extensions, so qmake projects can use 
“CONFIG+=phonon4qt5”.  The second patch adds the phonon gstreamer 
backend, so phonon can actually play back media :0)

Thomas
From ee8c6f45a8bc67910a279e95bfdc0defe18f37db Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <[email-masked]>
Date: Thu, 2 Mar 2017 09:33:43 +0100
Subject: [PATCH 1/2] gnu: phonon: Install Qt extensions.

* gnu/packages/kde-frameworks.scm (phonon)[arguments]: Add
-DPHONON-INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT configure flag, and patch the
installation directory.
---
 gnu/packages/kde-frameworks.scm | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 36c285156..6ff754b07 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2016 David Craven <[email-masked]>
+;;; Copyright © 2017 Thomas Danckaert <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -119,7 +120,18 @@ common build settings used in software produced by the KDE community.")
     (arguments
      `(#:configure-flags
        '("-DCMAKE_CXX_FLAGS=-fPIC"
-         "-DPHONON_BUILD_PHONON4QT5=ON")))
+         "-DPHONON_BUILD_PHONON4QT5=ON"
+         "-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'patch-installdir
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((regex (string-append "(INSTALL DESTINATION \")"
+                                         (assoc-ref inputs "qtbase"))))
+               (substitute* "cmake_install.cmake"
+                 ((regex all dest)
+                  (string-append dest (assoc-ref outputs "out")))))
+           #t)))))
     (home-page "https://phonon.kde.org")
     (synopsis "KDE's multimedia library")
     (description "KDE's multimedia library.")
-- 
2.11.1

From 052b821a937a67b83693e2db35149651552e371c Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <[email-masked]>
Date: Thu, 2 Mar 2017 11:20:53 +0100
Subject: [PATCH 2/2] gnu: Add phonon-backend-gstreamer.

* gnu/packages/kde-frameworks.scm (phonon-backend-gstreamer): New variable.
---
 gnu/packages/kde-frameworks.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 6ff754b07..778f217e0 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -43,6 +43,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -137,6 +138,41 @@ common build settings used in software produced by the KDE community.")
     (description "KDE's multimedia library.")
     (license license:lgpl2.1+)))
 
+(define-public phonon-backend-gstreamer
+  (package
+    (name "phonon-backend-gstreamer")
+    (version "4.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kde/stable/phonon"
+                    name "/" version "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1wc5p1rqglf0n1avp55s50k7fjdzdrhg0gind15k8796w7nfbhyf"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("phonon" ,phonon)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("libxml2" ,libxml2)))
+    (arguments
+     `(#:configure-flags
+       '( "-DPHONON_BUILD_PHONON4QT5=ON")))
+    (home-page "https://phonon.kde.org")
+    (synopsis "Phonon backend which uses GStreamer")
+    (description "Phonon makes use of backend libraries to provide sound.
+Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
+    ;; license: source files mention "either version 2.1 or 3"
+    (license license:lgpl2.1 license:lgpl3)))
+
 (define-public gpgmepp
   (package
     (name "gpgmepp")
-- 
2.11.1