Archived
1
0
Fork 0

gnu: akonadi: Enable tests.

* gnu/packages/kde-pim.scm (akonadi)[arguments]: Enable tests and use gexp.
[inputs]: Add LIBACCOUNTS-QT and SIGNOND.

Co-authored-by: Marius Bakke <marius@gnu.org>
This commit is contained in:
Petr Hodina 2022-09-24 17:11:04 +02:00 committed by Marius Bakke
parent 2c6b4872fc
commit 98fd85c032
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -23,6 +23,7 @@
(define-module (gnu packages kde-pim) (define-module (gnu packages kde-pim)
#:use-module (guix build-system qt) #:use-module (guix build-system qt)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
@ -47,22 +48,26 @@
(package (package
(name "akonadi") (name "akonadi")
(version "22.08.1") (version "22.08.1")
(source (source (origin
(origin (method url-fetch)
(method url-fetch) (uri (string-append "mirror://kde/stable/release-service/"
(uri (string-append "mirror://kde/stable/release-service/" version version "/src/akonadi-" version ".tar.xz"))
"/src/akonadi-" version ".tar.xz")) (sha256
(sha256 (base32
(base32 "1yfy0b6kyiq82zkfkx9ldgjlbwg3lgg4di53fqjllmqhzaj1xy91")) "1yfy0b6kyiq82zkfkx9ldgjlbwg3lgg4di53fqjllmqhzaj1xy91"))
(patches (search-patches (patches (search-patches "akonadi-paths.patch"
"akonadi-paths.patch" "akonadi-timestamps.patch"
"akonadi-timestamps.patch" "akonadi-not-relocatable.patch"))))
"akonadi-not-relocatable.patch"))))
(build-system qt-build-system) (build-system qt-build-system)
(native-inputs (native-inputs
(list dbus extra-cmake-modules qttools-5 shared-mime-info pkg-config)) (list dbus
extra-cmake-modules
qttools-5
shared-mime-info
pkg-config))
(inputs (inputs
(list boost (list boost
libaccounts-qt
kconfig kconfig
kconfigwidgets kconfigwidgets
kcoreaddons kcoreaddons
@ -80,33 +85,39 @@
;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries ;; 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 ;; and wrapped files will refer to them, even if the user choices none
;; of these. Executables are searched on $PATH then. ;; of these. Executables are searched on $PATH then.
qtbase-5 signond
sqlite)) qtbase-5))
(propagated-inputs (list sqlite kaccounts-integration))
(arguments (arguments
`(#:tests? #f ;; TODO 135/167 tests fail (list #:tests? #f
#:configure-flags '("-DDATABASE_BACKEND=SQLITE") ; lightweight #:configure-flags #~'("-DDATABASE_BACKEND=SQLITE") ;lightweight
#:modules ((ice-9 textual-ports) #:modules `((ice-9 textual-ports)
,@%qt-build-system-modules) ,@%qt-build-system-modules)
#:phases #:phases
(modify-phases (@ (guix build qt-build-system) %standard-phases) #~(modify-phases (@ (guix build qt-build-system) %standard-phases)
(add-before 'configure 'add-definitions (replace 'check
(lambda* (#:key outputs inputs #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (when tests?
(with-output-to-file "CMakeLists.txt.new" (setenv "PATH"
(lambda _ (string-append (getcwd) "/bin" ":"
(display (getenv "PATH")))
(string-append (invoke "dbus-launch" "ctest" "-E"
"add_compile_definitions(\n" "(AkonadiServer-dbconfigtest|mimetypecheckertest|entitytreemodeltest|akonadi-sqlite-testenvironmenttest|akonadi-sqlite-autoincrementtest|akonadi-sqlite-attributefactorytest|akonadi-sqlite-collectionpathresolvertest|akonadi-sqlite-collectionattributetest|akonadi-sqlite-itemfetchtest|akonadi-sqlite-itemappendtest|akonadi-sqlite-itemstoretest|akonadi-sqlite-itemdeletetest|akonadi-sqlite-entitycachetest|akonadi-sqlite-monitortest|akonadi-sqlite-changerecordertest|akonadi-sqlite-resourcetest|akonadi-sqlite-subscriptiontest|akonadi-sqlite-transactiontest|akonadi-sqlite-itemcopytest|akonadi-sqlite-itemmovetest|akonadi-sqlite-invalidatecachejobtest|akonadi-sqlite-collectioncreatetest|akonadi-sqlite-collectioncopytest|akonadi-sqlite-collectionmovetest|akonadi-sqlite-collectionsynctest|akonadi-sqlite-itemsynctest)"))))
"NIX_OUT=\"" out "\"\n" (add-before 'configure 'add-definitions
;; pin binaries for mysql backend (lambda* (#:key outputs inputs #:allow-other-keys)
")\n\n")) (with-output-to-file "CMakeLists.txt.new"
(display (lambda _
(call-with-input-file "CMakeLists.txt" (display (string-append
get-string-all)))) "add_compile_definitions(\n"
(rename-file "CMakeLists.txt.new" "CMakeLists.txt"))))))) "NIX_OUT=\""
#$output "\"\n" ")\n\n"))
(display (call-with-input-file "CMakeLists.txt"
get-string-all))))
(rename-file "CMakeLists.txt.new" "CMakeLists.txt"))))))
(home-page "https://kontact.kde.org/components/akonadi/") (home-page "https://kontact.kde.org/components/akonadi/")
(synopsis "Extensible cross-desktop storage service for PIM") (synopsis "Extensible cross-desktop storage service for PIM")
(description "Akonadi is an extensible cross-desktop Personal Information (description
"Akonadi is an extensible cross-desktop Personal Information
Management (PIM) storage service. It provides a common framework for Management (PIM) storage service. It provides a common framework for
applications to store and access mail, calendars, addressbooks, and other PIM applications to store and access mail, calendars, addressbooks, and other PIM
data. data.