1. 19 Jul, 2018 4 commits
  2. 16 Jul, 2018 2 commits
    • Tom Anderson's avatar
      Return canonicalized paths from FcConfigRealFilename · d1f48f11
      Tom Anderson authored
      FcConfigRealFilename() follows symlinks, but the link may be relative to the
      directory containing the link.  For example, on my system, I have this file:
      
      /etc/fonts/conf.d/99-language-selector-zh.conf ->
          ../conf.avail/99-language-selector-zh.conf
      
      Since /etc/fonts/conf.d is probably not in PATH, open()ing the file would fail.
      This change makes FcConfigRealFilename() return the canonicalized filename
      instead.  So for the example above, it would return:
      
      /etc/fonts/conf.avail/99-language-selector-zh.conf
      
      This was causing bad font rendering in Chromium [1] after the regression I
      introduced in 7ad010e8.
      
      [1] https://bugs.chromium.org/p/chromium/issues/detail?id=857511
      d1f48f11
    • Behdad Esfahbod's avatar
      Use FT_HAS_COLOR · 48e9e5f4
      Behdad Esfahbod authored
      48e9e5f4
  3. 10 Jul, 2018 1 commit
  4. 13 Jun, 2018 1 commit
  5. 11 Jun, 2018 2 commits
  6. 08 Jun, 2018 1 commit
  7. 25 May, 2018 7 commits
  8. 16 May, 2018 1 commit
    • Chris Lamb's avatar
      Ensure cache checksums are deterministic · f098adac
      Chris Lamb authored
      Whilst working on the Reproducible Builds[0] effort, we noticed that
      fontconfig generates unreproducible cache files.
      
      This is due to fc-cache uses the modification timestamps of each
      directory in the "checksum" and "checksum_nano" members of the _FcCache
      struct. This is so that it can identify which cache files are valid
      and/or require regeneration.
      
      This patch changes the behaviour of the checksum calculations to prefer
      the value of the SOURCE_DATE_EPOCH[1] environment variable over the
      directory's own mtime. This variable can then be exported by build
      systems to ensure reproducible output.
      
      If SOURCE_DATE_EPOCH is not set or is newer than the mtime of the
      directory, the existing behaviour is unchanged.
      
      This work was sponsored by Tails[2].
      
       [0] https://reproducible-builds.org/
       [1] https://reproducible-builds.org/specs/source-date-epoch/
       [2] https://tails.boum.org/
      f098adac
  9. 13 May, 2018 2 commits
  10. 11 May, 2018 4 commits
  11. 05 May, 2018 1 commit
  12. 19 Apr, 2018 1 commit
  13. 17 Apr, 2018 1 commit
    • Tom Anderson's avatar
      Use realfilename for FcOpen in _FcConfigParse · 7ad010e8
      Tom Anderson authored
      realfilename is the file name after sysroot adjustments.  It should be used
      instead of filename in the call to FcOpen() which forwards the name directly to
      open().
      
      Though I don't explicitly request a sysroot, I was getting error messages saying
      "failed reading config file".  This CL fixes the error spam.
      7ad010e8
  14. 16 Apr, 2018 1 commit
    • Tom Anderson's avatar
      Fix undefined-shift UBSAN errors · c60ed9ef
      Tom Anderson authored
      The expression "1 << 31" will cause UBSAN to complain with this error message:
      runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
      
      The same operation on unsigned types is fine, however.  This CL replaces the
      strings "1 <<" with "1U <<".
      c60ed9ef
  15. 31 Mar, 2018 2 commits
    • Behdad Esfahbod's avatar
      Share name-mapping across instances · a8a6efa8
      Behdad Esfahbod authored
      Continuation of previous commit.
      
      Makes scanning Voto Serif GX fast again.
      a8a6efa8
    • Behdad Esfahbod's avatar
      Fix name scanning · fa13f883
      Behdad Esfahbod authored
      In 161c7385 I switched from linear name scanning to binary searching.
      That, however, ignored the fact that there might be more than one
      name table entry for each pair we want to query.
      
      To fix that and retain bsearch, I now get all name entries first,
      sort them, and use for bsearching.
      
      This fixes https://bugs.freedesktop.org/show_bug.cgi?id=105756
      
      This makes scaning Voto Serif GX twice slower though, since we are
      creating and sorting the list for each instance. In the next commit,
      I'll share this list across different instances to fix this.
      fa13f883
  16. 28 Mar, 2018 2 commits
  17. 15 Mar, 2018 3 commits
  18. 14 Mar, 2018 3 commits
  19. 12 Mar, 2018 1 commit