diff options
author | Michele Guerini Rocco <rnhmjoj@users.noreply.github.com> | 2020-02-15 01:28:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-15 01:28:40 +0100 |
commit | 8de09faad16428b16ed2dff64cbfa6db82d31857 (patch) | |
tree | db3b15a0b7d6f50145ba3d1c7362b22d01ce4635 /pkgs/data | |
parent | 08ac06edbaaeccb4677adca396c30a8f88cb9c92 (diff) | |
parent | 36ca91e25306df0f72332a24c8dd67f7a59552bd (diff) | |
download | nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar.gz nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar.bz2 nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar.lz nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar.xz nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.tar.zst nixlib-8de09faad16428b16ed2dff64cbfa6db82d31857.zip |
Merge pull request #79664 from rnhmjoj/dina
dina: generate otb files with fontforge
Diffstat (limited to 'pkgs/data')
-rw-r--r-- | pkgs/data/fonts/dina-pcf/default.nix | 64 | ||||
-rw-r--r-- | pkgs/data/fonts/dina/default.nix | 57 |
2 files changed, 46 insertions, 75 deletions
diff --git a/pkgs/data/fonts/dina-pcf/default.nix b/pkgs/data/fonts/dina-pcf/default.nix deleted file mode 100644 index eff0c579a707..000000000000 --- a/pkgs/data/fonts/dina-pcf/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{stdenv, fetchurl, unzip, bdftopcf, mkfontdir, mkfontscale}: - -stdenv.mkDerivation { - version = "2.92"; - pname = "dina-font-pcf"; - - src = fetchurl { - url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip"; - sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z"; - }; - - nativeBuildInputs = [ unzip bdftopcf mkfontdir mkfontscale ]; - - dontBuild = true; - patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf"; - installPhase = '' - _get_font_size() { - _pt=$\{1%.bdf} - _pt=$\{_pt#*-} - echo $_pt - } - - for i in Dina_i400-*.bdf; do - bdftopcf -t -o DinaItalic$(_get_font_size $i).pcf $i - done - for i in Dina_i700-*.bdf; do - bdftopcf -t -o DinaBoldItalic$(_get_font_size $i).pcf $i - done - for i in Dina_r400-*.bdf; do - bdftopcf -t -o DinaMedium$(_get_font_size $i).pcf $i - done - for i in Dina_r700-*.bdf; do - bdftopcf -t -o DinaBold$(_get_font_size $i).pcf $i - done - gzip -n *.pcf - - fontDir="$out/share/fonts/misc" - mkdir -p "$fontDir" - mv *.pcf.gz "$fontDir" - - cd "$fontDir" - mkfontdir - mkfontscale - ''; - - preferLocalBuild = true; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "0v0qn5zwq4j1yx53ypg6w6mqx6dk8l1xix0188b0k4z3ivgnflyb"; - - meta = with stdenv.lib; { - description = "A monospace bitmap font aimed at programmers"; - longDescription = '' - Dina is a monospace bitmap font, primarily aimed at programmers. It is - relatively compact to allow a lot of code on screen, while (hopefully) - clear enough to remain readable even at high resolutions. - ''; - homepage = https://www.donationcoder.com/Software/Jibz/Dina/; - downloadPage = https://www.donationcoder.com/Software/Jibz/Dina/; - license = licenses.free; - maintainers = [ maintainers.prikhi ]; - }; -} diff --git a/pkgs/data/fonts/dina/default.nix b/pkgs/data/fonts/dina/default.nix index 0d4cd286219e..8bc1af60ab4d 100644 --- a/pkgs/data/fonts/dina/default.nix +++ b/pkgs/data/fonts/dina/default.nix @@ -1,20 +1,55 @@ -{ stdenv, fetchzip }: +{ stdenv, fetchurl, unzip +, bdftopcf, mkfontscale, fontforge +}: -let +stdenv.mkDerivation { + pname = "dina-font"; version = "2.92"; -in fetchzip { - name = "dina-font-${version}"; - # `meta.homepage` has no direct download link - url = "https://github.com/ProgrammingFonts/ProgrammingFonts/archive/b15ef365146be7eef4a46979cfe157c5aeefb7c0.zip"; + src = fetchurl { + url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip"; + sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z"; + }; + + nativeBuildInputs = + [ unzip bdftopcf mkfontscale fontforge ]; + + patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf"; + + buildPhase = '' + newName() { + test "''${1:5:1}" = i && _it=Italic || _it= + case ''${1:6:3} in + 400) test -z $it && _weight=Medium ;; + 700) _weight=Bold ;; + esac + _pt=''${1%.bdf} + _pt=''${_pt#*-} + echo "Dina$_weight$_it$_pt" + } + + # convert bdf fonts to pcf + for i in *.bdf; do + bdftopcf -t -o $(newName "$i").pcf "$i" + done + gzip -n -9 *.pcf + + # convert bdf fonts to otb + for i in *.bdf; do + fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")" + done + ''; - postFetch = '' - mkdir -p $out/share/fonts - unzip -j $downloadedFile '*/Dina/*.bdf' -d $out/share/fonts - chmod u-x $out/share/fonts/* + installPhase = '' + install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz + install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf + install -D -m 644 -t "$otb/share/fonts/misc" *.otb + mkfontdir "$out/share/fonts/misc" + mkfontdir "$bdf/share/fonts/misc" + mkfontdir "$otb/share/fonts/misc" ''; - sha256 = "02a6hqbq18sw69npylfskriqhvj1nsk65hjjyd05nl913ycc6jl7"; + outputs = [ "out" "bdf" "otb" ]; meta = with stdenv.lib; { description = "A monospace bitmap font aimed at programmers"; |