summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-04-05 22:34:54 -0500
committerEric Bavier <bavier@member.fsf.org>2016-04-15 00:23:29 -0500
commit5391be116ec454dc563d0f92aa2485e017cfbf5b (patch)
treee321b1a9477686ab4e206d704e7a5ceec93a081d
parent579760d06e11d24ef280e5af16a2e02a98c1d77d (diff)
downloadguix-5391be116ec454dc563d0f92aa2485e017cfbf5b.tar.gz
gnu: fontforge: Make SVG builds reproducible.
* gnu/packages/patches/fontforge-svg-modtime.patch: New file.
* gnu/packages/fontutils.scm (fontforge)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/fontutils.scm3
-rw-r--r--gnu/packages/patches/fontforge-svg-modtime.patch35
3 files changed, 38 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 0c5255fd50..cd1c663705 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -472,6 +472,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/flashrom-use-libftdi1.patch		\
   gnu/packages/patches/flint-ldconfig.patch			\
   gnu/packages/patches/fltk-shared-lib-defines.patch		\
+  gnu/packages/patches/fontforge-svg-modtime.patch		\
   gnu/packages/patches/freeimage-CVE-2015-0852.patch		\
   gnu/packages/patches/gawk-fts-test.patch			\
   gnu/packages/patches/gawk-shell.patch				\
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index a16e9dddcf..f37f343d52 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -511,7 +511,8 @@ definitions.")
                  (("^FONTFORGE_MODTIME_STR=.*$")
                   "FONTFORGE_MODTIME_STR=\"20:25 CDT  4-Apr-2016\"\n")
                  (("^FONTFORGE_VERSIONDATE=.*$")
-                  "FONTFORGE_VERSIONDATE=\"20160404\"\n"))))))
+                  "FONTFORGE_VERSIONDATE=\"20160404\"\n"))))
+            (patches (list (search-patch "fontforge-svg-modtime.patch")))))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/patches/fontforge-svg-modtime.patch b/gnu/packages/patches/fontforge-svg-modtime.patch
new file mode 100644
index 0000000000..fd960ae610
--- /dev/null
+++ b/gnu/packages/patches/fontforge-svg-modtime.patch
@@ -0,0 +1,35 @@
+Propagate source font modification time to svg during conversion.  Similar to
+what upstream commit 95a470e941d9a20fbdaca51334e8b6b9d93cfae4 did for TTF
+files.
+
+Submitted upstream at http://github.com/fontforge/fontforge/pull/2696
+
+--- a/fontforge/svg.c
++++ b/fontforge/svg.c
+@@ -27,7 +27,6 @@
+ #include "fontforgevw.h"
+ #include <unistd.h>
+ #include <math.h>
+-#include <time.h>
+ #include <locale.h>
+ #include <utype.h>
+ #include <chardata.h>
+@@ -62,7 +61,6 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) {
+     BlueData bd;
+     char *hash, *hasv, ch;
+     int minu, maxu, i;
+-    time_t now;
+     const char *author = GetAuthor();
+ 
+     memset(&info,0,sizeof(info));
+@@ -78,9 +76,8 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) {
+ 	fprintf( file, "\n-->\n" );
+     }
+     fprintf( file, "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\">\n" );
+-    time(&now);
+     fprintf( file, "<metadata>\nCreated by FontForge %d at %s",
+-	    FONTFORGE_VERSIONDATE_RAW, ctime(&now) );
++	    FONTFORGE_VERSIONDATE_RAW, ctime((time_t*)&sf->modificationtime) );
+     if ( author!=NULL )
+ 	fprintf(file," By %s\n", author);
+     else