Accepting request 796236 from M17N

- Update to version 20200314:
  * FontForge now has much improved stroke expansion functionality.
    The main change is that it actually works most of the time. New
    features include support for arbitrary convex nibs and the
    miter-clip and arc join styles from SVG 2. All functionality is
    accessible from the Python and native APIs.
  * Remove overlap handles certain important edge cases better.
  * The Python API now has a function called genericGlyphChange
    that matches the "Change Glyph" command in the GUI. See #4133
    for more details.
  * The Python API now has functions for getting Unicode script and
    for interrogating glyph boundaries.
  * One can now use text flags (rather than just numerical flags)
    when opening a font file via the Python API.
  * UFO import now outputs the note field properly.
  * SVG import is much more robust.
  * We have dropped most gnulib and autotools logic in favor of
    CMake, which dramatically simplifies the build system and just
    as dramatically improves build time.
  * As part of the switch to CMake, per the deprecation of
    Python 2, and per the lack of objections to the proposal on
    the mailing list, we have dropped support for building
    FontForge with Python 2 support. The non-build-system Python 2
    code remains, but it is neither tested nor maintained nor
    supported and is likely to follow a trajectory of decay and
    then removal.
  * Documentation is now rendered in Sphinx, which makes
    maintenance and improvement easier.
  * Translations now happen on crowdin, which makes contributions
    easier.
  * We got such a contribution for Croatian.
  * Character view point coloring is more consistent, and preview
    fills support transparency.
  * The user can now move and close tabs in the character view.
  * The metrics view now allows for entry of negative kerning
    values and runs a bit more smoothly.
  * There is now a warning when a user is about to discard an
    unsaved script.
  * We fixed bugs all over, as always, with particular attention
    given to the metrics view, Python, Spiro, and high-resolution
    displays.
  * Notes on build system changes:
    + libgutils and libgunicode have been combined into
      libfontforge
    + libgdraw and libfontforgeexe have been combined into the
      fontforge executable itself
    + No development files are installed (headers, or pkg-config).
      This is because we do not provide a stable API or ABI to work
      against, nor are the headers actually well configured to be
      used externally. We are also not aware of any maintained
      product that compiles against FontForge itself.
  * Fixes use-after-free (heap) in the SFD_GetFontMetaData()
    function and fix NULL pointer dereference in the
    SFDGetSpiros() and SFD_AssignLookups() function(bnc#1160220,
    bnc#1160236, CVE-2020-5395, CVE-2020-5496).
- Drop patch that isn't needed anymore:
  * python38_config.patch
- Add patches to fix build:
  * fix-return-statement.patch
  * fix-sphinx-doc.patch (only for Leap 15.2)

OBS-URL: https://build.opensuse.org/request/show/796236
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fontforge?expand=0&rev=50
This commit is contained in:
Dominique Leuenberger 2020-04-25 18:14:45 +00:00 committed by Git OBS Bridge
commit b0a8a5f372
8 changed files with 266 additions and 40 deletions

View File

@ -0,0 +1,32 @@
Index: fontforge-20200314/gdraw/ggdkdraw.c
===================================================================
--- fontforge-20200314.orig/gdraw/ggdkdraw.c
+++ fontforge-20200314/gdraw/ggdkdraw.c
@@ -2333,6 +2333,7 @@ static void GGDKDrawSyncThread(GDisplay
static GWindow GGDKDrawPrinterStartJob(GDisplay *UNUSED(gdisp), void *UNUSED(user_data), GPrinterAttrs *UNUSED(attrs)) {
Log(LOGERR, " ");
assert(false);
+ return (GWindow)0L;
}
static void GGDKDrawPrinterNextPage(GWindow UNUSED(w)) {
@@ -2343,6 +2344,7 @@ static void GGDKDrawPrinterNextPage(GWin
static int GGDKDrawPrinterEndJob(GWindow UNUSED(w), int UNUSED(cancel)) {
Log(LOGERR, " ");
assert(false);
+ return 0;
}
Index: fontforge-20200314/fontforgeexe/cvimportdlg.c
===================================================================
--- fontforge-20200314.orig/fontforgeexe/cvimportdlg.c
+++ fontforge-20200314/fontforgeexe/cvimportdlg.c
@@ -710,6 +710,7 @@ static int GFD_Options(GGadget *g, GEven
_ImportParamsDlg(ImportParamsState());
d->opts_shown = true;
}
+ return 0;
}
static int e_h(GWindow gw, GEvent *event) {

146
fix-sphinx-doc.patch Normal file
View File

@ -0,0 +1,146 @@
Index: fontforge-20200314/doc/sphinx/techref/splinefont.rst
===================================================================
--- fontforge-20200314.orig/doc/sphinx/techref/splinefont.rst
+++ fontforge-20200314/doc/sphinx/techref/splinefont.rst
@@ -195,7 +195,7 @@ The bounding box of a :ref:`Spline <spli
:ref:`SplineChar <splinefont.SplineChar>`, :ref:`RefChar <splinefont.RefChar>`,
:ref:`Image <splinefont.ImageList>`, or whatever else needs a bounding box.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.BDFFloat
typedef struct bdffloat {
@@ -206,7 +206,7 @@ The bounding box of a :ref:`Spline <spli
The floating selection in a :ref:`BDFChar <splinefont.BDFChar>`.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.Undoes
typedef struct undoes {
@@ -277,7 +277,7 @@ both the splines and the bitmaps of a ch
ut_mult is used when doing a copy from the FontView where you are copying more
than one character.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.BDFChar
typedef struct bdfchar {
@@ -318,7 +318,7 @@ represented by a byte rather than a bit.
The last thing in the BDFChar is a (/an optional) floating selection. Only
present if the user has made a selection or done a paste or something like that.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.BDFFont
typedef struct bdffont {
@@ -345,7 +345,7 @@ contains a count of the number of entrie
itself. Currently the number of entries here is always 16, but that could
change.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.SplinePoint
enum pointtype { pt_curve, pt_corner, pt_tangent };
@@ -405,7 +405,7 @@ drawing it. They are cached so they don'
There's a different set of lines for every scale (as there is a different amount
of visible detail). They get freed and regenerated if the Spline changes.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.Spline
typedef struct spline1d {
@@ -439,7 +439,7 @@ some are used in other places too.
The Spline1D structures give the equations for the x and y coordinates
respectively (splines[0] is for x, splines[1] is for y).
-.. code-block::
+.. code-block:: cpp
:name: splinefont.SplinePointList
typedef struct splinepointlist {
@@ -463,7 +463,7 @@ to). A SplinePointList is a connected pa
Generally a series of paths will make up a character, and they are linked
together on the next field.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.RefChar
typedef struct refchar {
@@ -498,7 +498,7 @@ themselves). The selected field indicate
field provides a transformed bounding box. And the sc field points to the
SplineChar we are referring to.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.KernPair
typedef struct kernpair {
@@ -514,7 +514,7 @@ offset between them (or rather the diffe
and right bearings would lead you to believe it should be). Next points to the
next kernpair.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.Hints
typedef struct hints {
@@ -532,7 +532,7 @@ y space) of where the stem starts, and w
negative (in which case base is where the stem ends). Next points to the next
hint for the character.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.ImageList
typedef struct imagelist {
@@ -551,7 +551,7 @@ not support any other transformations on
transformations have been applied. The next field points to the next image, and
selected indicates whether this one is selected or not.
-.. code-block::
+.. code-block:: cpp
:name: splinefont.SplineChar
typedef struct splinechar {
@@ -623,7 +623,7 @@ follow this one. For instance the combin
SplineChar representing "V" would have a pointer to a
:ref:`KernPair <splinefont.KernPair>` with data on "A".
-.. code-block::
+.. code-block:: cpp
:name: splinefont.SplineFont
typedef struct splinefont {
Index: fontforge-20200314/doc/sphinx/ui/misc/fontforge-themes.rst
===================================================================
--- fontforge-20200314.orig/doc/sphinx/ui/misc/fontforge-themes.rst
+++ fontforge-20200314/doc/sphinx/ui/misc/fontforge-themes.rst
@@ -4,7 +4,7 @@ FontForge color schemes
The following are some suggestions for color schemes. You simply copy these into
your ~/.Xdefaults file and then run
-.. code-block::
+.. code-block:: bash
:name: fontforge-themes.shell
$ xrdb ~/.Xdefaults
Index: fontforge-20200314/doc/sphinx/conf.py
===================================================================
--- fontforge-20200314.orig/doc/sphinx/conf.py
+++ fontforge-20200314/doc/sphinx/conf.py
@@ -43,6 +43,7 @@ templates_path = ['_templates']
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+master_doc = 'index'
# -- Options for HTML output -------------------------------------------------

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e5c992427a1cb4105f9d1270bd668caab586d28ebed931bdcb0662e834275aa9
size 29199004

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af7e09052d5a5f6b20b69d868b574637ee6cd72ab560429e29437392abe71810
size 28239648

View File

@ -1,3 +1,69 @@
-------------------------------------------------------------------
Wed Apr 15 18:30:12 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 20200314:
* FontForge now has much improved stroke expansion functionality.
The main change is that it actually works most of the time. New
features include support for arbitrary convex nibs and the
miter-clip and arc join styles from SVG 2. All functionality is
accessible from the Python and native APIs.
* Remove overlap handles certain important edge cases better.
* The Python API now has a function called genericGlyphChange
that matches the "Change Glyph" command in the GUI. See #4133
for more details.
* The Python API now has functions for getting Unicode script and
for interrogating glyph boundaries.
* One can now use text flags (rather than just numerical flags)
when opening a font file via the Python API.
* UFO import now outputs the note field properly.
* SVG import is much more robust.
* We have dropped most gnulib and autotools logic in favor of
CMake, which dramatically simplifies the build system and just
as dramatically improves build time.
* As part of the switch to CMake, per the deprecation of
Python 2, and per the lack of objections to the proposal on
the mailing list, we have dropped support for building
FontForge with Python 2 support. The non-build-system Python 2
code remains, but it is neither tested nor maintained nor
supported and is likely to follow a trajectory of decay and
then removal.
* Documentation is now rendered in Sphinx, which makes
maintenance and improvement easier.
* Translations now happen on crowdin, which makes contributions
easier.
* We got such a contribution for Croatian.
* Character view point coloring is more consistent, and preview
fills support transparency.
* The user can now move and close tabs in the character view.
* The metrics view now allows for entry of negative kerning
values and runs a bit more smoothly.
* There is now a warning when a user is about to discard an
unsaved script.
* We fixed bugs all over, as always, with particular attention
given to the metrics view, Python, Spiro, and high-resolution
displays.
* Notes on build system changes:
+ libgutils and libgunicode have been combined into
libfontforge
+ libgdraw and libfontforgeexe have been combined into the
fontforge executable itself
+ No development files are installed (headers, or pkg-config).
This is because we do not provide a stable API or ABI to work
against, nor are the headers actually well configured to be
used externally. We are also not aware of any maintained
product that compiles against FontForge itself.
* Fixes use-after-free (heap) in the SFD_GetFontMetaData()
function and fix NULL pointer dereference in the
SFDGetSpiros() and SFD_AssignLookups() function(bnc#1160220,
bnc#1160236, CVE-2020-5395, CVE-2020-5496).
- Drop patch that isn't needed anymore:
* python38_config.patch
- Add patches to fix build:
* fix-return-statement.patch
* fix-sphinx-doc.patch (only for Leap 15.2)
-------------------------------------------------------------------
Wed Oct 30 13:28:56 UTC 2019 - Ondřej Súkup <mimi.vx@gmail.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package fontforge
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,29 +17,30 @@
Name: fontforge
Version: 20190801
Version: 20200314
Release: 0
Summary: A Font Editor
License: GPL-3.0-or-later
URL: http://fontforge.org/
# Source: https://github.com/fontforge/fontforge/archive/%{version}.tar.gz
# Source: https://github.com/fontforge/fontforge/archive/%%{version}.tar.gz
# see bug 926061, fontforge-*-repacked.tar.xz does not contain fontforge-*/win/gold/libX11-*.noarch.rpm
Source0: fontforge-%{version}-repacked.tar.xz
Source1: get-source.sh
# workardound for bug 930076, imho upstream should fix this
# https://github.com/fontforge/fontforge/issues/2270
Patch0: fontforge-version.patch
# fix for build with python38
Patch1: python38_config.patch
BuildRequires: autoconf
BuildRequires: automake
Patch1: fix-return-statement.patch
Patch2: fix-sphinx-doc.patch
BuildRequires: cairo-devel
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: fontconfig-devel
BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: gettext-tools
BuildRequires: giflib-devel
BuildRequires: git
BuildRequires: gtk3-devel
BuildRequires: hicolor-icon-theme
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
@ -49,8 +50,11 @@ BuildRequires: libuninameslist-devel
BuildRequires: libxml2-devel
BuildRequires: pango-devel
BuildRequires: pkgconfig
BuildRequires: python3-Sphinx
BuildRequires: python3-devel
BuildRequires: readline-devel
BuildRequires: update-desktop-files
BuildRequires: woff2-devel
BuildRequires: zlib-devel
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xft)
@ -94,25 +98,22 @@ to develop applications that use FontForge libraries.
%prep
%setup -q
%patch0 -p1
%if 0%{?python3_version_nodots} >= 38
%patch1 -p1
%if %{?suse_version} < 1550
%patch2 -p1
%endif
sed -i 's/\r$//' doc/html/{Big5.txt,corpchar.txt}
%build
./bootstrap --force
%configure \
--disable-static \
--enable-pyextension \
--with-regular-link \
--docdir=%{_docdir}/%{name}/html
make %{?_smp_mflags}
%cmake \
-DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name}/html
%install
%make_install
%cmake_install
%suse_update_desktop_file -i org.fontforge.FontForge VectorGraphics
%find_lang FontForge
find %{buildroot} -type f -name "*.la" -delete -print
rm %{buildroot}%{_docdir}/%{name}/html/.buildinfo
rm %{buildroot}%{_docdir}/%{name}/html/.nojekyll
%fdupes -s %{buildroot}%{_datadir}/%{name}
%post -p /sbin/ldconfig
@ -129,7 +130,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%{_datadir}/applications/org.fontforge.FontForge.desktop
%{_datadir}/icons/hicolor/*/apps/org.fontforge.FontForge.png
%{_datadir}/icons/hicolor/scalable/apps/org.fontforge.FontForge.svg
%{_datadir}/appdata/org.fontforge.FontForge.appdata.xml
%{_datadir}/metainfo/org.fontforge.FontForge.*.xml
%{_datadir}/pixmaps/org.fontforge.FontForge.*
%{_datadir}/mime/packages/%{name}.xml
@ -142,8 +142,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%files devel
%doc CONTRIBUTING.md
%{_includedir}/fontforge/
%{_libdir}/pkgconfig/*.pc
%{_libdir}/lib*.so
%changelog

View File

@ -19,8 +19,7 @@ pushd fontforge-$VERSION
git clone https://github.com/troydhanson/uthash
git clone --depth 1 https://github.com/coreutils/gnulib.git gnulib
# remove not shippable files (bug 926061)
rm win/gold/libX11-*.noarch.rpm
./bootstrap --copy --force
# rm win/gold/libX11-*.noarch.rpm
popd
tar cJf fontforge-$VERSION-repacked.tar.xz fontforge-$VERSION
rm -rf fontforge-$VERSION

View File

@ -1,15 +0,0 @@
Index: fontforge-20190801/m4/fontforge_arg_enable.m4
===================================================================
--- fontforge-20190801.orig/m4/fontforge_arg_enable.m4
+++ fontforge-20190801/m4/fontforge_arg_enable.m4
@@ -116,8 +116,8 @@ fi
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