Merge branch 'staging' into core-updates
[jackhill/guix/guix.git] / gnu / packages / kde.scm
index b4cbd5a..924ca75 100644 (file)
@@ -3,11 +3,11 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +27,7 @@
 (define-module (gnu packages kde)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
+  #:use-module (guix deprecation)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -35,7 +36,9 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages apr)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public grantleetheme
+  (package
+    (name "grantleetheme")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/grantleetheme-" version ".tar.xz"))
+       (sha256
+        (base32 "0j77q1yyfmggzgkqgcw2xr0v9xg3h5cdhh8jry8h2llw75ahy6xb"))
+       (patches (search-patches "grantlee-merge-theme-dirs.patch"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("libxml2" ,libxml2))) ;; xmllint required for tests
+    (inputs
+     `(("grantlee" ,grantlee)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("knewstuff" ,knewstuff)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (home-page "https://cgit.kde.org/grantleetheme.git")
+    (synopsis "Library providing Grantlee theme support")
+    (description "This library provides Grantlee theme support.")
+    (license ;; LGPL for libraries, FDL for documentation
+     (list license:lgpl2.0+ license:fdl1.2+))))
+
 (define-public kdenlive
   (let ((version "18.08.1"))
     (package
@@ -143,7 +183,7 @@ projects.")
 (define-public kdevelop
   (package
     (name "kdevelop")
-    (version "5.1.2")
+    (version "5.4.6")
     (source
       (origin
         (method url-fetch)
@@ -151,74 +191,79 @@ projects.")
                             "/" version "/src/kdevelop-"
                             version ".tar.xz"))
         (sha256
-         (base32
-          "1iqaq0ilijjigqb34v5wq9in6bnjs0p9cmgbygjmy53xhh3yhm5g"))))
-    (build-system cmake-build-system)
+         (base32 "01jmrmwbc1hrvq7jdfcc7mxl03q2l6kz57yca2j26xwyvfcfv5sz"))))
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
+       ("shared-mime-info" ,shared-mime-info)
        ("qttools" ,qttools)))
     (inputs
-     `(("kdevplatform" ,kdevplatform)
-       ("kdevelop-pg-qt" ,kdevelop-pg-qt)
-       ("qtbase" ,qtbase)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtwebkit" ,qtwebkit)
+     `(("boost" ,boost)
+       ("clang" ,clang)
+       ("grantlee" ,grantlee)
        ("karchive" ,karchive)
        ("kcmutils" ,kcmutils)
-       ("kconfig" ,kconfig)
+       ("kcrash" ,kcrash)
        ("kdeclarative" ,kdeclarative)
        ("kdoctools" ,kdoctools)
        ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
-       ("kio" ,kio)
        ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)  ;; not checked as requirement
        ("kitemmodels" ,kitemmodels)
        ("kitemviews" ,kitemviews)
        ("kjobwidgets" ,kjobwidgets)
-       ("knotifyconfig" ,knotifyconfig)
        ("knotifications" ,knotifications)
+       ("knotifyconfig" ,knotifyconfig)
        ("kparts" ,kparts)
-       ("kcrash" ,kcrash)
-       ("knewstuff" ,knewstuff)
-       ("krunner" ,krunner)
-       ("kxmlgui" ,kxmlgui)
-       ("libksysguard" ,libksysguard)
-       ("threadweaver" ,threadweaver)
+       ("kservice" ,kservice)
        ("ktexteditor" ,ktexteditor)
        ("kwindowsystem" ,kwindowsystem)
+       ("kxmlgui" ,kxmlgui)
+       ("libkomparediff2" ,libkomparediff2)
+       ("oxygen-icons" ,oxygen-icons)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtquickcontrols" ,qtquickcontrols)  ;; not checked as requirement
+       ("qtquickcontrols2" ,qtquickcontrols2)  ;; not checked as requirement
+       ("qtwebkit" ,qtwebkit)
+       ("threadweaver" ,threadweaver)
+
+       ;; recommendes
+       ("astyle" ,astyle)
+       ("kdevelop-pg-qt" ,kdevelop-pg-qt)
+       ("libksysguard" ,libksysguard)
+
+       ;; optional
+       ("apr" ,apr)            ; required for subversion support
+       ("apr-util" ,apr-util)  ; required for subversion support
+       ("attica" ,attica)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("knewstuff" ,knewstuff)
+       ("krunner" ,krunner)
+       ;; TODO: OktetaGui, OktetaKastenControllers
        ("plasma" ,plasma-framework)
-       ("grantlee" ,grantlee)
-       ("libepoxy" ,libepoxy)
-       ("clang" ,clang)
-       ("shared-mime-info" ,shared-mime-info)))
+       ;; TODO: purpose
+       ("sonnet" ,sonnet)
+       ("subversion" ,subversion)))
+
+       ;; run-time packages - TODO
+       ;; ClazyStandalone
+       ;; Cppcheck
+       ;; heaptrack
+       ;; heaptrack_gui
+       ;; meson
     (arguments
-     `(#:phases
+     `(#:tests? #f  ;; there are some issues with the test suite
+       #:phases
        (modify-phases %standard-phases
-         (delete 'check) ;; there are some issues with the test suite
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (kdevplatform (assoc-ref inputs "kdevplatform"))
-                    (kio (assoc-ref inputs "kio"))
-                    (kcmutils (assoc-ref inputs "kcmutils"))
-                    (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
-                    (qtbase (assoc-ref inputs "qtbase"))
-                    (qtdeclarative (assoc-ref inputs "qtdeclarative"))
-                    (qml "/qml"))
-               (wrap-program (string-append out "/bin/kdevelop")
-                 `("XDG_DATA_DIRS" ":" prefix
-                   ,(map (lambda (s) (string-append s "/share"))
-                         (list out kdevplatform kcmutils)))
-                 `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
-                   (,(string-append qtbase "/plugins/platforms")))
-                 `("QT_PLUGIN_PATH" ":" prefix
-                   ,(map (lambda (s) (string-append s "/lib/plugins"))
-                         (list out kdevplatform kio)))
-                 `("QML2_IMPORT_PATH" ":" prefix
-                   (,(string-append qtquickcontrols qml)
-                    ,(string-append qtdeclarative qml))))))))))
+         (add-before 'configure 'add-include-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "cmake/modules/FindClang.cmake"
+               (("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
+                (string-append line " " (assoc-ref inputs "clang") "/lib")))
+             #t)))))
     (home-page "https://kdevelop.org")
     (synopsis "IDE for C, C++, Python, Javascript and PHP")
     (description "The KDevelop IDE provides semantic syntax highlighting, as
@@ -231,7 +276,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
 (define-public kdevelop-pg-qt
   (package
     (name "kdevelop-pg-qt")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
@@ -239,7 +284,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
                            version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1av8plqz7hyhrd07avnmn6ryslqlarmxn0pw7swzvb6ddiqp59j4"))))
+        (base32 "15ja19gg6x7gww4ch12hy585x55ghbkpsiyr8fqiyjk0j6v07hh5"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -251,77 +296,8 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
 for some KDevelop language plugins (Ruby, PHP, CSS...).")
     (license license:lgpl2.0+)))
 
-(define-public kdevplatform
-  (package
-    (name "kdevplatform")
-    (version "5.1.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://kde/stable/kdevelop"
-                                  "/" version "/src/kdevplatform-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "0jk6g1kiqpyjy8pca0236b9944gxqnymqv8ny6m8nrraannxs8p6"))))
-    (build-system cmake-build-system)
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("apr" ,apr)
-       ("apr-util" ,apr-util)
-       ("boost" ,boost)
-       ("karchive" ,karchive)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcmutils" ,kcmutils)
-       ("kiconthemes" ,kiconthemes)
-       ("kdeclarative" ,kdeclarative)
-       ("kdoctools" ,kdoctools)
-       ("kguiaddons" ,kguiaddons)
-       ("kinit" ,kinit)
-       ("kitemmodels" ,kitemmodels)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kio" ,kio)
-       ("ki18n" ,ki18n)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("grantlee" ,grantlee)
-       ("libkomparediff2" ,libkomparediff2)
-       ("sonnet" ,sonnet)
-       ("threadweaver" ,threadweaver)
-       ("ktexteditor" ,ktexteditor)
-       ("qtbase" ,qtbase)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtscript" ,qtscript)
-       ("qtwebkit" ,qtwebkit)
-       ("qtx11extras" ,qtx11extras)
-       ("plasma" ,plasma-framework)
-       ("subversion" ,subversion)
-       ("zlib" ,zlib)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-               (setenv "QT_PLUGIN_PATH"
-                       (string-append out "/lib/plugins:"
-                                      (getenv "QT_PLUGIN_PATH")))
-               (setenv "XDG_DATA_DIRS"
-                       (string-append out "/share:"
-                                      (getenv "XDG_DATA_DIRS")))
-               (invoke "ctest" "-R" ; almost all tests require a display
-                       "filteringstrategy|kdevvarlengtharray|kdevhash")))))))
-    (home-page "https://github.com/KDE/kdevplatform")
-    (synopsis "Framework to build integrated development environments (IDEs)")
-    (description "KDevPlatform is the basis of KDevelop and contains some
-plugins, as well as code to create plugins, or complete applications.")
-    (license license:gpl3+)))
+;; kdevplatform was merged into kdevelop as of 5.2.x
+(define-deprecated kdevplatform kdevelop)
 
 (define-public krita
   (package
@@ -496,7 +472,7 @@ cards.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("qtbase" ,qtbase)
        ("qca" ,qca)
-       ("util-linux" ,util-linux)))
+       ("util-linux" ,util-linux "lib")))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library for managing partitions")
     (description "Library for managing partitions.")
@@ -547,7 +523,7 @@ different notification systems.")
      `(#:configure-flags '("-DBUILD_TESTING=ON")
        #:tests? #f ; tests fail hard in our build environment
        #:phases
-       (modify-phases (@ (guix build qt-build-system) %standard-phases)
+       (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda _
              (setenv "QT_QPA_PLATFORM" "offscreen")
@@ -656,3 +632,85 @@ system-wide profiler for Linux using statistical sampling with hardware
 performance counters.  There also exist converters for profiling output of
 Python, PHP, and Perl.")
     (license license:gpl2)))
+
+(define-public libkdegames
+  (package
+    (name "libkdegames")
+    (version "19.08.3")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://kde/stable/applications/" version
+                          "/src/libkdegames-" version ".tar.xz"))
+      (sha256
+       (base32 "12dvkmjgbi8dp9y55zmx1pw3zr2i374c4vn3mfn9r31bf06dr701"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("karchive" ,karchive)
+       ("kbookmarks" ,kbookmarks)
+       ("kcodecs" ,kcodecs)
+       ("kcompletion" ,kcompletion)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kcrash" ,kcrash)
+       ("kdbusaddons" ,kdbusaddons)
+       ("kdeclarative" ,kdeclarative)
+       ("kdnssd" ,kdnssd)
+       ("kglobalaccel" ,kglobalaccel)
+       ("kguiaddons" ,kguiaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ;("kio" ,kio)
+       ("kitemviews" ,kitemviews)
+       ("kjobwidgets" ,kjobwidgets)
+       ("knewstuff" ,knewstuff)
+       ("kservice" ,kservice)
+       ("ktextwidgets" ,ktextwidgets)
+       ("kwidgetsaddons" ,kwidgetsaddons)
+       ("kxmlgui" ,kxmlgui)
+       ("libsndfile" ,libsndfile)
+       ("openal" ,openal)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtsvg" ,qtsvg)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (home-page "https://games.kde.org/")
+    (synopsis "Runtime library for kdegames")
+    (description "Runtime library for kdegames")
+    (license (list license:gpl2+  license:fdl1.2+))))
+
+(define-public zeroconf-ioslave
+  (package
+    (name "zeroconf-ioslave")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/zeroconf-ioslave-" version ".tar.xz"))
+       (sha256
+        (base32 "1vbi4kpyrk530q2dj8ql2i0gxjybdbmkqpl8vkhrihl7r7f0xc5p"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("kdbusaddons" ,kdbusaddons)
+       ("kdnssd" ,kdnssd)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase)))
+    (home-page "https://kde.org/applications/internet/org.kde.zeroconf_ioslave")
+    (synopsis "DNS-SD Service Discovery Monitor")
+    (description "Adds an entry to Dolphin's Network page to show local
+services such as printers which advertise themselves with DNSSD (called Avahi
+or Bonjour by other projects).")
+    (license ;; GPL for programs, LGPL for libraries, FDL for documentation
+     (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))