Page MenuHomePhabricator

Document how to request installing additional SVG and PDF fonts on Wikimedia servers
Open, MediumPublic0 Estimated Story Points

Description

https://meta.wikimedia.org/wiki/SVG_fonts exists. However,

Clarification by someone who knows™ would be very welcome.

Recent examples of font requests:

Event Timeline

SVG and PDF rendering are both handled by Thumbor on Wikimedia sites. Font dependencies are managed through Puppet in rOPUP modules/mediawiki/manifests/packages/fonts.pp. This file also controls the fonts available on Proton (pdf creator), MediaWiki, and Graphoid (to be undeployed in T242855).

The list of installed fonts at https://noc.wikimedia.org/conf/fc-list is handled separately at rOMWC fc-list. As far as I can tell, that doesn't actually affect what fonts are available, but it should be kept up to date.

All fonts have to be in a Debian package. If they aren't in the Debian repos, then a package needs to be created. Fonts also have to be under a compatible free license.
Librsvg uses Pango for text rendering, so fonts will have to be compatible with the version of Pango packaged in the version of Debian we are running. In the (bullseye) future, that means no BDF/PCF bitmap fonts. It should pick up fonts once they are installed.
Ghostscript uses it's on font rendering stack, but should also find a properly-installed font in /usr/share/fonts. Both tools support TrueType fonts, which is the most common distribution format.
I don't know anything about Proton and PDF creation, but I would expect that it works with fontconfig and can autodetect new fonts.

Phabricator is the correct place to request font changes. I'm not sure what the best project tags would be. The font installation request tickets seem to appear most often in Wikimedia-General-or-Unknown or Wikimedia-SVG-rendering. Thumbor or Proton may also be relevant, but PDF-Rendering is not (it deals with client-side CSS). It'll ultimately come down to SRE to update/merge the Puppet config and deploy it.

So...requests for new fonts

  • should be on Phabricator
  • should tag Operations and Wikimedia-SVG-rendering or Wikimedia-General-or-Unknown
  • must be freely-licensed
  • should be in the TTF format
  • should be in the Debian repositories, or easily packaged into a deb
jbond triaged this task as Medium priority.Jun 15 2020, 10:11 AM

I can't speak to SVG rendering, but PDF rendering at Wikimedia is actually a separate system backed by a service called Proton. All requests related to PDF rendering should be filed as Phabricator tasks and tagged with Proton and Product-Infrastructure-Team-Backlog.