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.
master
Eric Bavier 2016-04-05 22:34:54 -05:00
parent 579760d06e
commit 5391be116e
3 changed files with 38 additions and 1 deletions

View File

@ -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 \

View File

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

View File

@ -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