;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages kde-pim) #:use-module (guix build-system qt) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages boost) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages gnome) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages xml)) (define-public akonadi (package (name "akonadi") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/akonadi-" version ".tar.xz")) (sha256 (base32 "0v7f1049wjnqxhwxr1443wc2cfbdqmf15xcwjz3j1m0vgdva9pyg")) (patches (search-patches "akonadi-paths.patch" "akonadi-timestamps.patch" "akonadi-Revert-Make-installation-properly-relocatabl.patch")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("qttools" ,qttools) ("shared-mime-info" ,shared-mime-info))) (inputs `(("boost" ,boost) ("kconfig" ,kconfig) ("kconfigwidgets" ,kconfigwidgets) ("kcoreaddons" ,kcoreaddons) ("kcrash" ,kcrash) ("kdbusaddons" ,kdbusaddons) ("kdesignerplugin" ,kdesignerplugin) ("ki18n" ,ki18n) ("kiconthemes" ,kiconthemes) ("kio" ,kio) ("kitemmodels" ,kitemmodels) ("kitemviews" ,kitemviews) ("kwidgetsaddons" ,kwidgetsaddons) ("kwindowsystem" ,kwindowsystem) ("kxmlgui" ,kxmlgui) ("libxml2" ,libxml2) ("libxslt" ,libxslt) ;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries ;; and wrapped files will refer to them, even if the user choices none ;; of these. Executables are searched on $PATH then. ("qtbase" ,qtbase) ("sqlite" ,sqlite))) (arguments `(#:tests? #f ;; TODO 135/167 tests fail #:configure-flags '("-DDATABASE_BACKEND=SQLITE") ; lightweight #:modules ((ice-9 textual-ports) ,@%qt-build-system-modules) #:phases (modify-phases (@ (guix build qt-build-system) %standard-phases) (add-before 'configure 'add-definitions (lambda _ (let ((out (assoc-ref %outputs "out")) (mysql (assoc-ref %build-inputs "mysql")) (pgsql (assoc-ref %build-inputs "postgresql"))) (with-output-to-file "CMakeLists.txt.new" (lambda _ (display (string-append "add_compile_definitions(\n" "NIX_OUT=\"" out "\"\n" ;; pin binaries for mysql backend ")\n\n")) (display (call-with-input-file "CMakeLists.txt" get-string-all)))) (rename-file "CMakeLists.txt.new" "CMakeLists.txt")) #t))))) (home-page "https://kontact.kde.org/components/akonadi.html") (synopsis "Extensible cross-desktop storage service for PIM") (description "Akonadi is an extensible cross-desktop Personal Information Management (PIM) storage service. It provides a common framework for applications to store and access mail, calendars, addressbooks, and other PIM data. This package contains the Akonadi PIM storage server and associated programs.") (license license:fdl1.2+))) (define-public kcalutils (package (name "kcalutils") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/kcalutils-" version ".tar.xz")) (sha256 (base32 "1nlkik4qiciyh1slgpis3n5h9pks2ygdba9yq4s16nnmip4l45w2")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("libxml2" ,libxml2))) ;; xmllint required for tests (inputs `(("grantlee" ,grantlee) ("kcalendarcore" ,kcalendarcore) ("kcodecs" ,kcodecs) ("kconfig" ,kconfig) ("kconfigwidgets" ,kconfigwidgets) ("kcoreaddons" ,kcoreaddons) ("ki18n" ,ki18n) ("kiconthemes" ,kiconthemes) ("kidentitymanagement" ,kidentitymanagement) ("kpimtextedit" ,kpimtextedit) ("ktextwidgets" ,ktextwidgets) ("kwidgetsaddons" ,kwidgetsaddons) ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests ("qtbase" ,qtbase))) (arguments `(#:tests? #f ;; TODO: seem to pull in some wrong theme #: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://api.kde.org/stable/kdepimlibs-apidocs/") (synopsis "Library with utility functions for the handling of calendar data") (description "This library provides a utility and user interface functions for accessing calendar data using the kcalcore API.") (license license:lgpl2.0+))) (define-public kidentitymanagement (package (name "kidentitymanagement") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/kidentitymanagement-" version ".tar.xz")) (sha256 (base32 "0dqz49sp5hq44590rrxav8688aqlzsww4q4n55ksfy13nk9i5mbf")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) (inputs `(("kcodecs" ,kcodecs) ("kcompletion" ,kcompletion) ("kconfig" ,kconfig) ("kcoreaddons" ,kcoreaddons) ("kemoticons" ,kemoticons) ("kiconthemes" ,kiconthemes) ("kio" ,kio) ("kpimtextedit" ,kpimtextedit) ("ktextwidgets" ,ktextwidgets) ("kxmlgui" ,kxmlgui) ("qtbase" ,qtbase))) (arguments `(#:phases (modify-phases %standard-phases (add-before 'check 'check-setup (lambda _ ;; make Qt render "offscreen", required for tests (setenv "QT_QPA_PLATFORM" "offscreen") (setenv "HOME" "/tmp/dummy-home") #t))))) (home-page "https://kontact.kde.org/") (synopsis "Library for shared identities between mail applications") (description "Library for shared identities between mail applications.") (license ;; GPL for programs, LGPL for libraries, FDL for documentation (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+)))) (define-public kmbox (package (name "kmbox") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/kmbox-" version ".tar.xz")) (sha256 (base32 "13b5v1nx46k5ais3cms7yxrfi8p6xbljpkpg3f7v1asb6kshv7g2")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) (inputs `(("kcodecs" ,kcodecs) ("kmime" ,kmime) ("qtbase" ,qtbase))) (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/") (synopsis "Library for handling mbox mailboxes") (description "A library for accessing mail storages in MBox format.") (license license:lgpl2.0+ ))) (define-public kmime (package (name "kmime") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/kmime-" version ".tar.xz")) (sha256 (base32 "1pc00pwwrngsyr7ppvqwfgvcgy2wiqdbqxhv9xidn4dw9way2ng6")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) (inputs `(("kcodecs" ,kcodecs) ("ki18n" ,ki18n) ("qtbase" ,qtbase))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-test-case (lambda _ ;; This is curious: autotests/CMakeLists.txt sets LC_TIME=C, but ;; the Qt locale returns different. See kmime commit 3a9651d26a. (substitute* "autotests/dateformattertest.cpp" (("(Today|Yesterday) 12:34:56" line day) (string-append day " 12:34 PM"))) #t))))) (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/") (synopsis "Library for handling MIME data") (description "A library for MIME handling.") (license license:lgpl2.0+))) (define-public kpimtextedit (package (name "kpimtextedit") (version "19.08.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/applications/" version "/src/kpimtextedit-" version ".tar.xz")) (sha256 (base32 "1as48j5qfpj9pqjck1615nlpk4a850m7xxcyl41gx8biww027zvm")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("qttools" ,qttools))) (inputs `(("grantlee" ,grantlee) ("kcodecs" ,kcodecs) ("kconfigwidgets" ,kconfigwidgets) ("kcoreaddons" ,kcoreaddons) ("kdesignerplugin" ,kdesignerplugin) ("kemoticons" ,kemoticons) ("ki18n" ,ki18n) ("kiconthemes" ,kiconthemes) ("kio" ,kio) ("ksyntaxhighlighting" ,ksyntaxhighlighting) ("ktextwidgets" ,ktextwidgets) ("kwidgetsaddons" ,kwidgetsaddons) ("kxmlgui" ,kxmlgui) ("qtbase" ,qtbase) ("qtspeech", qtspeech) ("sonnet" ,sonnet))) (arguments `(#:tests? #f ;; TODO - test suite hangs #: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://api.kde.org/stable/kdepimlibs-apidocs/") (synopsis "Library providing a textedit with PIM-specific features") (description "A library for PIM-specific text editing utilities.") (license ;; GPL for programs, LGPL for libraries, FDL for documentation (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))