From a3b97a4061f8c59922b49aa3237d8876ab36aaa8 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Mon, 17 Feb 2020 02:11:34 +0100 Subject: uni-vga: generate otb, psf and split output --- pkgs/data/fonts/uni-vga/default.nix | 46 +++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 10 deletions(-) (limited to 'pkgs/data/fonts') diff --git a/pkgs/data/fonts/uni-vga/default.nix b/pkgs/data/fonts/uni-vga/default.nix index cd719a62d99f..44619bf3424c 100644 --- a/pkgs/data/fonts/uni-vga/default.nix +++ b/pkgs/data/fonts/uni-vga/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, mkfontdir, mkfontscale }: +{ stdenv, fetchurl, perl, kbd, bdftopcf +, libfaketime, fonttosfnt, mkfontscale +}: stdenv.mkDerivation { name = "uni-vga"; @@ -8,19 +10,43 @@ stdenv.mkDerivation { sha256 = "05sns8h5yspa7xkl81ri7y1yxf5icgsnl497f3xnaryhx11s2rv6"; }; - nativeBuildInputs = [ mkfontdir mkfontscale ]; + nativeBuildInputs = + [ perl kbd bdftopcf libfaketime + fonttosfnt mkfontscale + ]; + + postPatch = "patchShebangs ."; + + buildPhase = '' + # convert font to compressed pcf + bdftopcf u_vga16.bdf | gzip -c -9 -n > u_vga16.pcf.gz + + # convert font to compressed psf + ./bdf2psf.pl -s UniCyrX.sfm u_vga16.bdf \ + | psfaddtable - UniCyrX.sfm - \ + | gzip -c -9 -n > u_vga16.psf.gz + + # convert bdf font to otb + faketime -f "1970-01-01 00:00:01" \ + fonttosfnt -v -o u_vga16.otb u_vga16.bdf + ''; installPhase = '' - mkdir -p $out/share/fonts - cp *.bdf $out/share/fonts - cd $out/share/fonts - mkfontdir - mkfontscale + # install pcf (for X11 applications) and psf (virtual terminal) + install -m 644 -D *.pcf.gz -t "$out/share/fonts" + install -m 644 -D *.psf.gz -t "$out/share/consolefonts" + mkfontdir "$out/share/fonts" + + # install bdf font + install -m 644 -D *.bdf -t "$bdf/share/fonts" + mkfontdir "$bdf/share/fonts" + + # install otb font (for GTK applications) + install -m 644 -D *.otb -t "$otb/share/fonts" + mkfontdir "$otb/share/fonts" ''; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "0rfly7r6blr2ykxlv0f6my2w41vvxcw85chspljd2p1fxlr28jd7"; + outputs = [ "out" "bdf" "otb" ]; meta = { description = "Unicode VGA font"; -- cgit 1.4.1