[Fontconfig] pre-creating font caches in a different tree

Behdad Esfahbod behdad at behdad.org
Tue Oct 4 21:01:04 PDT 2011


On 10/04/11 23:13, Mike Frysinger wrote:
> On Tuesday 04 October 2011 22:36:08 Behdad Esfahbod wrote:
>> On 10/04/11 14:45, Mike Frysinger wrote:
>>> i'd like to run fc-cache against a different tree than "/".  a lot of
>>> utils have a "--root" flag for this sort of thing.  this is useful for
>>> distros which are preparing packages for installation.  it avoids having
>>> to run fc-cache on every system that deploys the fonts.
>>>
>>> so if i ran `fc-cache -s --root /a/b/c`, it would look at
>>> /a/b/c/etc/fonts/ instead of /etc/fonts/.  then every dir that those
>>> config files said to use would transparently be prefixed with /a/b/c. 
>>> so if my config said <dir>/usr/share/fonts</dir> and
>>> <cachedir>/var/cache/fontconfig</cachedir>, it would instead scan
>>> /a/b/c/usr/share/fonts and store the cache in
>>> /a/b/c/var/cache/fontconfig.
>>>
>>> how hard do people envision this being ?
>>
>> Why can't you just do "chroot /a/b/c fc-cache -s"?
> 
> not everyone has that access.  building as root is a bad idea.

Fair enough.

It's not hard adding this to the library.  You would need to add something
like FcConfigSetRoot() / FcConfigGetRoot(), and modify the five or so
locations that files are accessed.

behdad

> long term, i want to do this for cross-compiling, and obviously chroot won't 
> work either (ignoring workarounds involving qemu).
> -mike


More information about the Fontconfig mailing list