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 <pnemade@fedoraproject.org>
This commit is contained in:
Parag Nemade 2019-08-15 21:34:59 +05:30
parent da0aa264e8
commit 8603e03a6e
No known key found for this signature in database
GPG Key ID: 71932951EB71E972
4 changed files with 56 additions and 276 deletions

View File

@ -1,244 +0,0 @@
From 94a19c782cec508cbfb9ed9ff2e1cbbfd433ba10 Mon Sep 17 00:00:00 2001
From: Parag Nemade <pnemade@fedoraproject.org>
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 <pnemade@fedoraproject.org>
---
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

View File

@ -0,0 +1,41 @@
From b26f33f178d1049070537166e3fac08b690de4d1 Mon Sep 17 00:00:00 2001
From: muelli <muelli@cryptobitch.de>
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 <p> 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 @@
<p xml:lang="fr">
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.</p>
- <p xml: lang = "hr">
+ <p xml:lang = "hr">
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.</p>
- <p xml: lang = "hr">
+ <p xml:lang = "hr">
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.</p>
- <p xml: lang = "hr">
+ <p xml:lang = "hr">
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.</p>
<p xml:lang="uk">

View File

@ -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 <pnemade AT redhat DOT com> - 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 <pnemade AT redhat DOT com> - 20190413-4
- Fix the conditional for rh#1728058

View File

@ -1,2 +1 @@
SHA512 (fontforge-20190413.tar.gz) = 39a519fb7cce9529872f18c59433449b67663de320e6ded4d9e6e84714b0e28fdb620ef0cdefba6a9eb98ff9ea26c8cc291b7b7962c9eae2b5422fd9ca239e4e
SHA512 (gnulib-b324052.tar.gz) = 5aeb563698a744f77c73deefcda2c3cd99f7b85c5475f30de9f0fcee7ef68b289092e40192a690a5b70a827921b1a2a05efe43f70538dc1840dba6ebef4f20ed
SHA512 (fontforge-20190801.tar.gz) = d60fc69f9c692dd85e89e9c336dc5f141254f4472b02586145dd00b8f3d0b7608f229e3f642db2a03a42c4b543a0557286d0b617ddc3a1080e2c1791d4ea83d5