1. 03 Apr, 2019 1 commit
    • Keith Packard's avatar
      Replace UUID file mechanism with per-directory 'map' attribute [v2] · c4324f54
      Keith Packard authored
      The UUID files would be placed in each font directory to provide the
      unique cache name, independent of path, for that directory. The UUID
      files are undesireable for a couple of reasons:
      
       1) They must be placed in the font directories to be useful. This
          requires modifying the font directories themselves, introducing
          potential visible timestamp changes when running multiple
          applications, and makes the cache processing inconsistent between
          applications with permission to write to the font directories and
          applications without such permission.
      
       2) The UUID contents were generated randomly, which makes the font
          cache not reproducible across multiple runs.
      
      One proposed fix for 2) is to make the UUID dependent on the font
      directory path, but once we do that, we can simply use the font
      directory path itself as the key as the original MD5-based font cache
      naming mechanism did.
      
      The goal of the UUID file mechanism was to fix startup time of
      flatpaks; as the font path names inside the flatpak did not match the
      font path names in the base system, the font cache would need to be
      reconstructed the first time the flatpak was launched.
      
      The new mechanism for doing this is to allow each '<dir>' element in
      the configuration include a 'map' attribute. When looking for a cache
      file for a particular directory, if the directory name starts with the
      contents of the <dir> element, that portion of the name will be
      replaced with the value of the 'map' attribute.
      
      Outside of the flatpak, nothing need change -- fontconfig will build
      cache files using real directory names.
      
      Inside the flatpak, the custom fonts.conf file will now include
      mappings such as this:
      
      	<dir map="/usr/share/fonts">/run/host/fonts</dir>
      
      When scanning the directory /run/host/fonts/ttf, fontconfig will
      use the name /usr/share/fonts/ttf as the source for building the cache
      file name.
      
      The existing FC_FILE replacement code used for the UUID-based
      implementation continues to correctly adapt font path names seen by
      applications.
      
      v2:
      	Leave FcDirCacheCreateUUID stub around to avoid removing
      	public API function.
      
      	Document 'map' attribute of <dir> element in
      	fontconfig-user.sgml
      Suggested-by: Akira TAGOH's avatarAkira TAGOH <akira@tagoh.org>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      c4324f54
  2. 11 Jun, 2018 1 commit
  3. 14 Jan, 2018 1 commit
  4. 19 Dec, 2017 1 commit
    • Alexander Larsson's avatar
      fchash: Fix replace · 0b59a65a
      Alexander Larsson authored
      When we replace a bucket in the hashtable we have to update the
      next pointer too, or we lose all the other elements that hashed to
      this key.
      0b59a65a
  5. 18 Dec, 2017 3 commits
  6. 24 Nov, 2017 1 commit
  7. 20 Nov, 2017 3 commits
  8. 12 Jun, 2014 1 commit
  9. 16 May, 2014 4 commits
  10. 26 Sep, 2013 1 commit
    • Akira TAGOH's avatar
      avoid reading config.h twice · 43f768b5
      Akira TAGOH authored
      config.h is read from fcint.h now so having a line of the sort of #include "config.h"
      is duplicate.
      
      Bug 69833 - Incorrect SIZEOF_VOID_P and ALIGNOF_DOUBLE definitions causes nasty warnings on MacOSX when building fat libraries
      43f768b5
  11. 27 Jun, 2013 1 commit
  12. 10 Apr, 2013 1 commit
  13. 09 Apr, 2013 3 commits
  14. 05 Feb, 2013 1 commit