From 253a64827a4f25a1760b017563c816b80cb852d5 Mon Sep 17 00:00:00 2001 From: Tom McLaughlin Date: Mon, 29 Sep 2025 02:14:04 -0700 Subject: [PATCH] octave.withPackages: fix null reference on darwin --- pkgs/development/interpreters/octave/build-env.nix | 11 ++++++++--- pkgs/development/interpreters/octave/default.nix | 7 +++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkgs/development/interpreters/octave/build-env.nix b/pkgs/development/interpreters/octave/build-env.nix index d83003aa8a8a..373567d92cc5 100644 --- a/pkgs/development/interpreters/octave/build-env.nix +++ b/pkgs/development/interpreters/octave/build-env.nix @@ -19,6 +19,11 @@ let packages = computeRequiredOctavePackages extraLibs; + # glibcLocalesUtf8 is null on darwin + localeArchiveArgs = lib.optionalString (glibcLocalesUtf8 != null) '' + --set LOCALE_ARCHIVE "${glibcLocalesUtf8}/lib/locale/locale-archive" + ''; + in buildEnv { name = "${octave.name}-env"; @@ -47,7 +52,7 @@ buildEnv { if [ -x $prg ]; then makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" \ --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc" \ - --set LOCALE_ARCHIVE "${glibcLocalesUtf8}/lib/locale/locale-archive" + ${localeArchiveArgs} fi done cd $out @@ -87,9 +92,9 @@ buildEnv { '' + postBuild; - inherit (octave) meta; + inherit (octave) meta version; - passthru = octave.passthru // { + passthru = (removeAttrs octave.passthru [ "tests" ]) // { interpreter = "$out/bin/octave"; inherit octave; env = stdenv.mkDerivation { diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix index 9eacfd0b8566..68d7a853467f 100644 --- a/pkgs/development/interpreters/octave/default.nix +++ b/pkgs/development/interpreters/octave/default.nix @@ -7,6 +7,7 @@ ncurses, perl, flex, + testers, texinfo, qhull, libsndfile, @@ -226,6 +227,12 @@ stdenv.mkDerivation (finalAttrs: { withPackages = import ./with-packages.nix { inherit buildEnv octavePackages; }; pkgs = octavePackages; interpreter = "${finalAttrs.finalPackage}/bin/octave"; + tests = { + wrapper = testers.testVersion { + package = finalAttrs.finalPackage.withPackages (ps: [ ps.doctest ]); + command = "octave --version"; + }; + }; }; meta = {