about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/fonts/noto-fonts/default.nix')
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix102
1 files changed, 59 insertions, 43 deletions
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index 1f4e9cbeef70..d90c796a48a4 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -1,28 +1,44 @@
-{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, python3Packages, pkgconfig, pngquant, which, imagemagick }:
+{ stdenv
+, stdenvNoCC
+, lib
+, fetchFromGitHub
+, fetchzip
+, optipng
+, cairo
+, python3Packages
+, pkgconfig
+, pngquant
+, which
+, imagemagick
+}:
 
 let
-  mkNoto = { name, weights, sha256, }:
-    let
-      version = "2018-11-30";
-      ref = "85e78f831469323c85847e23f95026c894159135";
-    in
-    fetchzip {
-      name = "${name}-${version}";
-      inherit sha256;
-      url = "https://github.com/googlei18n/noto-fonts/archive/${ref}.zip";
-      postFetch = ''
-        unzip $downloadedFile
-        mkdir -p $out/share/fonts/noto
-        # Also copy unhinted & alpha fonts for better glyph coverage,
-        # if they don't have a hinted version
-        # (see https://groups.google.com/d/msg/noto-font/ZJSkZta4n5Y/tZBnLcPdbS0J)
-        for ttf in noto-fonts-*/{hinted,unhinted,alpha}/*-${weights}.ttf
-        do
-            cp -n "$ttf" -t "$out/share/fonts/noto"
-        done
+  mkNoto = { pname, weights }:
+    stdenvNoCC.mkDerivation {
+      inherit pname;
+      version = "2020-01-23";
+
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-fonts";
+        rev = "f4726a2ec36169abd02a6d8abe67c8ff0236f6d8";
+        sha256 = "0zc1r7zph62qmvzxqfflsprazjf6x1qnwc2ma27kyzh6v36gaykw";
+      };
+
+      installPhase = ''
+        # We copy in reverse preference order -- unhinted first, then
+        # hinted -- to get the "best" version of each font while
+        # maintaining maximum coverage.
+        #
+        # TODO: install OpenType, variable versions?
+        local out_ttf=$out/share/fonts/truetype/noto
+        install -m444 -Dt $out_ttf phaseIII_only/unhinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf phaseIII_only/hinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf unhinted/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf hinted/*/*-${weights}.ttf
       '';
-      meta = with stdenv.lib; {
-        inherit version;
+
+      meta = with lib; {
         description = "Beautiful and free fonts for many languages";
         homepage = https://www.google.com/get/noto/;
         longDescription =
@@ -39,41 +55,40 @@ let
 
           This package also includes the Arimo, Cousine, and Tinos fonts.
         '';
-        license = licenses.asl20;
+        license = licenses.ofl;
         platforms = platforms.all;
-        maintainers = with maintainers; [ mathnerd314 ];
+        maintainers = with maintainers; [ mathnerd314 emily ];
       };
     };
 in
 
 {
   noto-fonts = mkNoto {
-    name = "noto-fonts";
+    pname = "noto-fonts";
     weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
-    sha256 = "0kvq5ldip2ra2njlxg9fxj46nfqzq5l3n359d3kwfbsld7hixm2d";
   };
+
   noto-fonts-extra = mkNoto {
-    name = "noto-fonts-extra";
+    pname = "noto-fonts-extra";
     weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
-    sha256 = "0l94aiy1b3qirg2mmbagbr0014vqk32za79pzck1acy2hgy716kq";
   };
-  noto-fonts-cjk = let version = "2.001"; in fetchFromGitHub rec {
-    name = "noto-fonts-cjk-${version}";
 
-    # Same as https://noto-website.storage.googleapis.com/pkgs/NotoSansCJK.ttc.zip but versioned & with no extra SIL license file
-    owner = "googlei18n";
-    repo = "noto-cjk";
-    rev = "NotoSansV${version}";
+  noto-fonts-cjk = stdenvNoCC.mkDerivation rec {
+    pname = "noto-fonts-cjk";
+    version = "2.001";
 
-    postFetch = ''
-      mkdir -p $out/share/fonts/noto
-      tar xOf $downloadedFile noto-cjk-${rev}/NotoSansCJK.ttc.zip |
-          funzip > $out/share/fonts/noto/NotoSansCJK.ttc
+    src = fetchzip {
+      url = "https://raw.githubusercontent.com/googlefonts/noto-cjk/NotoSansV${version}/NotoSansCJK.ttc.zip";
+      # __MACOSX...
+      stripRoot = false;
+      sha256 = "0ik4z2b15i0pghskgfm3adzb0h35fr4gyzvz3bq49hhkhn9h85vi";
+    };
+
+    buildCommand = ''
+      install -m444 -Dt $out/share/fonts/opentype/noto-cjk $src/*.ttc
     '';
-    sha256 = "1r2wlw4vmrf2vlwhgjfvndlq1bj4ys5jzspmv6cz5cg3hpqqf528";
 
-    meta = with stdenv.lib; {
-      inherit version;
+    meta = with lib; {
       description = "Beautiful and free fonts for CJK languages";
       homepage = https://www.google.com/get/noto/help/cjk/;
       longDescription =
@@ -90,9 +105,10 @@ in
       '';
       license = licenses.ofl;
       platforms = platforms.all;
-      maintainers = with maintainers; [ mathnerd314 ];
+      maintainers = with maintainers; [ mathnerd314 emily ];
     };
   };
+
   noto-fonts-emoji = let
     version = "unstable-2019-10-22";
   in stdenv.mkDerivation {
@@ -122,7 +138,7 @@ in
       cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       inherit version;
       description = "Color and Black-and-White emoji fonts";
       homepage = https://github.com/googlei18n/noto-emoji;