diff options
author | Sarah Morgensen <iskarian@mgsn.dev> | 2021-06-18 17:52:05 -0700 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-07-11 18:17:31 +0200 |
commit | 6f12880a76a6c91058718d15845f8b9d9b529a5a (patch) | |
tree | 099a2b83d254c93ba850dbfa1782ea0ec752b59c | |
parent | 9b4c3c675c05870e5983c21ce4ff944e0b0bc2fa (diff) | |
download | guix-6f12880a76a6c91058718d15845f8b9d9b529a5a.tar.gz guix-6f12880a76a6c91058718d15845f8b9d9b529a5a.zip |
gnu: fontconfig: Use (locally) deterministic caching
Make fontconfig use directory contents rather than modification time to
determine cache validity (by pretending that mtime is broken).
* gnu/packages/patches/fontconfig-cache-ignore-mtime.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/fontutils.scm (fontconfig)[source]: Use it.
[arguments]: Unset SOURCE_DATE_EPOCH for tests.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/fontutils.scm | 7 | ||||
-rw-r--r-- | gnu/packages/patches/fontconfig-cache-ignore-mtime.patch | 15 |
3 files changed, 22 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 901fc7c4ba..bc9a34fd8e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1019,6 +1019,7 @@ dist_patch_DATA = \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ + %D%/packages/patches/fontconfig-cache-ignore-mtime.patch \ %D%/packages/patches/foobillard++-pkg-config.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index dbce5beba8..0ee51a792e 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; ;;; This file is part of GNU Guix. ;;; @@ -331,7 +332,8 @@ Font Format (WOFF).") "https://www.freedesktop.org/software/" "fontconfig/release/fontconfig-" version ".tar.xz")) (sha256 (base32 - "1850q4k80yxma5g3yxkvyv8i5a3xqzswwml8gjy3jmywx8qqd5pa")))) + "1850q4k80yxma5g3yxkvyv8i5a3xqzswwml8gjy3jmywx8qqd5pa")) + (patches (search-patches "fontconfig-cache-ignore-mtime.patch")))) (build-system gnu-build-system) ;; In Requires or Requires.private of fontconfig.pc. (propagated-inputs `(("expat" ,expat) @@ -362,6 +364,9 @@ Font Format (WOFF).") (modify-phases %standard-phases (add-before 'check 'skip-problematic-tests (lambda _ + ;; SOURCE_DATE_EPOCH doesn't make sense when ignoring mtime + (unsetenv "SOURCE_DATE_EPOCH") + (substitute* "test/run-test.sh" ;; The crbug1004254 test attempts to fetch fonts from the ;; network. diff --git a/gnu/packages/patches/fontconfig-cache-ignore-mtime.patch b/gnu/packages/patches/fontconfig-cache-ignore-mtime.patch new file mode 100644 index 0000000000..b6e942ee10 --- /dev/null +++ b/gnu/packages/patches/fontconfig-cache-ignore-mtime.patch @@ -0,0 +1,15 @@ +Pretend that stat's mtime is broken, so that the fontconfig cache does not +depend upon modification time to determine if a cache is stale. + +diff --git a/src/fcstat.c b/src/fcstat.c +index 5a2bd7c..d603a96 100644 +--- a/src/fcstat.c ++++ b/src/fcstat.c +@@ -431,6 +431,7 @@ FcIsFsMmapSafe (int fd) + FcBool + FcIsFsMtimeBroken (const FcChar8 *dir) + { ++ return FcTrue; + int fd = FcOpen ((const char *) dir, O_RDONLY); + + if (fd != -1) |