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.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
{ 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
|
||||
|
||||
Reference in New Issue
Block a user