noto-fonts: separate package for unusual weights

Noto provides a large number of unusual font weights so that the complete
package of fonts is more than 300 MB in size. Most of these weights are moved
into noto-fonts-extra; noto-fonts retains the ordinary weights and styles.

See also: #31543
This commit is contained in:
Thomas Tuegel 2018-05-28 10:32:16 -05:00
parent a797bd6bda
commit 8f43bb4e23
No known key found for this signature in database
GPG Key ID: 22CBF5249D4B4D59
2 changed files with 52 additions and 41 deletions

View File

@ -1,47 +1,59 @@
{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, unzip, pythonPackages, pkgconfig, pngquant, which, imagemagick }: { stdenv, fetchzip, fetchFromGitHub, optipng, cairo, unzip, pythonPackages, pkgconfig, pngquant, which, imagemagick }:
rec { let
# 18MB mkNoto = { name, weights, sha256, }:
noto-fonts = let version = "2017-10-24-phase3-second-cleanup"; in fetchzip { let version = "2017-10-24-phase3-second-cleanup"; in
name = "noto-fonts-${version}"; fetchzip {
name = "${name}-${version}";
url = "https://github.com/googlei18n/noto-fonts/archive/v${version}.zip"; inherit sha256;
postFetch = '' url = "https://github.com/googlei18n/noto-fonts/archive/v${version}.zip";
unzip $downloadedFile postFetch = ''
unzip $downloadedFile
mkdir -p $out/share/fonts/noto mkdir -p $out/share/fonts/noto
cp noto-fonts-*/hinted/*.ttf $out/share/fonts/noto # Also copy unhinted & alpha fonts for better glyph coverage,
# Also copy unhinted & alpha fonts for better glyph coverage, # if they don't have a hinted version
# if they don't have a hinted version # (see https://groups.google.com/d/msg/noto-font/ZJSkZta4n5Y/tZBnLcPdbS0J)
# (see https://groups.google.com/d/msg/noto-font/ZJSkZta4n5Y/tZBnLcPdbS0J) for ttf in noto-fonts-*/{hinted,unhinted,alpha}/*-${weights}.ttf
cp -n noto-fonts-*/unhinted/*.ttf $out/share/fonts/noto do
cp -n noto-fonts-*/alpha/*.ttf $out/share/fonts/noto cp -n "$ttf" -t "$out/share/fonts/noto"
''; done
sha256 = "013l816cq9svdji266sccscm9sf9pfn472gq9lnqkzlwaxx9qrrl";
meta = with stdenv.lib; {
inherit version;
description = "Beautiful and free fonts for many languages";
homepage = https://www.google.com/get/noto/;
longDescription =
''
When text is rendered by a computer, sometimes characters are displayed as
tofu. They are little boxes to indicate your device doesnt have a font to
display the text.
Google has been developing a font family called Noto, which aims to support all
languages with a harmonious look and feel. Noto is Googles answer to tofu. The
name noto is to convey the idea that Googles goal is to see no more tofu.
Noto has multiple styles and weights, and freely available to all.
This package also includes the Arimo, Cousine, and Tinos fonts.
''; '';
license = licenses.asl20; meta = with stdenv.lib; {
platforms = platforms.all; inherit version;
maintainers = with maintainers; [ mathnerd314 ]; description = "Beautiful and free fonts for many languages";
homepage = https://www.google.com/get/noto/;
longDescription =
''
When text is rendered by a computer, sometimes characters are
displayed as tofu. They are little boxes to indicate your device
doesnt have a font to display the text.
Google has been developing a font family called Noto, which aims to
support all languages with a harmonious look and feel. Noto is
Googles answer to tofu. The name noto is to convey the idea that
Googles goal is to see no more tofu. Noto has multiple styles and
weights, and freely available to all.
This package also includes the Arimo, Cousine, and Tinos fonts.
'';
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [ mathnerd314 ];
};
}; };
in
rec {
noto-fonts = mkNoto {
name = "noto-fonts";
weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
sha256 = "1dmarbsfank6xzzx31h5jdv6n99rzblqyb1iqjkpll6dl3627pnb";
};
noto-fonts-extra = mkNoto {
name = "noto-fonts-extra";
weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
sha256 = "1lih49bqmsmblczvbl7qb1bhn0bq8v5xkr991b3gjghpdkx584bc";
}; };
# 89MB
noto-fonts-cjk = let version = "1.004"; in fetchzip { noto-fonts-cjk = let version = "1.004"; in fetchzip {
name = "noto-fonts-cjk-${version}"; name = "noto-fonts-cjk-${version}";
@ -74,7 +86,6 @@ rec {
maintainers = with maintainers; [ mathnerd314 ]; maintainers = with maintainers; [ mathnerd314 ];
}; };
}; };
# 12MB
noto-fonts-emoji = let version = "2017-09-13-design-refresh"; in stdenv.mkDerivation { noto-fonts-emoji = let version = "2017-09-13-design-refresh"; in stdenv.mkDerivation {
name = "noto-fonts-emoji-${version}"; name = "noto-fonts-emoji-${version}";

View File

@ -14516,7 +14516,7 @@ with pkgs;
nafees = callPackage ../data/fonts/nafees { }; nafees = callPackage ../data/fonts/nafees { };
inherit (callPackages ../data/fonts/noto-fonts {}) inherit (callPackages ../data/fonts/noto-fonts {})
noto-fonts noto-fonts-cjk noto-fonts-emoji; noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra;
nullmailer = callPackage ../servers/mail/nullmailer { nullmailer = callPackage ../servers/mail/nullmailer {
stdenv = gccStdenv; stdenv = gccStdenv;