Re: [PATCH] Make the cache filenames determinstic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris Lamb <chris@xxxxxxxxxxxxxxxx> writes:

> Hi fontconfig@,
>
> Whilst working on the Reproducible Builds[0] effort, we noticed that
> fontconfig generates cache files with unreproducible/non-deterministic
> filenames.

I've dug into this a bit more and I think an architectural change in the
cache files made last year is probably not what we want. That change has
the name of the cache file stored in each font directory in a .uuid
file. The patch you've proposed changes how the cache file name is
generated, but leaves it stored in the .uuid file. I'm thinking we
should revisit the whole .uuid file idea and go back to just using a
hash of the directory path for the cache file name. That eliminates the
.uuid file entirely, but does get us back to issues when font
directories move or are accessed under different path names.

To resolve (some of) those issues, I suggest that we adjust what path
name is used when generating the hash identifying the directory. There
are two important notions:

 1) Multiple pathnames reaching the same directory. Symlinks and
    relative paths could both happen here.

 2) FONTCONFIG_SYSROOT and other mechanisms for setting the sysroot
    value.

For 1), using 'realpath(3)' to generate a canonical path name
will make all paths to the same file end up with the same name.

For 2), using realpath(3) on FONTCONFIG_SYSROOT and then eliding that
from the start of the font path before computing the hash will mean that
you can generate a font cache with sysroot set and the resulting cache
will work on the target system.

This eliminates the variance seen with reproducible builds and
eliminates .uuid files cluttering up the disk and changing the contents
of what should be read-only data.

-- 
-keith

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/fontconfig

[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux