2020-04-24 23:36:52 +00:00
|
|
|
|
{ stdenv
|
|
|
|
|
, stdenvNoCC
|
|
|
|
|
, lib
|
|
|
|
|
, fetchFromGitHub
|
2020-06-18 07:06:33 +00:00
|
|
|
|
, fetchurl
|
2020-04-24 23:36:52 +00:00
|
|
|
|
, cairo
|
2022-02-10 20:34:41 +00:00
|
|
|
|
, nixosTests
|
2021-02-05 17:12:51 +00:00
|
|
|
|
, pkg-config
|
2020-04-24 23:36:52 +00:00
|
|
|
|
, pngquant
|
|
|
|
|
, which
|
|
|
|
|
, imagemagick
|
2020-09-25 04:45:31 +00:00
|
|
|
|
, zopfli
|
2022-03-30 09:31:56 +00:00
|
|
|
|
, buildPackages
|
2020-04-24 23:36:52 +00:00
|
|
|
|
}:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
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 lib; {
|
|
|
|
|
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
|
|
|
|
|
doesn’t 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
|
|
|
|
|
Google’s answer to tofu. The name noto is to convey the idea that
|
|
|
|
|
Google’s 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.ofl;
|
|
|
|
|
platforms = platforms.all;
|
|
|
|
|
maintainers = with maintainers; [ mathnerd314 emily ];
|
|
|
|
|
};
|
|
|
|
|
};
|
2022-01-19 23:45:15 +00:00
|
|
|
|
|
|
|
|
|
mkNotoCJK = { typeface, version, rev, sha256 }:
|
|
|
|
|
stdenvNoCC.mkDerivation {
|
|
|
|
|
pname = "noto-fonts-cjk-${lib.toLower typeface}";
|
|
|
|
|
inherit version;
|
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
|
owner = "googlefonts";
|
|
|
|
|
repo = "noto-cjk";
|
|
|
|
|
inherit rev sha256;
|
2022-04-03 18:54:34 +00:00
|
|
|
|
sparseCheckout = "${typeface}/Variable/OTC";
|
2022-01-19 23:45:15 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
installPhase = ''
|
2022-04-03 18:54:34 +00:00
|
|
|
|
install -m444 -Dt $out/share/fonts/opentype/noto-cjk ${typeface}/Variable/OTC/*.otf.ttc
|
2022-01-19 23:45:15 +00:00
|
|
|
|
'';
|
|
|
|
|
|
2022-02-10 20:34:41 +00:00
|
|
|
|
passthru.tests.noto-fonts = nixosTests.noto-fonts;
|
|
|
|
|
|
2022-01-19 23:45:15 +00:00
|
|
|
|
meta = with lib; {
|
|
|
|
|
description = "Beautiful and free fonts for CJK languages";
|
|
|
|
|
homepage = "https://www.google.com/get/noto/help/cjk/";
|
|
|
|
|
longDescription = ''
|
|
|
|
|
Noto ${typeface} CJK is a ${lib.toLower typeface} typeface designed as
|
|
|
|
|
an intermediate style between the modern and traditional. It is
|
|
|
|
|
intended to be a multi-purpose digital font for user interface
|
|
|
|
|
designs, digital content, reading on laptops, mobile devices, and
|
|
|
|
|
electronic books. Noto ${typeface} CJK comprehensively covers
|
|
|
|
|
Simplified Chinese, Traditional Chinese, Japanese, and Korean in a
|
|
|
|
|
unified font family. It supports regional variants of ideographic
|
|
|
|
|
characters for each of the four languages. In addition, it supports
|
|
|
|
|
Japanese kana, vertical forms, and variant characters (itaiji); it
|
|
|
|
|
supports Korean hangeul — both contemporary and archaic.
|
|
|
|
|
'';
|
|
|
|
|
license = licenses.ofl;
|
|
|
|
|
platforms = platforms.all;
|
|
|
|
|
maintainers = with maintainers; [ mathnerd314 emily ];
|
|
|
|
|
};
|
|
|
|
|
};
|
2020-04-24 23:36:52 +00:00
|
|
|
|
in
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
noto-fonts = mkNoto {
|
|
|
|
|
pname = "noto-fonts";
|
|
|
|
|
weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
noto-fonts-extra = mkNoto {
|
|
|
|
|
pname = "noto-fonts-extra";
|
|
|
|
|
weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
|
|
|
|
|
};
|
|
|
|
|
|
2022-01-19 23:45:15 +00:00
|
|
|
|
noto-fonts-cjk-sans = mkNotoCJK {
|
|
|
|
|
typeface = "Sans";
|
|
|
|
|
version = "2.004";
|
|
|
|
|
rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
|
2022-08-21 13:32:41 +00:00
|
|
|
|
sha256 = "sha256-PWpcTBnBRK87ZuRI/PsGp2UMQgCCyfkLHwvB1mOl5K0=";
|
2022-01-19 23:45:15 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
noto-fonts-cjk-serif = mkNotoCJK {
|
|
|
|
|
typeface = "Serif";
|
|
|
|
|
version = "2.000";
|
|
|
|
|
rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
|
2022-08-21 13:32:41 +00:00
|
|
|
|
sha256 = "sha256-1w66Ge7DZjbONGhxSz69uFhfsjMsDiDkrGl6NsoB7dY=";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
noto-fonts-emoji = let
|
2022-10-06 18:32:54 +00:00
|
|
|
|
version = "2.038";
|
2020-09-25 04:45:31 +00:00
|
|
|
|
emojiPythonEnv =
|
2022-03-30 09:31:56 +00:00
|
|
|
|
buildPackages.python3.withPackages (p: with p; [ fonttools nototools ]);
|
|
|
|
|
in stdenvNoCC.mkDerivation {
|
2020-04-24 23:36:52 +00:00
|
|
|
|
pname = "noto-fonts-emoji";
|
2021-12-06 16:07:01 +00:00
|
|
|
|
inherit version;
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
2020-09-25 04:45:31 +00:00
|
|
|
|
owner = "googlefonts";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
repo = "noto-emoji";
|
2020-09-25 04:45:31 +00:00
|
|
|
|
rev = "v${version}";
|
2022-10-06 18:32:54 +00:00
|
|
|
|
sha256 = "1rgmcc6nqq805iqr8kvxxlk5cf50q714xaxk3ld6rjrd69kb8ix9";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
};
|
|
|
|
|
|
2022-03-30 09:31:56 +00:00
|
|
|
|
depsBuildBuild = [
|
|
|
|
|
buildPackages.stdenv.cc
|
|
|
|
|
pkg-config
|
2020-09-25 04:45:31 +00:00
|
|
|
|
cairo
|
2022-03-30 09:31:56 +00:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [
|
2020-09-25 04:45:31 +00:00
|
|
|
|
imagemagick
|
|
|
|
|
zopfli
|
|
|
|
|
pngquant
|
|
|
|
|
which
|
|
|
|
|
emojiPythonEnv
|
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
|
|
postPatch = ''
|
2020-09-25 04:45:31 +00:00
|
|
|
|
patchShebangs *.py
|
|
|
|
|
patchShebangs third_party/color_emoji/*.py
|
|
|
|
|
# remove check for virtualenv, since we handle
|
|
|
|
|
# python requirements using python.withPackages
|
|
|
|
|
sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
|
2020-10-07 09:15:18 +00:00
|
|
|
|
|
|
|
|
|
# Make the build verbose so it won't get culled by Hydra thinking that
|
|
|
|
|
# it somehow got stuck doing nothing.
|
|
|
|
|
sed -i 's;\t@;\t;' Makefile
|
2020-04-24 23:36:52 +00:00
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
|
|
installPhase = ''
|
2022-10-06 18:32:54 +00:00
|
|
|
|
runHook preInstall
|
2020-04-24 23:36:52 +00:00
|
|
|
|
mkdir -p $out/share/fonts/noto
|
2022-10-06 18:32:54 +00:00
|
|
|
|
cp NotoColorEmoji.ttf $out/share/fonts/noto
|
|
|
|
|
runHook postInstall
|
2020-04-24 23:36:52 +00:00
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
|
description = "Color and Black-and-White emoji fonts";
|
2020-09-25 04:45:31 +00:00
|
|
|
|
homepage = "https://github.com/googlefonts/noto-emoji";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
license = with licenses; [ ofl asl20 ];
|
|
|
|
|
platforms = platforms.all;
|
2021-12-06 16:07:01 +00:00
|
|
|
|
maintainers = with maintainers; [ mathnerd314 sternenseemann ];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
2020-06-18 07:06:33 +00:00
|
|
|
|
|
2021-12-06 16:07:01 +00:00
|
|
|
|
noto-fonts-emoji-blob-bin =
|
|
|
|
|
let
|
|
|
|
|
pname = "noto-fonts-emoji-blob-bin";
|
|
|
|
|
version = "14.0.1";
|
|
|
|
|
in
|
|
|
|
|
fetchurl {
|
|
|
|
|
name = "${pname}-${version}";
|
2020-06-18 07:06:33 +00:00
|
|
|
|
url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
|
2021-12-06 16:07:01 +00:00
|
|
|
|
sha256 = "sha256-wSH9kRJ8y2i5ZDqzeT96dJcEJnHDSpU8bOhmxaT+UCg=";
|
2020-06-18 07:06:33 +00:00
|
|
|
|
|
2021-12-06 16:07:01 +00:00
|
|
|
|
downloadToTemp = true;
|
|
|
|
|
recursiveHash = true;
|
|
|
|
|
postFetch = ''
|
|
|
|
|
install -Dm 444 $downloadedFile $out/share/fonts/blobmoji/Blobmoji.ttf
|
|
|
|
|
'';
|
2020-06-18 07:06:33 +00:00
|
|
|
|
|
2021-12-06 16:07:01 +00:00
|
|
|
|
meta = with lib; {
|
|
|
|
|
description = "Noto Emoji with extended Blob support";
|
|
|
|
|
homepage = "https://github.com/C1710/blobmoji";
|
|
|
|
|
license = with licenses; [ ofl asl20 ];
|
|
|
|
|
platforms = platforms.all;
|
|
|
|
|
maintainers = with maintainers; [ rileyinman jk ];
|
|
|
|
|
};
|
2020-06-18 07:06:33 +00:00
|
|
|
|
};
|
2020-04-24 23:36:52 +00:00
|
|
|
|
}
|