From 4ab8ef78eca226ccb0d2e9a6eddb32e6918cefb8 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 25 Feb 2026 20:55:44 -0600 Subject: [PATCH] octavePackages.image: add inputs to test environment for graphical tests Some Octave packages require OpenGL for their unit tests, e.g. `octavePackages.image`. Previously, this test script would have erroneous failures because OpenGL could not be found. [1] suggested that we add these to the test environment to remove these incorrect failures. Fixing OpenGL being missing actually meant that gnuplot needed to be pulled in, because these unit tests were plotting AND doing graphics. And because gnuplot needs fonts, we need fontconfig too. [1] https://github.com/NixOS/nixpkgs/pull/491992#issuecomment-3944950414 Co-authored-by: Michael Daniels Co-authored-by: Karl Hallsby --- pkgs/development/octave-modules/image/default.nix | 14 ++++++++++++++ pkgs/top-level/octave-packages.nix | 9 ++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pkgs/development/octave-modules/image/default.nix b/pkgs/development/octave-modules/image/default.nix index 37e42d34adfb..4f424e3a4f94 100644 --- a/pkgs/development/octave-modules/image/default.nix +++ b/pkgs/development/octave-modules/image/default.nix @@ -2,6 +2,10 @@ buildOctavePackage, lib, fetchurl, + mesa, + gnuplot, + makeFontsConf, + writableTmpDirAsHomeHook, }: buildOctavePackage rec { @@ -13,6 +17,16 @@ buildOctavePackage rec { sha256 = "sha256-pYY8E5LZd+pPNwzFVH4EsXY8K3fXs6Hyz2zYweXkmRk="; }; + nativeOctavePkgTestInputs = [ + mesa + gnuplot + writableTmpDirAsHomeHook + ]; + + octavePkgTestEnv.FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; }; + + __structuredAttrs = true; + meta = { homepage = "https://gnu-octave.github.io/packages/image/"; license = lib.licenses.gpl3Plus; diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index e9a8a13608ec..e440e979d5ce 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -116,7 +116,14 @@ makeScope newScope ( inherit (pkgs) gsl; }; - image = callPackage ../development/octave-modules/image { }; + image = callPackage ../development/octave-modules/image { + inherit (pkgs) + mesa + gnuplot + makeFontsConf + writableTmpDirAsHomeHook + ; + }; image-acquisition = callPackage ../development/octave-modules/image-acquisition { };