tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
locale confusion in package builds
lang/elixir doesn't build in most environments and I'm trying to figure
out why.
It wants to be in UTF-8, and prints out if no:
warning: the VM is running with native name encoding of latin1 which
may cause Elixir to malfunction as it expects utf8. Please ensure your
locale is set to UTF-8 (which can be verified by running "locale" in
your shell)
which is confusing as UTF-8 is an encoding not a locale, although C.UTF-8
and en_US.UTF-8 are locales.
I am not sure if the locale settings in force when erlang was built
matters, or if erlang 25.1.2 vs 25.2 or elixir 1.14.0 vs 1.42.2 matter.
The makefile does
ALL_ENV+= LC_ALL="en_US.UTF-8"
to set LC_CTYPE, but does it before bsd.pkg.mk so it is not effective.
So I moved it to after.
However,
LC_CTYPE=en_US.UTF-8
in my environment ends up controlling the build.
I flipped that to British and then locale (in pre-build target) prints:
LANG=""
LC_CTYPE="en_GB.UTF-8"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=""
and interestingly, no warnings.
So:
Why doesn't the ALL_ENV above work?
Why does my environment win over what is set?
env(1) is silent about multiple values for a variable.
Home |
Main Index |
Thread Index |
Old Index