summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
diff options
context:
space:
mode:
authorGeorge Shammas <george@shamm.as>2024-10-11 14:05:15 -0400
committerGeorge Shammas <george@shamm.as>2024-12-02 19:17:31 -0500
commitde64f4939609ba9c258446eb17f9ec7425934f77 (patch)
tree4f80574072173fb7b96b9f26a6555cb6b7ee7d71 /pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
parent9fda0f5ae0286637ace83ba29549c79edbd0d784 (diff)
glibc: fix locale fallback on non-nixos systems
There is a nixpkgs' glibc patch that makes it look at environment variables to locate the locale-archive. It has a fallback to /usr/lib/locale/locale-archive, which is a pretty good one since nearly all non-nixos systems use that exact path since glibc hard codes it looking at PREFIX/lib/locale/locale-archive. IE debian/EL/Arch/Gentoo and others all use the same path for locale-archive. That hard coding in glibc is why nixpkgs even has this patch in the first place. Other wise you would need to rebuild every single package whenever you wanted to change the locale-archive at runtime. The problem with that final fallback is that glibc in nixpkgs includes a minimal locale-archive with just C.UTF-8. It does this so tests that require UTF-8 support can work in nixpkgs. The current patch will _always_ find the minimal locale-archive and never actually fall back to the system one. This can be very confusing, especially when looking at the patch and wondering why your CI system is throwing locale errors. Eventually you realize that some test sanitizes the environment, but still confused since it should fall back to the system's locale-archive. On systems that do not set LOCALE_ARCHIVE and do not have /usr/lib/locale/locale-archive then we fall back to that super minimal locale-archive included with the default nixpkgs' glibc. Testing: == Before == % env -u LOCALE_ARCHIVE_2_27 -u LOCALE_ARCHIVE LANG=en_US.UTF-8 /nix/store/gdq185xa4cmka46nv67vkmjlmkd9yr1k-cowsay-3.8.3/bin/cowsay hello perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "", LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). _______ < hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || == After == % env -u LOCALE_ARCHIVE_2_27 -u LOCALE_ARCHIVE LANG=en_US.UTF-8 /nix/store/hhc2gzs6gax4frk8985w2ada2ra35zyw-cowsay-3.8.3/bin/cowsay hello _______ < hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || === On NixOS === % env -u LOCALE_ARCHIVE_2_27 -u LOCALE_ARCHIVE LANG=en_US.UTF-8 /nix/store/hhc2gzs6gax4frk8985w2ada2ra35zyw-cowsay-3.8.3/bin/cowsay hello perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = (unset), LC_NUMERIC = (unset), LC_COLLATE = (unset), LC_TIME = (unset), LC_MESSAGES = (unset), LC_MONETARY = (unset), LC_ADDRESS = (unset), LC_IDENTIFICATION = (unset), LC_MEASUREMENT = (unset), LC_PAPER = (unset), LC_TELEPHONE = (unset), LC_NAME = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). _______ < hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || === Still can get the minimal locale-archive included with glibc === % env -u LOCALE_ARCHIVE_2_27 -u LOCALE_ARCHIVE LANG=C.UTF-8 /nix/store/hhc2gzs6gax4frk8985w2ada2ra35zyw-cowsay-3.8.3/bin/cowsay hello _______ < hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Diffstat (limited to 'pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch')
0 files changed, 0 insertions, 0 deletions