From 1278044befe37f6d3c698b50353978c21c78a8a6 Mon Sep 17 00:00:00 2001 From: Vika Date: Mon, 29 Jul 2024 13:21:56 +0300 Subject: Prevent mass-rebuilds by properly overriding the locales package Applying the overlay onto a NixOS system results in a mass-rebuild, since apparently many packages indirectly depend on glibcLocales. This is why NixOS has a setting for setting the locale package used at runtime. --- flake.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index a712b3e..7067523 100644 --- a/flake.nix +++ b/flake.nix @@ -1,17 +1,16 @@ { description = "Custom locale"; outputs = { self, ... }: { - overlays.default = final: prev: { - glibcLocales = prev.glibcLocales.overrideAttrs (base: { + nixosModules.default = { config, lib, pkgs, ... }: { + i18n.glibcLocales = (pkgs.glibcLocales.overrideAttrs (base: { postPatch = base.postPatch + '' - cp ${prev.lib.escapeShellArg ./en_EU} localedata/locales/en_EU + cp ${./en_EU} localedata/locales/en_EU echo 'en_EU.UTF-8/UTF-8 \' >>localedata/SUPPORTED ''; - }); - }; - - nixosModules.default = { lib, ... }: { - nixpkgs.overlays = [ self.overlays.default ]; + })).override { + allLocales = builtins.any (x: x == "all") config.i18n.supportedLocales; + locales = config.i18n.supportedLocales; + }; i18n.defaultLocale = lib.mkDefault "en_EU.UTF-8"; }; }; -- cgit 1.4.1