From 73cd69a4c4c3493cb6f41b4c2c1caf6af09bbd12 Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Mon, 3 Oct 2016 13:39:58 +0530 Subject: [PATCH 01/82] Update to 20161001 --- .gitignore | 1 + Add-python3-support.patch | 76 +++++++++++++++++----- fontforge-20090224-pythondl.patch | 41 ------------ fontforge-20120731-pdf-bounds.patch | 37 ----------- fontforge-20120731-pdf-filters.patch | 11 ---- fontforge-20140813-use-system-uthash.patch | 4 +- fontforge.spec | 14 ++-- sources | 2 +- 8 files changed, 73 insertions(+), 113 deletions(-) delete mode 100644 fontforge-20090224-pythondl.patch delete mode 100644 fontforge-20120731-pdf-bounds.patch delete mode 100644 fontforge-20120731-pdf-filters.patch diff --git a/.gitignore b/.gitignore index a671a0a..e904731 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ fontforge_full-20100501.tar.bz2 /20150612.tar.gz /fontforge-20150824.tar.gz /fontforge-20160404.tar.gz +/fontforge-20161001.tar.gz diff --git a/Add-python3-support.patch b/Add-python3-support.patch index d9a90ae..32759fa 100644 --- a/Add-python3-support.patch +++ b/Add-python3-support.patch @@ -1,8 +1,9 @@ -From 75426cbbe57138849b96537ab1dee81e7861af11 Mon Sep 17 00:00:00 2001 -From: Parag Nemade -Date: Fri, 8 Apr 2016 12:03:12 +0530 +From b2c5de7835a753cad1f35db8202c4733b5fc2990 Mon Sep 17 00:00:00 2001 +From: Parag A Nemade +Date: Mon, 3 Oct 2016 12:56:29 +0530 Subject: [PATCH] Add python3 support +Signed-off-by: Parag A Nemade --- pycontrib/FontCompare/fc/BitmapHandler.py | 20 +++++++-------- pycontrib/FontCompare/fc/DocCompare.py | 2 +- @@ -12,14 +13,14 @@ Subject: [PATCH] Add python3 support pycontrib/FontCompare/unittests/unittests.py | 18 ++++++------- pycontrib/collab/web-test-collab.py | 2 +- pycontrib/even.py | 2 +- - pycontrib/gdraw/__init__.py | 2 +- - pycontrib/gdraw/gdraw.py | 18 ++++++------- - pycontrib/graphicore.py | 2 +- + pycontrib/gdraw/__init__.py | 4 +-- + pycontrib/gdraw/gdraw.py | 20 +++++++-------- + pycontrib/graphicore.py | 4 +-- pycontrib/graphicore/ipython_view.py | 13 +++++----- - pycontrib/graphicore/shell.py | 2 +- + pycontrib/graphicore/shell.py | 4 +-- pycontrib/svg2sfd.py | 38 ++++++++++++++-------------- - pycontrib/webcollab.py | 2 +- - 15 files changed, 64 insertions(+), 63 deletions(-) + pycontrib/webcollab.py | 6 ++--- + 15 files changed, 70 insertions(+), 69 deletions(-) diff --git a/pycontrib/FontCompare/fc/BitmapHandler.py b/pycontrib/FontCompare/fc/BitmapHandler.py index d4d00da..c159128 100644 @@ -212,7 +213,7 @@ index 96f9128..4f30fcb 100755 """ running even from the fontforge menu diff --git a/pycontrib/gdraw/__init__.py b/pycontrib/gdraw/__init__.py -index d47976c..25bf981 100644 +index d47976c..dde7ea8 100644 --- a/pycontrib/gdraw/__init__.py +++ b/pycontrib/gdraw/__init__.py @@ -1,4 +1,4 @@ @@ -221,8 +222,17 @@ index d47976c..25bf981 100644 # vim:ts=8:sw=4:expandtab:encoding=utf-8 ''' Copyright 2009 +@@ -22,7 +22,7 @@ Copyright 2009 + __all__ = ['Timer', 'GtkRunner', 'gtkrunner'] + __version__ = '0.1' + +-from gdraw import * ++from .gdraw import * + + def main(): + pass diff --git a/pycontrib/gdraw/gdraw.py b/pycontrib/gdraw/gdraw.py -index f2d5e50..3ed3abd 100755 +index f2d5e50..8b6e693 100755 --- a/pycontrib/gdraw/gdraw.py +++ b/pycontrib/gdraw/gdraw.py @@ -1,4 +1,4 @@ @@ -231,6 +241,15 @@ index f2d5e50..3ed3abd 100755 '''ctypes wrapper to Attach the GDraw event handler to the gtk main loop. Copyright 2009 +@@ -67,7 +67,7 @@ def setup_syspath(modpath="modules"): + + __all__ = ['Timer', 'GtkRunner', 'gtkrunner'] + +-from _gdraw import * ++from ._gdraw import * + from ctypes import * + import types + @@ -111,7 +111,7 @@ class Timer: return @@ -296,7 +315,7 @@ index f2d5e50..3ed3abd 100755 def start(self, timeout=GTIMEOUT): diff --git a/pycontrib/graphicore.py b/pycontrib/graphicore.py -index f95e488..a986327 100755 +index f95e488..229a2b7 100755 --- a/pycontrib/graphicore.py +++ b/pycontrib/graphicore.py @@ -1,4 +1,4 @@ @@ -305,6 +324,13 @@ index f95e488..a986327 100755 # -*- coding: utf-8 -*- """ running the fontforge scripts in the graphicore folder on fontforge startup +@@ -22,4 +22,4 @@ sys.path.append(os.path.dirname(sys.modules[__name__].__file__)) + sys.path.reverse(); + + #load the modules +-import graphicore.shell +\ No newline at end of file ++import graphicore.shell diff --git a/pycontrib/graphicore/ipython_view.py b/pycontrib/graphicore/ipython_view.py index f39eedb..2b77395 100644 --- a/pycontrib/graphicore/ipython_view.py @@ -353,7 +379,7 @@ index f39eedb..2b77395 100644 input.close() diff --git a/pycontrib/graphicore/shell.py b/pycontrib/graphicore/shell.py -index 5d102f7..2728ae2 100755 +index 5d102f7..32fa584 100755 --- a/pycontrib/graphicore/shell.py +++ b/pycontrib/graphicore/shell.py @@ -1,4 +1,4 @@ @@ -362,6 +388,15 @@ index 5d102f7..2728ae2 100755 # -*- coding: utf-8 -*- """ FontForge Interactive Python Shell +@@ -32,7 +32,7 @@ if len(sys.argv) == 0: + # some versions of IPython need content in sys.argv + sys.argv.append('') + +-from ipython_view import * ++from .ipython_view import * + import gdraw + + def runShell(data = None, glyphOrFont = None): diff --git a/pycontrib/svg2sfd.py b/pycontrib/svg2sfd.py index e1fc0ac..e23cb15 100644 --- a/pycontrib/svg2sfd.py @@ -459,7 +494,7 @@ index e1fc0ac..e23cb15 100644 continue s = l.strip().split() diff --git a/pycontrib/webcollab.py b/pycontrib/webcollab.py -index 9ee0f17..f96828c 100755 +index 9ee0f17..4be07ec 100755 --- a/pycontrib/webcollab.py +++ b/pycontrib/webcollab.py @@ -1,4 +1,4 @@ @@ -468,6 +503,17 @@ index 9ee0f17..f96828c 100755 # -*- coding: utf-8 -*- """ running web collab server hooks +@@ -44,8 +44,8 @@ def startWebServerInCollabMode(data = None, glyphOrFont = None): + global child + global childNodejs + ensureChildClosed() +- print("FONTFORGE:" + FONTFORGE) +- print("script path:" + collabpath + "web-test-collab.py") ++ print(("FONTFORGE:" + FONTFORGE)) ++ print(("script path:" + collabpath + "web-test-collab.py")) + child = subprocess.Popen( [ FONTFORGE, "-forceuihidden", "-script", collabpath + "web-test-collab.py" ] ) + # + # start the nodejs server -- -2.7.3 +2.9.3 diff --git a/fontforge-20090224-pythondl.patch b/fontforge-20090224-pythondl.patch deleted file mode 100644 index 45e04bf..0000000 --- a/fontforge-20090224-pythondl.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -Nur fontforge-20090224.orig/configure fontforge-20090224/configure ---- fontforge-20090224.orig/configure 2008-12-24 14:04:18.000000000 -0700 -+++ fontforge-20090224/configure 2009-04-01 22:56:07.000000000 -0600 -@@ -26670,6 +26670,7 @@ - else - PYLIBS="" - fi -+ PYDEFINES="$PYDEFINES, ('SOLIBDIR','\"$libdir/\"')" - PY=pyhook/setup.py - fi - -diff -Nur fontforge-20090224.orig/pyhook/loadfontforge.h fontforge-20090224/pyhook/loadfontforge.h ---- fontforge-20090224.orig/pyhook/loadfontforge.h 2007-12-23 19:28:35.000000000 -0700 -+++ fontforge-20090224/pyhook/loadfontforge.h 2009-04-01 22:49:08.000000000 -0600 -@@ -11,7 +11,7 @@ - - if ( (lib = dlopen("libgunicode" SO_EXT,RTLD_LAZY))==NULL ) { - #ifdef PREFIX -- lib = dlopen( PREFIX "/lib/" "libgunicode" SO_EXT,RTLD_LAZY); -+ lib = dlopen( SOLIBDIR "libgunicode.so.3" ,RTLD_LAZY); - #endif - } - if ( lib==NULL ) { -@@ -21,7 +21,7 @@ - - if ( (lib = dlopen("libgutils" SO_EXT,RTLD_LAZY))==NULL ) { - #ifdef PREFIX -- lib = dlopen( PREFIX "/lib/" "libgutils" SO_EXT,RTLD_LAZY); -+ lib = dlopen( SOLIBDIR "libgutils.so.1" ,RTLD_LAZY); - #endif - } - if ( lib==NULL ) { -@@ -31,7 +31,7 @@ - - if ( (lib = dlopen("libfontforge" SO_EXT,RTLD_LAZY))==NULL ) { - #ifdef PREFIX -- lib = dlopen( PREFIX "/lib/" "libfontforge" SO_EXT,RTLD_LAZY); -+ lib = dlopen( SOLIBDIR "libfontforge.so.1" ,RTLD_LAZY); - #endif - } - if ( lib==NULL ) { diff --git a/fontforge-20120731-pdf-bounds.patch b/fontforge-20120731-pdf-bounds.patch deleted file mode 100644 index 400ece4..0000000 --- a/fontforge-20120731-pdf-bounds.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- fontforge-20120731-b/fontforge/parsepdf.c 2012-08-02 16:09:09.000000000 +0100 -+++ fontforge-20120731-b-new/fontforge/parsepdf.c 2013-02-07 17:44:05.371466086 +0000 -@@ -1691,9 +1691,9 @@ - /* to "Unicode" values it specifies rather than to the real order in which the glyphs are */ - /* stored in the file */ - pos = cmap_from_cid || sf->map == NULL ? gid : sf->map->map[gid]; -- sc = sf->glyphs[pos]; - -- if (pos >= 0 && pos < sf->glyphcnt && (sc->unicodeenc != uvals[0] || nuni > 1)) { -+ if (pos >= 0 && pos < sf->glyphcnt && (sf->glyphs[pos]->unicodeenc != uvals[0] || nuni > 1)) { -+ sc = sf->glyphs[pos]; - /* Sometimes FF instead of assigning proper Unicode values to TTF glyphs keeps */ - /* them encoded to the same codepoint, but creates for each glyph an alternate */ - /* encoding, corresponding to the position this glyph has in the font's encoding */ -@@ -1723,6 +1723,7 @@ - FILE *file; - int i, j, gid, start, end, uni, cur=0, nuni, nhex, nchars, lo, *uvals; - long *mappings; -+ size_t num_mappings; - char tok[200], *ccval, prevtok[200]; - SplineFont *sf = basesf->subfontcnt > 0 ? basesf->subfonts[0] : basesf; - -@@ -1733,9 +1734,14 @@ - return; - rewind(file); - -+ num_mappings = sf->glyphcnt; - mappings = gcalloc(sf->glyphcnt,sizeof(long)); - while ( pdf_getprotectedtok(file,tok) >= 0 ) { - if ( strcmp(tok,"beginbfchar") == 0 && sscanf(prevtok,"%d",&nchars)) { -+ if (cur + nchars >= num_mappings) { -+ num_mappings = cur + nchars; -+ mappings = grealloc(mappings, num_mappings * sizeof(long)); -+ } - for (i=0; i= 0 && sscanf(tok,"%x",&gid) && - pdf_skip_brackets(file,tok) >= 0 && sscanf(tok,"%lx",&mappings[cur])) { diff --git a/fontforge-20120731-pdf-filters.patch b/fontforge-20120731-pdf-filters.patch deleted file mode 100644 index ed67875..0000000 --- a/fontforge-20120731-pdf-filters.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- fontforge-20120731-b/fontforge/parsepdf.c.orig 2013-04-15 17:47:51.113706334 +0100 -+++ fontforge-20120731-b/fontforge/parsepdf.c 2013-04-15 17:55:55.531682304 +0100 -@@ -960,6 +960,8 @@ - start = 0; - num = pdf_getinteger(pt,pc); - } -+ if ( (pt=PSDictHasEntry(&pc->pdfdict,"DecodeParms"))!=NULL && strstr(pt, "/Predictor")!=NULL) -+return( NULL ); - if ( (pt=PSDictHasEntry(&pc->pdfdict,"Index"))!=NULL ) { - if ( sscanf(pt,"[%d %d]", &start, &num )!=2 ) - return( NULL ); diff --git a/fontforge-20140813-use-system-uthash.patch b/fontforge-20140813-use-system-uthash.patch index a9ad950..e5a0b4b 100644 --- a/fontforge-20140813-use-system-uthash.patch +++ b/fontforge-20140813-use-system-uthash.patch @@ -1,5 +1,5 @@ ---- Makefile.am.old 2014-08-12 10:07:32.000000000 +0530 -+++ Makefile.am 2014-09-08 16:23:56.046996941 +0530 +--- ./Makefile.am.old 2014-08-12 10:07:32.000000000 +0530 ++++ ./Makefile.am 2014-09-08 16:23:56.046996941 +0530 @@ -43,7 +43,6 @@ AM_CPPFLAGS = AM_LDFLAGS = diff --git a/fontforge.spec b/fontforge.spec index 2c4ec60..d92e574 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,10 +1,10 @@ %global gettext_package FontForge %global gnulib_githead 2bf7326 -%global gittag0 20160404 +%global gittag0 20161001 Name: fontforge -Version: 20160404 -Release: 4%{?dist} +Version: %{gittag0} +Release: 1%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -14,6 +14,7 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{gnulib_githead};sf=tgz;name=gnulib-%{gnulib_githead}.tar.gz # https://github.com/fontforge/fontforge/pull/1723 Patch0: fontforge-20140813-use-system-uthash.patch +# Fedora specific patch to have python3 support only Patch1: Add-python3-support.patch Requires: xdg-utils @@ -72,11 +73,9 @@ This package contains documentation files for %{name}. %prep -%setup -q -n %{name}-%{version} +%autosetup -p1 tar xzf %{SOURCE1} -%patch0 -p0 -%patch1 -p1 sed -i -e '/^#!\//, 1d' pycontrib/webcollab.py mkdir htdocs @@ -169,6 +168,9 @@ fi %doc htdocs %changelog +* Mon Oct 03 2016 Parag Nemade - 20161001-1 +- Update to 20161001 + * Tue Jul 19 2016 Fedora Release Engineering - 20160404-4 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages diff --git a/sources b/sources index bbc9e7b..61f9d50 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -1daba85b251e00c614e4e857c67cae4c fontforge-20160404.tar.gz +c48b3dfc2a4142028f117cefc3e99d66 fontforge-20161001.tar.gz 149162d1d21a0dfc705a31916f4b0cd0 gnulib-2bf7326.tar.gz From b832b40e044cdc7270e9fa46e4fb30d7f230a7f7 Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Wed, 5 Oct 2016 12:48:11 +0530 Subject: [PATCH 02/82] Update to 20161004 --- .gitignore | 1 + fontforge.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e904731..90d09d6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20150824.tar.gz /fontforge-20160404.tar.gz /fontforge-20161001.tar.gz +/fontforge-20161004.tar.gz diff --git a/fontforge.spec b/fontforge.spec index d92e574..efc83ff 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,6 +1,6 @@ %global gettext_package FontForge %global gnulib_githead 2bf7326 -%global gittag0 20161001 +%global gittag0 20161004 Name: fontforge Version: %{gittag0} @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Wed Oct 05 2016 Parag Nemade - 20161004-1 +- Update to 20161004 + * Mon Oct 03 2016 Parag Nemade - 20161001-1 - Update to 20161001 diff --git a/sources b/sources index 61f9d50..9a2d021 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -c48b3dfc2a4142028f117cefc3e99d66 fontforge-20161001.tar.gz +ea27ba04fc04ff179c04d4911262d233 fontforge-20161004.tar.gz 149162d1d21a0dfc705a31916f4b0cd0 gnulib-2bf7326.tar.gz From e05c58279ca044f64f89dc72ce47c39ea49602fa Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Thu, 6 Oct 2016 09:58:04 +0530 Subject: [PATCH 03/82] Update to 20161005 --- .gitignore | 1 + fontforge.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 90d09d6..a617a02 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20160404.tar.gz /fontforge-20161001.tar.gz /fontforge-20161004.tar.gz +/fontforge-20161005.tar.gz diff --git a/fontforge.spec b/fontforge.spec index efc83ff..4c5ab3d 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,6 +1,6 @@ %global gettext_package FontForge %global gnulib_githead 2bf7326 -%global gittag0 20161004 +%global gittag0 20161005 Name: fontforge Version: %{gittag0} @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Thu Oct 06 2016 Parag Nemade - 20161005-1 +- Update to 20161005 + * Wed Oct 05 2016 Parag Nemade - 20161004-1 - Update to 20161004 diff --git a/sources b/sources index 9a2d021..37080cf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -ea27ba04fc04ff179c04d4911262d233 fontforge-20161004.tar.gz +17e78bea5af0ab67af7d82b28e856cbb fontforge-20161005.tar.gz 149162d1d21a0dfc705a31916f4b0cd0 gnulib-2bf7326.tar.gz From 5f043b21864c71a476ae984d1403650aebd3d78c Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Thu, 13 Oct 2016 12:12:27 +0530 Subject: [PATCH 04/82] Update to 20161012 --- .gitignore | 1 + fontforge.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a617a02..285a444 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20161001.tar.gz /fontforge-20161004.tar.gz /fontforge-20161005.tar.gz +/fontforge-20161012.tar.gz diff --git a/fontforge.spec b/fontforge.spec index 4c5ab3d..9e3252a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,6 +1,6 @@ %global gettext_package FontForge %global gnulib_githead 2bf7326 -%global gittag0 20161005 +%global gittag0 20161012 Name: fontforge Version: %{gittag0} @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Thu Oct 13 2016 Parag Nemade - 20161012-1 +- Update to 20161012 + * Thu Oct 06 2016 Parag Nemade - 20161005-1 - Update to 20161005 diff --git a/sources b/sources index 37080cf..3528662 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -17e78bea5af0ab67af7d82b28e856cbb fontforge-20161005.tar.gz +d7e3cfc8097808e5bfbee44749f30808 fontforge-20161012.tar.gz 149162d1d21a0dfc705a31916f4b0cd0 gnulib-2bf7326.tar.gz From 1ac79b40cc44254edacb293499c97e48655f72a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 19 Dec 2016 18:20:36 +0100 Subject: [PATCH 05/82] Rebuild for Python 3.6 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 9e3252a..651b5e5 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 1%{?dist} +Release: 2%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Mon Dec 19 2016 Miro Hrončok - 20161012-2 +- Rebuild for Python 3.6 + * Thu Oct 13 2016 Parag Nemade - 20161012-1 - Update to 20161012 From d13c60d5e504e495af86576cc9cd8850faf071be Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 12 Jan 2017 17:30:26 +0100 Subject: [PATCH 06/82] Rebuild for readline 7.x Signed-off-by: Igor Gnatenko --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 651b5e5..ecdc94a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 2%{?dist} +Release: 3%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Thu Jan 12 2017 Igor Gnatenko - 20161012-3 +- Rebuild for readline 7.x + * Mon Dec 19 2016 Miro Hrončok - 20161012-2 - Rebuild for Python 3.6 From 346c18e867cd283a7b38a605b68d841d429bb8ef Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 09:55:02 +0000 Subject: [PATCH 07/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index ecdc94a..69bc6d7 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 3%{?dist} +Release: 4%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -168,6 +168,9 @@ fi %doc htdocs %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 20161012-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Thu Jan 12 2017 Igor Gnatenko - 20161012-3 - Rebuild for readline 7.x From c804f4be9d9aa18cff34a55fea1946575481f89a Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Sat, 18 Feb 2017 19:42:13 +0530 Subject: [PATCH 08/82] Add missing BR: git --- fontforge.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 69bc6d7..eb01aa4 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 4%{?dist} +Release: 5%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -22,6 +22,7 @@ Requires: autotrace Requires: hicolor-icon-theme BuildRequires: gcc +BuildRequires: git BuildRequires: libjpeg-devel BuildRequires: libtiff-devel BuildRequires: libpng-devel @@ -168,6 +169,9 @@ fi %doc htdocs %changelog +* Sat Feb 18 2017 Parag Nemade - 20161012-5 +- Add missing BR: git + * Fri Feb 10 2017 Fedora Release Engineering - 20161012-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From d980da81497daadad6d0a1ddde4ba312a476944b Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Wed, 8 Mar 2017 10:37:02 +0530 Subject: [PATCH 09/82] Resolves:rh#1430124 - can't import fontforge and psMat python modules --- ...ge-20160404-python3-import-psMat-fix.patch | 47 +++++++++++++++++++ fontforge.spec | 8 +++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 fontforge-20160404-python3-import-psMat-fix.patch diff --git a/fontforge-20160404-python3-import-psMat-fix.patch b/fontforge-20160404-python3-import-psMat-fix.patch new file mode 100644 index 0000000..61b8421 --- /dev/null +++ b/fontforge-20160404-python3-import-psMat-fix.patch @@ -0,0 +1,47 @@ +From 3c57c9c2482c39c9f5f18f41bda93090d2fc9a17 Mon Sep 17 00:00:00 2001 +From: Jeremy Tan +Date: Tue, 4 Oct 2016 20:42:15 +0800 +Subject: [PATCH] Python3 scripting: Don't call RegisterAllPyModules from + imported modules + +This calls PyImport_AppendInittab. The behaviour has changed between +Python 2 and 3. In 3, you cannot call this function anymore after +Py_Initialize has been called. Meaning since the module has already +been imported, Py_Initialize must have already been called before. + +This change means that FFPY_PYTHON_ENTRY_FUNCTION will now be called +more than once (once for each module imported) on Python 3, so ensure +that the initialisation code only runs once. + +Fixes #2886. See also #1731. +--- + fontforge/python.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/fontforge/python.c b/fontforge/python.c +index 538b907..238f0dd 100644 +--- a/fontforge/python.c ++++ b/fontforge/python.c +@@ -18893,11 +18893,18 @@ return; + ** function. + */ + PyMODINIT_FUNC FFPY_PYTHON_ENTRY_FUNCTION(const char* modulename) { +- doinitFontForgeMain(); +- no_windowing_ui = running_script = true; ++ static int initted = false; + +- RegisterAllPyModules(); +- CreateAllPyModules(); ++ if (!initted) { ++ doinitFontForgeMain(); ++ no_windowing_ui = running_script = true; ++ ++#if PY_MAJOR_VERSION <= 2 ++ RegisterAllPyModules(); ++#endif ++ CreateAllPyModules(); ++ initted = true; ++ } + + #if PY_MAJOR_VERSION >= 3 + /* Python 3 expects the module object to be returned */ diff --git a/fontforge.spec b/fontforge.spec index 2c4ec60..3d26b62 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: 20160404 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -15,6 +15,8 @@ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{ # https://github.com/fontforge/fontforge/pull/1723 Patch0: fontforge-20140813-use-system-uthash.patch Patch1: Add-python3-support.patch +# https://github.com/jtanx/fontforge/commit/3c57c9c2482c39c9f5f18f41bda93090d2fc9a17.patch +Patch2: fontforge-20160404-python3-import-psMat-fix.patch Requires: xdg-utils Requires: autotrace @@ -77,6 +79,7 @@ tar xzf %{SOURCE1} %patch0 -p0 %patch1 -p1 +%patch2 -p1 sed -i -e '/^#!\//, 1d' pycontrib/webcollab.py mkdir htdocs @@ -169,6 +172,9 @@ fi %doc htdocs %changelog +* Wed Mar 08 2017 Parag Nemade - 20160404-5 +- Resolves:rh#1430124 - can't import fontforge and psMat python modules + * Tue Jul 19 2016 Fedora Release Engineering - 20160404-4 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages From 737ec2b2a2f9c2af6695cb47e173b9e203f8c88a Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Thu, 9 Mar 2017 22:23:58 +0530 Subject: [PATCH 10/82] Resolves:rh#1429574 - [abrt] fontforge: PyFF_OpenFont(): fontforge killed by signal 6 Added patch to fix python module for python3.6 --- ...20161012-fix-free-call-to-PyMem_Free.patch | 121 ++++++++++++++++++ fontforge.spec | 8 +- 2 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 fontforge-20161012-fix-free-call-to-PyMem_Free.patch diff --git a/fontforge-20161012-fix-free-call-to-PyMem_Free.patch b/fontforge-20161012-fix-free-call-to-PyMem_Free.patch new file mode 100644 index 0000000..0b74ca3 --- /dev/null +++ b/fontforge-20161012-fix-free-call-to-PyMem_Free.patch @@ -0,0 +1,121 @@ +diff -urN fontforge-20161012.old/fontforge/python.c fontforge-20161012/fontforge/python.c +--- fontforge-20161012.old/fontforge/python.c 2016-10-11 06:59:29.000000000 +0530 ++++ fontforge-20161012/fontforge/python.c 2017-03-09 20:16:23.539059197 +0530 +@@ -1010,7 +1010,7 @@ + if ( !PyArg_ParseTuple(args,"es|i", "UTF-8", &filename, &openflags )) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + /* The actual filename opened may be different from the one passed + * to LoadSplineFont, so we can't report the filename on an +@@ -1037,7 +1037,7 @@ + if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + ret = GetFontNames(locfilename, 1); + free(locfilename); + cnt = 0; +@@ -4093,7 +4093,7 @@ + if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + pt = strrchr(locfilename,'.'); + if ( pt==NULL ) pt=locfilename; +@@ -7750,7 +7750,7 @@ + if ( !PyArg_ParseTuple(args,"es|O","UTF-8",&filename, &flags) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + /* Check if the file exists and is readable */ + if ( access(locfilename,R_OK)!=0 ) { +@@ -7819,7 +7819,7 @@ + if ( !PyArg_ParseTuple(args,"es|OO","UTF-8",&filename,&foo,&bar) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + pt = strrchr(locfilename,'.'); + if ( pt==NULL ) pt=locfilename; +@@ -13514,7 +13514,7 @@ + &to_background) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + ext = strrchr(locfilename,'.'); + if ( ext==NULL ) { +@@ -13588,7 +13588,7 @@ + if ( !PyArg_ParseTuple(args,"OesO", &other, "UTF-8", &filename, &flagstuple )) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + if ( !PyType_IsSubtype(&PyFF_FontType, Py_TYPE(other)) ) { + PyErr_Format(PyExc_TypeError,"First argument must be a fontforge font"); +@@ -15655,7 +15655,7 @@ + } + } + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + if ( !GenerateScript(fv->sf,locfilename,bitmaptype,iflags,resolution,subfontdirectory, + NULL,fv->normal==NULL?fv->map:fv->normal,rename_to,layer) ) { + PyErr_Format(PyExc_EnvironmentError, "Font generation failed"); +@@ -15811,7 +15811,7 @@ + } + + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + if ( !WriteTTC(locfilename,head,ff_ttc,bf,iflags,layer,ittcflags)) { + PyErr_Format(PyExc_EnvironmentError, "Font generation failed"); +@@ -15839,7 +15839,7 @@ + if ( !PyArg_ParseTuple(args,"es|s","UTF-8",&filename,&lookup_name) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + + if ( lookup_name!=NULL ) { + otl = SFFindLookup(fv->sf,lookup_name); +@@ -15879,7 +15879,8 @@ + if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); ++ + if ( !LoadKerningDataFromMetricsFile(fv->sf,locfilename,fv->map)) { + PyErr_Format(PyExc_EnvironmentError, "No metrics data found"); + return( NULL ); +@@ -15903,7 +15904,7 @@ + &preserveCrossFontKerning, &openflags) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + sf = LoadSplineFont(locfilename,openflags); + if ( sf==NULL ) { + PyErr_Format(PyExc_EnvironmentError, "No font found in file \"%s\"", locfilename); +@@ -15931,7 +15932,7 @@ + if ( !PyArg_ParseTuple(args,"des|i",&fraction,"UTF-8",&filename, &openflags) ) + return( NULL ); + locfilename = utf82def_copy(filename); +- free(filename); ++ PyMem_Free(filename); + sf = LoadSplineFont(locfilename,openflags); + if ( sf==NULL ) { + PyErr_Format(PyExc_EnvironmentError, "No font found in file \"%s\"", locfilename); diff --git a/fontforge.spec b/fontforge.spec index eb01aa4..8e50950 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 5%{?dist} +Release: 6%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -16,6 +16,8 @@ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{ Patch0: fontforge-20140813-use-system-uthash.patch # Fedora specific patch to have python3 support only Patch1: Add-python3-support.patch +# https://github.com/fontforge/fontforge/issues/3042 +Patch2: fontforge-20161012-fix-free-call-to-PyMem_Free.patch Requires: xdg-utils Requires: autotrace @@ -169,6 +171,10 @@ fi %doc htdocs %changelog +* Thu Mar 09 2017 Parag Nemade - 20161012-6 +- Resolves:rh#1429574 - [abrt] fontforge: PyFF_OpenFont(): fontforge killed by signal 6 +- Added patch to fix python module for python3.6 + * Sat Feb 18 2017 Parag Nemade - 20161012-5 - Add missing BR: git From 846058b09e308b8be255a94e953bdeedb579ed3f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 08:36:55 +0000 Subject: [PATCH 11/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 8e50950..7f76102 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 6%{?dist} +Release: 7%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -171,6 +171,9 @@ fi %doc htdocs %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 20161012-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Thu Mar 09 2017 Parag Nemade - 20161012-6 - Resolves:rh#1429574 - [abrt] fontforge: PyFF_OpenFont(): fontforge killed by signal 6 - Added patch to fix python module for python3.6 From ee0ada2a7e781a6c2c1c51c0f9705f52d96e931c Mon Sep 17 00:00:00 2001 From: Parag A Nemade Date: Mon, 31 Jul 2017 13:03:42 +0530 Subject: [PATCH 12/82] Update to 20170731 --- .gitignore | 1 + ...20161012-fix-free-call-to-PyMem_Free.patch | 121 ------------------ fontforge.spec | 9 +- sources | 4 +- 4 files changed, 8 insertions(+), 127 deletions(-) delete mode 100644 fontforge-20161012-fix-free-call-to-PyMem_Free.patch diff --git a/.gitignore b/.gitignore index 285a444..1ccdc96 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20161004.tar.gz /fontforge-20161005.tar.gz /fontforge-20161012.tar.gz +/fontforge-20170731.tar.gz diff --git a/fontforge-20161012-fix-free-call-to-PyMem_Free.patch b/fontforge-20161012-fix-free-call-to-PyMem_Free.patch deleted file mode 100644 index 0b74ca3..0000000 --- a/fontforge-20161012-fix-free-call-to-PyMem_Free.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff -urN fontforge-20161012.old/fontforge/python.c fontforge-20161012/fontforge/python.c ---- fontforge-20161012.old/fontforge/python.c 2016-10-11 06:59:29.000000000 +0530 -+++ fontforge-20161012/fontforge/python.c 2017-03-09 20:16:23.539059197 +0530 -@@ -1010,7 +1010,7 @@ - if ( !PyArg_ParseTuple(args,"es|i", "UTF-8", &filename, &openflags )) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - /* The actual filename opened may be different from the one passed - * to LoadSplineFont, so we can't report the filename on an -@@ -1037,7 +1037,7 @@ - if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - ret = GetFontNames(locfilename, 1); - free(locfilename); - cnt = 0; -@@ -4093,7 +4093,7 @@ - if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - pt = strrchr(locfilename,'.'); - if ( pt==NULL ) pt=locfilename; -@@ -7750,7 +7750,7 @@ - if ( !PyArg_ParseTuple(args,"es|O","UTF-8",&filename, &flags) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - /* Check if the file exists and is readable */ - if ( access(locfilename,R_OK)!=0 ) { -@@ -7819,7 +7819,7 @@ - if ( !PyArg_ParseTuple(args,"es|OO","UTF-8",&filename,&foo,&bar) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - pt = strrchr(locfilename,'.'); - if ( pt==NULL ) pt=locfilename; -@@ -13514,7 +13514,7 @@ - &to_background) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - ext = strrchr(locfilename,'.'); - if ( ext==NULL ) { -@@ -13588,7 +13588,7 @@ - if ( !PyArg_ParseTuple(args,"OesO", &other, "UTF-8", &filename, &flagstuple )) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - if ( !PyType_IsSubtype(&PyFF_FontType, Py_TYPE(other)) ) { - PyErr_Format(PyExc_TypeError,"First argument must be a fontforge font"); -@@ -15655,7 +15655,7 @@ - } - } - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - if ( !GenerateScript(fv->sf,locfilename,bitmaptype,iflags,resolution,subfontdirectory, - NULL,fv->normal==NULL?fv->map:fv->normal,rename_to,layer) ) { - PyErr_Format(PyExc_EnvironmentError, "Font generation failed"); -@@ -15811,7 +15811,7 @@ - } - - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - if ( !WriteTTC(locfilename,head,ff_ttc,bf,iflags,layer,ittcflags)) { - PyErr_Format(PyExc_EnvironmentError, "Font generation failed"); -@@ -15839,7 +15839,7 @@ - if ( !PyArg_ParseTuple(args,"es|s","UTF-8",&filename,&lookup_name) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - - if ( lookup_name!=NULL ) { - otl = SFFindLookup(fv->sf,lookup_name); -@@ -15879,7 +15879,8 @@ - if ( !PyArg_ParseTuple(args,"es","UTF-8",&filename) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); -+ - if ( !LoadKerningDataFromMetricsFile(fv->sf,locfilename,fv->map)) { - PyErr_Format(PyExc_EnvironmentError, "No metrics data found"); - return( NULL ); -@@ -15903,7 +15904,7 @@ - &preserveCrossFontKerning, &openflags) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - sf = LoadSplineFont(locfilename,openflags); - if ( sf==NULL ) { - PyErr_Format(PyExc_EnvironmentError, "No font found in file \"%s\"", locfilename); -@@ -15931,7 +15932,7 @@ - if ( !PyArg_ParseTuple(args,"des|i",&fraction,"UTF-8",&filename, &openflags) ) - return( NULL ); - locfilename = utf82def_copy(filename); -- free(filename); -+ PyMem_Free(filename); - sf = LoadSplineFont(locfilename,openflags); - if ( sf==NULL ) { - PyErr_Format(PyExc_EnvironmentError, "No font found in file \"%s\"", locfilename); diff --git a/fontforge.spec b/fontforge.spec index 7f76102..420543a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,10 +1,10 @@ %global gettext_package FontForge %global gnulib_githead 2bf7326 -%global gittag0 20161012 +%global gittag0 20170731 Name: fontforge Version: %{gittag0} -Release: 7%{?dist} +Release: 1%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -16,8 +16,6 @@ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{ Patch0: fontforge-20140813-use-system-uthash.patch # Fedora specific patch to have python3 support only Patch1: Add-python3-support.patch -# https://github.com/fontforge/fontforge/issues/3042 -Patch2: fontforge-20161012-fix-free-call-to-PyMem_Free.patch Requires: xdg-utils Requires: autotrace @@ -171,6 +169,9 @@ fi %doc htdocs %changelog +* Mon Jul 31 2017 Parag Nemade - 20170731-1 +- Update to 20170731 + * Wed Jul 26 2017 Fedora Release Engineering - 20161012-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild diff --git a/sources b/sources index 3528662..150830b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d7e3cfc8097808e5bfbee44749f30808 fontforge-20161012.tar.gz -149162d1d21a0dfc705a31916f4b0cd0 gnulib-2bf7326.tar.gz +SHA512 (fontforge-20170731.tar.gz) = 756b80cf1b0416dbb649838f98e24ba696f0064d4d66720776e52c236fe9339c752cfac629b1c288fdce25fa6790be0e8d186f60291edf1736081fe76a2c5d7e +SHA512 (gnulib-2bf7326.tar.gz) = c0ceeb941f840ca6fefcab3fe19e73e748a8a3a9ad7a86a773e0103ce4a412e8b0135032da2bda962c65daeea5636f28fda4dd492ba48da1c5ee023c57581eeb From 5bced5a809964de45b53882c72de20cccec30e61 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 20:42:10 +0000 Subject: [PATCH 13/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 420543a..fa19f34 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 1%{?dist} +Release: 2%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -169,6 +169,9 @@ fi %doc htdocs %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 20170731-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Mon Jul 31 2017 Parag Nemade - 20170731-1 - Update to 20170731 From 23e331527b378111beedf1a4b0ed879487724455 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 11 Jan 2018 14:51:29 +0100 Subject: [PATCH 14/82] Remove obsolete scriptlets Signed-off-by: Igor Gnatenko --- fontforge.spec | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/fontforge.spec b/fontforge.spec index fa19f34..032730c 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 2%{?dist} +Release: 3%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -128,23 +128,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/css/*.css chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/*.js chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEditable/* -%post -update-desktop-database &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -/usr/bin/update-mime-database %{_datadir}/mime &> /dev/null || : -/sbin/ldconfig +%post -p /sbin/ldconfig -%postun -update-desktop-database &> /dev/null || : -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - /usr/bin/update-mime-database %{_datadir}/mime &> /dev/null || : -fi -/sbin/ldconfig - -%posttrans -/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%postun -p /sbin/ldconfig %files -f %{gettext_package}.lang %doc AUTHORS @@ -169,6 +155,9 @@ fi %doc htdocs %changelog +* Thu Jan 11 2018 Igor Gnatenko - 20170731-3 +- Remove obsolete scriptlets + * Wed Aug 02 2017 Fedora Release Engineering - 20170731-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 4244f47da691b1447b9e9a010138a16cd6120e58 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 09:57:16 +0000 Subject: [PATCH 15/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 032730c..1be4f3e 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 3%{?dist} +Release: 4%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -155,6 +155,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 20170731-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Thu Jan 11 2018 Igor Gnatenko - 20170731-3 - Remove obsolete scriptlets From 8e1adfb2937bd66b733cbbb9f455e999a07a2e40 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 11 Feb 2018 21:52:07 +0100 Subject: [PATCH 16/82] Rebuild (giflib) --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 1be4f3e..959c6dd 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 4%{?dist} +Release: 5%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -155,6 +155,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Sun Feb 11 2018 Sandro Mani - 20170731-5 +- Rebuild (giflib) + * Wed Feb 07 2018 Fedora Release Engineering - 20170731-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From 4a862497c3f51fd7b27ac48065f70100fdeaf91a Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 11 Feb 2018 22:55:42 +0100 Subject: [PATCH 17/82] BR libungif-devel -> giflib-devel --- fontforge.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 959c6dd..9f2787f 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -26,7 +26,7 @@ BuildRequires: git BuildRequires: libjpeg-devel BuildRequires: libtiff-devel BuildRequires: libpng-devel -BuildRequires: libungif-devel +BuildRequires: giflib-devel BuildRequires: libxml2-devel BuildRequires: freetype-devel BuildRequires: desktop-file-utils From 7286988ddcbbdfee47e4a9ba4700add3393da397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 19 Jun 2018 10:43:07 +0200 Subject: [PATCH 18/82] Rebuilt for Python 3.7 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 9f2787f..8bf4c79 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 5%{?dist} +Release: 6%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -155,6 +155,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Tue Jun 19 2018 Miro Hrončok - 20170731-6 +- Rebuilt for Python 3.7 + * Sun Feb 11 2018 Sandro Mani - 20170731-5 - Rebuild (giflib) From 4482743bcd128b8834c0bbe4783a0a31e49bf326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 28 Jun 2018 11:51:20 +0200 Subject: [PATCH 19/82] Rebuilt for Python 3.7.0 final (#1595421) --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 8bf4c79..b2aa13a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 6%{?dist} +Release: 7%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -155,6 +155,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Thu Jun 28 2018 Miro Hrončok - 20170731-7 +- Rebuilt for Python 3.7.0 final (#1595421) + * Tue Jun 19 2018 Miro Hrončok - 20170731-6 - Rebuilt for Python 3.7 From 2096b6dc3918a37cc17e3379c1a5f5872688b316 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Wed, 4 Jul 2018 13:27:24 -0700 Subject: [PATCH 20/82] Update bundled gnulib. Fixes bug #1596037 --- .gitignore | 1 + fontforge.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1ccdc96..b30a4ef 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20161005.tar.gz /fontforge-20161012.tar.gz /fontforge-20170731.tar.gz +/gnulib-b324052.tar.gz diff --git a/fontforge.spec b/fontforge.spec index b2aa13a..e5f3cc8 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,10 +1,10 @@ %global gettext_package FontForge -%global gnulib_githead 2bf7326 +%global gnulib_githead b324052 %global gittag0 20170731 Name: fontforge Version: %{gittag0} -Release: 7%{?dist} +Release: 8%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -155,6 +155,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Wed Jul 04 2018 Kevin Fenzi - -8 +- Update bundled gnulib. Fixes bug #1596037 + * Thu Jun 28 2018 Miro Hrončok - 20170731-7 - Rebuilt for Python 3.7.0 final (#1595421) diff --git a/sources b/sources index 150830b..e3c314f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (fontforge-20170731.tar.gz) = 756b80cf1b0416dbb649838f98e24ba696f0064d4d66720776e52c236fe9339c752cfac629b1c288fdce25fa6790be0e8d186f60291edf1736081fe76a2c5d7e -SHA512 (gnulib-2bf7326.tar.gz) = c0ceeb941f840ca6fefcab3fe19e73e748a8a3a9ad7a86a773e0103ce4a412e8b0135032da2bda962c65daeea5636f28fda4dd492ba48da1c5ee023c57581eeb +SHA512 (gnulib-b324052.tar.gz) = 5aeb563698a744f77c73deefcda2c3cd99f7b85c5475f30de9f0fcee7ef68b289092e40192a690a5b70a827921b1a2a05efe43f70538dc1840dba6ebef4f20ed From 32aedac9ceb3dab14468d384974570489b1bedf8 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 7 Jul 2018 13:31:11 -0700 Subject: [PATCH 21/82] Drop unneeded ldconfig calls --- fontforge.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/fontforge.spec b/fontforge.spec index e5f3cc8..34fc803 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -128,10 +128,6 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/css/*.css chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/*.js chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEditable/* -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - %files -f %{gettext_package}.lang %doc AUTHORS %license LICENSE From 2e81aab9574fad4d083d58389360044bde24ec81 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 00:44:11 +0000 Subject: [PATCH 22/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 34fc803..38692d3 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 8%{?dist} +Release: 9%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -151,6 +151,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 20170731-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Jul 04 2018 Kevin Fenzi - -8 - Update bundled gnulib. Fixes bug #1596037 From 91aa35266a847f672a51c1f7154d0cfff83a8ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 23 Jul 2018 13:54:00 +0200 Subject: [PATCH 23/82] Rebuilt for #1595421 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 38692d3..c3ccc72 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 9%{?dist} +Release: 10%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -151,6 +151,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Mon Jul 23 2018 Miro Hrončok - 20170731-10 +- Rebuilt for #1595421 + * Fri Jul 13 2018 Fedora Release Engineering - 20170731-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 56025b7dd7c95c57ef12a3f096aac790418b0b4f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 19:58:38 +0000 Subject: [PATCH 24/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index c3ccc72..4bf393d 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 10%{?dist} +Release: 11%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -151,6 +151,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 20170731-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Mon Jul 23 2018 Miro Hrončok - 20170731-10 - Rebuilt for #1595421 From 4e0eb6062d9645f928f81255f2c6f3c33a261ddf Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 17 Feb 2019 09:30:50 +0100 Subject: [PATCH 25/82] Rebuild for readline 8.0 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 4bf393d..79e3b99 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: %{gittag0} -Release: 11%{?dist} +Release: 12%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -151,6 +151,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Sun Feb 17 2019 Igor Gnatenko - 20170731-12 +- Rebuild for readline 8.0 + * Thu Jan 31 2019 Fedora Release Engineering - 20170731-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 3bd08274a074df84fa41675f4e58fa127e08f94b Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Mon, 25 Mar 2019 11:02:51 +0530 Subject: [PATCH 26/82] Update to 20190317 release (#1689629) --- .gitignore | 1 + Add-python3-support.patch | 519 ------------------ ...fontforge-20190317-use-system-uthash.patch | 13 +- fontforge.spec | 40 +- sources | 2 +- 5 files changed, 33 insertions(+), 542 deletions(-) delete mode 100644 Add-python3-support.patch rename fontforge-20140813-use-system-uthash.patch => fontforge-20190317-use-system-uthash.patch (67%) diff --git a/.gitignore b/.gitignore index b30a4ef..9d511a5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20161012.tar.gz /fontforge-20170731.tar.gz /gnulib-b324052.tar.gz +/fontforge-20190317.tar.gz diff --git a/Add-python3-support.patch b/Add-python3-support.patch deleted file mode 100644 index 32759fa..0000000 --- a/Add-python3-support.patch +++ /dev/null @@ -1,519 +0,0 @@ -From b2c5de7835a753cad1f35db8202c4733b5fc2990 Mon Sep 17 00:00:00 2001 -From: Parag A Nemade -Date: Mon, 3 Oct 2016 12:56:29 +0530 -Subject: [PATCH] Add python3 support - -Signed-off-by: Parag A Nemade ---- - pycontrib/FontCompare/fc/BitmapHandler.py | 20 +++++++-------- - pycontrib/FontCompare/fc/DocCompare.py | 2 +- - pycontrib/FontCompare/fc/FontCompare.py | 2 +- - pycontrib/FontCompare/fc/GlyphConsistency.py | 2 +- - pycontrib/FontCompare/fontcompare | 2 +- - pycontrib/FontCompare/unittests/unittests.py | 18 ++++++------- - pycontrib/collab/web-test-collab.py | 2 +- - pycontrib/even.py | 2 +- - pycontrib/gdraw/__init__.py | 4 +-- - pycontrib/gdraw/gdraw.py | 20 +++++++-------- - pycontrib/graphicore.py | 4 +-- - pycontrib/graphicore/ipython_view.py | 13 +++++----- - pycontrib/graphicore/shell.py | 4 +-- - pycontrib/svg2sfd.py | 38 ++++++++++++++-------------- - pycontrib/webcollab.py | 6 ++--- - 15 files changed, 70 insertions(+), 69 deletions(-) - -diff --git a/pycontrib/FontCompare/fc/BitmapHandler.py b/pycontrib/FontCompare/fc/BitmapHandler.py -index d4d00da..c159128 100644 ---- a/pycontrib/FontCompare/fc/BitmapHandler.py -+++ b/pycontrib/FontCompare/fc/BitmapHandler.py -@@ -35,7 +35,7 @@ def white_bg_square(img): - "return a white-background-color image having the img in exact center" - size = (max(img.size),)*2 - layer = Image.new('1', size, 1) -- layer.paste(img, tuple(map(lambda x:(x[0]-x[1])/2, zip(size, img.size)))) -+ layer.paste(img, tuple([(x[0]-x[1])/2 for x in zip(size, img.size)])) - return layer - - class BitmapCompare: -@@ -73,13 +73,13 @@ class CreateSpriteSheet: - #seperate each image with lots of whitespace - master_height = pixelsize - oldfont = font -- print "the master image will by %d by %d" % (master_width, master_height) -- print "creating image..." -+ print("the master image will by %d by %d" % (master_width, master_height)) -+ print("creating image...") - master = Image.new( - mode='1', - size=(master_width, master_height), - color=0) # fully transparent -- print "created." -+ print("created.") - if effects == "italic": - font.selection.all() - font = font.italicize(-13) -@@ -92,16 +92,16 @@ class CreateSpriteSheet: - font[i].changeWeight(50,"auto",0,0,"auto") - font[i].export("temp.bmp",pixelsize,1) - img = Image.open("temp.bmp") -- print "adding %s at %d..." % (str(i)+".bmp", location), -+ print("adding %s at %d..." % (str(i)+".bmp", location), end=' ') - square_one = white_bg_square(img) - square_one.resize((pixelsize, pixelsize)) - master.paste(square_one,(location,0)) -- print "added." -+ print("added.") - except: -- print "ooopsy" -+ print("ooopsy") - count+=1 -- print "done adding pics." -- print "saving mastersprite.bmp..." -+ print("done adding pics.") -+ print("saving mastersprite.bmp...") - master.save('data/mastersprite'+effects+'.bmp' ) -- print "saved!" -+ print("saved!") - font.close() -diff --git a/pycontrib/FontCompare/fc/DocCompare.py b/pycontrib/FontCompare/fc/DocCompare.py -index 3a54bf9..df431e2 100644 ---- a/pycontrib/FontCompare/fc/DocCompare.py -+++ b/pycontrib/FontCompare/fc/DocCompare.py -@@ -41,7 +41,7 @@ class DocCompare: - bashcommand = "hb-view --output-format=\"png\" --output-file=\"/var/tmp/test.png\" --font-size="+str(fontsize)+" --text-file=\"" - bashcommand+=docpath+"\" "+"\""+testpath+"\"" - os.system(str(bashcommand)) -- print bashcommand -+ print(bashcommand) - thefile = pkg_resources.resource_filename("fc",mockfont.highresdocfile) - shutil.copy(thefile,"/var/tmp/standard.png") - cm = BitmapCompare() -diff --git a/pycontrib/FontCompare/fc/FontCompare.py b/pycontrib/FontCompare/fc/FontCompare.py -index f21718c..c82b788 100644 ---- a/pycontrib/FontCompare/fc/FontCompare.py -+++ b/pycontrib/FontCompare/fc/FontCompare.py -@@ -111,7 +111,7 @@ class FontCompare(object): - scores = list() - comparator = BitmapCompare() - pixelsize = (resolution*ptsize)/72 -- print spritepath -+ print(spritepath) - for i in range (glyphRange[0],glyphRange[1]): - if i in Testfont: - Testfont[i].export("/var/tmp/tmp.bmp",pixelsize,1) -diff --git a/pycontrib/FontCompare/fc/GlyphConsistency.py b/pycontrib/FontCompare/fc/GlyphConsistency.py -index 38273c9..d5265fa 100644 ---- a/pycontrib/FontCompare/fc/GlyphConsistency.py -+++ b/pycontrib/FontCompare/fc/GlyphConsistency.py -@@ -102,7 +102,7 @@ class GlyphConsistency: - for i in range (glyphrange[0],glyphrange[1]): - if i in font: - score = self.glyph_round_compare(font[i],pixelsize) -- print score -+ print(score) - set_round_score+=score - total+=1 - font.close() -diff --git a/pycontrib/FontCompare/fontcompare b/pycontrib/FontCompare/fontcompare -index e7e68d8..fdf7336 100755 ---- a/pycontrib/FontCompare/fontcompare -+++ b/pycontrib/FontCompare/fontcompare -@@ -15,7 +15,7 @@ - along with this program. If not, see . - """ - --#! /usr/bin/python -+#! /usr/bin/python3 - from PyQt4.QtGui import QMessageBox - from PyQt4.QtGui import QMainWindow - from PyQt4.QtGui import QApplication -diff --git a/pycontrib/FontCompare/unittests/unittests.py b/pycontrib/FontCompare/unittests/unittests.py -index 18e1e95..d8a1190 100644 ---- a/pycontrib/FontCompare/unittests/unittests.py -+++ b/pycontrib/FontCompare/unittests/unittests.py -@@ -55,7 +55,7 @@ class Basictests(unittest.TestCase): - for tup in basic: - if tup[1]!=10: - bastest=0 -- self.failUnless(bastest) -+ self.assertTrue(bastest) - testfont = fontforge.open("unittests/lohit.ttf") - bold = cm.font_facecompare(testfont,mockfont,(0x900,0x97f),\ - 600,12,1,"bold") -@@ -66,28 +66,28 @@ class Basictests(unittest.TestCase): - normal = cm.font_facecompare(testfont,mockfont,(0x900,0x97f),\ - 600,12,1,"normal") - test = 1 -- print len(normal) -+ print(len(normal)) - for tup in bold: - if tup[1]==100 or tup[1]==0: - test1=1 - break -- self.failUnless(test) -+ self.assertTrue(test) - test = 0 - for tup in italic: - if tup[1]==100 or tup[1]==0: - test=1 - break -- self.failUnless(test is 1) -+ self.assertTrue(test is 1) - test = 0 - for tup in normal: - if tup[1]==100 or tup[1]==0: - test=1 - break -- self.failUnless(test is 1) -+ self.assertTrue(test is 1) - test = 0 - if len(normal) == len(bold) == len(italic): - test = 1 -- self.failUnless(test is 1) -+ self.assertTrue(test is 1) - - def testGlyphConsistency(self): - cm = GlyphConsistency() -@@ -99,11 +99,11 @@ class Basictests(unittest.TestCase): - test3 = cm.glyph_round_consistency(testfont,(0x900,0x97f),50) - - test = (0 <= test1[0][1] <= 10) -- self.failUnless(test) -+ self.assertTrue(test) - test2 = (0 <= test2 <= 10) -- self.failUnless(test2) -+ self.assertTrue(test2) - test3 = (0 <= test3 <= 10) -- self.failUnless(test3) -+ self.assertTrue(test3) - - """ - unittests for DocCompare not required. -diff --git a/pycontrib/collab/web-test-collab.py b/pycontrib/collab/web-test-collab.py -index 47b763f..b19f930 100755 ---- a/pycontrib/collab/web-test-collab.py -+++ b/pycontrib/collab/web-test-collab.py -@@ -68,7 +68,7 @@ def OnCollabUpdate(f): - "end": "null" # this is simply so we dont have to manage keeping the last item with no terminating , - }, - sort_keys=True, indent=4, separators=(',', ': ')) -- print js -+ print(js) - fi = open(fontJsonOnDisk, 'w') - fi.write(js) - -diff --git a/pycontrib/even.py b/pycontrib/even.py -index 96f9128..4f30fcb 100755 ---- a/pycontrib/even.py -+++ b/pycontrib/even.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - """ - running even from the fontforge menu -diff --git a/pycontrib/gdraw/__init__.py b/pycontrib/gdraw/__init__.py -index d47976c..dde7ea8 100644 ---- a/pycontrib/gdraw/__init__.py -+++ b/pycontrib/gdraw/__init__.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # vim:ts=8:sw=4:expandtab:encoding=utf-8 - ''' - Copyright 2009 -@@ -22,7 +22,7 @@ Copyright 2009 - __all__ = ['Timer', 'GtkRunner', 'gtkrunner'] - __version__ = '0.1' - --from gdraw import * -+from .gdraw import * - - def main(): - pass -diff --git a/pycontrib/gdraw/gdraw.py b/pycontrib/gdraw/gdraw.py -index f2d5e50..8b6e693 100755 ---- a/pycontrib/gdraw/gdraw.py -+++ b/pycontrib/gdraw/gdraw.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - '''ctypes wrapper to Attach the GDraw event handler to the gtk main loop. - - Copyright 2009 -@@ -67,7 +67,7 @@ def setup_syspath(modpath="modules"): - - __all__ = ['Timer', 'GtkRunner', 'gtkrunner'] - --from _gdraw import * -+from ._gdraw import * - from ctypes import * - import types - -@@ -111,7 +111,7 @@ class Timer: - - return - def dodo(*args): -- print 'aaa' -+ print('aaa') - return False - self.add(1000, dodo) - -@@ -122,7 +122,7 @@ class Timer: - - def _event_handler(self, gw, event): - evt = event.contents -- print "_event_handler()" -+ print("_event_handler()") - if evt.type == et_timer: - timer = evt.u.timer.timer - tkey = addressof(timer.contents) -@@ -147,7 +147,7 @@ class Timer: - ci.func = CallBackFunc(func) - ci.data = data - -- print "timer.add timeout", timeout -+ print("timer.add timeout", timeout) - frequency = 1 # Use return value of func() to decide repeat like gtk. - timer = GDrawRequestTimer(self.win, timeout, timeout, byref(ci)) - -@@ -190,7 +190,7 @@ class GtkRunner: - - def _do_main(self, *args): - '''The function called by the gdraw timeout handler.''' -- print "do_main" -+ print("do_main") - while gtk.events_pending(): - gtk.main_iteration(False) - return True -@@ -207,15 +207,15 @@ class GtkRunner: - self.gtk_timer = None - - def OnDestroyWindow(self, widget, fd ): -- print fd -+ print(fd) - fontforge.removeGtkWindowToMainEventLoopByFD( fd ) - self.stop() - return True - - def sniffwindow(self,w): - '''sniff key presses for a gtk window''' -- print "sniffwindow w", w -- print "sniff active font:", fontforge.activeFont() -+ print("sniffwindow w", w) -+ print("sniff active font:", fontforge.activeFont()) - w.connect("key-release-event", self._do_main) - fontforge.addGtkWindowToMainEventLoop(w.window.xid) - fd = fontforge.getGtkWindowMainEventLoopFD(w.window.xid) -@@ -223,7 +223,7 @@ class GtkRunner: - - def sniffwindowid(self,xid): - '''sniff key presses for a gtk window''' -- print "sniffwindowid xid", xid -+ print("sniffwindowid xid", xid) - #w.connect("key-release-event", self._do_main) - - def start(self, timeout=GTIMEOUT): -diff --git a/pycontrib/graphicore.py b/pycontrib/graphicore.py -index f95e488..229a2b7 100755 ---- a/pycontrib/graphicore.py -+++ b/pycontrib/graphicore.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - """ - running the fontforge scripts in the graphicore folder on fontforge startup -@@ -22,4 +22,4 @@ sys.path.append(os.path.dirname(sys.modules[__name__].__file__)) - sys.path.reverse(); - - #load the modules --import graphicore.shell -\ No newline at end of file -+import graphicore.shell -diff --git a/pycontrib/graphicore/ipython_view.py b/pycontrib/graphicore/ipython_view.py -index f39eedb..2b77395 100644 ---- a/pycontrib/graphicore/ipython_view.py -+++ b/pycontrib/graphicore/ipython_view.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - ''' - Provides IPython console widget. - -@@ -17,10 +17,11 @@ import re - import sys - import os - import pango --from StringIO import StringIO --import thread -+from io import StringIO -+import _thread - - import IPython -+from functools import reduce - - class IterableIPShell: - ''' -@@ -118,7 +119,7 @@ class IterableIPShell: - ''' - This function updates namespace with sys.modules - ''' -- for k,v in sys.modules.items(): -+ for k,v in list(sys.modules.items()): - if not '.' in k: - self.IP.user_ns.update({k:v}) - -@@ -271,11 +272,11 @@ class IterableIPShell: - @type header: string - ''' - stat = 0 -- if verbose or debug: print header+cmd -+ if verbose or debug: print(header+cmd) - # flush stdout so we don't mangle python's buffering - if not debug: - input, output = os.popen4(cmd) -- print output.read() -+ print(output.read()) - output.close() - input.close() - -diff --git a/pycontrib/graphicore/shell.py b/pycontrib/graphicore/shell.py -index 5d102f7..32fa584 100755 ---- a/pycontrib/graphicore/shell.py -+++ b/pycontrib/graphicore/shell.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - """ - FontForge Interactive Python Shell -@@ -32,7 +32,7 @@ if len(sys.argv) == 0: - # some versions of IPython need content in sys.argv - sys.argv.append('') - --from ipython_view import * -+from .ipython_view import * - import gdraw - - def runShell(data = None, glyphOrFont = None): -diff --git a/pycontrib/svg2sfd.py b/pycontrib/svg2sfd.py -index e1fc0ac..e23cb15 100644 ---- a/pycontrib/svg2sfd.py -+++ b/pycontrib/svg2sfd.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # Copyright 2013 Google Inc. All rights reserved. - # -@@ -49,7 +49,7 @@ def print_one_cmd(cmd, args): - result.append('%f' % (scale * args[i])) - result.append(cmd) - result.append('0') # TODO: should mark corner points -- print ' '.join(result) -+ print(' '.join(result)) - - def apply_rel_xy(xy, args): - x0, y0 = xy -@@ -75,7 +75,7 @@ def path_to_sfd(path): - for i in range(num_args_cmd(cmd)): - m = fre.match(path) - if m is None: -- print 'no float match:', path -+ print('no float match:', path) - args.append(float(m.group(1))) - path = path[m.end():] - #print cmd, args -@@ -128,13 +128,13 @@ def conv_svg(fn, char, glyphnum = None): - if glyphnum == None: - glyphnum = lastglyphnum + 1 - lastglyphnum = glyphnum -- print 'StartChar:', os.path.basename(fn)[:-4] -- print 'Encoding: %d %d %d' % (char, glyphnum, char) -- print 'Width: %d' % (21 * 40) -- print 'Flags: W' -- print 'LayerCount: 2' -- print 'Fore' -- print 'SplineSet' -+ print('StartChar:', os.path.basename(fn)[:-4]) -+ print('Encoding: %d %d %d' % (char, glyphnum, char)) -+ print('Width: %d' % (21 * 40)) -+ print('Flags: W') -+ print('LayerCount: 2') -+ print('Fore') -+ print('SplineSet') - doc = xml.dom.minidom.parse(fn) - # TODO: reverse paths if fill color is white-ish (this is more code, - # and in the meantime, we'll rely on correct path direction in FF) -@@ -147,16 +147,16 @@ def conv_svg(fn, char, glyphnum = None): - cy = float(circle.getAttribute('cy')) - r = float(circle.getAttribute('r')) - circle_to_sfd(cx, cy, r) -- print 'EndSplineSet' -- print 'EndChar' -+ print('EndSplineSet') -+ print('EndChar') - - def print_header(): - global header_printed -- print '''SplineFontDB: 3.0 -+ print('''SplineFontDB: 3.0 - FontName: %s - FullName: %s --FamilyName: %s''' % (font_name, font_name, font_name) -- print '''Weight: Medium -+FamilyName: %s''' % (font_name, font_name, font_name)) -+ print('''Weight: Medium - Copyright: Copyright (C) 2011 Google Inc. - Version: 001.000 - UnderlinePosition: -120 -@@ -180,12 +180,12 @@ HheadAOffset: 0 - HheadDescent: 200 - HheadDOffset: 0 - BeginChars: 57600 57600 --''' -+''') - header_printed = True - - def print_footer(): -- print '''EndChars --EndSplineFont''' -+ print('''EndChars -+EndSplineFont''') - - def parse_int(x): - if x.startswith('0x'): -@@ -197,7 +197,7 @@ def run_file(fn): - global char_num - global font_name - directory = '' -- for l in file(fn).xreadlines(): -+ for l in file(fn): - if l.startswith('#'): - continue - s = l.strip().split() -diff --git a/pycontrib/webcollab.py b/pycontrib/webcollab.py -index 9ee0f17..4be07ec 100755 ---- a/pycontrib/webcollab.py -+++ b/pycontrib/webcollab.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - """ - running web collab server hooks -@@ -44,8 +44,8 @@ def startWebServerInCollabMode(data = None, glyphOrFont = None): - global child - global childNodejs - ensureChildClosed() -- print("FONTFORGE:" + FONTFORGE) -- print("script path:" + collabpath + "web-test-collab.py") -+ print(("FONTFORGE:" + FONTFORGE)) -+ print(("script path:" + collabpath + "web-test-collab.py")) - child = subprocess.Popen( [ FONTFORGE, "-forceuihidden", "-script", collabpath + "web-test-collab.py" ] ) - # - # start the nodejs server --- -2.9.3 - diff --git a/fontforge-20140813-use-system-uthash.patch b/fontforge-20190317-use-system-uthash.patch similarity index 67% rename from fontforge-20140813-use-system-uthash.patch rename to fontforge-20190317-use-system-uthash.patch index e5a0b4b..41076c2 100644 --- a/fontforge-20140813-use-system-uthash.patch +++ b/fontforge-20190317-use-system-uthash.patch @@ -1,6 +1,7 @@ ---- ./Makefile.am.old 2014-08-12 10:07:32.000000000 +0530 -+++ ./Makefile.am 2014-09-08 16:23:56.046996941 +0530 -@@ -43,7 +43,6 @@ +diff -urN fontforge-20190317.old/Makefile.am fontforge-20190317/Makefile.am +--- fontforge-20190317.old/Makefile.am 2019-03-17 08:54:14.000000000 +0530 ++++ fontforge-20190317/Makefile.am 2019-03-22 10:54:57.634463197 +0530 +@@ -47,7 +47,6 @@ AM_CPPFLAGS = AM_LDFLAGS = @@ -8,15 +9,15 @@ EXTRA_DIST = CLEANFILES = MOSTLYCLEANFILES = -@@ -113,7 +112,6 @@ - Packaging/FontForge-doc.spec \ +@@ -118,7 +117,6 @@ Packaging/FontForge.spec \ Packaging/FontForge.static.spec \ + README \ - uthash/src \ $(NULL) #-------------------------------------------------------------------------- -@@ -129,11 +127,6 @@ +@@ -134,11 +132,6 @@ #-------------------------------------------------------------------------- diff --git a/fontforge.spec b/fontforge.spec index 79e3b99..e446ba1 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,10 +1,10 @@ %global gettext_package FontForge %global gnulib_githead b324052 -%global gittag0 20170731 +%global gittag0 20190317 Name: fontforge Version: %{gittag0} -Release: 12%{?dist} +Release: 1%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -13,9 +13,7 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ # https://github.com/fontforge/fontforge/issues/1725 Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{gnulib_githead};sf=tgz;name=gnulib-%{gnulib_githead}.tar.gz # https://github.com/fontforge/fontforge/pull/1723 -Patch0: fontforge-20140813-use-system-uthash.patch -# Fedora specific patch to have python3 support only -Patch1: Add-python3-support.patch +Patch0: fontforge-20190317-use-system-uthash.patch Requires: xdg-utils Requires: autotrace @@ -41,11 +39,14 @@ BuildRequires: python3-devel BuildRequires: gnulib-devel BuildRequires: libtool-ltdl-devel BuildRequires: readline-devel +BuildRequires: libappstream-glib # This is failing on aarch64 so drop it #BuildRequires: python-ipython BuildRequires: uthash-devel # F25 build is failing add following to fix BuildRequires: shared-mime-info +# F30 onward need now +BuildRequires: /usr/bin/pathfix.py Provides: bundled(gnulib) @@ -86,6 +87,8 @@ chmod 644 htdocs/nonBMP/index.html %{__sed} -i 's/\r//' htdocs/Big5.txt %{__sed} -i 's/\r//' htdocs/corpchar.txt +pathfix.py -pni "%{__python3} %{py3_shbang_opts}" pycontrib/gdraw/ + %build ./bootstrap --skip-git --gnulib-srcdir=gnulib-%{gnulib_githead} export CFLAGS="%{optflags} -fno-strict-aliasing" @@ -100,7 +103,14 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libg{draw,unicode}.{la,so} desktop-file-install \ --dir $RPM_BUILD_ROOT%{_datadir}/applications \ --add-category X-Fedora \ - desktop/fontforge.desktop + desktop/org.fontforge.FontForge.desktop + +# Let's remove the appdata file as it does not contain translation +# and tag. +rm -f %{buildroot}%{_datadir}/appdata/*.appdata.xml +rm -f %{buildroot}%{_metainfodir}/*.appdata.xml + +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml # The fontforge makefiles install htdocs as well, but we # prefer to have them under the standard RPM location, so @@ -114,12 +124,6 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' # Find translations %find_lang %{gettext_package} -mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata -install -m 644 -p desktop/fontforge.appdata.xml $RPM_BUILD_ROOT%{_datadir}/appdata - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/mime/packages -install -m 644 -p desktop/fontforge.xml $RPM_BUILD_ROOT%{_datadir}/mime/packages/ - #Makefile install rules are playing evil here. Let's correct the permission. #chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/python/graphicore/__init__.py chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/python/gdraw/_gdraw.py @@ -130,15 +134,16 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %files -f %{gettext_package}.lang %doc AUTHORS -%license LICENSE +%license LICENSE COPYING.gplv3 %{_bindir}/* %{_libdir}/lib*.so.* -%{_datadir}/applications/*fontforge.desktop +%{_datadir}/applications/*FontForge.desktop %{_datadir}/fontforge -%{_datadir}/icons/hicolor/*/apps/fontforge.* +%{_datadir}/icons/hicolor/*/apps/org.fontforge.FontForge* %{_mandir}/man1/*.1* +%{_datadir}/pixmaps/org.fontforge.FontForge* %{_datadir}/mime/packages/fontforge.xml -%{_datadir}/appdata/fontforge.appdata.xml +%{_metainfodir}/org.fontforge.FontForge.metainfo.xml %{python3_sitearch}/fontforge.so %{python3_sitearch}/psMat.so @@ -151,6 +156,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Mon Mar 25 2019 Parag Nemade - 20190317-1 +- Update to 20190317 release (#1689629) + * Sun Feb 17 2019 Igor Gnatenko - 20170731-12 - Rebuild for readline 8.0 diff --git a/sources b/sources index e3c314f..d315934 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (fontforge-20170731.tar.gz) = 756b80cf1b0416dbb649838f98e24ba696f0064d4d66720776e52c236fe9339c752cfac629b1c288fdce25fa6790be0e8d186f60291edf1736081fe76a2c5d7e +SHA512 (fontforge-20190317.tar.gz) = a32a5c2c54f614ba94c46bfdb049e42433224aa97713fb5033f8a05decca01bdc8a329ae9740f2e948080c1c1c47d24458a80d78c31ae0b9b50c18bf2484a10c SHA512 (gnulib-b324052.tar.gz) = 5aeb563698a744f77c73deefcda2c3cd99f7b85c5475f30de9f0fcee7ef68b289092e40192a690a5b70a827921b1a2a05efe43f70538dc1840dba6ebef4f20ed From 49ebe60582e065c78170b380fe9e43516e098113 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Sat, 13 Apr 2019 21:19:22 +0530 Subject: [PATCH 27/82] Update to 20190413 version (#1689629) --- .gitignore | 1 + fontforge.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9d511a5..749cac3 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ fontforge_full-20100501.tar.bz2 /fontforge-20170731.tar.gz /gnulib-b324052.tar.gz /fontforge-20190317.tar.gz +/fontforge-20190413.tar.gz diff --git a/fontforge.spec b/fontforge.spec index e446ba1..01bded8 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,9 +1,9 @@ %global gettext_package FontForge %global gnulib_githead b324052 -%global gittag0 20190317 +%global gittag0 20190413 Name: fontforge -Version: %{gittag0} +Version: 20190413 Release: 1%{?dist} Summary: Outline and bitmap font editor @@ -156,6 +156,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Sat Apr 13 2019 Parag Nemade - 20190413-1 +- Update to 20190413 version (#1689629) + * Mon Mar 25 2019 Parag Nemade - 20190317-1 - Update to 20190317 release (#1689629) diff --git a/sources b/sources index d315934..bba9750 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (fontforge-20190317.tar.gz) = a32a5c2c54f614ba94c46bfdb049e42433224aa97713fb5033f8a05decca01bdc8a329ae9740f2e948080c1c1c47d24458a80d78c31ae0b9b50c18bf2484a10c +SHA512 (fontforge-20190413.tar.gz) = 39a519fb7cce9529872f18c59433449b67663de320e6ded4d9e6e84714b0e28fdb620ef0cdefba6a9eb98ff9ea26c8cc291b7b7962c9eae2b5422fd9ca239e4e SHA512 (gnulib-b324052.tar.gz) = 5aeb563698a744f77c73deefcda2c3cd99f7b85c5475f30de9f0fcee7ef68b289092e40192a690a5b70a827921b1a2a05efe43f70538dc1840dba6ebef4f20ed From 986be4acb0b916a39e3a791734243169953cace8 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Tue, 14 May 2019 14:03:24 +0530 Subject: [PATCH 28/82] Added CI tests Signed-off-by: Parag Nemade --- tests/scripts/generate.pe | 7 +++++++ tests/scripts/get-font-metadata.py | 31 ++++++++++++++++++++++++++++++ tests/scripts/run_tests.sh | 4 ++++ tests/tests.yaml | 9 +++++++++ 4 files changed, 51 insertions(+) create mode 100755 tests/scripts/generate.pe create mode 100644 tests/scripts/get-font-metadata.py create mode 100644 tests/scripts/run_tests.sh create mode 100644 tests/tests.yaml diff --git a/tests/scripts/generate.pe b/tests/scripts/generate.pe new file mode 100755 index 0000000..d023cea --- /dev/null +++ b/tests/scripts/generate.pe @@ -0,0 +1,7 @@ +#!/usr/bin/fontforge +i=1 +Open($argv[i], 1) +#Use gen_flags=Defualt fmflags value as -1 +gen_flags = -1 +Generate("" + $fontname + ".ttf", "", gen_flags) + diff --git a/tests/scripts/get-font-metadata.py b/tests/scripts/get-font-metadata.py new file mode 100644 index 0000000..b28ad84 --- /dev/null +++ b/tests/scripts/get-font-metadata.py @@ -0,0 +1,31 @@ +#!/usr/bin/python3 + +import fontforge +import sys + +if len(sys.argv) > 1: + f = fontforge.open(sys.argv[1]) +else: + print("provide fontfile path as an argument") + sys.exit(1) + +if f.fullname: + print("Fontname is {0}".format(f.fullname)) +else: + print("fontname not set") +if f.weight: + print("Given font weight is {0}".format(f.weight)) +else: + print("Given font weight not set") +if f.version: + print("Given font version is {0}".format(f.version)) +else: + print("Given font version not set") +if f.copyright: + print("Given font Copyright text is => {0}".format(f.copyright)) +else: + print("Given font copyright information not set") + +ver = fontforge.UnicodeNamesListVersion() +print("Libuninameslist version is : %s" % ver) + diff --git a/tests/scripts/run_tests.sh b/tests/scripts/run_tests.sh new file mode 100644 index 0000000..83aebe3 --- /dev/null +++ b/tests/scripts/run_tests.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/fontforge -script generate.pe /usr/share/fontforge/python/test.sfd +/usr/bin/python3 get-font-metadata.py ./Untitled1.ttf diff --git a/tests/tests.yaml b/tests/tests.yaml new file mode 100644 index 0000000..86bdd13 --- /dev/null +++ b/tests/tests.yaml @@ -0,0 +1,9 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + tests: + - simple: + dir: scripts/ + run: run_tests.sh From 1a47dd7bd93024f238c2ee80906133ae505b5b1d Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Tue, 14 May 2019 17:27:22 +0530 Subject: [PATCH 29/82] oops something went wrong while rebasing PR, fixing filename --- tests/{tests.yaml => tests.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/{tests.yaml => tests.yml} (100%) diff --git a/tests/tests.yaml b/tests/tests.yml similarity index 100% rename from tests/tests.yaml rename to tests/tests.yml From c32eb35d45387fc362aa9dac5516d178c136ddd4 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Tue, 14 May 2019 18:45:36 +0530 Subject: [PATCH 30/82] Fix tests.yml --- tests/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.yml b/tests/tests.yml index 86bdd13..aaf3946 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -6,4 +6,4 @@ tests: - simple: dir: scripts/ - run: run_tests.sh + run: ./run_tests.sh From 2777b437f116389cf26a19c8bb377422c5ca174c Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Wed, 24 Jul 2019 08:15:56 +0530 Subject: [PATCH 31/82] make the code compatible with python-3.8 (rh#1728058) --- ...for-python-3.8-the-reserved-tp_print.patch | 244 ++++++++++++++++++ ...forge-20190413-python-3.8-pkg-config.patch | 14 + fontforge.spec | 9 +- 3 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch create mode 100644 fontforge-20190413-python-3.8-pkg-config.patch diff --git a/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch b/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch new file mode 100644 index 0000000..2035087 --- /dev/null +++ b/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch @@ -0,0 +1,244 @@ +From 94a19c782cec508cbfb9ed9ff2e1cbbfd433ba10 Mon Sep 17 00:00:00 2001 +From: Parag Nemade +Date: Sat, 20 Jul 2019 20:34:02 +0530 +Subject: [PATCH] Fix compilation for python 3.8, the reserved "tp_print" slot + was changed from a function pointer to a number "Py_ssize_t + tp_vectorcall_offset". + +Signed-off-by: Parag Nemade +--- + fontforge/python.c | 50 +++++++++++++++++++++++----------------------- + 1 file changed, 25 insertions(+), 25 deletions(-) + +diff --git a/fontforge/python.c b/fontforge/python.c +index 1e905ffac..ff23d5082 100644 +--- a/fontforge/python.c ++++ b/fontforge/python.c +@@ -1966,7 +1966,7 @@ static PyTypeObject PyFF_PointType = { + sizeof(PyFF_Point), /* tp_basicsize */ + 0, /* tp_itemsize */ + NULL, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + PYCMPF((cmpfunc) PyFFPoint_compare), /* tp_reserved / tp_compare */ +@@ -2060,7 +2060,7 @@ static PyTypeObject PyFF_ContourIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)contouriter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -3624,7 +3624,7 @@ static PyTypeObject PyFF_ContourType = { + sizeof(PyFF_Contour), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)PyFFContour_dealloc, /*tp_dealloc*/ +- NULL, /*tp_print*/ ++ 0, /*tp_vectorcall_offset*/ + NULL, /*tp_getattr*/ + NULL, /*tp_setattr*/ + PYCMPF((cmpfunc)PyFFContour_compare), /*tp_reserved/tp_compare*/ +@@ -3719,7 +3719,7 @@ static PyTypeObject PyFF_LayerIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)layeriter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -4843,7 +4843,7 @@ static PyTypeObject PyFF_LayerType = { + sizeof(PyFF_Layer), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PyFFLayer_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + PYCMPF((cmpfunc)PyFFLayer_compare),/* tp_reserved/tp_compare */ +@@ -5620,7 +5620,7 @@ static PyTypeObject PyFF_GlyphPenType = { + sizeof(PyFF_GlyphPen), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_GlyphPen_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -5849,7 +5849,7 @@ static PyTypeObject PyFF_LayerArrayIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)layersiter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -6000,7 +6000,7 @@ static PyTypeObject PyFF_LayerArrayType = { + sizeof(PyFF_LayerArray), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_LayerArray_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -6125,7 +6125,7 @@ static PyTypeObject PyFF_RefArrayType = { + sizeof(PyFF_RefArray), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_RefArray_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -6266,7 +6266,7 @@ static PyTypeObject PyFF_MathKernType = { + sizeof(PyFF_MathKern), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PyFFMathKern_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -9340,7 +9340,7 @@ static PyTypeObject PyFF_GlyphType = { + sizeof(PyFF_Glyph), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_Glyph_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + PYCMPF((cmpfunc)PyFFGlyph_compare),/* tp_reserved/tp_compare */ +@@ -9433,7 +9433,7 @@ static PyTypeObject PyFF_CvtIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)cvtiter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -9763,7 +9763,7 @@ static PyTypeObject PyFF_CvtType = { + sizeof(PyFF_Cvt), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)PyFFCvt_dealloc, /*tp_dealloc*/ +- NULL, /*tp_print*/ ++ 0, /*tp_vectorcall_offset*/ + NULL, /*tp_getattr*/ + NULL, /*tp_setattr*/ + NULL, /*tp_compare*/ +@@ -10092,7 +10092,7 @@ static PyTypeObject PyFF_SelectionType = { + sizeof(PyFF_Selection), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)PyFFSelection_dealloc, /*tp_dealloc*/ +- NULL, /*tp_print*/ ++ 0, /*tp_vectorcall_offset*/ + NULL, /*tp_getattr*/ + NULL, /*tp_setattr*/ + NULL, /*tp_compare*/ +@@ -10185,7 +10185,7 @@ static PyTypeObject PyFF_LayerInfoArrayIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)layerinfoiter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -10326,7 +10326,7 @@ static PyTypeObject PyFF_LayerInfoType = { + sizeof(PyFF_LayerInfo), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_LayerInfo_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -10513,7 +10513,7 @@ static PyTypeObject PyFF_LayerInfoArrayType = { + sizeof(PyFF_LayerInfoArray), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor) PyFF_LayerInfoArray_dealloc, /*tp_dealloc*/ +- NULL, /*tp_print*/ ++ 0, /*tp_vectorcall_offset*/ + NULL, /*tp_getattr*/ + NULL, /*tp_setattr*/ + NULL, /*tp_compare*/ +@@ -10638,7 +10638,7 @@ static PyTypeObject PyFF_MathType = { + sizeof(PyFF_Math), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PyFFMath_dealloc, /*tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -10747,7 +10747,7 @@ static PyTypeObject PyFF_PrivateIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)privateiter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -10957,7 +10957,7 @@ static PyTypeObject PyFF_PrivateType = { + sizeof(PyFF_Private), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_Private_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -11139,7 +11139,7 @@ static PyTypeObject PyFF_FontIterType = { + 0, /* tp_itemsize */ + /* methods */ + (destructor)fontiter_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -17914,7 +17914,7 @@ static PyTypeObject PyFF_FontType = { + sizeof(PyFF_Font), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_Font_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -18030,7 +18030,7 @@ static PyTypeObject PyFF_AWGlyphIndexType = { + sizeof(PyFF_AWGlyphI), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_AWGlyphIndex_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -18168,7 +18168,7 @@ static PyTypeObject PyFF_AWGlyphType = { + sizeof(PyFF_AWGlyph), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_AWGlyph_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +@@ -18291,7 +18291,7 @@ static PyTypeObject PyFF_AWContextType = { + sizeof(PyFF_AWContext), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor) PyFF_AWContext_dealloc, /* tp_dealloc */ +- NULL, /* tp_print */ ++ 0, /* tp_vectorcall_offset */ + NULL, /* tp_getattr */ + NULL, /* tp_setattr */ + NULL, /* tp_compare */ +-- +2.21.0 + diff --git a/fontforge-20190413-python-3.8-pkg-config.patch b/fontforge-20190413-python-3.8-pkg-config.patch new file mode 100644 index 0000000..485f796 --- /dev/null +++ b/fontforge-20190413-python-3.8-pkg-config.patch @@ -0,0 +1,14 @@ +diff -urN fontforge-20190413.old/m4/fontforge_arg_enable.m4 fontforge-20190413/m4/fontforge_arg_enable.m4 +--- fontforge-20190413.old/m4/fontforge_arg_enable.m4 2019-04-13 13:08:39.000000000 +0530 ++++ fontforge-20190413/m4/fontforge_arg_enable.m4 2019-07-21 16:31:27.939734401 +0530 +@@ -116,8 +116,8 @@ + if test x"${i_do_have_python_scripting}" != xyes; then + i_want_python_ver= + else +- PKG_CHECK_MODULES([PYTHON],[python-"${PYTHON_VERSION}"], dnl [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"],,[i_do_have_python_scripting=maybe])], +- [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"],,[i_do_have_python_scripting=no])], ++ PKG_CHECK_MODULES([PYTHON],[python-"${PYTHON_VERSION}"-embed], dnl [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"-embed],,[i_do_have_python_scripting=maybe])], ++ [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"-embed],,[i_do_have_python_scripting=no])], + [i_do_have_python_scripting=no]) + dnl dnl TODO: have python3 AND python2, but only have python2 dev, but no python3 dev + dnl if test x"${i_do_have_python_scripting}" = xmaybe; then diff --git a/fontforge.spec b/fontforge.spec index 01bded8..6f6e90c 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: 20190413 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -14,6 +14,10 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{gnulib_githead};sf=tgz;name=gnulib-%{gnulib_githead}.tar.gz # https://github.com/fontforge/fontforge/pull/1723 Patch0: fontforge-20190317-use-system-uthash.patch +%if 0%{?python3_version_nodots} >= 38 +Patch1: fontforge-20190413-python-3.8-pkg-config.patch +%endif +Patch2: fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch Requires: xdg-utils Requires: autotrace @@ -156,6 +160,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Tue Jul 23 2019 Parag Nemade - 20190413-2 +- make the code compatible with python-3.8 (rh#1728058) + * Sat Apr 13 2019 Parag Nemade - 20190413-1 - Update to 20190413 version (#1689629) From 3beb9187e386753f5e9034cf367f92ce9a92beb9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 25 Jul 2019 00:51:25 +0000 Subject: [PATCH 32/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 6f6e90c..cc6e694 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: 20190413 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -160,6 +160,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Thu Jul 25 2019 Fedora Release Engineering - 20190413-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Tue Jul 23 2019 Parag Nemade - 20190413-2 - make the code compatible with python-3.8 (rh#1728058) From da0aa264e8693ed4817e450b2a389f254b91ebd8 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Fri, 2 Aug 2019 18:28:33 +0530 Subject: [PATCH 33/82] Fix the conditional for rh#1728058 --- fontforge.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/fontforge.spec b/fontforge.spec index cc6e694..f502caa 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -4,7 +4,7 @@ Name: fontforge Version: 20190413 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -14,9 +14,7 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{gnulib_githead};sf=tgz;name=gnulib-%{gnulib_githead}.tar.gz # https://github.com/fontforge/fontforge/pull/1723 Patch0: fontforge-20190317-use-system-uthash.patch -%if 0%{?python3_version_nodots} >= 38 Patch1: fontforge-20190413-python-3.8-pkg-config.patch -%endif Patch2: fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch Requires: xdg-utils @@ -79,7 +77,13 @@ This package contains documentation files for %{name}. %prep -%autosetup -p1 +%setup -q +%patch0 -p1 +%if 0%{?python3_version_nodots} >= 38 +%patch1 -p1 +%endif +%patch2 -p1 + tar xzf %{SOURCE1} sed -i -e '/^#!\//, 1d' pycontrib/webcollab.py @@ -160,6 +164,9 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Fri Aug 02 2019 Parag Nemade - 20190413-4 +- Fix the conditional for rh#1728058 + * Thu Jul 25 2019 Fedora Release Engineering - 20190413-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 8603e03a6ec7561b1315638afdef9df0eb8d3510 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Thu, 15 Aug 2019 21:34:59 +0530 Subject: [PATCH 34/82] Update to 20190801 version (#1739819) Upstream moved to use Glib's GHashTable over uthash Upstream dropped requiring bundling copy of gnulib Signed-off-by: Parag Nemade --- ...for-python-3.8-the-reserved-tp_print.patch | 244 ------------------ ...forge-20190801-fix-metainfo.xml-file.patch | 41 +++ fontforge.spec | 44 +--- sources | 3 +- 4 files changed, 56 insertions(+), 276 deletions(-) delete mode 100644 fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch create mode 100644 fontforge-20190801-fix-metainfo.xml-file.patch diff --git a/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch b/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch deleted file mode 100644 index 2035087..0000000 --- a/fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch +++ /dev/null @@ -1,244 +0,0 @@ -From 94a19c782cec508cbfb9ed9ff2e1cbbfd433ba10 Mon Sep 17 00:00:00 2001 -From: Parag Nemade -Date: Sat, 20 Jul 2019 20:34:02 +0530 -Subject: [PATCH] Fix compilation for python 3.8, the reserved "tp_print" slot - was changed from a function pointer to a number "Py_ssize_t - tp_vectorcall_offset". - -Signed-off-by: Parag Nemade ---- - fontforge/python.c | 50 +++++++++++++++++++++++----------------------- - 1 file changed, 25 insertions(+), 25 deletions(-) - -diff --git a/fontforge/python.c b/fontforge/python.c -index 1e905ffac..ff23d5082 100644 ---- a/fontforge/python.c -+++ b/fontforge/python.c -@@ -1966,7 +1966,7 @@ static PyTypeObject PyFF_PointType = { - sizeof(PyFF_Point), /* tp_basicsize */ - 0, /* tp_itemsize */ - NULL, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - PYCMPF((cmpfunc) PyFFPoint_compare), /* tp_reserved / tp_compare */ -@@ -2060,7 +2060,7 @@ static PyTypeObject PyFF_ContourIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)contouriter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -3624,7 +3624,7 @@ static PyTypeObject PyFF_ContourType = { - sizeof(PyFF_Contour), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)PyFFContour_dealloc, /*tp_dealloc*/ -- NULL, /*tp_print*/ -+ 0, /*tp_vectorcall_offset*/ - NULL, /*tp_getattr*/ - NULL, /*tp_setattr*/ - PYCMPF((cmpfunc)PyFFContour_compare), /*tp_reserved/tp_compare*/ -@@ -3719,7 +3719,7 @@ static PyTypeObject PyFF_LayerIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)layeriter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -4843,7 +4843,7 @@ static PyTypeObject PyFF_LayerType = { - sizeof(PyFF_Layer), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PyFFLayer_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - PYCMPF((cmpfunc)PyFFLayer_compare),/* tp_reserved/tp_compare */ -@@ -5620,7 +5620,7 @@ static PyTypeObject PyFF_GlyphPenType = { - sizeof(PyFF_GlyphPen), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_GlyphPen_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -5849,7 +5849,7 @@ static PyTypeObject PyFF_LayerArrayIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)layersiter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -6000,7 +6000,7 @@ static PyTypeObject PyFF_LayerArrayType = { - sizeof(PyFF_LayerArray), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_LayerArray_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -6125,7 +6125,7 @@ static PyTypeObject PyFF_RefArrayType = { - sizeof(PyFF_RefArray), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_RefArray_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -6266,7 +6266,7 @@ static PyTypeObject PyFF_MathKernType = { - sizeof(PyFF_MathKern), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PyFFMathKern_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -9340,7 +9340,7 @@ static PyTypeObject PyFF_GlyphType = { - sizeof(PyFF_Glyph), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_Glyph_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - PYCMPF((cmpfunc)PyFFGlyph_compare),/* tp_reserved/tp_compare */ -@@ -9433,7 +9433,7 @@ static PyTypeObject PyFF_CvtIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)cvtiter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -9763,7 +9763,7 @@ static PyTypeObject PyFF_CvtType = { - sizeof(PyFF_Cvt), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)PyFFCvt_dealloc, /*tp_dealloc*/ -- NULL, /*tp_print*/ -+ 0, /*tp_vectorcall_offset*/ - NULL, /*tp_getattr*/ - NULL, /*tp_setattr*/ - NULL, /*tp_compare*/ -@@ -10092,7 +10092,7 @@ static PyTypeObject PyFF_SelectionType = { - sizeof(PyFF_Selection), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)PyFFSelection_dealloc, /*tp_dealloc*/ -- NULL, /*tp_print*/ -+ 0, /*tp_vectorcall_offset*/ - NULL, /*tp_getattr*/ - NULL, /*tp_setattr*/ - NULL, /*tp_compare*/ -@@ -10185,7 +10185,7 @@ static PyTypeObject PyFF_LayerInfoArrayIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)layerinfoiter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -10326,7 +10326,7 @@ static PyTypeObject PyFF_LayerInfoType = { - sizeof(PyFF_LayerInfo), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_LayerInfo_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -10513,7 +10513,7 @@ static PyTypeObject PyFF_LayerInfoArrayType = { - sizeof(PyFF_LayerInfoArray), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor) PyFF_LayerInfoArray_dealloc, /*tp_dealloc*/ -- NULL, /*tp_print*/ -+ 0, /*tp_vectorcall_offset*/ - NULL, /*tp_getattr*/ - NULL, /*tp_setattr*/ - NULL, /*tp_compare*/ -@@ -10638,7 +10638,7 @@ static PyTypeObject PyFF_MathType = { - sizeof(PyFF_Math), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PyFFMath_dealloc, /*tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -10747,7 +10747,7 @@ static PyTypeObject PyFF_PrivateIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)privateiter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -10957,7 +10957,7 @@ static PyTypeObject PyFF_PrivateType = { - sizeof(PyFF_Private), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_Private_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -11139,7 +11139,7 @@ static PyTypeObject PyFF_FontIterType = { - 0, /* tp_itemsize */ - /* methods */ - (destructor)fontiter_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -17914,7 +17914,7 @@ static PyTypeObject PyFF_FontType = { - sizeof(PyFF_Font), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_Font_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -18030,7 +18030,7 @@ static PyTypeObject PyFF_AWGlyphIndexType = { - sizeof(PyFF_AWGlyphI), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_AWGlyphIndex_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -18168,7 +18168,7 @@ static PyTypeObject PyFF_AWGlyphType = { - sizeof(PyFF_AWGlyph), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_AWGlyph_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ -@@ -18291,7 +18291,7 @@ static PyTypeObject PyFF_AWContextType = { - sizeof(PyFF_AWContext), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) PyFF_AWContext_dealloc, /* tp_dealloc */ -- NULL, /* tp_print */ -+ 0, /* tp_vectorcall_offset */ - NULL, /* tp_getattr */ - NULL, /* tp_setattr */ - NULL, /* tp_compare */ --- -2.21.0 - diff --git a/fontforge-20190801-fix-metainfo.xml-file.patch b/fontforge-20190801-fix-metainfo.xml-file.patch new file mode 100644 index 0000000..471ee7d --- /dev/null +++ b/fontforge-20190801-fix-metainfo.xml-file.patch @@ -0,0 +1,41 @@ +From b26f33f178d1049070537166e3fac08b690de4d1 Mon Sep 17 00:00:00 2001 +From: muelli +Date: Tue, 6 Aug 2019 12:58:30 +0200 +Subject: [PATCH] appdata: remove spaces to comply with xml syntax + +The attribute had an illegal whitespace. appstream-glib validate complained: + +org.fontforge.FontForge.metainfo.xml: failed to parse org.fontforge.FontForge.metainfo.xml: Error on line 56 char 15: Odd character ?l?, expected a ?=? after attribute name ?xml:? of element ?p? + + +Now it does not complain about the syntax anymore, but instead about the description: +org.fontforge.FontForge.metainfo.xml: FAILED: +? style-invalid : Not enough

tags for a good description [0/1] +Validation of files failed +--- + desktop/org.fontforge.FontForge.metainfo.xml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/desktop/org.fontforge.FontForge.metainfo.xml b/desktop/org.fontforge.FontForge.metainfo.xml +index 1ff9ea03e..3583e6da2 100644 +--- a/desktop/org.fontforge.FontForge.metainfo.xml ++++ b/desktop/org.fontforge.FontForge.metainfo.xml +@@ -49,15 +49,15 @@ +

+ Apprendre à utiliser FontForge est facile, et il y a plusieurs tutoriels disponibles en commençant + par les bases jusqu'à des fonctionnalités plus avancées telles que la fabrication et l'utilisation de scripts.

+-

++

+ FontForge je program za uređivanje konturnih i bitmap fontova. Omogućuje stvaranje, + uređivanje ili konvertiranje raznih vrsta fontova, uključujući PostScript, TrueType, + OpenType, CID, multiple-master, CFF, SVG i BitMap (bdf, FON, NFNT) fontove.

+-

++

+ FontForge je slobodan softver otvorenog kȏda te je izrađen za razne operacijske + sustave. FontForge se može koristiti u grafičkom načinu rada ili putem naredbenog + retka.

+-

++

+ FontForge je lako naučiti. Na raspolaganju stoje različiti priručnici – od osnovnih + vježbi, sve do naprednijih funkcija, kao što su izrada i upotreba skriptova.

+

diff --git a/fontforge.spec b/fontforge.spec index f502caa..dffe6f4 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,21 +1,17 @@ %global gettext_package FontForge -%global gnulib_githead b324052 -%global gittag0 20190413 +%global gittag0 20190801 Name: fontforge -Version: 20190413 -Release: 4%{?dist} +Version: 20190801 +Release: 1%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ URL: http://fontforge.github.io/ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/%{name}-%{version}.tar.gz -# https://github.com/fontforge/fontforge/issues/1725 -Source1: http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=%{gnulib_githead};sf=tgz;name=gnulib-%{gnulib_githead}.tar.gz -# https://github.com/fontforge/fontforge/pull/1723 -Patch0: fontforge-20190317-use-system-uthash.patch -Patch1: fontforge-20190413-python-3.8-pkg-config.patch -Patch2: fontforge-20190413-fix-compilation-for-python-3.8-the-reserved-tp_print.patch +Patch0: fontforge-20190413-python-3.8-pkg-config.patch +# Below are upstream patches +Patch1: fontforge-20190801-fix-metainfo.xml-file.patch Requires: xdg-utils Requires: autotrace @@ -44,14 +40,11 @@ BuildRequires: readline-devel BuildRequires: libappstream-glib # This is failing on aarch64 so drop it #BuildRequires: python-ipython -BuildRequires: uthash-devel # F25 build is failing add following to fix BuildRequires: shared-mime-info # F30 onward need now BuildRequires: /usr/bin/pathfix.py -Provides: bundled(gnulib) - %description FontForge (former PfaEdit) is a font editor for outline and bitmap fonts. It supports a range of font formats, including PostScript @@ -78,15 +71,10 @@ This package contains documentation files for %{name}. %prep %setup -q -%patch0 -p1 %if 0%{?python3_version_nodots} >= 38 -%patch1 -p1 +%patch0 -p1 %endif -%patch2 -p1 - -tar xzf %{SOURCE1} - -sed -i -e '/^#!\//, 1d' pycontrib/webcollab.py +%patch1 -p1 mkdir htdocs cp -pr doc/html/* htdocs @@ -95,10 +83,9 @@ chmod 644 htdocs/nonBMP/index.html %{__sed} -i 's/\r//' htdocs/Big5.txt %{__sed} -i 's/\r//' htdocs/corpchar.txt -pathfix.py -pni "%{__python3} %{py3_shbang_opts}" pycontrib/gdraw/ %build -./bootstrap --skip-git --gnulib-srcdir=gnulib-%{gnulib_githead} +./bootstrap --skip-git export CFLAGS="%{optflags} -fno-strict-aliasing" %configure PYTHON=python3 @@ -132,14 +119,6 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' # Find translations %find_lang %{gettext_package} -#Makefile install rules are playing evil here. Let's correct the permission. -#chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/python/graphicore/__init__.py -chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/python/gdraw/_gdraw.py - -chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/css/*.css -chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/*.js -chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEditable/* - %files -f %{gettext_package}.lang %doc AUTHORS %license LICENSE COPYING.gplv3 @@ -164,6 +143,11 @@ chmod 644 $RPM_BUILD_ROOT%{_datadir}/fontforge/nodejs/collabwebview/js/contentEd %doc htdocs %changelog +* Thu Aug 15 2019 Parag Nemade - 20190801-1 +- Update to 20190801 version (#1739819) +- Upstream moved to use Glib's GHashTable over uthash +- Upstream dropped requiring bundling copy of gnulib + * Fri Aug 02 2019 Parag Nemade - 20190413-4 - Fix the conditional for rh#1728058 diff --git a/sources b/sources index bba9750..60439ae 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (fontforge-20190413.tar.gz) = 39a519fb7cce9529872f18c59433449b67663de320e6ded4d9e6e84714b0e28fdb620ef0cdefba6a9eb98ff9ea26c8cc291b7b7962c9eae2b5422fd9ca239e4e -SHA512 (gnulib-b324052.tar.gz) = 5aeb563698a744f77c73deefcda2c3cd99f7b85c5475f30de9f0fcee7ef68b289092e40192a690a5b70a827921b1a2a05efe43f70538dc1840dba6ebef4f20ed +SHA512 (fontforge-20190801.tar.gz) = d60fc69f9c692dd85e89e9c336dc5f141254f4472b02586145dd00b8f3d0b7608f229e3f642db2a03a42c4b543a0557286d0b617ddc3a1080e2c1791d4ea83d5 From cc4a787ff8c88da9dbbca7e9db459fb8b5d8b478 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Thu, 15 Aug 2019 21:45:25 +0530 Subject: [PATCH 35/82] Remove unnecessary patches Signed-off-by: Parag Nemade --- fontforge-20190317-use-system-uthash.patch | 31 - fontforge-aarch64.patch | 1629 -------------------- 2 files changed, 1660 deletions(-) delete mode 100644 fontforge-20190317-use-system-uthash.patch delete mode 100644 fontforge-aarch64.patch diff --git a/fontforge-20190317-use-system-uthash.patch b/fontforge-20190317-use-system-uthash.patch deleted file mode 100644 index 41076c2..0000000 --- a/fontforge-20190317-use-system-uthash.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -urN fontforge-20190317.old/Makefile.am fontforge-20190317/Makefile.am ---- fontforge-20190317.old/Makefile.am 2019-03-17 08:54:14.000000000 +0530 -+++ fontforge-20190317/Makefile.am 2019-03-22 10:54:57.634463197 +0530 -@@ -47,7 +47,6 @@ - AM_CPPFLAGS = - AM_LDFLAGS = - --BUILT_SOURCES = uthash/src - EXTRA_DIST = - CLEANFILES = - MOSTLYCLEANFILES = -@@ -118,7 +117,6 @@ - Packaging/FontForge.spec \ - Packaging/FontForge.static.spec \ - README \ -- uthash/src \ - $(NULL) - - #-------------------------------------------------------------------------- -@@ -134,11 +132,6 @@ - - - #-------------------------------------------------------------------------- --uthash/src: -- if [ ! -e uthash/src ]; then \ -- if [ -e uthash ] ; then rm -r uthash ; fi ; \ -- git clone https://github.com/troydhanson/uthash ; \ -- fi ; - - # We import a selection of targets from Frank's standard packaging Makefile. - diff --git a/fontforge-aarch64.patch b/fontforge-aarch64.patch deleted file mode 100644 index 1521528..0000000 --- a/fontforge-aarch64.patch +++ /dev/null @@ -1,1629 +0,0 @@ -diff -urN fontforge-20120731-b/config.guess fontforge-20120731-b-aarch64/config.guess ---- fontforge-20120731-b/config.guess 2012-08-02 10:09:08.000000000 -0500 -+++ fontforge-20120731-b-aarch64/config.guess 2013-03-03 04:42:30.844067956 -0600 -@@ -1,10 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, --# Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012 Free Software Foundation, Inc. - --timestamp='2007-07-22' -+timestamp='2012-09-25' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,9 +17,7 @@ - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a -@@ -27,16 +25,16 @@ - # the same distribution terms that you use for the rest of that program. - - --# Originally written by Per Bothner . --# Please send patches to . Submit a context --# diff and a properly formatted ChangeLog entry. -+# Originally written by Per Bothner. Please send patches (context -+# diff format) to and include a ChangeLog -+# entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # --# The plan is that this can be called by configure scripts if you --# don't specify an explicit build system type. -+# You can get the latest version of this script from: -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -56,7 +54,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO -@@ -144,7 +143,7 @@ - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or -- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward -@@ -170,7 +169,7 @@ - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -- | grep __ELF__ >/dev/null -+ | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? -@@ -180,7 +179,7 @@ - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release -@@ -201,6 +200,10 @@ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -@@ -223,7 +226,7 @@ - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on -@@ -269,7 +272,10 @@ - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit ;; -+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. -+ exitcode=$? -+ trap '' 0 -+ exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead -@@ -295,12 +301,12 @@ - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) -- echo powerpc-ibm-os400 -+ echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; -- arm:riscos:*:*|arm:RISCOS:*:*) -+ arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -@@ -324,14 +330,33 @@ - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; -+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) -+ echo i386-pc-auroraux${UNAME_RELEASE} -+ exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize -@@ -375,23 +400,23 @@ - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -- echo m68k-milan-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-milan-mint${UNAME_RELEASE} -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -- echo m68k-hades-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-hades-mint${UNAME_RELEASE} -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -- echo m68k-unknown-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-unknown-mint${UNAME_RELEASE} -+ exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; -@@ -461,8 +486,8 @@ - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) -- # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ # DG/UX returns AViiON for all architectures -+ UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -@@ -475,7 +500,7 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; -@@ -532,7 +557,7 @@ - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[45]) -+ *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -575,52 +600,52 @@ - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -- case "${sc_cpu_version}" in -- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -- 532) # CPU_PA_RISC2_0 -- case "${sc_kernel_bits}" in -- 32) HP_ARCH="hppa2.0n" ;; -- 64) HP_ARCH="hppa2.0w" ;; -+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ case "${sc_cpu_version}" in -+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -+ 532) # CPU_PA_RISC2_0 -+ case "${sc_kernel_bits}" in -+ 32) HP_ARCH="hppa2.0n" ;; -+ 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 -- esac ;; -- esac -+ esac ;; -+ esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -+ sed 's/^ //' << EOF >$dummy.c - -- #define _HPUX_SOURCE -- #include -- #include -- -- int main () -- { -- #if defined(_SC_KERNEL_BITS) -- long bits = sysconf(_SC_KERNEL_BITS); -- #endif -- long cpu = sysconf (_SC_CPU_VERSION); -- -- switch (cpu) -- { -- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -- case CPU_PA_RISC2_0: -- #if defined(_SC_KERNEL_BITS) -- switch (bits) -- { -- case 64: puts ("hppa2.0w"); break; -- case 32: puts ("hppa2.0n"); break; -- default: puts ("hppa2.0"); break; -- } break; -- #else /* !defined(_SC_KERNEL_BITS) */ -- puts ("hppa2.0"); break; -- #endif -- default: puts ("hppa1.0"); break; -- } -- exit (0); -- } -+ #define _HPUX_SOURCE -+ #include -+ #include -+ -+ int main () -+ { -+ #if defined(_SC_KERNEL_BITS) -+ long bits = sysconf(_SC_KERNEL_BITS); -+ #endif -+ long cpu = sysconf (_SC_CPU_VERSION); -+ -+ switch (cpu) -+ { -+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -+ case CPU_PA_RISC2_0: -+ #if defined(_SC_KERNEL_BITS) -+ switch (bits) -+ { -+ case 64: puts ("hppa2.0w"); break; -+ case 32: puts ("hppa2.0n"); break; -+ default: puts ("hppa2.0"); break; -+ } break; -+ #else /* !defined(_SC_KERNEL_BITS) */ -+ puts ("hppa2.0"); break; -+ #endif -+ default: puts ("hppa1.0"); break; -+ } -+ exit (0); -+ } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa -@@ -640,7 +665,7 @@ - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -- grep __LP64__ >/dev/null -+ grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else -@@ -711,22 +736,22 @@ - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; -@@ -750,14 +775,14 @@ - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -@@ -769,40 +794,51 @@ - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- case ${UNAME_MACHINE} in -- pc98) -- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ UNAME_PROCESSOR=`/usr/bin/uname -p` -+ case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -+ i*:MSYS*:*) -+ echo ${UNAME_MACHINE}-pc-msys -+ exit ;; - i*:windows32*:*) -- # uname -m includes "-pc" on this system. -- echo ${UNAME_MACHINE}-mingw32 -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; -- *:Interix*:[3456]*) -- case ${UNAME_MACHINE} in -+ *:Interix*:*) -+ case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; -- EM64T | authenticamd) -+ authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; -+ 8664:Windows_NT:*) -+ echo x86_64-pc-mks -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we -@@ -832,20 +868,68 @@ - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; -- arm*:Linux:*:*) -+ aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ aarch64_be:Linux:*:*) -+ UNAME_MACHINE=aarch64_be -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ alpha:Linux:*:*) -+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ EV5) UNAME_MACHINE=alphaev5 ;; -+ EV56) UNAME_MACHINE=alphaev56 ;; -+ PCA56) UNAME_MACHINE=alphapca56 ;; -+ PCA57) UNAME_MACHINE=alphapca56 ;; -+ EV6) UNAME_MACHINE=alphaev6 ;; -+ EV67) UNAME_MACHINE=alphaev67 ;; -+ EV68*) UNAME_MACHINE=alphaev68 ;; -+ esac -+ objdump --private-headers /bin/sh | grep -q ld.so.1 -+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ exit ;; -+ arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_PCS_VFP -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ fi -+ fi -+ exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) -- echo crisv32-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - frv:Linux:*:*) -- echo frv-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ hexagon:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ i*86:Linux:*:*) -+ LIBC=gnu -+ eval $set_cc_for_build -+ sed 's/^ //' << EOF >$dummy.c -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif -+EOF -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -@@ -856,74 +940,33 @@ - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- mips:Linux:*:*) -+ mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU -- #undef mips -- #undef mipsel -+ #undef ${UNAME_MACHINE} -+ #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mipsel -+ CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips -+ CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif - EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -- ;; -- mips64:Linux:*:*) -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #undef CPU -- #undef mips64 -- #undef mips64el -- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=mips64el -- #else -- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=mips64 -- #else -- CPU= -- #endif -- #endif --EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) -- echo or32-unknown-linux-gnu -- exit ;; -- ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu - exit ;; -- alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -- EV5) UNAME_MACHINE=alphaev5 ;; -- EV56) UNAME_MACHINE=alphaev56 ;; -- PCA56) UNAME_MACHINE=alphapca56 ;; -- PCA57) UNAME_MACHINE=alphapca56 ;; -- EV6) UNAME_MACHINE=alphaev6 ;; -- EV67) UNAME_MACHINE=alphaev67 ;; -- EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ parisc64:Linux:*:* | hppa64:Linux:*:*) -+ echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level -@@ -933,14 +976,17 @@ - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; -- parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -+ ppc64:Linux:*:*) -+ echo powerpc64-unknown-linux-gnu -+ exit ;; -+ ppc:Linux:*:*) -+ echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -@@ -948,78 +994,18 @@ - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ tile*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) -- echo x86_64-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- xtensa:Linux:*:*) -- echo xtensa-unknown-linux-gnu -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -- i*86:Linux:*:*) -- # The BFD linker knows what the default object file format is, so -- # first see if it will tell us. cd to the root directory to prevent -- # problems with other programs or directories called `ld' in the path. -- # Set LC_ALL=C to ensure ld outputs messages in English. -- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -- | sed -ne '/supported targets:/!d -- s/[ ][ ]*/ /g -- s/.*supported targets: *// -- s/ .*// -- p'` -- case "$ld_supported_targets" in -- elf32-i386) -- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -- ;; -- a.out-i386-linux) -- echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit ;; -- "") -- # Either a pre-BFD a.out linker (linux-gnuoldld) or -- # one that does not give us useful --help. -- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit ;; -- esac -- # Determine whether the default compiler is a.out or elf -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #ifdef __ELF__ -- # ifdef __GLIBC__ -- # if __GLIBC__ >= 2 -- LIBC=gnu -- # else -- LIBC=gnulibc1 -- # endif -- # else -- LIBC=gnulibc1 -- # endif -- #else -- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -- LIBC=gnu -- #else -- LIBC=gnuaout -- #endif -- #endif -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^LIBC/{ -- s: ::g -- p -- }'`" -- test x"${LIBC}" != x && { -- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -- exit -- } -- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } -- ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both -@@ -1027,11 +1013,11 @@ - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) -- # Unixware is an offshoot of SVR4, but it has its own version -- # number series starting with 2... -- # I am not positive that other SVR4 systems won't match this, -+ # Unixware is an offshoot of SVR4, but it has its own version -+ # number series starting with 2... -+ # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. -- # Use sysv4.2uw... so that sysv4* matches it. -+ # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) -@@ -1048,7 +1034,7 @@ - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; -- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) -+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) -@@ -1063,7 +1049,7 @@ - fi - exit ;; - i*86:*:5:[678]*) -- # UnixWare 7.x, OpenUNIX and OpenServer 6. -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; -@@ -1091,10 +1077,13 @@ - exit ;; - pc:*:*:*) - # Left here for compatibility: -- # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i386. -- echo i386-pc-msdosdjgpp -- exit ;; -+ # uname -m prints for DJGPP always 'pc', but it prints nothing about -+ # the processor, so we play safe by assuming i586. -+ # Note: whatever this is, it MUST be the same as what config.sub -+ # prints for the "djgpp" host, or else GDB configury will decide that -+ # this is a cross-build. -+ echo i586-pc-msdosdjgpp -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; -@@ -1129,8 +1118,18 @@ - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && { echo i486-ncr-sysv4; exit; } ;; -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; -@@ -1143,7 +1142,7 @@ - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; -- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) -+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) -@@ -1163,10 +1162,10 @@ - echo ns32k-sni-sysv - fi - exit ;; -- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -- # says -- echo i586-unisys-sysv4 -- exit ;; -+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -+ # says -+ echo i586-unisys-sysv4 -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1192,11 +1191,11 @@ - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then -- echo mips-nec-sysv${UNAME_RELEASE} -+ echo mips-nec-sysv${UNAME_RELEASE} - else -- echo mips-unknown-sysv${UNAME_RELEASE} -+ echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; -@@ -1206,6 +1205,12 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1233,6 +1238,16 @@ - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in -+ i386) -+ eval $set_cc_for_build -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ UNAME_PROCESSOR="x86_64" -+ fi -+ fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -@@ -1248,7 +1263,10 @@ - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; -- NSE-?:NONSTOP_KERNEL:*:*) -+ NEO-?:NONSTOP_KERNEL:*:*) -+ echo neo-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) -@@ -1293,13 +1311,13 @@ - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) -- echo mips-sei-seiux${UNAME_RELEASE} -+ echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1314,11 +1332,14 @@ - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx -+ exit ;; - esac - --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- - eval $set_cc_for_build - cat >$dummy.c < - printf ("m68k-sony-newsos%s\n", - #ifdef NEWSOS4 -- "4" -+ "4" - #else -- "" -+ "" - #endif -- ); exit (0); -+ ); exit (0); - #endif - #endif - -@@ -1474,9 +1495,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - and -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -diff -urN fontforge-20120731-b/config.sub fontforge-20120731-b-aarch64/config.sub ---- fontforge-20120731-b/config.sub 2012-08-02 10:09:08.000000000 -0500 -+++ fontforge-20120731-b-aarch64/config.sub 2013-03-03 04:42:30.885063212 -0600 -@@ -1,10 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, --# Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012 Free Software Foundation, Inc. - --timestamp='2007-06-28' -+timestamp='2012-10-10' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,9 +21,7 @@ - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a -@@ -32,13 +30,16 @@ - - - # Please send patches to . Submit a context --# diff and a properly formatted ChangeLog entry. -+# diff and a properly formatted GNU ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -+# You can get the latest version of this script from: -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -+ - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases - # that are meaningful with *any* GNU software. -@@ -72,7 +73,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO -@@ -120,12 +122,18 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -+ knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -+ android-linux) -+ os=-linux-android -+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] -@@ -148,10 +156,13 @@ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray) -+ -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; -+ -bluegene*) -+ os=-cnk -+ ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 -@@ -166,10 +177,10 @@ - os=-chorusos - basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -+ -chorusrdb) -+ os=-chorusrdb - basic_machine=$1 -- ;; -+ ;; - -hiux*) - os=-hiuxwe2 - ;; -@@ -214,6 +225,12 @@ - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -lynx*178) -+ os=-lynxos178 -+ ;; -+ -lynx*5) -+ os=-lynxos5 -+ ;; - -lynx*) - os=-lynxos - ;; -@@ -238,24 +255,32 @@ - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ -+ | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | be32 | be64 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -+ | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -+ | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | le32 | le64 \ -+ | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | mcore | mep \ -+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -- | mips64vr | mips64vrel \ -+ | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ -+ | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -@@ -268,29 +293,42 @@ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | moxie \ - | mt \ - | msp430 \ -+ | nds32 | nds32le | nds32be \ - | nios | nios2 \ - | ns16k | ns32k \ -+ | open8 \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -+ | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -+ | rl78 | rx \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu | strongarm \ -- | tahoe | thumb | tic4x | tic80 | tron \ -- | v850 | v850e \ -+ | spu \ -+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ -+ | ubicom32 \ -+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ -- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12) -- # Motorola 68HC11/12. -+ c54x) -+ basic_machine=tic54x-unknown -+ ;; -+ c55x) -+ basic_machine=tic55x-unknown -+ ;; -+ c6x) -+ basic_machine=tic6x-unknown -+ ;; -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; -@@ -300,6 +338,21 @@ - basic_machine=mt-unknown - ;; - -+ strongarm | thumb | xscale) -+ basic_machine=arm-unknown -+ ;; -+ xgate) -+ basic_machine=$basic_machine-unknown -+ os=-none -+ ;; -+ xscaleeb) -+ basic_machine=armeb-unknown -+ ;; -+ -+ xscaleel) -+ basic_machine=armel-unknown -+ ;; -+ - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. -@@ -314,29 +367,37 @@ - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ -+ | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ -+ | be32-* | be64-* \ - | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -+ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -+ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | le32-* | le64-* \ -+ | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -- | mips64vr-* | mips64vrel-* \ -+ | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ -+ | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -@@ -351,27 +412,36 @@ - | mmix-* \ - | mt-* \ - | msp430-* \ -+ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ -+ | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ -- | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ -+ | rl78-* | romp-* | rs6000-* | rx-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -- | tahoe-* | thumb-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ -+ | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tile*-* \ - | tron-* \ -- | v850-* | v850e-* | vax-* \ -+ | ubicom32-* \ -+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -+ | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -- | xstormy16-* | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) -+ ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. -@@ -389,7 +459,7 @@ - basic_machine=a29k-amd - os=-udi - ;; -- abacus) -+ abacus) - basic_machine=abacus-unknown - ;; - adobe68k) -@@ -435,6 +505,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -443,10 +517,35 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; -+ bluegene*) -+ basic_machine=powerpc-ibm -+ os=-cnk -+ ;; -+ c54x-*) -+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c55x-*) -+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c6x-*) -+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -475,7 +574,7 @@ - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16) -+ cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; -@@ -514,6 +613,10 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp -@@ -629,7 +732,6 @@ - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; --# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 -@@ -668,6 +770,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -679,6 +789,13 @@ - basic_machine=ns32k-utek - os=-sysv - ;; -+ microblaze*) -+ basic_machine=microblaze-xilinx -+ ;; -+ mingw64) -+ basic_machine=x86_64-pc -+ os=-mingw64 -+ ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 -@@ -715,10 +832,18 @@ - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; -+ msys) -+ basic_machine=i386-pc -+ os=-msys -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; -+ nacl) -+ basic_machine=le32-unknown -+ os=-nacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 -@@ -783,6 +908,12 @@ - np1) - basic_machine=np1-gould - ;; -+ neo-tandem) -+ basic_machine=neo-tandem -+ ;; -+ nse-tandem) -+ basic_machine=nse-tandem -+ ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -813,6 +944,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -857,9 +996,10 @@ - ;; - power) basic_machine=power-ibm - ;; -- ppc) basic_machine=powerpc-unknown -+ ppc | ppcbe) basic_machine=powerpc-unknown - ;; -- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc-* | ppcbe-*) -+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown -@@ -953,6 +1093,9 @@ - basic_machine=i860-stratus - os=-sysv4 - ;; -+ strongarm-* | thumb-*) -+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - sun2) - basic_machine=m68000-sun - ;; -@@ -1009,17 +1152,9 @@ - basic_machine=t90-cray - os=-unicos - ;; -- tic54x | c54x*) -- basic_machine=tic54x-unknown -- os=-coff -- ;; -- tic55x | c55x*) -- basic_machine=tic55x-unknown -- os=-coff -- ;; -- tic6x | c6x*) -- basic_machine=tic6x-unknown -- os=-coff -+ tile*) -+ basic_machine=$basic_machine-unknown -+ os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown -@@ -1088,6 +1223,9 @@ - xps | xps100) - basic_machine=xps100-honeywell - ;; -+ xscale-* | xscalee[bl]-*) -+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ ;; - ymp) - basic_machine=ymp-cray - os=-unicos -@@ -1096,6 +1234,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1134,7 +1276,7 @@ - we32k) - basic_machine=we32k-att - ;; -- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) -@@ -1181,9 +1323,12 @@ - if [ x"$os" != x"" ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -+ # First match some system type aliases -+ # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. -+ -auroraux) -+ os=-auroraux -+ ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; -@@ -1204,21 +1349,23 @@ - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ -- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ -+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -+ | -sym* | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -openbsd* | -solidbsd* \ -+ | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ -+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ -@@ -1226,7 +1373,7 @@ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1265,7 +1412,7 @@ - -opened*) - os=-openedition - ;; -- -os400*) -+ -os400*) - os=-os400 - ;; - -wince*) -@@ -1314,7 +1461,7 @@ - -sinix*) - os=-sysv4 - ;; -- -tpf*) -+ -tpf*) - os=-tpf - ;; - -triton*) -@@ -1356,6 +1503,11 @@ - -zvmoe) - os=-zvmoe - ;; -+ -dicos*) -+ os=-dicos -+ ;; -+ -nacl*) -+ ;; - -none) - ;; - *) -@@ -1378,10 +1530,10 @@ - # system, and we'll never get to this point. - - case $basic_machine in -- score-*) -+ score-*) - os=-elf - ;; -- spu-*) -+ spu-*) - os=-elf - ;; - *-acorn) -@@ -1393,8 +1545,20 @@ - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; -+ hexagon-*) -+ os=-elf -+ ;; -+ tic54x-*) -+ os=-coff -+ ;; -+ tic55x-*) -+ os=-coff -+ ;; -+ tic6x-*) -+ os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) -@@ -1414,14 +1578,11 @@ - ;; - m68000-sun) - os=-sunos3 -- # This also exists in the configure program, but was not the -- # default. -- # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -- mep-*) -+ mep-*) - os=-elf - ;; - mips*-cisco) -@@ -1448,7 +1609,7 @@ - *-ibm) - os=-aix - ;; -- *-knuth) -+ *-knuth) - os=-mmixware - ;; - *-wec) -@@ -1553,7 +1714,7 @@ - -sunos*) - vendor=sun - ;; -- -aix*) -+ -cnk*|-aix*) - vendor=ibm - ;; - -beos*) From 82740defdee4b0803258b266236a48b8cd05f539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 19 Aug 2019 10:14:05 +0200 Subject: [PATCH 36/82] Rebuilt for Python 3.8 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index dffe6f4..90ed6a5 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20190801 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -143,6 +143,9 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %doc htdocs %changelog +* Mon Aug 19 2019 Miro Hrončok - 20190801-2 +- Rebuilt for Python 3.8 + * Thu Aug 15 2019 Parag Nemade - 20190801-1 - Update to 20190801 version (#1739819) - Upstream moved to use Glib's GHashTable over uthash From f6215c5a275284633d3f0bf12305aa501e323aac Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Tue, 27 Aug 2019 11:53:50 -0700 Subject: [PATCH 37/82] Rebuild for new libspiro --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 90ed6a5..c414401 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20190801 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -143,6 +143,9 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %doc htdocs %changelog +* Tue Aug 27 2019 Kevin Fenzi - 20190801-3 +- Rebuild for new libspiro + * Mon Aug 19 2019 Miro Hrončok - 20190801-2 - Rebuilt for Python 3.8 From 13ee59152ecf86cf3f216f460b8b71cb6cf997d2 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Thu, 16 Jan 2020 14:27:07 +0530 Subject: [PATCH 38/82] Resolves:rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c --- fontforge-20190801-cve-2020-5395.patch | 78 ++++++++++++++++++++++++++ fontforge.spec | 7 ++- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 fontforge-20190801-cve-2020-5395.patch diff --git a/fontforge-20190801-cve-2020-5395.patch b/fontforge-20190801-cve-2020-5395.patch new file mode 100644 index 0000000..51b5245 --- /dev/null +++ b/fontforge-20190801-cve-2020-5395.patch @@ -0,0 +1,78 @@ +From 048a91e2682c1a8936ae34dbc7bd70291ec05410 Mon Sep 17 00:00:00 2001 +From: Skef Iterum +Date: Mon, 6 Jan 2020 03:05:06 -0800 +Subject: [PATCH] Fix for #4084 Use-after-free (heap) in the + SFD_GetFontMetaData() function Fix for #4086 NULL pointer dereference in the + SFDGetSpiros() function Fix for #4088 NULL pointer dereference in the + SFD_AssignLookups() function Add empty sf->fontname string if it isn't set, + fixing #4089 #4090 and many other potential issues (many downstream calls + to strlen() on the value). + +--- + fontforge/sfd.c | 19 ++++++++++++++----- + fontforge/sfd1.c | 2 +- + 2 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/fontforge/sfd.c b/fontforge/sfd.c +index 731be201e0..e8ca39ba83 100644 +--- a/fontforge/sfd.c ++++ b/fontforge/sfd.c +@@ -4032,13 +4032,16 @@ static void SFDGetSpiros(FILE *sfd,SplineSet *cur) { + while ( fscanf(sfd,"%lg %lg %c", &cp.x, &cp.y, &cp.ty )==3 ) { + if ( cur!=NULL ) { + if ( cur->spiro_cnt>=cur->spiro_max ) +- cur->spiros = realloc(cur->spiros,(cur->spiro_max+=10)*sizeof(spiro_cp)); ++ cur->spiros = realloc(cur->spiros, ++ (cur->spiro_max+=10)*sizeof(spiro_cp)); + cur->spiros[cur->spiro_cnt++] = cp; + } + } +- if ( cur!=NULL && (cur->spiros[cur->spiro_cnt-1].ty&0x7f)!=SPIRO_END ) { ++ if ( cur!=NULL && cur->spiro_cnt>0 ++ && (cur->spiros[cur->spiro_cnt-1].ty&0x7f)!=SPIRO_END ) { + if ( cur->spiro_cnt>=cur->spiro_max ) +- cur->spiros = realloc(cur->spiros,(cur->spiro_max+=1)*sizeof(spiro_cp)); ++ cur->spiros = realloc(cur->spiros, ++ (cur->spiro_max+=1)*sizeof(spiro_cp)); + memset(&cur->spiros[cur->spiro_cnt],0,sizeof(spiro_cp)); + cur->spiros[cur->spiro_cnt++].ty = SPIRO_END; + } +@@ -7992,10 +7995,12 @@ bool SFD_GetFontMetaData( FILE *sfd, + else if ( strmatch(tok,"LayerCount:")==0 ) + { + d->had_layer_cnt = true; +- getint(sfd,&sf->layer_cnt); +- if ( sf->layer_cnt>2 ) { ++ int layer_cnt_tmp; ++ getint(sfd,&layer_cnt_tmp); ++ if ( layer_cnt_tmp>2 ) { + sf->layers = realloc(sf->layers,sf->layer_cnt*sizeof(LayerInfo)); + memset(sf->layers+2,0,(sf->layer_cnt-2)*sizeof(LayerInfo)); ++ sf->layer_cnt = layer_cnt_tmp; + } + } + else if ( strmatch(tok,"Layer:")==0 ) +@@ -8948,6 +8953,10 @@ exit( 1 ); + } + } + ++ // Many downstream functions assume this isn't NULL (use strlen, etc.) ++ if ( sf->fontname==NULL) ++ sf->fontname = copy(""); ++ + if ( fromdir ) + sf = SFD_FigureDirType(sf,tok,dirname,enc,remap,had_layer_cnt); + else if ( sf->subfontcnt!=0 ) { +diff --git a/fontforge/sfd1.c b/fontforge/sfd1.c +index cf931059d0..b42f832678 100644 +--- a/fontforge/sfd1.c ++++ b/fontforge/sfd1.c +@@ -674,7 +674,7 @@ void SFD_AssignLookups(SplineFont1 *sf) { + + /* Fix up some gunk from really old versions of the sfd format */ + SFDCleanupAnchorClasses(&sf->sf); +- if ( sf->sf.uni_interp==ui_unset ) ++ if ( sf->sf.uni_interp==ui_unset && sf->sf.map!=NULL ) + sf->sf.uni_interp = interp_from_encoding(sf->sf.map->enc,ui_none); + + /* Fixup for an old bug */ diff --git a/fontforge.spec b/fontforge.spec index c414401..39281a2 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20190801 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -12,6 +12,7 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ Patch0: fontforge-20190413-python-3.8-pkg-config.patch # Below are upstream patches Patch1: fontforge-20190801-fix-metainfo.xml-file.patch +Patch2: fontforge-20190801-cve-2020-5395.patch Requires: xdg-utils Requires: autotrace @@ -75,6 +76,7 @@ This package contains documentation files for %{name}. %patch0 -p1 %endif %patch1 -p1 +%patch2 -p1 mkdir htdocs cp -pr doc/html/* htdocs @@ -143,6 +145,9 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %doc htdocs %changelog +* Thu Jan 16 2020 Parag Nemade - 20190801-4 +- Resolves:rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c + * Tue Aug 27 2019 Kevin Fenzi - 20190801-3 - Rebuild for new libspiro From afbac9327c56bb3f6c70ed485186cc79cc226447 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 18:48:23 +0000 Subject: [PATCH 39/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 39281a2..24efea7 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20190801 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -145,6 +145,9 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %doc htdocs %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 20190801-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Thu Jan 16 2020 Parag Nemade - 20190801-4 - Resolves:rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c From 7f6f786c736c5947d5d73af33e61c81f6552c332 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Tue, 18 Feb 2020 13:48:19 +0530 Subject: [PATCH 40/82] another fix for rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c --- ...-20190801-cve-2020-5395-followup-fix.patch | 28 +++++++++++++++++++ fontforge.spec | 11 ++++++-- tests/scripts/generate.pe | 3 ++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 fontforge-20190801-cve-2020-5395-followup-fix.patch diff --git a/fontforge-20190801-cve-2020-5395-followup-fix.patch b/fontforge-20190801-cve-2020-5395-followup-fix.patch new file mode 100644 index 0000000..c69bb48 --- /dev/null +++ b/fontforge-20190801-cve-2020-5395-followup-fix.patch @@ -0,0 +1,28 @@ +From b96273acc691ac8a36c6a8dd4de8e6edd7eaae59 Mon Sep 17 00:00:00 2001 +From: Fredrick Brennan +Date: Tue, 21 Jan 2020 15:16:00 +0800 +Subject: [PATCH] Fix crash on exit introduced in previous commit + +When the number of layers is greater than 2, as in Chomsky.sfd and most +of my other fonts, FontForge will crash on exiting. + +This is just a simple mistake @skef made. +--- + fontforge/sfd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fontforge/sfd.c b/fontforge/sfd.c +index e8ca39ba83..9517d8cb12 100644 +--- a/fontforge/sfd.c ++++ b/fontforge/sfd.c +@@ -7998,9 +7998,9 @@ bool SFD_GetFontMetaData( FILE *sfd, + int layer_cnt_tmp; + getint(sfd,&layer_cnt_tmp); + if ( layer_cnt_tmp>2 ) { ++ sf->layer_cnt = layer_cnt_tmp; + sf->layers = realloc(sf->layers,sf->layer_cnt*sizeof(LayerInfo)); + memset(sf->layers+2,0,(sf->layer_cnt-2)*sizeof(LayerInfo)); +- sf->layer_cnt = layer_cnt_tmp; + } + } + else if ( strmatch(tok,"Layer:")==0 ) diff --git a/fontforge.spec b/fontforge.spec index 24efea7..ae7a262 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20190801 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -12,7 +12,10 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ Patch0: fontforge-20190413-python-3.8-pkg-config.patch # Below are upstream patches Patch1: fontforge-20190801-fix-metainfo.xml-file.patch +# https://github.com/fontforge/fontforge/issues/4084 Patch2: fontforge-20190801-cve-2020-5395.patch +# https://github.com/fontforge/fontforge/issues/4164 +Patch3: fontforge-20190801-cve-2020-5395-followup-fix.patch Requires: xdg-utils Requires: autotrace @@ -77,6 +80,7 @@ This package contains documentation files for %{name}. %endif %patch1 -p1 %patch2 -p1 +%patch3 -p1 mkdir htdocs cp -pr doc/html/* htdocs @@ -145,10 +149,13 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %doc htdocs %changelog +* Sun Feb 16 2020 Parag Nemade - 20190801-6 +- another fix for rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c + * Tue Jan 28 2020 Fedora Release Engineering - 20190801-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild -* Thu Jan 16 2020 Parag Nemade - 20190801-4 +* Thu Jan 16 2020 Parag Nemade - 20190801-4 - Resolves:rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c * Tue Aug 27 2019 Kevin Fenzi - 20190801-3 diff --git a/tests/scripts/generate.pe b/tests/scripts/generate.pe index d023cea..6ed2dda 100755 --- a/tests/scripts/generate.pe +++ b/tests/scripts/generate.pe @@ -4,4 +4,7 @@ Open($argv[i], 1) #Use gen_flags=Defualt fmflags value as -1 gen_flags = -1 Generate("" + $fontname + ".ttf", "", gen_flags) +Generate("" + $fontname + ".otf", "", gen_flags) +PrintSetup (5) +PrintFont (0, 0, "", $fontname + "-sample.pdf") From 00599859f74ed53a72ee4925a3836852e65264f2 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Wed, 25 Mar 2020 21:29:11 +0530 Subject: [PATCH 41/82] Update to 20200314 version (#1813578) --- .gitignore | 1 + ...forge-20190413-python-3.8-pkg-config.patch | 14 --- ...-20190801-cve-2020-5395-followup-fix.patch | 28 ------ fontforge-20190801-cve-2020-5395.patch | 78 --------------- ...forge-20190801-fix-metainfo.xml-file.patch | 41 -------- fontforge.spec | 98 ++++++++----------- sources | 2 +- tests/scripts/generate-font.py | 14 +++ tests/scripts/generate-sfd.pe | 7 ++ .../scripts/{generate.pe => generate-ttf.pe} | 0 tests/scripts/run_tests.sh | 23 ++++- 11 files changed, 83 insertions(+), 223 deletions(-) delete mode 100644 fontforge-20190413-python-3.8-pkg-config.patch delete mode 100644 fontforge-20190801-cve-2020-5395-followup-fix.patch delete mode 100644 fontforge-20190801-cve-2020-5395.patch delete mode 100644 fontforge-20190801-fix-metainfo.xml-file.patch create mode 100644 tests/scripts/generate-font.py create mode 100755 tests/scripts/generate-sfd.pe rename tests/scripts/{generate.pe => generate-ttf.pe} (100%) diff --git a/.gitignore b/.gitignore index 749cac3..245b9b3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ fontforge_full-20100501.tar.bz2 /gnulib-b324052.tar.gz /fontforge-20190317.tar.gz /fontforge-20190413.tar.gz +/fontforge-20200314.tar.gz diff --git a/fontforge-20190413-python-3.8-pkg-config.patch b/fontforge-20190413-python-3.8-pkg-config.patch deleted file mode 100644 index 485f796..0000000 --- a/fontforge-20190413-python-3.8-pkg-config.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -urN fontforge-20190413.old/m4/fontforge_arg_enable.m4 fontforge-20190413/m4/fontforge_arg_enable.m4 ---- fontforge-20190413.old/m4/fontforge_arg_enable.m4 2019-04-13 13:08:39.000000000 +0530 -+++ fontforge-20190413/m4/fontforge_arg_enable.m4 2019-07-21 16:31:27.939734401 +0530 -@@ -116,8 +116,8 @@ - if test x"${i_do_have_python_scripting}" != xyes; then - i_want_python_ver= - else -- PKG_CHECK_MODULES([PYTHON],[python-"${PYTHON_VERSION}"], dnl [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"],,[i_do_have_python_scripting=maybe])], -- [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"],,[i_do_have_python_scripting=no])], -+ PKG_CHECK_MODULES([PYTHON],[python-"${PYTHON_VERSION}"-embed], dnl [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"-embed],,[i_do_have_python_scripting=maybe])], -+ [PKG_CHECK_MODULES([PYTHONDEV],[python-"${PYTHON_VERSION}"-embed],,[i_do_have_python_scripting=no])], - [i_do_have_python_scripting=no]) - dnl dnl TODO: have python3 AND python2, but only have python2 dev, but no python3 dev - dnl if test x"${i_do_have_python_scripting}" = xmaybe; then diff --git a/fontforge-20190801-cve-2020-5395-followup-fix.patch b/fontforge-20190801-cve-2020-5395-followup-fix.patch deleted file mode 100644 index c69bb48..0000000 --- a/fontforge-20190801-cve-2020-5395-followup-fix.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b96273acc691ac8a36c6a8dd4de8e6edd7eaae59 Mon Sep 17 00:00:00 2001 -From: Fredrick Brennan -Date: Tue, 21 Jan 2020 15:16:00 +0800 -Subject: [PATCH] Fix crash on exit introduced in previous commit - -When the number of layers is greater than 2, as in Chomsky.sfd and most -of my other fonts, FontForge will crash on exiting. - -This is just a simple mistake @skef made. ---- - fontforge/sfd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fontforge/sfd.c b/fontforge/sfd.c -index e8ca39ba83..9517d8cb12 100644 ---- a/fontforge/sfd.c -+++ b/fontforge/sfd.c -@@ -7998,9 +7998,9 @@ bool SFD_GetFontMetaData( FILE *sfd, - int layer_cnt_tmp; - getint(sfd,&layer_cnt_tmp); - if ( layer_cnt_tmp>2 ) { -+ sf->layer_cnt = layer_cnt_tmp; - sf->layers = realloc(sf->layers,sf->layer_cnt*sizeof(LayerInfo)); - memset(sf->layers+2,0,(sf->layer_cnt-2)*sizeof(LayerInfo)); -- sf->layer_cnt = layer_cnt_tmp; - } - } - else if ( strmatch(tok,"Layer:")==0 ) diff --git a/fontforge-20190801-cve-2020-5395.patch b/fontforge-20190801-cve-2020-5395.patch deleted file mode 100644 index 51b5245..0000000 --- a/fontforge-20190801-cve-2020-5395.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 048a91e2682c1a8936ae34dbc7bd70291ec05410 Mon Sep 17 00:00:00 2001 -From: Skef Iterum -Date: Mon, 6 Jan 2020 03:05:06 -0800 -Subject: [PATCH] Fix for #4084 Use-after-free (heap) in the - SFD_GetFontMetaData() function Fix for #4086 NULL pointer dereference in the - SFDGetSpiros() function Fix for #4088 NULL pointer dereference in the - SFD_AssignLookups() function Add empty sf->fontname string if it isn't set, - fixing #4089 #4090 and many other potential issues (many downstream calls - to strlen() on the value). - ---- - fontforge/sfd.c | 19 ++++++++++++++----- - fontforge/sfd1.c | 2 +- - 2 files changed, 15 insertions(+), 6 deletions(-) - -diff --git a/fontforge/sfd.c b/fontforge/sfd.c -index 731be201e0..e8ca39ba83 100644 ---- a/fontforge/sfd.c -+++ b/fontforge/sfd.c -@@ -4032,13 +4032,16 @@ static void SFDGetSpiros(FILE *sfd,SplineSet *cur) { - while ( fscanf(sfd,"%lg %lg %c", &cp.x, &cp.y, &cp.ty )==3 ) { - if ( cur!=NULL ) { - if ( cur->spiro_cnt>=cur->spiro_max ) -- cur->spiros = realloc(cur->spiros,(cur->spiro_max+=10)*sizeof(spiro_cp)); -+ cur->spiros = realloc(cur->spiros, -+ (cur->spiro_max+=10)*sizeof(spiro_cp)); - cur->spiros[cur->spiro_cnt++] = cp; - } - } -- if ( cur!=NULL && (cur->spiros[cur->spiro_cnt-1].ty&0x7f)!=SPIRO_END ) { -+ if ( cur!=NULL && cur->spiro_cnt>0 -+ && (cur->spiros[cur->spiro_cnt-1].ty&0x7f)!=SPIRO_END ) { - if ( cur->spiro_cnt>=cur->spiro_max ) -- cur->spiros = realloc(cur->spiros,(cur->spiro_max+=1)*sizeof(spiro_cp)); -+ cur->spiros = realloc(cur->spiros, -+ (cur->spiro_max+=1)*sizeof(spiro_cp)); - memset(&cur->spiros[cur->spiro_cnt],0,sizeof(spiro_cp)); - cur->spiros[cur->spiro_cnt++].ty = SPIRO_END; - } -@@ -7992,10 +7995,12 @@ bool SFD_GetFontMetaData( FILE *sfd, - else if ( strmatch(tok,"LayerCount:")==0 ) - { - d->had_layer_cnt = true; -- getint(sfd,&sf->layer_cnt); -- if ( sf->layer_cnt>2 ) { -+ int layer_cnt_tmp; -+ getint(sfd,&layer_cnt_tmp); -+ if ( layer_cnt_tmp>2 ) { - sf->layers = realloc(sf->layers,sf->layer_cnt*sizeof(LayerInfo)); - memset(sf->layers+2,0,(sf->layer_cnt-2)*sizeof(LayerInfo)); -+ sf->layer_cnt = layer_cnt_tmp; - } - } - else if ( strmatch(tok,"Layer:")==0 ) -@@ -8948,6 +8953,10 @@ exit( 1 ); - } - } - -+ // Many downstream functions assume this isn't NULL (use strlen, etc.) -+ if ( sf->fontname==NULL) -+ sf->fontname = copy(""); -+ - if ( fromdir ) - sf = SFD_FigureDirType(sf,tok,dirname,enc,remap,had_layer_cnt); - else if ( sf->subfontcnt!=0 ) { -diff --git a/fontforge/sfd1.c b/fontforge/sfd1.c -index cf931059d0..b42f832678 100644 ---- a/fontforge/sfd1.c -+++ b/fontforge/sfd1.c -@@ -674,7 +674,7 @@ void SFD_AssignLookups(SplineFont1 *sf) { - - /* Fix up some gunk from really old versions of the sfd format */ - SFDCleanupAnchorClasses(&sf->sf); -- if ( sf->sf.uni_interp==ui_unset ) -+ if ( sf->sf.uni_interp==ui_unset && sf->sf.map!=NULL ) - sf->sf.uni_interp = interp_from_encoding(sf->sf.map->enc,ui_none); - - /* Fixup for an old bug */ diff --git a/fontforge-20190801-fix-metainfo.xml-file.patch b/fontforge-20190801-fix-metainfo.xml-file.patch deleted file mode 100644 index 471ee7d..0000000 --- a/fontforge-20190801-fix-metainfo.xml-file.patch +++ /dev/null @@ -1,41 +0,0 @@ -From b26f33f178d1049070537166e3fac08b690de4d1 Mon Sep 17 00:00:00 2001 -From: muelli -Date: Tue, 6 Aug 2019 12:58:30 +0200 -Subject: [PATCH] appdata: remove spaces to comply with xml syntax - -The attribute had an illegal whitespace. appstream-glib validate complained: - -org.fontforge.FontForge.metainfo.xml: failed to parse org.fontforge.FontForge.metainfo.xml: Error on line 56 char 15: Odd character ?l?, expected a ?=? after attribute name ?xml:? of element ?p? - - -Now it does not complain about the syntax anymore, but instead about the description: -org.fontforge.FontForge.metainfo.xml: FAILED: -? style-invalid : Not enough

tags for a good description [0/1] -Validation of files failed ---- - desktop/org.fontforge.FontForge.metainfo.xml | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/desktop/org.fontforge.FontForge.metainfo.xml b/desktop/org.fontforge.FontForge.metainfo.xml -index 1ff9ea03e..3583e6da2 100644 ---- a/desktop/org.fontforge.FontForge.metainfo.xml -+++ b/desktop/org.fontforge.FontForge.metainfo.xml -@@ -49,15 +49,15 @@ -

- Apprendre à utiliser FontForge est facile, et il y a plusieurs tutoriels disponibles en commençant - par les bases jusqu'à des fonctionnalités plus avancées telles que la fabrication et l'utilisation de scripts.

--

-+

- FontForge je program za uređivanje konturnih i bitmap fontova. Omogućuje stvaranje, - uređivanje ili konvertiranje raznih vrsta fontova, uključujući PostScript, TrueType, - OpenType, CID, multiple-master, CFF, SVG i BitMap (bdf, FON, NFNT) fontove.

--

-+

- FontForge je slobodan softver otvorenog kȏda te je izrađen za razne operacijske - sustave. FontForge se može koristiti u grafičkom načinu rada ili putem naredbenog - retka.

--

-+

- FontForge je lako naučiti. Na raspolaganju stoje različiti priručnici – od osnovnih - vježbi, sve do naprednijih funkcija, kao što su izrada i upotreba skriptova.

-

diff --git a/fontforge.spec b/fontforge.spec index ae7a262..6e396fa 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -1,28 +1,21 @@ %global gettext_package FontForge -%global gittag0 20190801 +%global gittag0 20200314 Name: fontforge -Version: 20190801 -Release: 6%{?dist} +Version: 20200314 +Release: 1%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ URL: http://fontforge.github.io/ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/%{name}-%{version}.tar.gz -Patch0: fontforge-20190413-python-3.8-pkg-config.patch -# Below are upstream patches -Patch1: fontforge-20190801-fix-metainfo.xml-file.patch -# https://github.com/fontforge/fontforge/issues/4084 -Patch2: fontforge-20190801-cve-2020-5395.patch -# https://github.com/fontforge/fontforge/issues/4164 -Patch3: fontforge-20190801-cve-2020-5395-followup-fix.patch Requires: xdg-utils Requires: autotrace Requires: hicolor-icon-theme -BuildRequires: gcc -BuildRequires: git +BuildRequires: gcc-c++ +BuildRequires: cmake BuildRequires: libjpeg-devel BuildRequires: libtiff-devel BuildRequires: libpng-devel @@ -31,23 +24,18 @@ BuildRequires: libxml2-devel BuildRequires: freetype-devel BuildRequires: desktop-file-utils BuildRequires: libuninameslist-devel -BuildRequires: libXt-devel -BuildRequires: xorg-x11-proto-devel BuildRequires: gettext BuildRequires: pango-devel BuildRequires: cairo-devel BuildRequires: libspiro-devel BuildRequires: python3-devel -BuildRequires: gnulib-devel -BuildRequires: libtool-ltdl-devel BuildRequires: readline-devel BuildRequires: libappstream-glib -# This is failing on aarch64 so drop it -#BuildRequires: python-ipython # F25 build is failing add following to fix BuildRequires: shared-mime-info -# F30 onward need now -BuildRequires: /usr/bin/pathfix.py +# F33 onward need now +BuildRequires: gtk3-devel +BuildRequires: python3-sphinx %description FontForge (former PfaEdit) is a font editor for outline and bitmap @@ -56,14 +44,13 @@ fonts. It supports a range of font formats, including PostScript (Type2) and CID-keyed fonts. %package devel -Summary: Development tools for fontforge -Requires: %{name} = %{version}-%{release} +Summary: Development files for fontforge +Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-doc = %{version}-%{release} -Requires: pkgconfig %description devel -This package includes the libraries and header files you will need -to compile applications against fontforge. +This package includes the library files you will need to compile +applications against fontforge. %package doc Summary: Documentation files for %{name} @@ -75,53 +62,45 @@ This package contains documentation files for %{name}. %prep %setup -q -%if 0%{?python3_version_nodots} >= 38 -%patch0 -p1 -%endif -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 - -mkdir htdocs -cp -pr doc/html/* htdocs -chmod 644 htdocs/nonBMP/index.html -# Fix bad line terminators -%{__sed} -i 's/\r//' htdocs/Big5.txt -%{__sed} -i 's/\r//' htdocs/corpchar.txt +# Remove tests that requires Internet access +sed -i '45d;83d;101d;102d;114d;115d;125d' tests/CMakeLists.txt +rm tests/test003.pe tests/test130.pe tests/test0101.py tests/test929.py +# Remove tests for s390x +rm tests/test0004.py tests/test1009.py tests/test1010.py %build -./bootstrap --skip-git +rm -rf build && mkdir build +pushd build export CFLAGS="%{optflags} -fno-strict-aliasing" -%configure PYTHON=python3 -make V=1 %{?_smp_mflags} +%cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} +%{make_build} +popd %install -make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" -rm -f $RPM_BUILD_ROOT%{_libdir}/libg{draw,unicode}.{la,so} +pushd build +%{make_install} +popd + desktop-file-install \ --dir $RPM_BUILD_ROOT%{_datadir}/applications \ --add-category X-Fedora \ desktop/org.fontforge.FontForge.desktop -# Let's remove the appdata file as it does not contain translation -# and tag. -rm -f %{buildroot}%{_datadir}/appdata/*.appdata.xml -rm -f %{buildroot}%{_metainfodir}/*.appdata.xml - -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml - -# The fontforge makefiles install htdocs as well, but we -# prefer to have them under the standard RPM location, so -# remove the extra copy -rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/fontforge - # remove unneeded .la and .a files find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' +rm -f %{buildroot}%{_datadir}/doc/fontforge/{.buildinfo,.nojekyll} +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml + +%check +pushd build +make check +popd + # Find translations %find_lang %{gettext_package} @@ -136,19 +115,20 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %{_mandir}/man1/*.1* %{_datadir}/pixmaps/org.fontforge.FontForge* %{_datadir}/mime/packages/fontforge.xml -%{_metainfodir}/org.fontforge.FontForge.metainfo.xml +%{_metainfodir}/org.fontforge.FontForge.appdata.xml %{python3_sitearch}/fontforge.so %{python3_sitearch}/psMat.so %files devel -%{_includedir}/fontforge/ %{_libdir}/lib*.so -%{_libdir}/pkgconfig/*.pc %files doc -%doc htdocs +%doc %{_pkgdocdir} %changelog +* Wed Mar 25 2020 Parag Nemade - 20200314-1 +- Update to 20200314 version (#1813578) + * Sun Feb 16 2020 Parag Nemade - 20190801-6 - another fix for rh#1790042 - CVE-2020-5395:out-of-bounds write in sfd.c diff --git a/sources b/sources index 60439ae..1bfbb03 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fontforge-20190801.tar.gz) = d60fc69f9c692dd85e89e9c336dc5f141254f4472b02586145dd00b8f3d0b7608f229e3f642db2a03a42c4b543a0557286d0b617ddc3a1080e2c1791d4ea83d5 +SHA512 (fontforge-20200314.tar.gz) = 9eecee6162d5d160c9fe5d3e229763edb0b52f53529659f0fa8b41cf3edf0685509f51d3993da0e6e2c36fecde867af60062e131e10d7fdfbaac16323855818f diff --git a/tests/scripts/generate-font.py b/tests/scripts/generate-font.py new file mode 100644 index 0000000..633001f --- /dev/null +++ b/tests/scripts/generate-font.py @@ -0,0 +1,14 @@ +import fontforge +import os + +myFont = fontforge.open("Cantarell-Regular.ttf") +myFont.generate("Cantarell-Regular.sfd") +myFont.close() + +myFont = fontforge.open("Cantarell-Regular.sfd") +myFont.generate("Cantarell-Regular.ttf") +myFont.close() + +os.remove("Cantarell-Regular.ttf") +os.remove("Cantarell-Regular.sfd") + diff --git a/tests/scripts/generate-sfd.pe b/tests/scripts/generate-sfd.pe new file mode 100755 index 0000000..4877fc8 --- /dev/null +++ b/tests/scripts/generate-sfd.pe @@ -0,0 +1,7 @@ +#!/usr/bin/fontforge +i=1 +Open($argv[i], 1) +#Use gen_flags=Defualt fmflags value as -1 +gen_flags = -1 +Generate("" + $fontname + ".sfd", "", gen_flags) + diff --git a/tests/scripts/generate.pe b/tests/scripts/generate-ttf.pe similarity index 100% rename from tests/scripts/generate.pe rename to tests/scripts/generate-ttf.pe diff --git a/tests/scripts/run_tests.sh b/tests/scripts/run_tests.sh index 83aebe3..389d6f5 100644 --- a/tests/scripts/run_tests.sh +++ b/tests/scripts/run_tests.sh @@ -1,4 +1,23 @@ #!/bin/bash -/usr/bin/fontforge -script generate.pe /usr/share/fontforge/python/test.sfd -/usr/bin/python3 get-font-metadata.py ./Untitled1.ttf +cp /usr/share/fontforge/pixmaps/Cantarell-Regular.ttf . + +echo "----------------------------------------------------------" +echo "Executing get-font-metadata.py on Cantarell-Regular.ttf =>" +/usr/bin/python3 get-font-metadata.py ./Cantarell-Regular.ttf + +echo "----------------------------------------------------------" +echo "Executing generate-font.py on Cantarell-Regular.ttf =>" +/usr/bin/python3 generate-font.py ./Cantarell-Regular.ttf + +echo "----------------------------------------------------------" +cp /usr/share/fontforge/pixmaps/Cantarell-Regular.ttf . +echo "Executing generate-sfd.pe on Cantarell-Regular.ttf =>" +/usr/bin/fontforge -script generate-sfd.pe ./Cantarell-Regular.ttf +rm Cantarell-Regular.ttf + +echo "----------------------------------------------------------" +echo "Executing generate-ttf.pe on Cantarell-Regular.sfd =>" +/usr/bin/fontforge -script generate-ttf.pe ./Cantarell-Regular.sfd +echo "----------------------------------------------------------" + From 18fb9f7e740e468de96004d3f222e423ba59d72b Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Fri, 27 Mar 2020 22:12:10 +0530 Subject: [PATCH 42/82] Enabled X11 and 2012 theme --- fontforge.spec | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fontforge.spec b/fontforge.spec index 6e396fa..eb48945 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -24,6 +24,8 @@ BuildRequires: libxml2-devel BuildRequires: freetype-devel BuildRequires: desktop-file-utils BuildRequires: libuninameslist-devel +BuildRequires: libXt-devel +BuildRequires: xorg-x11-proto-devel BuildRequires: gettext BuildRequires: pango-devel BuildRequires: cairo-devel @@ -74,7 +76,10 @@ rm -rf build && mkdir build pushd build export CFLAGS="%{optflags} -fno-strict-aliasing" -%cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} +%cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DENABLE_X11=ON \ + -DTHEME=2012 + %{make_build} popd @@ -126,6 +131,9 @@ popd %doc %{_pkgdocdir} %changelog +* Fri Mar 27 2020 Parag Nemade - 20200314-2 +- Enabled X11 and 2012 theme + * Wed Mar 25 2020 Parag Nemade - 20200314-1 - Update to 20200314 version (#1813578) From 58f23472d63e52cd65f1133de37671eff5005399 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Thu, 2 Apr 2020 22:24:50 +0530 Subject: [PATCH 43/82] Fix the GDK backend UI issues Move back to using GDK backend --- ...set_allowed_backends-before-gdk_init.patch | 27 +++++++++++++++++++ fontforge.spec | 14 +++++++--- 2 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch diff --git a/fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch b/fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch new file mode 100644 index 0000000..6c1e797 --- /dev/null +++ b/fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch @@ -0,0 +1,27 @@ +From ee14a6389d19e2f45219134058e07f10585fa6d3 Mon Sep 17 00:00:00 2001 +From: Jeremy Tan +Date: Thu, 2 Apr 2020 18:03:47 +0800 +Subject: [PATCH] Call gdk_set_allowed_backends before gdk_init + +Fixes #4247 +--- + fontforgeexe/startui.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fontforgeexe/startui.c b/fontforgeexe/startui.c +index 06f5200a4..114bb7fb6 100644 +--- a/fontforgeexe/startui.c ++++ b/fontforgeexe/startui.c +@@ -1182,8 +1182,8 @@ int fontforge_main( int argc, char **argv ) { + #endif + } + #ifdef FONTFORGE_CAN_USE_GDK +- gdk_init(&argc, &argv); + gdk_set_allowed_backends("win32,quartz,x11"); ++ gdk_init(&argc, &argv); + #endif + ensureDotFontForgeIsSetup(); + #if defined(__MINGW32__) && !defined(_NO_LIBCAIRO) +-- +2.26.0 + diff --git a/fontforge.spec b/fontforge.spec index eb48945..b5f7200 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,13 +3,16 @@ Name: fontforge Version: 20200314 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ URL: http://fontforge.github.io/ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/%{name}-%{version}.tar.gz +# https://github.com/fontforge/fontforge/pull/4253 +Patch0: fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch + Requires: xdg-utils Requires: autotrace Requires: hicolor-icon-theme @@ -64,6 +67,7 @@ This package contains documentation files for %{name}. %prep %setup -q +%patch0 -p1 # Remove tests that requires Internet access sed -i '45d;83d;101d;102d;114d;115d;125d' tests/CMakeLists.txt @@ -76,9 +80,7 @@ rm -rf build && mkdir build pushd build export CFLAGS="%{optflags} -fno-strict-aliasing" -%cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -DENABLE_X11=ON \ - -DTHEME=2012 +%cmake .. -DCMAKE_BUILD_TYPE=Release %{make_build} popd @@ -131,6 +133,10 @@ popd %doc %{_pkgdocdir} %changelog +* Thu Apr 02 2020 Parag Nemade - 20200314-3 +- Fix the GDK backend UI issues +- Move back to using GDK backend + * Fri Mar 27 2020 Parag Nemade - 20200314-2 - Enabled X11 and 2012 theme From cf517d7106b6a73f76867e0306c91958a8ecd8b7 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Wed, 15 Apr 2020 20:42:48 +0530 Subject: [PATCH 44/82] Resolves:rhbz#1823525 - fontforge fails to build with Sphinx 3.0.0 --- ...inx-make-changes-to-support-Sphinx-3.patch | 62 +++++++++++++++++++ fontforge.spec | 8 ++- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 fontforge-20200314-sphinx-make-changes-to-support-Sphinx-3.patch diff --git a/fontforge-20200314-sphinx-make-changes-to-support-Sphinx-3.patch b/fontforge-20200314-sphinx-make-changes-to-support-Sphinx-3.patch new file mode 100644 index 0000000..886a161 --- /dev/null +++ b/fontforge-20200314-sphinx-make-changes-to-support-Sphinx-3.patch @@ -0,0 +1,62 @@ +From 36b52b9902a9e3858ef34ec006b6ad5da6374de1 Mon Sep 17 00:00:00 2001 +From: Jeremy Tan +Date: Mon, 6 Apr 2020 20:57:14 +1000 +Subject: [PATCH] sphinx: make changes to support Sphinx 3 + +--- + doc/sphinx/scripting/python/fontforge.rst | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +diff --git a/doc/sphinx/scripting/python/fontforge.rst b/doc/sphinx/scripting/python/fontforge.rst +index b97332229..f726b1ed4 100644 +--- a/doc/sphinx/scripting/python/fontforge.rst ++++ b/doc/sphinx/scripting/python/fontforge.rst +@@ -1365,6 +1365,7 @@ Layers may be compared to see if their contours are similar. + layer.stroke("calligraphic", width, height, angle[, FLAGS]) + layer.stroke("polygon", contour[, FLAGS]) + (Legacy interface) ++ :noindex: + + .. method:: layer.stroke("circular", width [, CAP, JOIN, ANGLE, KEYWORD]) + layer.stroke("elliptical", width, minor_width [, ANGLE, CAP, JOIN, KEYWORD]) +@@ -2458,6 +2459,7 @@ must be created through the font. + glyph.stroke("calligraphic", width, height, angle[, FLAGS]) + glyph.stroke("polygon", contour[, FLAGS]) + (Legacy interface) ++ :noindex: + + .. method:: glyph.stroke("circular", width[, CAP, JOIN, ANGLE, KEYWORD]) + glyph.stroke("elliptical", width, minor_width[, ANGLE, CAP, JOIN, KEYWORD]) +@@ -4786,21 +4788,6 @@ See the :class:`selection` type for how to alter the selection. + Extrema should be marked by on-curve points. If a curve in any selected + glyph lacks a point at a significant extremum this command will add one. + +-.. method:: font.addSmallCaps() +- +- For all selected upper or lower case letters in the latin, greek and +- cyrillic scripts this will try to create a small caps version of that glyph +- in a new glyph slot. +- +- So if you select "A" (or "a") then a glyph "a.sc" will be created (if "a.sc" +- already exists, it will be reused, and its current contents cleared). +- +- The contents of "a.sc" will be based on the upper case variant of this glyph +- (and that variant must be present for the command to work). FontForge will +- also create two lookups (unless appropriate ones already exist) one, bound +- to the feature 'c2sc' will map upper case letters to small caps, the other, +- bound to feature 'smcp' will map lower case letters to small caps. +- + .. method:: font.autoHint() + + Generates PostScript hints for all selected glyphs. +@@ -4993,6 +4980,7 @@ See the :class:`selection` type for how to alter the selection. + font.stroke("calligraphic", width, height, angle[, FLAGS]) + font.stroke("polygon", contour[, FLAGS]) + (Legacy interface) ++ :noindex: + + .. method:: font.stroke("circular", width[, CAP, JOIN, ANGLE, KEYWORD]) + font.stroke("elliptical", width, minor_width[, ANGLE, CAP, JOIN, KEYWORD]) +-- +2.26.0 + diff --git a/fontforge.spec b/fontforge.spec index b5f7200..9749f5e 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -12,6 +12,8 @@ Source0: https://github.com/fontforge/%{name}/archive/%{gittag0}.tar.gz#/ # https://github.com/fontforge/fontforge/pull/4253 Patch0: fontforge-20200314-Call-gdk_set_allowed_backends-before-gdk_init.patch +# https://github.com/fontforge/fontforge/pull/4269 +Patch1: fontforge-20200314-sphinx-make-changes-to-support-Sphinx-3.patch Requires: xdg-utils Requires: autotrace @@ -68,6 +70,7 @@ This package contains documentation files for %{name}. %prep %setup -q %patch0 -p1 +%patch1 -p1 # Remove tests that requires Internet access sed -i '45d;83d;101d;102d;114d;115d;125d' tests/CMakeLists.txt @@ -133,6 +136,9 @@ popd %doc %{_pkgdocdir} %changelog +* Wed Apr 15 2020 Parag Nemade - 20200314-4 +- Resolves:rhbz#1823525 - fontforge fails to build with Sphinx 3.0.0 + * Thu Apr 02 2020 Parag Nemade - 20200314-3 - Fix the GDK backend UI issues - Move back to using GDK backend From af582c23473220152d75e2850ae1f48255ca052d Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Sat, 2 May 2020 16:17:56 +0530 Subject: [PATCH 45/82] Resolves:rhbz#1830502 - Add missing WOFF2 support --- fontforge.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fontforge.spec b/fontforge.spec index 9749f5e..e102332 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -38,6 +38,7 @@ BuildRequires: libspiro-devel BuildRequires: python3-devel BuildRequires: readline-devel BuildRequires: libappstream-glib +BuildRequires: woff2-devel # F25 build is failing add following to fix BuildRequires: shared-mime-info # F33 onward need now @@ -83,7 +84,8 @@ rm -rf build && mkdir build pushd build export CFLAGS="%{optflags} -fno-strict-aliasing" -%cmake .. -DCMAKE_BUILD_TYPE=Release +%cmake .. -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_WOFF2=ON %{make_build} popd @@ -136,6 +138,9 @@ popd %doc %{_pkgdocdir} %changelog +* Sat May 02 2020 Parag Nemade - 20200314-5 +- Resolves:rhbz#1830502 - Add missing WOFF2 support + * Wed Apr 15 2020 Parag Nemade - 20200314-4 - Resolves:rhbz#1823525 - fontforge fails to build with Sphinx 3.0.0 From fec2fdf263ae9f4d79ae853e014e22f330e1a96c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 26 May 2020 02:45:38 +0200 Subject: [PATCH 46/82] Rebuilt for Python 3.9 --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index e102332..7a5617a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -138,6 +138,9 @@ popd %doc %{_pkgdocdir} %changelog +* Tue May 26 2020 Miro Hrončok - 20200314-6 +- Rebuilt for Python 3.9 + * Sat May 02 2020 Parag Nemade - 20200314-5 - Resolves:rhbz#1830502 - Add missing WOFF2 support From 8dfb846928ae556bc198b3a66f5f865ca99d8966 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 17:41:17 +0000 Subject: [PATCH 47/82] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index 7a5617a..bc76b1a 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -138,6 +138,9 @@ popd %doc %{_pkgdocdir} %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 20200314-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue May 26 2020 Miro Hrončok - 20200314-6 - Rebuilt for Python 3.9 From d970007d8790f73f7775b45c592dd0732e01f93c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 1 Aug 2020 01:02:25 +0000 Subject: [PATCH 48/82] - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- fontforge.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fontforge.spec b/fontforge.spec index bc76b1a..3a9919d 100644 --- a/fontforge.spec +++ b/fontforge.spec @@ -3,7 +3,7 @@ Name: fontforge Version: 20200314 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Outline and bitmap font editor License: GPLv3+ @@ -138,6 +138,10 @@ popd %doc %{_pkgdocdir} %changelog +* Sat Aug 01 2020 Fedora Release Engineering - 20200314-8 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 20200314-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 7c8685957603b3bd7490489d3abd86b4e1a44548 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Wed, 5 Aug 2020 13:02:09 +0530 Subject: [PATCH 49/82] Fix FTBFS bug by fixing glossary.rst and using new CMake macros --- ...forge-20200314-fix-glossary.rst-file.patch | 284 ++++++++++++++++++ fontforge.spec | 24 +- 2 files changed, 295 insertions(+), 13 deletions(-) create mode 100644 fontforge-20200314-fix-glossary.rst-file.patch diff --git a/fontforge-20200314-fix-glossary.rst-file.patch b/fontforge-20200314-fix-glossary.rst-file.patch new file mode 100644 index 0000000..2d511e7 --- /dev/null +++ b/fontforge-20200314-fix-glossary.rst-file.patch @@ -0,0 +1,284 @@ +--- doc/sphinx/glossary.rst.old 2020-03-14 09:06:49.000000000 +0530 ++++ doc/sphinx/glossary.rst 2020-08-05 12:06:45.574903248 +0530 +@@ -23,13 +23,13 @@ + Both Hebrew and Arabic have optional vowel marks and are called "impure" + abjads. Ancient Phoenician had nothing but consonants and is a "pure" abjad. + +- See Also: :term:`alphabet`, +- :term:`abugida`, :term:`syllabary` and ++ See Also: :term:`Alphabet`, ++ :term:`Abugida`, :term:`Syllabary` and + the relevant `Wikipedia article `__. + + Abugida +- An abugida is somewhere in between an :term:`alphabet` and +- a :term:`syllabary`. The Indic writing systems are ++ An abugida is somewhere in between an :term:`alphabet ` and ++ a :term:`syllabary `. The Indic writing systems are + probably the best known abugidas. + + In most abugidas there are independant glyphs for the consonants, and each +@@ -45,8 +45,8 @@ + An abugida differs from an abjad in that vowels (other than the default) must + be marked in the abugida. + +- See Also: :term:`alphabet`, :term:`abjad`, +- :term:`syllabary` and the relevant ++ See Also: :term:`Alphabet`, :term:`Abjad`, ++ :term:`Syllabary` and the relevant + `Wikipedia article `__. + + Advance Width +@@ -62,8 +62,8 @@ + vowels alike -- and (in theory anyway) all phonemes in a word will be marked + by an appropriate glyph. + +- See Also: :term:`abjad`, :term:`abugida`, +- :term:`syllabary` and the relevant ++ See Also: :term:`Abjad`, :term:`Abugida`, ++ :term:`Syllabary` and the relevant + `Wikipedia article `__. + + Apple Advanced Typography +@@ -83,7 +83,7 @@ + + Ascent + In traditional typography the ascent of a font was the distance from the top +- of a block of type to the :term:`baseline`. ++ of a block of type to the :term:`baseline `. + + Its precise meaning in modern typography seems to vary with different + definers. +@@ -127,7 +127,7 @@ + Black letter + Any of various type families based on medieval handwriting. + +- See also :term:`gothic`. ++ See also :term:`Gothic`. + + BMP + Basic Multilingual Plane +@@ -142,13 +142,13 @@ + (0xE0000-0xEFFFF) + + Bold +- A common font :term:`style`. The stems of the glyphs are ++ A common font :term:`style