summaryrefslogtreecommitdiffstats
path: root/nixos/modules/config/fonts
diff options
context:
space:
mode:
authorJoachim Fasting <joachifm@fastmail.fm>2016-05-25 19:10:16 +0200
committerJoachim Fasting <joachifm@fastmail.fm>2016-05-26 22:39:01 +0200
commitb24e58a82ba3323ca0aa4db80a80e7725c7ff21d (patch)
tree1cd3e87e752a3fb595bd4e556125aeb879c7ef70 /nixos/modules/config/fonts
parent8479e0ad84dbb79450afea9087bda0169891c35c (diff)
config.fonts.fontdir: use runCommand instead of builderDefs
The primary motivation here is to get rid of builderDefs, but now the resulting font directory is also linked into /run/current-system/sw, which fixes #15194.
Diffstat (limited to 'nixos/modules/config/fonts')
-rw-r--r--nixos/modules/config/fonts/fontdir.nix54
1 files changed, 13 insertions, 41 deletions
diff --git a/nixos/modules/config/fonts/fontdir.nix b/nixos/modules/config/fonts/fontdir.nix
index c78b52fe29e1..180e38f81f4f 100644
--- a/nixos/modules/config/fonts/fontdir.nix
+++ b/nixos/modules/config/fonts/fontdir.nix
@@ -4,47 +4,17 @@ with lib;
let
- fontDirs = config.fonts.fonts;
-
- localDefs = with pkgs.builderDefs; pkgs.builderDefs.passthru.function rec {
- src = "";/* put a fetchurl here */
- buildInputs = [pkgs.xorg.mkfontdir pkgs.xorg.mkfontscale];
- inherit fontDirs;
- installPhase = fullDepEntry ("
- list='';
- for i in ${toString fontDirs} ; do
- if [ -d \$i/ ]; then
- list=\"\$list \$i\";
- fi;
- done
- list=\$(find \$list -name fonts.dir -o -name '*.ttf' -o -name '*.otf');
- fontDirs='';
- for i in \$list ; do
- fontDirs=\"\$fontDirs \$(dirname \$i)\";
- done;
- mkdir -p \$out/share/X11-fonts/;
- find \$fontDirs -type f -o -type l | while read i; do
- j=\"\${i##*/}\"
- if ! test -e \"\$out/share/X11-fonts/\${j}\"; then
- ln -s \"\$i\" \"\$out/share/X11-fonts/\${j}\";
- fi;
- done;
- cd \$out/share/X11-fonts/
- rm fonts.dir
- rm fonts.scale
- rm fonts.alias
- mkfontdir
- mkfontscale
- cat \$( find ${pkgs.xorg.fontalias}/ -name fonts.alias) >fonts.alias
- ") ["minInit" "addInputs"];
- };
-
- x11Fonts = with localDefs; stdenv.mkDerivation rec {
- name = "X11-fonts";
- builder = writeScript (name + "-builder")
- (textClosure localDefs
- [installPhase doForceShare doPropagate]);
- };
+ x11Fonts = pkgs.runCommand "X11-fonts" { } ''
+ mkdir -p "$out/share/X11-fonts"
+ find ${toString config.fonts.fonts} \
+ \( -name fonts.dir -o -name '*.ttf' -o -name '*.otf' \) \
+ -exec ln -sf -t "$out/share/X11-fonts" '{}' \;
+ cd "$out/share/X11-fonts"
+ rm -f fonts.dir fonts.scale fonts.alias
+ ${pkgs.xorg.mkfontdir}/bin/mkfontdir
+ ${pkgs.xorg.mkfontscale}/bin/mkfontscale
+ cat $(find ${pkgs.xorg.fontalias}/ -name fonts.alias) >fonts.alias
+ '';
in
@@ -70,6 +40,8 @@ in
environment.systemPackages = [ x11Fonts ];
+ environment.pathsToLink = [ "/share/X11-fonts" ];
+
};
}