Noto is a nice font - I use it every day.
Unfortunately, its size has grown considerably:
- noto-20170403.tar.xz: 11 MB
- noto-20181024.tar.gz: 727 MB
I just emerged noto-20181024. The size of /usr/share/fonts/noto is 365MB. That's too much.
Another problem is the font selector in LibreOffice (and probably in other applications). It shows hundreds of entries for Noto. That's too much, and it's difficult to find and select any font now.
Most of the installed fonts are font variants/scripts most people won't need or use (Thai, Tamil, Sinhala, Khmer, etc.).
I propose to introduce new USE flags that select the font variants that will be installed. We already have 'cjk', but we need more. I could make a proposal for such USE flags, if people generally agree. Or would it make sense to let L10N or LINGUAS decide which font variants will be installed?
I tried to divide the fonts in noto-20181024 into the following groups:
1) Croscore fonts
noto-20181024 contains the fonts Arimo, Cousine and Tinos:
Those fonts are the 'croscore' fonts:
I'm not sure they belong to Noto at all. We could add a USE flag 'croscore', which enables or disables those fonts.
2) Noto base fonts
That's what probably everbody wants to have:
3) Extended base fonts
Additional styles, mostly for graphics designers and font experts:
4) Additional Scripts
- All other fonts. I doubt that anybody wants all of those fonts installed. It would be nice to have a mechanism that could select individual fonts, something like
noto_scripts="Kannada Thai Hebrew"
But I guess that's too complicated.
5) CJK fonts
Those fonts are already handled in package noto-cjk.
Created attachment 565978 [details]
ebuild with additional USE flags (proof of concept)
Created attachment 565980 [details]
Description of additional USE flags
I created and uploaded an ebuild with additional USE flags as described in comment 1.
The ebuild works, but it's not perfect. It's mostly a proof of concept a basis for further discussions.
I also feel this is too much. For a mandatory dep of plasma, its tarball alone is now bigger than all of my plasma/frameworks/qt tarballs summed up. I know, disk space is cheap, but that's a slippery slope. >1GB combined tarball and installed files so that I get one font that I have no choice in the matter if I use plasma desktop.
As Michael said, all that most users probably need/want is NotoSans, NotoSerif, NotoSansMono. Maybe we could have a noto-lite package (and a stripped down tar.xz to match) that only has the minimum and put it behind a virtual/noto.
Could something similar be done to noto-cjk package?
Last version is 1.78 GiB on disk.
The bug has been referenced in the following commit(s):
Author: Pacho Ramos <email@example.com>
AuthorDate: 2019-06-02 09:50:07 +0000
Commit: Pacho Ramos <firstname.lastname@example.org>
CommitDate: 2019-06-02 09:50:07 +0000
media-fonts/noto: Version bump
Also add an optional extra USE flag allowing people to drop some fonts to
reduce disk space usage (#678432)
Package-Manager: Portage-2.3.67, Repoman-2.3.13
Signed-off-by: Pacho Ramos <email@example.com>
media-fonts/noto/Manifest | 1 +
media-fonts/noto/metadata.xml | 3 +++
media-fonts/noto/noto-20190524.ebuild | 43 +++++++++++++++++++++++++++++++++++
3 files changed, 47 insertions(+)
I think this would probably be better governed by the savedconfig mechanism in portage via this eclass: https://devmanual.gentoo.org/eclass-reference/savedconfig.eclass/index.html .
Other consumers, eg. linux-firmware have a great deal of 'volume'/bulk and can be slimmed down in a similar fashion.
What would be nice is a mechanism to install -just- the saveconfig file in /etc/portage/savedconfig on first emerge, to allow you to select required files, before you have to blow the space on the whole archive, but I accept this is a FEATUREREQ which doesn't belong on this bug.
I had a pull request to reduce even further with a lot of L10N flags and normal USE flags. I think this is the best way because it respects a user's L10N setting but I understand this may be difficult to maintain.
Most people can probably survive with just the main font and their primary language which might include CJK Noto fonts. In that case, the user's L10N in make.conf is the best source of what the user may want.
Then there are extremities IMHO, like Linear A which has never been deciphered. I've tried to separate these ancient unused scripts out where it makes sense. Linear A and B are together in a single USE flag 'linear'. These would not be installed by default because of their rarity. To reduce maintenance, maybe we could also include non-spoken languages in the 'ancient' USE flag rather than using L10N?
Lastly USE flags mono, display and symbols are enabled by default. Respectively, monospace, symbol fonts, and 'display' fonts get installed.
(In reply to Andrew Udvare from comment #9)
> I had a pull request to reduce even further with a lot of L10N flags and
> normal USE flags. I think this is the best way because it respects a user's
> L10N setting but I understand this may be difficult to maintain.
This one looks like a nightmare to figure out how to get a particular set of fonts installed:
Should I use USE flag or L10N?
How can I get a single font from L10N set without enabling full L10N support of particular language?
SCRIPTS approach as per comment 4 could work.
But IMHO the least amount of work in maintaining ebuild (an important aspect!) would be to go with savedconfig option as suggested in comment 8. Still we could then go with USE flags for Croscore and Noto base (comment 1) thus keeping savedconfig only as an extension on the top of Croscore and Noto base.
PS. Please change status to Confirmed
This need to dealt with, current Noto package takes half Gig of disk space just with the X use.
Populating all font selectors in various apps with countless entries
I am relatively new to Gentoo so I still don't understand fully how Gentoo packaging policy works. I want to know if splitting the fonts to several packages could be considered or not. The way I understand it, using USE flags still requires downloading the whole package as opposed to downloading the needed packages if it's split. I think this font's size will keep growing.
(In reply to firstname.lastname@example.org from comment #12)
media-fonts/noto ebuilds specify SRC_URI for downloading of GitHub-generated archive of https://github.com/googlei18n/noto-fonts repository at specified commit.
GitHub does not support generating of archives of specific subdirectory of repository.