[buildout]
extends =
  ../xz-utils/buildout.cfg
  ../p7zip/buildout.cfg

parts =
  liberation-fonts
  ipaex-fonts
  ipa-fonts
  ocrb-fonts
  android-fonts

[fonts]
location = ${buildout:parts-directory}/${:_buildout_section_name_}

[fonts-base]
destination = ${fonts:location}/${:_buildout_section_name_}
location = ${:destination}
recipe = slapos.recipe.build:download-unpacked
strip-top-level-dir = true

# Liberation(tm) Fonts - a font family which aims at metric
# compatibility with Arial, Times New Roman, and Courier New.
[liberation-fonts]
<= fonts-base
url = https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-2.00.1.tar.gz
md5sum = 5c781723a0d9ed6188960defba8e91cf

# IPAex and IPA Font - Japanese fonts provided by IPA
# http://ipafont.ipa.go.jp/
[ipaex-fonts]
<= fonts-base
url = http://dl.sourceforge.jp/ipafonts/57330/IPAexfont00201.zip
md5sum = 7bf84182a04a9632268dbcb03f100d05

[ipa-fonts]
<= fonts-base
url = http://dl.sourceforge.jp/ipafonts/51868/IPAfont00303.zip
md5sum = 39a828acf27790adbe4944dfb4d94bb1

[ocrb-fonts]
<= fonts-base
url = http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Ftsukurimashou%2F56948%2Focr-0.2.zip
md5sum = 9f2acd83291a31dbe053912f4115db75

[android-fonts]
<= fonts-base
url = ftp://ftp.free.fr/mirrors/ftp.debian.org/pool/main/f/fonts-android/fonts-android_4.3.orig.tar.xz
md5sum = 2d41d5342eb5f61591ddeec5b80da74d
environment =
  PATH=${xz-utils:location}/bin:%(PATH)s

# Microsoft's TrueType core fonts
# non-free so not enabled by default
[msttcore-fonts]
location = ${fonts:location}/${:_buildout_section_name_}
recipe = slapos.recipe.build
script =
  from zc.buildout.download import Download
  d = self.options['location']
  fonts = []
  download = lambda x, dl=Download(self.buildout['buildout']): (
    dl("http://downloads.sf.net/corefonts/%%s32.exe" %% name, md5sum=md5sum)
    for md5sum, name in (x.split() for x in x.splitlines() if x))
  extract = lambda x, d=d, p7z="${p7zip:location}/bin/7z": any(
    subprocess.check_call((p7z, "x", "-ssc-", path, "*.ttf"), cwd=d)
    for path, is_temp in x)
  try: fonts += download(self.options['fonts']); os.makedirs(d); extract(fonts)
  except: shutil.rmtree(d, ignore_errors=True); raise
  finally: any(os.remove(path) for path, is_temp in fonts if is_temp)
slapos_promise =
slapos_update_promise = ${:slapos_promise}
fonts =
  cbdc2fdd7d2ed0832795e86a8b9ee19a  andale
  9637df0e91703179f0723ec095a36cb5  arial
  c9089ae0c3b3d0d8c4b0a95979bb9ff0  arialb
  2b30de40bb5e803a0452c7715fc835d1  comic
  4e412c772294403ab62fb2d247d85c60  courie
  4d90016026e2da447593b41a8d8fa8bd  georgi
  7907c7dd6684e9bade91cff82683d9d7  impact
  ed39c8ef91b9fb80f76f702568291bd5  times
  0d7ea16cac6261f8513a061fbfcdb2b5  trebuc
  12d2a75f8156e10607be1eaa8e8ef120  verdan
  230a1d13a365b22815f502eb24d9149b  webdin