diff --git a/0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch b/0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch new file mode 100644 index 0000000..4820f4f --- /dev/null +++ b/0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch @@ -0,0 +1,21 @@ +--- a/src/truetype/ttinterp.c ++++ b/src/truetype/ttinterp.c +@@ -7532,8 +7532,16 @@ + return; + } + +- for ( i = 0; i < num_axes; i++ ) +- args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */ ++ if ( coords ) ++ { ++ for ( i = 0; i < num_axes; i++ ) ++ args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */ ++ } ++ else ++ { ++ for ( i = 0; i < num_axes; i++ ) ++ args[i] = 0; ++ } + } + + diff --git a/0001-truetype-Better-protection-against-invalid-VF-data.patch b/0001-truetype-Better-protection-against-invalid-VF-data.patch new file mode 100644 index 0000000..386440f --- /dev/null +++ b/0001-truetype-Better-protection-against-invalid-VF-data.patch @@ -0,0 +1,14 @@ +--- a/src/truetype/ttgxvar.c ++++ b/src/truetype/ttgxvar.c +@@ -2821,8 +2821,9 @@ + } + } + +- /* return value -1 indicates `no change' */ +- if ( !have_diff ) ++ /* return value -1 indicates `no change'; */ ++ /* we can exit early if `normalizedcoords' is already computed */ ++ if ( blend->normalizedcoords && !have_diff ) + return -1; + + if ( FT_NEW_ARRAY( normalized, mmvar->num_axis ) ) diff --git a/bugzilla-308961-cmex-workaround.patch b/bugzilla-308961-cmex-workaround.patch index 8d9e4fe..a2a091b 100644 --- a/bugzilla-308961-cmex-workaround.patch +++ b/bugzilla-308961-cmex-workaround.patch @@ -2,11 +2,11 @@ src/base/ftobjs.c | 5 +++++ 1 file changed, 5 insertions(+) -Index: freetype-2.6.1/src/base/ftobjs.c +Index: freetype-2.9/src/base/ftobjs.c =================================================================== ---- freetype-2.6.1.orig/src/base/ftobjs.c -+++ freetype-2.6.1/src/base/ftobjs.c -@@ -2267,6 +2267,11 @@ +--- freetype-2.9.orig/src/base/ftobjs.c ++++ freetype-2.9/src/base/ftobjs.c +@@ -2540,6 +2540,11 @@ if ( FT_IS_SCALABLE( face ) ) { diff --git a/don-t-mark-libpng-as-required-library.patch b/don-t-mark-libpng-as-required-library.patch index 11760ec..e26664d 100644 --- a/don-t-mark-libpng-as-required-library.patch +++ b/don-t-mark-libpng-as-required-library.patch @@ -1,8 +1,8 @@ -Index: freetype-2.6.1/builds/unix/configure +Index: freetype-2.9/builds/unix/configure =================================================================== ---- freetype-2.6.1.orig/builds/unix/configure -+++ freetype-2.6.1/builds/unix/configure -@@ -14096,7 +14096,6 @@ esac +--- freetype-2.9.orig/builds/unix/configure ++++ freetype-2.9/builds/unix/configure +@@ -14487,7 +14487,6 @@ esac # entries in Requires.private are separated by commas; REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ @@ -10,7 +10,7 @@ Index: freetype-2.6.1/builds/unix/configure $harfbuzz_reqpriv" # beautify REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVATE" \ -@@ -14110,7 +14109,6 @@ REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVAT +@@ -14501,7 +14500,6 @@ REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVAT LIBS_PRIVATE="$zlib_libspriv \ $bzip2_libspriv \ @@ -18,7 +18,7 @@ Index: freetype-2.6.1/builds/unix/configure $harfbuzz_libspriv \ $ft2_extra_libs" # beautify -@@ -14122,7 +14120,6 @@ LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \ +@@ -14513,7 +14511,6 @@ LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \ LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ @@ -26,11 +26,11 @@ Index: freetype-2.6.1/builds/unix/configure $harfbuzz_libsstaticconf \ $ft2_extra_libs" # remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later -Index: freetype-2.6.1/builds/unix/configure.raw +Index: freetype-2.9/builds/unix/configure.raw =================================================================== ---- freetype-2.6.1.orig/builds/unix/configure.raw -+++ freetype-2.6.1/builds/unix/configure.raw -@@ -918,7 +918,6 @@ esac +--- freetype-2.9.orig/builds/unix/configure.raw ++++ freetype-2.9/builds/unix/configure.raw +@@ -938,7 +938,6 @@ esac # entries in Requires.private are separated by commas; REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ @@ -38,7 +38,7 @@ Index: freetype-2.6.1/builds/unix/configure.raw $harfbuzz_reqpriv" # beautify REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVATE" \ -@@ -932,7 +931,6 @@ REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVAT +@@ -952,7 +951,6 @@ REQUIRES_PRIVATE=`echo "$REQUIRES_PRIVAT LIBS_PRIVATE="$zlib_libspriv \ $bzip2_libspriv \ @@ -46,7 +46,7 @@ Index: freetype-2.6.1/builds/unix/configure.raw $harfbuzz_libspriv \ $ft2_extra_libs" # beautify -@@ -944,7 +942,6 @@ LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \ +@@ -964,7 +962,6 @@ LIBS_PRIVATE=`echo "$LIBS_PRIVATE" \ LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ diff --git a/enable-long-family-names-by-default.patch b/enable-long-family-names-by-default.patch new file mode 100644 index 0000000..baf1d25 --- /dev/null +++ b/enable-long-family-names-by-default.patch @@ -0,0 +1,11 @@ +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -856,7 +856,7 @@ FT_BEGIN_HEADER + /* If this option is activated, it can be controlled with the */ + /* `no-long-family-names' property of the pcf driver module. */ + /* */ +-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ ++#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES + + + /*************************************************************************/ diff --git a/freetype-2.7.1.tar.bz2 b/freetype-2.7.1.tar.bz2 deleted file mode 100644 index 1803eaa..0000000 --- a/freetype-2.7.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a3bb2c4e15ffb433f2032f50a5b5a92558206822e22bfe8cbe339af4aa82f88 -size 1825107 diff --git a/freetype-2.9.tar.bz2 b/freetype-2.9.tar.bz2 new file mode 100644 index 0000000..570003d --- /dev/null +++ b/freetype-2.9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6ffba3c8cef93f557d1f767d7bc3dee860ac7a3aaff588a521e081bc36f4c8a +size 1915013 diff --git a/freetype-doc-2.7.1.tar.bz2 b/freetype-doc-2.7.1.tar.bz2 deleted file mode 100644 index ab444c7..0000000 --- a/freetype-doc-2.7.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e09cf22d1c98006fe3af160b7c3b7c847e4a3743963d6d89314d350b859dfb0 -size 2127460 diff --git a/freetype-doc-2.9.tar.bz2 b/freetype-doc-2.9.tar.bz2 new file mode 100644 index 0000000..59f1a64 --- /dev/null +++ b/freetype-doc-2.9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bbc3b067a465ae62484ba097c6d468ab0724c30b3d6329c77324c8901d03d78 +size 2128135 diff --git a/freetype2.changes b/freetype2.changes index 9e98b14..adeb0c7 100644 --- a/freetype2.changes +++ b/freetype2.changes @@ -1,3 +1,118 @@ +------------------------------------------------------------------- +Fri Feb 9 11:11:36 UTC 2018 - fstrba@suse.com + +- Added patch: + * enable-long-family-names-by-default.patch + + Define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES to obtain 2.7.1 + behaviour + +------------------------------------------------------------------- +Wed Feb 7 09:17:10 UTC 2018 - fstrba@suse.com + +- Added patches: + * 0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch + + Upstream fix for bsc#1079603: Avoid NULL reference in + src/truetype/ttinterp.c + * 0001-truetype-Better-protection-against-invalid-VF-data.patch + + Upstream fix for bsc#1079601: Protection against invalid VF + data + +------------------------------------------------------------------- +Wed Jan 10 10:32:25 UTC 2018 - idonmez@suse.com + +- Add psaux-flex.patch to fix a regression in Type1 rendering + +------------------------------------------------------------------- +Tue Jan 9 11:34:51 UTC 2018 - idonmez@suse.com + +- Update to version 2.9 + * Advance width values of variation fonts were often wrong. + * More fixes for variation font support; you should update to + this version if you want to support them. + * As a GSoC project, Ewald Hew extended the new (Adobe) CFF + engine to handle Type 1 fonts also, thus greatly improving + the rendering of this format. This is the new default. + * A new function, `FT_Set_Named_Instance', can be used to set + or change the current named instance. + * Starting with this FreeType version, resetting variation + coordinates will return to the currently selected named + instance. Previously, FreeType returned to the base font + (i.e., no instance set). + * Some fuzzer fixes to better reject malformed fonts. + +------------------------------------------------------------------- +Mon Sep 18 09:15:41 UTC 2017 - idonmez@suse.com + +- Update to version 2.8.1 + * B/W hinting of TrueType fonts didn't work properly if + interpreter version 38 or 40 was selected. + * Some severe problems within the handling of TrueType Variation + Fonts were found and fixed. + * Function `FT_Set_Var_Design_Coordinates' didn't correctly handle + the case with less input coordinates than axes. + * By default, FreeType now offers high quality LCD-optimized + output without resorting to ClearType techniques of resolution + tripling and filtering. In this method, called Harmony, each + color channel is generated separately after shifting the glyph + outline, capitalizing on the fact that the color grids on LCD + panels are shifted by a third of a pixel. This output is + indistinguishable from ClearType with a light 3-tap filter. + * Using the new function `FT_Get_Var_Axis_Flags', an application + can access the `flags' field of a variation axis (introduced in + OpenType version 1.8.2) + * FreeType now synthesizes a missing Unicode cmap for (older) + TrueType fonts also if glyph names are available. + * The warping option has moved from `light' to `normal' hinting + where it replaces the original hinting algorithm. The `light' + mode is now always void of any hinting in x-direction. + +------------------------------------------------------------------- +Mon May 15 10:36:18 UTC 2017 - idoenmez@suse.de + +- Update to version 2.8 + * Support for OpenType Variation Fonts is now complete. The last + missing part was handling the `VVAR' and `MVAR' tables, which is + available with this release. + + * A new function `FT_Face_Properties' allows the control of some + module and library properties per font. Currently, the + following properties can be handled: stem darkening, LCD filter + weights, and the random seed for the `random' CFF operator. + + * The PCF change to show more `colourful' family names (introduced + in version 2.7.1) was too radical; it can now be configured with + PCF_CONFIG_OPTION_LONG_FAMILY_NAMES at compile time. If + activated, it can be switched off at run time with the new pcf + property `no-long-family-names'. If the `FREETYPE_PROPERTIES' + environment variable is available, you can say + + FREETYPE_PROPERTIES=pcf:no-long-family-names=1 + * Support for the following scripts has been added to the + auto-hinter. + + Adlam, Avestan, Bamum, Buhid, Carian, Chakma, Coptic, Cypriot, + Deseret, Glagolitic, Gothic, Kayah, Lisu, N'Ko, Ol Chiki, Old + Turkic, Osage, Osmanya, Saurashtra, Shavian, Sundanese, Tai + Viet, Tifinagh, Unified Canadian Syllabics, Vai + + * `Light' auto-hinting mode no longer uses TrueType metrics for + TrueType fonts. This bug was introduced in version 2.4.6, + causing horizontal scaling also. Almost all GNU/Linux + distributions (with Fedora as a notable exception) disabled the + corresponding patch for good reasons; chances are thus high that + you won't notice a difference. + + * If a TrueType font gets loaded with FT_LOAD_NO_HINTING, FreeType + now scales the font linearly again (bug introduced in version + 2.4.6). + + * Fixed CVE-2017-8105, CVE-2017-8287: Older FreeType versions + have out-of-bounds writes caused by heap-based buffer overflows + related to Type 1 fonts. (boo#1035807, boo#1036457) + +- See https://sourceforge.net/projects/freetype/files/freetype2/2.8/ for + the complete changelog. + ------------------------------------------------------------------- Sun Jan 1 11:58:27 UTC 2017 - idonmez@suse.com diff --git a/freetype2.spec b/freetype2.spec index 20bb4bd..c096288 100644 --- a/freetype2.spec +++ b/freetype2.spec @@ -1,7 +1,7 @@ # # spec file for package freetype2 # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,20 +17,25 @@ # -%define doc_version 2.7.1 +%define doc_version 2.9 Name: freetype2 -Version: 2.7.1 +Version: 2.9 Release: 0 Summary: A TrueType Font Library License: SUSE-Freetype or GPL-2.0+ Group: System/Libraries -Url: http://www.freetype.org -Source0: http://download.savannah.gnu.org/releases/freetype/freetype-%{version}.tar.bz2 -Source1: http://download.savannah.gnu.org/releases/freetype/freetype-doc-%{doc_version}.tar.bz2 +Url: https://www.freetype.org +Source0: https://download.savannah.gnu.org/releases/freetype/freetype-%{version}.tar.bz2 +Source1: https://download.savannah.gnu.org/releases/freetype/freetype-doc-%{doc_version}.tar.bz2 Source3: baselibs.conf +Patch0: bugzilla-308961-cmex-workaround.patch # PATCH-FIX-OPENSUSE don-t-mark-libpng-as-required-library.patch -- it is private in .pc -Patch202: don-t-mark-libpng-as-required-library.patch -Patch308961: bugzilla-308961-cmex-workaround.patch +Patch1: don-t-mark-libpng-as-required-library.patch +# PATCH-FIX-UPSTREAM psaux-flex.patch -- Upstream commit cc2f3cdecff5a351e7e8961b9f2e389ab740231a +Patch2: psaux-flex.patch +Patch3: 0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch +Patch4: 0001-truetype-Better-protection-against-invalid-VF-data.patch +Patch5: enable-long-family-names-by-default.patch BuildRequires: gawk BuildRequires: libbz2-devel BuildRequires: libpng-devel @@ -80,8 +85,12 @@ It also contains a small tutorial for using that library. %prep %setup -q -n freetype-%{version} -a 1 -%patch308961 -p 1 -%patch202 -p1 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build export CFLAGS="%{optflags} -std=gnu99 -D_GNU_SOURCE $(getconf LFS_CFLAGS)" diff --git a/ft2demos-2.7.1.tar.bz2 b/ft2demos-2.7.1.tar.bz2 deleted file mode 100644 index 984fffa..0000000 --- a/ft2demos-2.7.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d3f8a0d5a3f0d58701133458a8c1d3f97f658869f3c904b1fda447ed3b290ecd -size 222288 diff --git a/ft2demos-2.9.tar.bz2 b/ft2demos-2.9.tar.bz2 new file mode 100644 index 0000000..f03523d --- /dev/null +++ b/ft2demos-2.9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:874b20b6ebe514ba6acf9f6d1d63df21723206996179198121a68fd1f86cdee7 +size 230926 diff --git a/ft2demos.changes b/ft2demos.changes index edde3b1..b0df65d 100644 --- a/ft2demos.changes +++ b/ft2demos.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Tue Jan 9 11:36:27 UTC 2018 - idonmez@suse.com + +- Update to version 2.9 + * The `ftbench' demo program has a new test for opening a new + face and loading some glyphs. + * The `ftbench' demo program has a new option `-j' to specify + the last glyph index to be used in the tests. + * The `ftgrid' demo program has a new option `-n' to suppress + display of named instances of variation fonts. + * The `ttdebug' demo program can now show a stack trace (key `K') + and switch between hexadecimal and decimal display of integers + (key `I'). + +------------------------------------------------------------------- +Mon Sep 18 09:17:19 UTC 2017 - idonmez@suse.com + +- Update to version 2.8.1 + * The ftgrid demo program can now toggle the display of grid lines + with the G key. + * The ftgrid demo program can toggle a different set of colors + (suitable to color-blind people) with the C key. + * The ftgrid demo program now supports the -e command line option + to select a cmap. + * The ftdump demo program has a new command line option -t to + output the SFNT table list. + +------------------------------------------------------------------- +Mon May 15 10:41:10 UTC 2017 - idonmez@suse.com + +- A mode to display light auto-hinting with sub-pixel positioning + has been added to `ftdiff'. + ------------------------------------------------------------------- Mon Apr 3 16:08:34 UTC 2017 - fstrba@suse.com diff --git a/ft2demos.spec b/ft2demos.spec index 5332dcd..bf0498d 100644 --- a/ft2demos.spec +++ b/ft2demos.spec @@ -1,7 +1,7 @@ # # spec file for package ft2demos # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,16 @@ # -%define freetype_version 2.7.1 +%define freetype_version 2.9 Name: ft2demos -Version: 2.7.1 +Version: 2.9 Release: 0 Summary: Freetype2 Utilities and Demo Programs License: GPL-2.0+ Group: Productivity/Publishing/Other -Url: http://www.freetype.org -Source0: http://savannah.nongnu.org/download/freetype/freetype-%{freetype_version}.tar.bz2 -Source1: http://savannah.nongnu.org/download/freetype/ft2demos-%{version}.tar.bz2 +Url: https://www.freetype.org +Source0: https://savannah.nongnu.org/download/freetype/freetype-%{freetype_version}.tar.bz2 +Source1: https://savannah.nongnu.org/download/freetype/ft2demos-%{version}.tar.bz2 Source1000: bnc628213_test.otf Source1004: bnc629447_sigsegv31.ttf Source1013: bnc633938_badbdf.0 @@ -183,7 +183,7 @@ pushd .. cd ft2demos-%{version} make %{?_smp_mflags} - cd src + cd src/ftinspect qmake-qt5 ftinspect.pro make popd @@ -192,7 +192,7 @@ popd mkdir -p %{buildroot}%{_bindir} pushd ../ft2demos-%{version}/bin/.libs install -m 755 ft* %{buildroot}%{_bindir} - install -m 755 ../../src/ftinspect %{buildroot}%{_bindir} + install -m 755 ../../src/ftinspect/ftinspect %{buildroot}%{_bindir} popd %check diff --git a/psaux-flex.patch b/psaux-flex.patch new file mode 100644 index 0000000..96c847e --- /dev/null +++ b/psaux-flex.patch @@ -0,0 +1,36 @@ +From cc2f3cdecff5a351e7e8961b9f2e389ab740231a Mon Sep 17 00:00:00 2001 +From: Ewald Hew +Date: Wed, 10 Jan 2018 13:24:56 +0800 +Subject: [psaux] Correctly handle Flex features (#52846). + +* src/psaux/psintrp.c (cf2_interpT2CharString) : Do not move if doing Flex. +--- + ChangeLog | 7 +++++++ + src/psaux/psintrp.c | 6 ++++-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +Index: freetype-2.9/src/psaux/psintrp.c +=================================================================== +--- freetype-2.9.orig/src/psaux/psintrp.c ++++ freetype-2.9/src/psaux/psintrp.c +@@ -852,7 +852,8 @@ + + curY = ADD_INT32( curY, cf2_stack_popFixed( opStack ) ); + +- cf2_glyphpath_moveTo( &glyphPath, curX, curY ); ++ if ( !decoder->flex_state ) ++ cf2_glyphpath_moveTo( &glyphPath, curX, curY ); + + break; + +@@ -2674,7 +2675,8 @@ + + curX = ADD_INT32( curX, cf2_stack_popFixed( opStack ) ); + +- cf2_glyphpath_moveTo( &glyphPath, curX, curY ); ++ if ( !decoder->flex_state ) ++ cf2_glyphpath_moveTo( &glyphPath, curX, curY ); + + break; +