guix-commits
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]