From 8603e03a6ec7561b1315638afdef9df0eb8d3510 Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Thu, 15 Aug 2019 21:34:59 +0530 Subject: [PATCH] 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