diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/x11/xquartz/system-fonts.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/x11/xquartz/system-fonts.nix | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/x11/xquartz/system-fonts.nix b/nixpkgs/pkgs/servers/x11/xquartz/system-fonts.nix new file mode 100644 index 000000000000..db47f8afe015 --- /dev/null +++ b/nixpkgs/pkgs/servers/x11/xquartz/system-fonts.nix @@ -0,0 +1,34 @@ +{ stdenv, xorg, fontDirs }: + +stdenv.mkDerivation { + name = "xquartz-system-fonts"; + buildInputs = [ + xorg.mkfontdir xorg.mkfontscale + ]; + buildCommand = '' + source $stdenv/setup + + 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 -f fonts.dir fonts.scale fonts.alias + mkfontdir + mkfontscale + cat $( find ${xorg.fontalias}/ -name fonts.alias) >fonts.alias + ''; +} |