From 2b306e544a5ceb234561a276dedd46f6c5826b2d Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 19 Oct 2025 18:18:05 -0700 Subject: [PATCH 1/3] fio: limit libnbd to Linux libnbd only lists Linux as a supported platform, so only add it to buildInputs for Linux. --- pkgs/by-name/fi/fio/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/fi/fio/package.nix b/pkgs/by-name/fi/fio/package.nix index 7ce40f35ccb2..0f976196876f 100644 --- a/pkgs/by-name/fi/fio/package.nix +++ b/pkgs/by-name/fi/fio/package.nix @@ -10,7 +10,7 @@ zlib, withGnuplot ? false, gnuplot, - withLibnbd ? true, + withLibnbd ? stdenv.hostPlatform.isLinux, libnbd, }: From 4ad51422b8952ccc228a3b016219b33d23a20c48 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 2 Nov 2025 00:04:18 -0700 Subject: [PATCH 2/3] fio: misc cleanups - Drop unused patches - Disable native optimizations (-march=native) - Replace rev with tag - Replace sha256 with hash --- pkgs/by-name/fi/fio/package.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/fi/fio/package.nix b/pkgs/by-name/fi/fio/package.nix index 0f976196876f..741373c2e39c 100644 --- a/pkgs/by-name/fi/fio/package.nix +++ b/pkgs/by-name/fi/fio/package.nix @@ -21,8 +21,8 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "axboe"; repo = "fio"; - rev = "fio-${finalAttrs.version}"; - sha256 = "sha256-m4JskjSc/KHjID+6j/hbhnGzehPxMxA3m2Iyn49bJDU="; + tag = "fio-${finalAttrs.version}"; + hash = "sha256-m4JskjSc/KHjID+6j/hbhnGzehPxMxA3m2Iyn49bJDU="; }; patches = [ @@ -44,7 +44,10 @@ stdenv.mkDerivation (finalAttrs: { # We use $CC instead. configurePlatforms = [ ]; - configureFlags = lib.optional withLibnbd "--enable-libnbd"; + configureFlags = [ + "--disable-native" + ] + ++ lib.optional withLibnbd "--enable-libnbd"; dontAddStaticConfigureFlags = true; @@ -59,10 +62,8 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; postPatch = '' - substituteInPlace Makefile \ - --replace "mandir = /usr/share/man" "mandir = \$(prefix)/man" \ - --replace "sharedir = /usr/share/fio" "sharedir = \$(prefix)/share/fio" - substituteInPlace tools/plot/fio2gnuplot --replace /usr/share/fio $out/share/fio + substituteInPlace tools/plot/fio2gnuplot \ + --replace-fail /usr/share/fio $out/share/fio ''; pythonPath = [ python3.pkgs.six ]; From db6eb61d6cb77258beed7e55f01a6272f2f543fe Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 2 Nov 2025 16:02:09 -0800 Subject: [PATCH 3/3] fio: run unit tests during checkPhase --- pkgs/by-name/fi/fio/package.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/by-name/fi/fio/package.nix b/pkgs/by-name/fi/fio/package.nix index 741373c2e39c..7ae6aa9b3592 100644 --- a/pkgs/by-name/fi/fio/package.nix +++ b/pkgs/by-name/fi/fio/package.nix @@ -6,6 +6,7 @@ makeWrapper, libaio, pkg-config, + cunit, python3, zlib, withGnuplot ? false, @@ -34,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ + cunit python3 zlib ] @@ -76,6 +78,16 @@ stdenv.mkDerivation (finalAttrs: { wrapPythonProgramsIn "$out/bin" "$out ''${pythonPath[*]}" ''; + doCheck = true; + + checkPhase = '' + runHook preCheck + + ./unittests/unittest + + runHook postCheck + ''; + meta = { description = "Flexible IO Tester - an IO benchmark tool"; homepage = "https://git.kernel.dk/cgit/fio/";