Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / kde.scm
index b01af5e..6eb0211 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:)
@@ -37,6 +38,7 @@
   #: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 version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public baloo-widgets
+  (package
+    (name "baloo-widgets")
+    (version "19.08.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/applications/" version
+                           "/src/baloo-widgets-" version ".tar.xz"))
+       (sha256
+        (base32 "0bba8dgxd7rcjji809kwnw78hl1nb5ssh2ir4k4b0wvx395jifgd"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("baloo" ,baloo)
+       ("kconfig" ,kconfig)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (home-page "https://community.kde.org/Baloo")
+    (synopsis "Wigets for use with Baloo")
+    (description "Baloo is a framework for searching and managing metadata.
+This package contains GUI widgets for baloo.")
+    (license license:lgpl2.0+)))
+
+(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)))
+    (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
@@ -145,7 +209,7 @@ projects.")
 (define-public kdevelop
   (package
     (name "kdevelop")
-    (version "5.1.2")
+    (version "5.4.6")
     (source
       (origin
         (method url-fetch)
@@ -153,74 +217,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
@@ -253,77 +322,39 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
 for some KDevelop language plugins (Ruby, PHP, CSS...).")
     (license license:lgpl2.0+)))
 
-(define-public kdevplatform
+;; kdevplatform was merged into kdevelop as of 5.2.x
+(define-deprecated kdevplatform kdevelop)
+
+(define-public kdiagram
   (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)
+    (name "kdiagram")
+    (version "2.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://kde/stable/kdiagram/" version
+                           "/kdiagram-" version ".tar.xz"))
+       (sha256
+        (base32 "1c6dbp9gssjrx59z8yxzq1ay56pnw7h28symjrv0gcvhxyjirrxx"))
+       (patches (search-patches
+                 "kdiagram-Fix-missing-link-libraries.patch"))))
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+       ("qttools" ,qttools)))
     (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+)))
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (home-page "https://cgit.kde.org/kdiagram.git/")
+    (synopsis "Libraries for creating business diagrams")
+    (description "This package provides libraries for integrating business
+diagrams in Qt-based applications.
+
+@code{KCharts} provides an implementation of the ODF Chart specification.  It
+supports stock charts, box charts, and whisker charts.  @code{KGantt} provides
+a module for implementing ODF Gantt charts, which are bar charts that
+illustrate project schedules.")
+    (license license:gpl2+)))
 
 (define-public krita
   (package
@@ -498,7 +529,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,13 +578,7 @@ different notification systems.")
     (build-system qt-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_TESTING=ON")
-       #:tests? #f ; tests fail hard in our build environment
-       #:phases
-       (modify-phases (@ (guix build qt-build-system) %standard-phases)
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t)))))
+       #:tests? #f)) ; tests fail hard in our build environment
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("kdoctools" ,kdoctools)
@@ -670,7 +695,7 @@ Python, PHP, and Perl.")
                           "/src/libkdegames-" version ".tar.xz"))
       (sha256
        (base32 "12dvkmjgbi8dp9y55zmx1pw3zr2i374c4vn3mfn9r31bf06dr701"))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
@@ -700,15 +725,35 @@ Python, PHP, and Perl.")
        ("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+))))