[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/04: gnu: fontconfig: Use (locally) deterministic caching
From: |
guix-commits |
Subject: |
01/04: gnu: fontconfig: Use (locally) deterministic caching |
Date: |
Mon, 12 Jul 2021 05:00:22 -0400 (EDT) |
civodul pushed a commit to branch core-updates
in repository guix.
commit 6f12880a76a6c91058718d15845f8b9d9b529a5a
Author: Sarah Morgensen <iskarian@mgsn.dev>
AuthorDate: Fri Jun 18 17:52:05 2021 -0700
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>
---
gnu/local.mk | 1 +
gnu/packages/fontutils.scm | 7 ++++++-
gnu/packages/patches/fontconfig-cache-ignore-mtime.patch | 15 +++++++++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 901fc7c..bc9a34f 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 dbce5be..0ee51a7 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 0000000..b6e942e
--- /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)