From 0b0b377db8c07ad16d452f715321535eccba7a70 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 3 Mar 2022 16:43:14 -0500 Subject: [PATCH] gnu: Add kdiskmark. * gnu/packages/benchmark.scm (kdiskmark): New variable. --- gnu/packages/benchmark.scm | 49 +++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 537f6262c4..eb5df3d4c3 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2019, 2021 Ludovic Courtès ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 malte Frank Gerdes -;;; Copyright © 2020, 2021 Maxim Cournoyer +;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2020 Greg Hogan ;;; Copyright © 2021 Arun Isaac ;;; @@ -31,6 +31,7 @@ (define-module (gnu packages benchmark) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -38,6 +39,7 @@ (define-module (gnu packages benchmark) #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) @@ -47,6 +49,7 @@ (define-module (gnu packages benchmark) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (ice-9 match)) (define-public fio @@ -383,3 +386,47 @@ (define-public clpeak devices. It only measures the peak metrics that can be achieved using vector operations and does not represent a real-world use case.") (license license:unlicense)))) + +(define-public kdiskmark + (package + (name "kdiskmark") + (version "2.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JonMagon/KDiskMark") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l4sw05yx70pcnaa64arjc414mgvyz05pn3gz9nc9hga8v2d3rzn")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + ;; Drop runtime dependency on KDE's KFAuth. + #~(list "-DPERFORM_PAGECACHE_CLEARING_USING_KF5AUTH=no") + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/benchmark.cpp" + (("\"fio\"") + (format #f "~s" (search-input-file inputs "bin/fio"))))))))) + (native-inputs (list extra-cmake-modules qttools)) + (inputs (list fio qtbase-5)) + (home-page "https://github.com/JonMagon/KDiskMark") + (synopsis "Simple disk benchmark tool") + (description "KDiskMark is an HDD and SSD benchmark tool. KDiskMark +abstracts away the complexity of the Flexible I/O Tester (@command{fio}) +command via a convenient graphical user interface (GUI) and handles its output +to provide an easy to view and interpret benchmark result. The application is +written in C++ with Qt and doesn't have any runtime KDE dependencies. Among +its features are: +@itemize +@item Configurable block size, queues, and threads count for each test +@item Many languages support +@item Report generation. +@end itemize") + (license license:gpl3+)))