diff mbox series

[bug#40617] sysbench (New package)

Message ID 874ktm7rw2.fsf@ericcbrown.com
State Accepted
Headers show
Series [bug#40617] sysbench (New package) | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Eric Brown April 14, 2020, 1:55 a.m. UTC
Dear All,

Please see attached a patch for sysbench, a benchmarking utility.

Best regards,
Eric

Comments

Mathieu Othacehe April 28, 2020, 8:13 a.m. UTC | #1
Hello Eric,

Thanks for the patch.

> +    (version "1.0.19")

Looks like 1.0.20 is out there.

> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/akopytov/sysbench")
> +             (commit version)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1zgqb9cr7ld3vw4a3jhq1mlszhcyjlpr0c8q1jcp1d27l9dcvd1w"))
> +       (modules '((guix build utils)))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f ; until shebangs fixed

Tests can run but you actually need to modify run_tests.sh so that it's
able to locate the python interpreter.

> +       (modify-phases %standard-phases
> +         (delete 'bootstrap)
> +         (add-after 'patch-source-shebangs 'libtoolize
> +           (lambda _ (invoke "libtoolize" "--copy" "--force")))
> +         (add-after 'libtoolize 'aclocal
> +           (lambda _ (invoke "aclocal" "-I" "m4")))
> +         (add-after 'aclocal 'autoreconf
> +           (lambda _ (invoke "autoreconf" "--install")))
> +         (add-after 'autoreconf 'automake
> +           (lambda _ (invoke "automake"
> +                             "-c" "--foreign" "--add-missing")))
> +         (add-after 'automake 'autoconf
> +           (lambda _ (invoke "autoconf"))))))

You can remove all this block by just adding "which" to the
native-inputs list :)

> +    (synopsis "Scriptable multi-threaded benchmark tool ")

Trailing space at the end of the sentence.

> +    (description "sysbench is a scriptable multi-threaded benchmark tool based
> +on LuaJIT. It is most frequently used for database benchmarks, but can also be
> +used to create arbitrarily complex workloads that do not involve a database
> +server.")

Please remember to run `guix lint' before submitting.

Thanks,

Mathieu
Mathieu Othacehe April 28, 2020, 8:28 a.m. UTC | #2
Hello Eric,

Thanks for the patch.

> +    (version "1.0.19")

Looks like 1.0.20 is out there.

> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/akopytov/sysbench")
> +             (commit version)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1zgqb9cr7ld3vw4a3jhq1mlszhcyjlpr0c8q1jcp1d27l9dcvd1w"))
> +       (modules '((guix build utils)))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f ; until shebangs fixed

Tests can run but you actually need to modify run_tests.sh so that it's
able to locate the python interpreter.

> +       (modify-phases %standard-phases
> +         (delete 'bootstrap)
> +         (add-after 'patch-source-shebangs 'libtoolize
> +           (lambda _ (invoke "libtoolize" "--copy" "--force")))
> +         (add-after 'libtoolize 'aclocal
> +           (lambda _ (invoke "aclocal" "-I" "m4")))
> +         (add-after 'aclocal 'autoreconf
> +           (lambda _ (invoke "autoreconf" "--install")))
> +         (add-after 'autoreconf 'automake
> +           (lambda _ (invoke "automake"
> +                             "-c" "--foreign" "--add-missing")))
> +         (add-after 'automake 'autoconf
> +           (lambda _ (invoke "autoconf"))))))

You can remove all this block by just adding "which" to the
native-inputs list :)

> +    (synopsis "Scriptable multi-threaded benchmark tool ")

Trailing space at the end of the sentence.

> +    (description "sysbench is a scriptable multi-threaded benchmark tool based
> +on LuaJIT. It is most frequently used for database benchmarks, but can also be
> +used to create arbitrarily complex workloads that do not involve a database
> +server.")

Please remember to run `guix lint' before submitting.

Thanks,

Mathieu
Brett Gilio July 25, 2020, 2:15 a.m. UTC | #3
tags 40617 moreinfo
Christopher Baines Nov. 21, 2020, 10:27 a.m. UTC | #4
It's been a few months, is this patch still relevant?

Thanks,

Chris
Eric Brown May 26, 2021, 10:28 p.m. UTC | #5
Hi Chris,

Sorry this fell through the cracks.  Yes, I would like to have this patch because it's useful to have benchmarks in the various contexts where I use Guix.  This package makes it easy to get some, and is libre.

Best regards,
Eric

On Sat, Nov 21, 2020, at 4:27 AM, Christopher Baines wrote:
> 
> It's been a few months, is this patch still relevant?
> 
> Thanks,
> 
> Chris
> 
> Attachments:
> * signature.asc
Maxim Cournoyer March 21, 2022, 5:37 p.m. UTC | #6
Hello,

"Eric Brown" <ecbrown@ericcbrown.com> writes:

> Hi Chris,
>
> Sorry this fell through the cracks.  Yes, I would like to have this patch because it's useful to have benchmarks in the various contexts where I use Guix.  This package makes it easy to get some, and is libre.
>
> Best regards,
> Eric
>
> On Sat, Nov 21, 2020, at 4:27 AM, Christopher Baines wrote:
>> 
>> It's been a few months, is this patch still relevant?
>> 
>> Thanks,
>> 
>> Chris

I didn't notice about this patch (apologies!) and submitted sysbench
independently in c886968bb161d7d53c17f9cd6dfb87be34446690 a few days
ago.

Thank you,

Closing.

Maxim
diff mbox series

Patch

From 4906fb3db0482cbb5862f8f56e6e107499dee2d8 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 13 Apr 2020 20:34:11 -0500
Subject: [PATCH] gnu: Add sysbench.

* gnu/packages/benchmark.scm (sysbench): New variable.
---
 gnu/packages/benchmark.scm | 64 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 4e6c416518..b27cd5436e 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -7,6 +7,7 @@ 
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,16 +32,22 @@ 
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages storage)
+  #:use-module (gnu packages tls)
   #:use-module (ice-9 match))
 
 (define-public fio
@@ -258,3 +265,60 @@  benchmark how your file systems perform with respect to data read and write
 speed, the number of seeks that can be performed per second, and the number of
 file metadata operations that can be performed per second.")
     (license license:gpl2)))   ;GPL 2 only, see copyright.txt
+
+(define-public sysbench
+  (package
+    (name "sysbench")
+    (version "1.0.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/akopytov/sysbench")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zgqb9cr7ld3vw4a3jhq1mlszhcyjlpr0c8q1jcp1d27l9dcvd1w"))
+       (modules '((guix build utils)))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; until shebangs fixed
+       #:configure-flags '("--with-system-luajit")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (add-after 'patch-source-shebangs 'libtoolize
+           (lambda _ (invoke "libtoolize" "--copy" "--force")))
+         (add-after 'libtoolize 'aclocal
+           (lambda _ (invoke "aclocal" "-I" "m4")))
+         (add-after 'aclocal 'autoreconf
+           (lambda _ (invoke "autoreconf" "--install")))
+         (add-after 'autoreconf 'automake
+           (lambda _ (invoke "automake"
+                             "-c" "--foreign" "--add-missing")))
+         (add-after 'automake 'autoconf
+           (lambda _ (invoke "autoconf"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("lua" ,lua)
+       ("m4" ,m4)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-minimal)))
+    (inputs
+     `(("libaio" ,libaio)
+       ("luajit" ,luajit)
+       ("mysql" ,mysql)
+       ("openssl" ,openssl)
+       ("postgresql" ,postgresql)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/akopytov/sysbench/")
+    (synopsis "Scriptable multi-threaded benchmark tool ")
+    (description "sysbench is a scriptable multi-threaded benchmark tool based
+on LuaJIT. It is most frequently used for database benchmarks, but can also be
+used to create arbitrarily complex workloads that do not involve a database
+server.")
+    (license license:gpl2+)))
+
-- 
2.26.0