Differences between revisions 62 and 63
Revision 62 as of 2014-04-07 02:06:31
Size: 13639
Editor: PaulWise
Comment: some cleanup
Revision 63 as of 2014-04-07 02:20:08
Size: 8823
Editor: PaulWise
Comment: moved templates to sub-pages
Deletions are marked like this. Additions are marked like this.
Line 63: Line 63:
<<Anchor(non-free)>>
<<Anchor(license-violation)>>
<<Anchor(duplicate)>>
<<Anchor(fontconfig)>>
Line 67: Line 71:
 * [[non-free]]: for packages that contain non-free fonts taken from the web (severity serious)
 * [[license-violation]]: for packages that contain fonts that are GPL/LGPL but do not distribute source (severity serious)
 * [[duplicate]]: for packages that contain fonts that duplicate fonts from other packages (severity normal?minor?wishlist?)
 * [[/Bugs/non-free|non-free]]: for packages that contain non-free fonts taken from the web (severity serious)
 * [[/Bugs/license-violation|license-violation]]: for packages that contain fonts that are GPL/LGPL but do not distribute source (severity serious)
 * [[/Bugs/duplicate|duplicate]]: for packages that contain fonts that duplicate fonts from other packages (severity normal?minor?wishlist?)
Line 71: Line 75:
 * [[fontconfig]]: for packages that should switch to dynamically looking up font paths using fontconfig (severity wishlist)  * [[/Bugs/fontconfig|fontconfig]]: for packages that should switch to dynamically looking up font paths using fontconfig (severity wishlist)
Line 73: Line 77:

=== Templates ===

==== non-free ====

{{{
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: <package>: contains non-free font

Package:
Version:
Severity: serious
User: pkg-fonts-devel@lists.alioth.debian.org
Usertags: non-free
X-Debbugs-CC: pkg-fonts-devel@lists.alioth.debian.org

Your package contains a non-free font:

<filename in Debian here>
<url to the pkg-fonts review page here>

This looks to be from here:

<upstream URLs here>

From the zip file:

/----------------------------------------------------------------
<upstream licence here>
\----------------------------------------------------------------

This licence does not clearly allow all the DFSG-required freedoms:

http://www.debian.org/social_contract#guidelines

Please contact the font author and ask them to licence the font
under a DFSG-compliant font licence such as the OFL:

http://scripts.sil.org/OFL
http://scripts.sil.org/OFL_web
http://scripts.sil.org/OFL-FAQ_web

If they are not willing to do so or cannot be contacted, please remove
the font from the binary package and the source package and depend on
another font package or move the package to non-free.

Please contact your upstream and ask them to use fontconfig or similar
to get fonts for use by the software instead of using a specific font.

This message is brought to you by the Debian Fonts Task Force:

http://wiki.debian.org/Fonts
}}}


==== license-violation ====

{{{
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: <package>: violates font license

Package:
Version:
Severity: serious
User: pkg-fonts-devel@lists.alioth.debian.org
Usertags: license-violation
X-Debbugs-CC: pkg-fonts-devel@lists.alioth.debian.org

Your package contains a GPL/LGPL font:

<package>: <filename in Debian here>
<url to the pkg-fonts review pages here>

This looks to be from here:

<upstream URLs here>

Your source package contains the binary font:

<srcpackage>: <font filename within source package>

The font's source code appears to be here:

<upstream source code URL>
<filenames of the source code in upstreams archive>

Your source package does not contain the font source code, therefore your distribution of the font constitutes a violation of the license.

Please notify your upstream that they are violating the font license.

Please remove the font from the binary package and the source package and depend on the font package instead.

Please contact your upstream and ask them to use fontconfig or similar
to get fonts for use by the software instead of using a specific font.

This message is brought to you by the Debian Fonts Task Force:

http://wiki.debian.org/Fonts
}}}

==== duplicate ====

{{{
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: <package>: contains duplicate font

Package:
Version:
Severity: wishlist
User: pkg-fonts-devel@lists.alioth.debian.org
Usertags: duplicate
X-Debbugs-CC: pkg-fonts-devel@lists.alioth.debian.org

Your package contains a duplicate font:

<filename in Debian here>
<url to the pkg-fonts review page here>

This looks to be from here:

<url to the packages.debian.org page for the font package>
<url to the pkg-fonts review page here>

Please remove the font from the binary package and depend on the
package containing the font you are using.

If your package cannot use fontconfig to search for fonts, please
contact your upstream and ask them to use fontconfig or similar
to get fonts for use by the software instead of using a specific font.

If that isn't possible you should ask them to allow a build-time
configuration option to hardcode a specific font file path.

If that isn't possible then you will need to create a symlink from
the font file path that your package uses to the font file path
in the font package.

This message is brought to you by the Debian Fonts Task Force:

http://wiki.debian.org/Fonts
}}}

==== fontconfig ====

{{{
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: <package>: hard-coded font path

Package:
Version:
Severity: wishlist
User: pkg-fonts-devel@lists.alioth.debian.org
Usertags: fontconfig
X-Debbugs-CC: pkg-fonts-devel@lists.alioth.debian.org

Your package hard-codes the path to a font:

<code snippet of the path hard-coding>
<filename in Debian here>
<url to the pkg-fonts review page here>

Please contact your upstream and ask them to use fontconfig or similar
to lookup font paths for use by the software instead of hard-coding paths.

If that isn't possible you should ask them to allow a build-time
configuration option to hard-code a specific font file path and
call `fc-match FontName file` in your debian/rules file to discover
where the required font is located at build time.

This message is brought to you by the Debian Fonts Task Force:

http://wiki.debian.org/Fonts
}}}

Adding fonts

Fonts can be added to Debian by installing the appropriate package; fonts are specified in the “Fonts” section.

Note:

  • For most uses, you’ll want TrueType (TTF) and OpenType (OTF) fonts – these packages start with fonts-, ttf- or otf-.

  • Some non-free font downloader packages are in contrib, which you will need to add to your sources if not present.

  • Any TTF, OTF, or TTC (TrueType Collection) files can be manually installed on an ad hoc basis.

    • GNOME way: opening a Nautilus window to fonts:// and dragging and dropping.

    • Command line: copy a font file in the directory /usr/local/share/fonts (for all users) or ~/.fonts (for a specific user).

Above mentioned paths can be customized in the fontconfig configuration file at /etc/fonts/fonts.conf – you can also include subdirectories or links, which is useful if you have a directory of fonts on a separate hard drive (or partition or other location).

You may check that the fonts are present by checking for them in an application (such as a word processor) or by using the command fc-list – in future the (GNOME) font-manager may provide a good list. If fonts do not show up, try fc-cache -fv to force a rebuild of the font list.

Configuration

fontconfig is the underlying configuration tool; you may find the following programs useful:

  • fc-list – lists fonts

  • fc-cache -fv – rebuilds cached list of fonts

To view list of monospaced clint-side fonts (available from Xft, so it is possible to apply font hinting and antialiasing):

  $ fc-list :spacing=mono

To view list of server-side (available directly from X server, so font hinting and antialiasing are not available) monospaced fonts:

  $ xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
  $ xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'

You may find the following useful to change default font rendering:

  $ dpkg-reconfigure fontconfig-config
  $ dpkg-reconfigure fontconfig

Lists

See all the fonts included in Debian at http://pkg-fonts.alioth.debian.org/review/ (updated weekly), http://www.miriamruiz.es/debfonts/ or http://fonts.debian.net/. For usage of Debian fonts on Windows or Mac OS X see http://fonts.debian.net/. Various libre fonts are missing from Debian and need to be packaged.

email lists: CJKUnifonts-devel CJKUnifonts-HakkaIM CJKUnifonts-MinnanIM freefont-devel pkg-fonts-bugs pkg-fonts-commits pkg-fonts-devel

Commonly Used Fonts

The fonts-liberation (ttf-liberation in squeeze) package supplies fonts with the same metrics as Times, Arial and Courier. These fonts are named Liberation and are present in most cases. If you require the non-free original Microsoft fonts the ttf-mscorefonts-installer package (in contrib) can be used to obtain them.

East Asian fonts: ttf-arphic-uming ttf-wqy-zenhei ttf-sazanami-mincho ttf-sazanami-gothic ttf-unfonts-core

(from Wikipedia: Help:Multilingual support (East Asian))

Debian Fonts Task Force

http://pkg-fonts.alioth.debian.org/

Bugs

Usertags

The pkg-fonts team will use these tags for usertags (user: pkg-fonts-devel@lists.alioth.debian.org)

  • non-free: for packages that contain non-free fonts taken from the web (severity serious)

  • license-violation: for packages that contain fonts that are GPL/LGPL but do not distribute source (severity serious)

  • duplicate: for packages that contain fonts that duplicate fonts from other packages (severity normal?minor?wishlist?)

  • split: for packages that contain fonts we would like to see split into other packages (severity wishlist)
  • fontconfig: for packages that should switch to dynamically looking up font paths using fontconfig (severity wishlist)

  • render: for packages that should switch to a font renderer that automatically uses the right fonts (severity wishlist)

Source Font Formats

sfd (fontforge's ascii file format for vector fonts) UFO (Unified Font Object)

Generating Fonts from Source

The fontforge is an editor for outline and bitmap fonts that generates all kinds of fonts. It is also scriptable and has an addon tool xgridfit for hinting. The following fonts are built from sfd (found using apt-cache rdepends fontforge):

I created some script to create bold, italic, and condensed typefaces out of sfd fonts:

sfd2*.ff

Font Formats

ttf, otf, bdf, pfb, fnt, woff

Font Tools

texlive-font-utils, fttools, ttf2tex, freetype1-tools, ttf2pt1, otf2bdf, fonttools

Subpixel-hinting and Font-smoothing

The default fonts in Debian derived distributions like Ubuntu and Linux Mint have better looking fonts when compared to default Debian squeeze since the ubuntu-based distros have heavily patched cairo or freetype2 whereas Vanilla Debian doesn't do patching as much as they do. A lot of things about the cairo package has changed recently in wheezy and unstable which have brought almost the same font setup to Debian (But not Squeeze or old) but you have to set it up to your liking. You can create a .fonts.conf file to any user account home folder to set this up. Patching and rebuilding of Cairo packages are not needed any more. An example of .fonts.conf which you can add to your user account home folder without altering anything else:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
  <match target="font">
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
</fontconfig>

Infinality for Debian

Infinality font settings and Infinality-freetype are not available for Debian in official repositories and will only be available once Infinality is pushed upstream. There are third party git repos you can use to get the packages working for you. Currently a working third party git repo created by chenxiaolong is available for all Debian architectures. Infinality font config Debian build instructions with prebuilt binaries for amd64 are available for easy installation in a post in the Debian forums created by a user.

Further Resources

Outdated

Old, retained for historical interest and reference: