Commit 67a5661a authored by Karl Hallsby's avatar Karl Hallsby
Browse files

octavePackages: Ensure locales are found and present in final env

Add locale as buildInput to Octave packages buildEnv

Some Octave packages use a Perl script to translate their
documentation to other languages, which shells out to the locale
program. Before, this would error every time locale was called (which
is on every file), and would lead to a large number of what looked
like errors being printed out.

Set the path to the glibc locales using LOCALE_ARCHIVE in the
makeWrapper invocation, so the wrapped program knows where to find
locales for translations at run-time.
parent e2f8979c
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
{ lib, stdenv, octave, buildEnv
, makeWrapper, texinfo
, makeWrapper
, locale, texinfo, glibcLocalesUtf8
, wrapOctave
, computeRequiredOctavePackages
, extraLibs ? []
@@ -20,7 +21,7 @@ in buildEnv {
  extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;

  nativeBuildInputs = [ makeWrapper ];
  buildInputs = [ texinfo wrapOctave ];
  buildInputs = [ locale texinfo wrapOctave ];

  # During "build" we must first unlink the /share symlink to octave's /share
  # Then, we can re-symlink the all of octave/share, except for /share/octave
@@ -33,7 +34,9 @@ in buildEnv {
         cd "${octave}/bin"
         for prg in *; do
             if [ -x $prg ]; then
                makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc"
                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"
             fi
         done
         cd $out