gnu: Add kdiskmark.

* gnu/packages/benchmark.scm (kdiskmark): New variable.
This commit is contained in:
Maxim Cournoyer 2022-03-03 16:43:14 -05:00
parent a001522657
commit 0b0b377db8
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -8,7 +8,7 @@
;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
@ -31,6 +31,7 @@ (define-module (gnu packages benchmark)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -38,6 +39,7 @@ (define-module (gnu packages benchmark)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi) #: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-science)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
(define-public fio (define-public fio
@ -383,3 +386,47 @@ (define-public clpeak
devices. It only measures the peak metrics that can be achieved using devices. It only measures the peak metrics that can be achieved using
vector operations and does not represent a real-world use case.") vector operations and does not represent a real-world use case.")
(license license:unlicense)))) (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+)))