Subject: Re: [bug#28404] The complete Google Noto Fonts

From: ng0 <[email-masked]>
Date: Mon, 11 Sep 2017 12:21:41 +0000

ng0 transcribed 4.2K bytes:
> Ludovic Courtès transcribed 1.2K bytes:
> > Hi ng0,
> > 
> > ng0 <[email-masked]> skribis:
> > 
> > > These patches add all of Google Noto font.
> > >
> > > Be aware that you will need at least 600 MB for the source tarballs.
> > > There are only 5 real big tarballs, the rest is small.
> > >
> > > You will have 86 or 87 patches, so if you want to test it in another
> > > way try adding my guix developer repository at
> > > https://gitweb.krosos.org/ng0_guix/guix if I fixed it
> > > (otherwise git://git.krosos.org/srv/git/ng0/ng0_guix/guix works).
> > 
> > Woow, impressive piece of work!
> 
> Thanks.
> 
> > > The only things which really are unique are:
> > > filenames + name + variable name + hash
> > 
> > To me, that clearly suggests that we need a function to produce the
> > package, like:
> > 
> >   (define (google-noto-font-package name hash)
> >     (package
> >       (name (string-append "font-google-" (camel-case->hyphens name)))
> >       …))
> > 
> > Could you look into that?
> 
> I thought about this while I worked on it, but I was running out of
> free time. I'll see if I can resolve this. I'll get back to this thread
> with questions or results.
> 
> > > As Google (and 99% of all fonts out there) update in place,
> > > I have a versioned inofficial mirror directory in case we
> > > should ever want to use it.
> > 
> > That’s a bummer.  Are you sure there’s no versioned URL somewhere?
> 
> I'm absolutely sure that there is no official download link with versions.
> This problem is a basic condition in the font distribution, you have met
> a happy exception if you have some kind of version in the name of the
> distributed archive file and even more so when you have no file updating
> in place.
> If we find no other solution, my server is located in Germany, has enough
> diskspace (fonts aren't that big) and I have fair-use uncapped bandwidth
> (if I hit some kind of TBs/month limit, monthly fee will be adjusted.
> same network, different server: 40+ TB tor node was okay).
> I would not be happy with this, but I'd do it. Google should provide versions
> but try to get Google to do anything which is not giving up on projects
> in ramdon patterns… :/ People and projects already fail with Chromium requests,
> no idea if I can convince them to version the fonts. It's not like they
> don't have the diskspace.
> 
> > Alternatively, could we build from source with FontForge or something?
> 
> Well they are build from source, and the source is on github.
> for cjk: https://github.com/googlei18n/noto-cjk
> not cjk: https://github.com/googlei18n/noto-fonts
> emoji: https://github.com/googlei18n/noto-emoji
> and they seem to use noto-tools for building, but I haven't looked
> into the build process at all.

I have to wait for another reply, so I started some notes on the lines above.

Emoji: can be build with "make" given the condition that nototools
(https://github.com/googlei18n/nototools/) is available. This in turn
depends on (python):

booleanOperations==0.7.0  defcon==0.3.1             fonttools==3.9.1
Pillow==4.0.0             pyclipper==1.0.6          ufoLib==2.0.0

emoji repo checked out with the whole history:          249 MB
emjo tagged tar:                                        33.5MB
cjk repo, latest tagged release (1st semester of 2017): 1.6 GB
cjk repo checked out with the whole history:            3.4 GB
rest of noto, repo:                                     1.0 GB
rest of noto, tagged tar:                               351 MB

The distributed fonts, pre-build:
root@sharknado9000:/var/www/krosos/mirror/fonts/noto-font/20170403# ls -hs
total 600M
8.0K Noto.20170403.sha256.txt                    260K NotoSansKannada-hinted.zip
4.5M NotoColorEmoji-unhinted.zip                 8.0K NotoSansKayahLi-unhinted.zip
288K NotoEmoji-unhinted.zip                       16K NotoSansKharoshthi-unhinted.zip
84K NotoKufiArabic-hinted.zip                    96K NotoSansKhmer-hinted.zip
72K NotoMono-hinted.zip                          76K NotoSansLao-hinted.zip
464K NotoNaskhArabic-hinted.zip                   40K NotoSansLepcha-unhinted.zip
164K NotoNastaliqUrdu-unhinted.zip                12K NotoSansLimbu-unhinted.zip
32K NotoSansArmenian-hinted.zip                  40K NotoSansLinearB-unhinted.zip
12K NotoSansAvestan-unhinted.zip                8.0K NotoSansLisu-unhinted.zip
20K NotoSansBalinese-unhinted.zip               8.0K NotoSansLycian-unhinted.zip
96K NotoSansBamum-unhinted.zip                  200K NotoSansMalayalam-hinted.zip
12K NotoSansBatak-unhinted.zip                   16K NotoSansMeeteiMayek-unhinted.zip
400K NotoSansBengali-hinted.zip                  340K NotoSansMyanmar-hinted.zip
16K NotoSansBrahmi-unhinted.zip                  12K NotoSansNKo-unhinted.zip
8.0K NotoSansBuginese-unhinted.zip               8.0K NotoSansOgham-unhinted.zip
8.0K NotoSansBuhid-unhinted.zip                  8.0K NotoSansOlChiki-unhinted.zip
28K NotoSansCanadianAboriginal-unhinted.zip     8.0K NotoSansOldItalic-unhinted.zip
8.0K NotoSansCarian-unhinted.zip                 8.0K NotoSansOldTurkic-unhinted.zip
32K NotoSansCham-hinted.zip                     328K NotoSansOriya-hinted.zip
48K NotoSansCherokee-hinted.zip                 8.0K NotoSansOsmanya-unhinted.zip
116M NotoSansCJKjp-hinted.zip                    8.0K NotoSansRejang-unhinted.zip
116M NotoSansCJKkr-hinted.zip                    8.0K NotoSansRunic-unhinted.zip
116M NotoSansCJKsc-hinted.zip                     12K NotoSansSamaritan-unhinted.zip
116M NotoSansCJKtc-hinted.zip                    8.0K NotoSansShavian-unhinted.zip
20K NotoSansCoptic-unhinted.zip                  12K NotoSansSundanese-unhinted.zip
276K NotoSansCuneiform-unhinted.zip               16K NotoSansSylotiNagri-unhinted.zip
8.0K NotoSansCypriot-unhinted.zip                404K NotoSansSymbols-unhinted.zip
12K NotoSansDeseret-unhinted.zip                 28K NotoSansSyriacEastern-unhinted.zip
356K NotoSansDevanagari-hinted.zip                28K NotoSansSyriacEstrangela-unhinted.zip
296K NotoSansEgyptianHieroglyphs-unhinted.zip     28K NotoSansSyriacWestern-unhinted.zip
172K NotoSansEthiopic-hinted.zip                  32K NotoSansTaiTham-unhinted.zip
44K NotoSansGeorgian-hinted.zip                  32K NotoSansThaana-hinted.zip
12K NotoSansGlagolitic-unhinted.zip             8.0K NotoSansUgaritic-unhinted.zip
8.0K NotoSansGothic-unhinted.zip                 200K NotoSerifBengali-hinted.zip
344K NotoSansGujarati-hinted.zip                 125M NotoSerifCJKtc-hinted.zip
128K NotoSansGurmukhi-hinted.zip                 128K NotoSerifDevanagari-hinted.zip
8.0K NotoSansHanunoo-unhinted.zip                 44K NotoSerifGeorgian-hinted.zip
28K NotoSansHebrew-hinted.zip                   100K NotoSerifGujarati-hinted.zip
1.3M NotoSans-hinted.zip                         840K NotoSerif-hinted.zip
8.0K NotoSansImperialAramaic-unhinted.zip         40K NotoSerifLao-hinted.zip
8.0K NotoSansInscriptionalPahlavi-unhinted.zip    64K NotoSerifTamil-hinted.zip
8.0K NotoSansInscriptionalParthian-unhinted.zip  180K NotoSerifTelugu-hinted.zip
24K NotoSansJavanese-unhinted.zip                36K NotoSerifThai-hinted.zip
32K NotoSansKaithi-unhinted.zip

> We want to avoid download large source repository checkouts
> or large tarballs, this was one of the problems this project
> was set out to solve.

Would the tagged tarball of CJK be considered too big for our CI?
Before we can break it up in small pieces we need to deal with what
Google provides, which is awful in size.

> If someone could look into the build process and describe it here
> and how big the repositories are, this would save a good amount
> of time for me (can't look into it that much this week I think).
> 
> > An example of that is ‘font-linuxlibertine’.
> > 
> > Thanks,
> > Ludo’.
> > 
> 
> -- 
> ng0
> GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
> GnuPG: https://krosos.org/dist/keys/
> https://www.infotropique.org https://www.krosos.org

-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://krosos.org/dist/keys/
https://www.infotropique.org https://www.krosos.org