summary refs log tree commit diff
path: root/pkgs/data/fonts/siji/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/data/fonts/siji/default.nix')
-rw-r--r--pkgs/data/fonts/siji/default.nix48
1 files changed, 33 insertions, 15 deletions
diff --git a/pkgs/data/fonts/siji/default.nix b/pkgs/data/fonts/siji/default.nix
index a0acf78d855..336fe48f54d 100644
--- a/pkgs/data/fonts/siji/default.nix
+++ b/pkgs/data/fonts/siji/default.nix
@@ -1,26 +1,44 @@
-{ lib, fetchzip }:
+{ stdenv, fetchzip, libfaketime, fonttosfnt, mkfontscale }:
 
-let
-  date = "2016-05-13";
-in fetchzip {
-  name = "siji-${date}";
+stdenv.mkDerivation rec {
+  name = "siji-${version}";
+  version = "2016-05-13";
 
-  url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
+  src = fetchzip {
+    url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
+    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
-  postFetch = ''
-    unzip -j $downloadedFile
+  buildPhase = ''
+    # compress pcf fonts
+    gzip -n -9 pcf/*
+
+    # convert bdf fonts to otb
+    for i in bdf/*; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
 
-    install -D *.pcf -t $out/share/fonts/pcf
-    install -D *.bdf -t $out/share/fonts/bdf
+  postInstall = ''
+    install -m 644 -D pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
+    install -m 644 -D *.otb -t "$otb/share/fonts/misc"
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  sha256 = "1ymcbirdbkqaf0xs2y00l0wachb4yxh1fgqm5avqwvccs0lsfj1d";
+  outputs = [ "out" "bdf" "otb" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/stark/siji;
     description = "An iconic bitmap font based on Stlarch with additional glyphs";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.all;
-    maintainers = [ lib.maintainers.asymmetric ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.asymmetric ];
   };
 }