From a276c5e438411c36beda9fc27a3d8ff1cb662a53 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Oct 15 2017 08:25:09 +0000 Subject: Sync patches with the native package --- diff --git a/0077-truetype-Fix-loading-of-named-instances.patch b/0077-truetype-Fix-loading-of-named-instances.patch new file mode 100644 index 0000000..26fd0bc --- /dev/null +++ b/0077-truetype-Fix-loading-of-named-instances.patch @@ -0,0 +1,67 @@ +From 55bbb98f5c5a89230127d6b998a6e23e634b5d0e Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod +Date: Tue, 1 Aug 2017 09:17:02 +0200 +Subject: [PATCH 077/132] [truetype] Fix loading of named instances. + +* src/truetype/ttgxvar.c (TT_Get_MM_Var): Preserve file position +while loading the `avar' table. +--- + ChangeLog | 7 +++++++ + include/freetype/ftmm.h | 2 +- + src/truetype/ttgxvar.c | 11 ++++++++++- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h +index c41b80ea6..1f48a4945 100644 +--- a/include/freetype/ftmm.h ++++ b/include/freetype/ftmm.h +@@ -178,7 +178,7 @@ FT_BEGIN_HEADER + /* strid :: The entry in `name' table identifying this instance. */ + /* */ + /* psid :: The entry in `name' table identifying a PostScript name */ +- /* for this instance. */ ++ /* for this instance. Value 0 indicates a missing entry. */ + /* */ + typedef struct FT_Var_Named_Style_ + { +diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c +index 68458362e..df42b3bfd 100644 +--- a/src/truetype/ttgxvar.c ++++ b/src/truetype/ttgxvar.c +@@ -2139,8 +2139,16 @@ + goto Exit; + + if ( fvar_head.instanceCount && !face->blend->avar_loaded ) ++ { ++ FT_ULong offset = FT_STREAM_POS(); ++ ++ + ft_var_load_avar( face ); + ++ if ( FT_STREAM_SEEK( offset ) ) ++ goto Exit; ++ } ++ + ns = mmvar->namedstyle; + nsc = face->blend->normalized_stylecoords; + for ( i = 0; i < fvar_head.instanceCount; i++, ns++ ) +@@ -2157,6 +2165,7 @@ + for ( j = 0; j < fvar_head.axisCount; j++, c++ ) + *c = FT_GET_LONG(); + ++ /* valid psid values are 6 and [256;32767] */ + if ( usePsName ) + ns->psid = FT_GET_USHORT(); + +@@ -2174,7 +2183,7 @@ + SFNT_Service sfnt = (SFNT_Service)face->sfnt; + + FT_Int found, dummy1, dummy2; +- FT_UInt strid = 0xFFFFFFFFUL; ++ FT_UInt strid = ~0U; + + + /* the default instance is missing in array the */ +-- +2.13.5 + diff --git a/0079-src-truetype-ttgxvar.c-TT_Get_MM_Var-Fix-thinko.patch b/0079-src-truetype-ttgxvar.c-TT_Get_MM_Var-Fix-thinko.patch new file mode 100644 index 0000000..e492e58 --- /dev/null +++ b/0079-src-truetype-ttgxvar.c-TT_Get_MM_Var-Fix-thinko.patch @@ -0,0 +1,45 @@ +From 7e50824288fac5a36c2938fdb3e1c949ea53f982 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Tue, 1 Aug 2017 12:44:35 +0200 +Subject: [PATCH 079/132] * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix thinko. + +--- + ChangeLog | 4 ++++ + include/freetype/ftmm.h | 3 ++- + src/truetype/ttgxvar.c | 4 +++- + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h +index 1f48a4945..b1bc1ed82 100644 +--- a/include/freetype/ftmm.h ++++ b/include/freetype/ftmm.h +@@ -178,7 +178,8 @@ FT_BEGIN_HEADER + /* strid :: The entry in `name' table identifying this instance. */ + /* */ + /* psid :: The entry in `name' table identifying a PostScript name */ +- /* for this instance. Value 0 indicates a missing entry. */ ++ /* for this instance. Value 0xFFFF indicates a missing */ ++ /* entry. */ + /* */ + typedef struct FT_Var_Named_Style_ + { +diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c +index df42b3bfd..5a87df139 100644 +--- a/src/truetype/ttgxvar.c ++++ b/src/truetype/ttgxvar.c +@@ -2165,9 +2165,11 @@ + for ( j = 0; j < fvar_head.axisCount; j++, c++ ) + *c = FT_GET_LONG(); + +- /* valid psid values are 6 and [256;32767] */ ++ /* valid psid values are 6, [256;32767], and 0xFFFF */ + if ( usePsName ) + ns->psid = FT_GET_USHORT(); ++ else ++ ns->psid = 0xFFFF; + + ft_var_to_normalized( face, + fvar_head.axisCount, +-- +2.13.5 + diff --git a/freetype-2.5.2-more-demos.patch b/freetype-2.5.2-more-demos.patch new file mode 100644 index 0000000..e737cb7 --- /dev/null +++ b/freetype-2.5.2-more-demos.patch @@ -0,0 +1,17 @@ +--- ft2demos-2.5.2/Makefile ++++ ft2demos-2.5.2/Makefile +@@ -296,10 +296,10 @@ else + # The following programs are not compiled automatically; either comment + # out the affected line or use the program name as a Makefile target. + # +- # EXES += ftchkwd +- # EXES += ftmemchk +- # EXES += ftpatchk +- # EXES += fttimer ++ EXES += ftchkwd ++ EXES += ftmemchk ++ EXES += ftpatchk ++ EXES += fttimer + # EXES += testname + + exes: $(EXES:%=$(BIN_DIR_2)/%$E) diff --git a/freetype-2.6.5-libtool.patch b/freetype-2.6.5-libtool.patch new file mode 100644 index 0000000..4e0c2cb --- /dev/null +++ b/freetype-2.6.5-libtool.patch @@ -0,0 +1,11 @@ +--- freetype-2.8/builds/unix/freetype-config.in.orig 2017-03-30 12:20:23.000000001 +0200 ++++ freetype-2.8/builds/unix/freetype-config.in 2017-05-16 13:25:39.223041128 +0200 +@@ -205,7 +205,7 @@ if test "$echo_libs" = "yes" ; then + fi + + if test "$echo_libtool" = "yes" ; then +- echo ${SYSROOT}$libdir/libfreetype.la ++ echo "" + fi + + # EOF diff --git a/freetype-2.8-loop-counter.patch b/freetype-2.8-loop-counter.patch new file mode 100644 index 0000000..61e9052 --- /dev/null +++ b/freetype-2.8-loop-counter.patch @@ -0,0 +1,36 @@ +From 8d435c463d22f6de35015b244d6f9bb433beb7e6 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Thu, 1 Jun 2017 07:09:44 +0200 +Subject: [PATCH] * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter + again. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Problem reported by Marek Kašík . + +The problematic font that exceeds the old limit is Padauk-Bold, +version 3.002, containing bytecode generated by a buggy version of +ttfautohint. +--- + ChangeLog | 10 ++++++++++ + src/truetype/ttinterp.c | 3 +-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c +index 0c48c256..775d1104 100644 +--- a/src/truetype/ttinterp.c ++++ b/src/truetype/ttinterp.c +@@ -7649,8 +7649,7 @@ + FT_MAX( 50, + exc->cvtSize / 10 ); + else +- exc->loopcall_counter_max = FT_MAX( 100, +- 10 * exc->cvtSize ); ++ exc->loopcall_counter_max = 300 + 8 * exc->cvtSize; + + /* as a protection against an unreasonable number of CVT entries */ + /* we assume at most 100 control values per glyph for the counter */ +-- +2.13.0 + diff --git a/freetype-2.8-multilib.patch b/freetype-2.8-multilib.patch new file mode 100644 index 0000000..4f40a80 --- /dev/null +++ b/freetype-2.8-multilib.patch @@ -0,0 +1,65 @@ +--- freetype-2.8/builds/unix/freetype-config.in ++++ freetype-2.8/builds/unix/freetype-config.in +@@ -13,45 +13,25 @@ LC_ALL=C + export LC_ALL + + +-# if `pkg-config' is available, use values from `freetype2.pc' +-pkg-config --version >/dev/null 2>&1 +-if test $? -eq 0 ; then +- # note that option `--variable' is not affected by the +- # PKG_CONFIG_SYSROOT_DIR environment variable +- if test "x$SYSROOT" != "x" ; then +- PKG_CONFIG_SYSROOT_DIR="$SYSROOT" +- export PKG_CONFIG_SYSROOT_DIR +- fi +- +- prefix=`pkg-config --variable prefix freetype2` +- exec_prefix=`pkg-config --variable exec_prefix freetype2` +- +- includedir=`pkg-config --variable includedir freetype2` +- libdir=`pkg-config --variable libdir freetype2` +- +- version=`pkg-config --modversion freetype2` +- +- cflags=`pkg-config --cflags freetype2` +- dynamic_libs=`pkg-config --libs freetype2` +- static_libs=`pkg-config --static --libs freetype2` +-else +- prefix="%prefix%" +- exec_prefix="%exec_prefix%" +- +- includedir="%includedir%" +- libdir="%libdir%" +- +- version=%ft_version% +- +- cflags="-I${SYSROOT}$includedir/freetype2" +- dynamic_libs="-lfreetype" +- static_libs="%LIBSSTATIC_CONFIG%" +- if test "${SYSROOT}$libdir" != "/usr/lib" && +- test "${SYSROOT}$libdir" != "/usr/lib64" ; then +- libs_L="-L${SYSROOT}$libdir" +- fi ++# note that option `--variable' is not affected by the ++# PKG_CONFIG_SYSROOT_DIR environment variable ++if test "x$SYSROOT" != "x" ; then ++ PKG_CONFIG_SYSROOT_DIR="$SYSROOT" ++ export PKG_CONFIG_SYSROOT_DIR + fi + ++prefix=`pkg-config --variable prefix freetype2` ++exec_prefix=`pkg-config --variable exec_prefix freetype2` ++ ++includedir=`pkg-config --variable includedir freetype2` ++libdir=`pkg-config --variable libdir freetype2` ++ ++version=`pkg-config --modversion freetype2` ++ ++cflags=`pkg-config --cflags freetype2` ++dynamic_libs=`pkg-config --libs freetype2` ++static_libs=`pkg-config --static --libs freetype2` ++ + orig_prefix=$prefix + orig_exec_prefix=$exec_prefix + diff --git a/freetype-2.8-pcf-encoding.patch b/freetype-2.8-pcf-encoding.patch new file mode 100644 index 0000000..fd1c706 --- /dev/null +++ b/freetype-2.8-pcf-encoding.patch @@ -0,0 +1,58 @@ +From 082f2faf5007812bac6a1f783c7dcc6f49d761fe Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Wed, 24 May 2017 07:40:46 +0200 +Subject: [PATCH] [bdf, pcf] Support ISO646.1991-IRV character encoding (aka + ASCII). +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Problem reported by Marek Kašík , cf. + + https://bugzilla.redhat.com/show_bug.cgi?id=1451795 + +* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdrivr.c +(PCF_Face_Init): Implement it. +--- + ChangeLog | 11 +++++++++++ + src/bdf/bdfdrivr.c | 6 +++++- + src/pcf/pcfdrivr.c | 6 +++++- + 3 files changed, 21 insertions(+), 2 deletions(-) + +diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c +index a2242be0..c0a5a5c5 100644 +--- a/src/bdf/bdfdrivr.c ++++ b/src/bdf/bdfdrivr.c +@@ -545,7 +545,11 @@ THE SOFTWARE. + if ( !ft_strcmp( s, "10646" ) || + ( !ft_strcmp( s, "8859" ) && + !ft_strcmp( face->charset_encoding, "1" ) ) ) +- unicode_charmap = 1; ++ unicode_charmap = 1; ++ /* another name for ASCII */ ++ else if ( !ft_strcmp( s, "646.1991" ) && ++ !ft_strcmp( face->charset_encoding, "IRV" ) ) ++ unicode_charmap = 1; + } + + { +diff --git a/src/pcf/pcfdrivr.c b/src/pcf/pcfdrivr.c +index 9f4d36d1..50530941 100644 +--- a/src/pcf/pcfdrivr.c ++++ b/src/pcf/pcfdrivr.c +@@ -387,7 +387,11 @@ THE SOFTWARE. + if ( !ft_strcmp( s, "10646" ) || + ( !ft_strcmp( s, "8859" ) && + !ft_strcmp( face->charset_encoding, "1" ) ) ) +- unicode_charmap = 1; ++ unicode_charmap = 1; ++ /* another name for ASCII */ ++ else if ( !ft_strcmp( s, "646.1991" ) && ++ !ft_strcmp( face->charset_encoding, "IRV" ) ) ++ unicode_charmap = 1; + } + } + +-- +2.13.0 + diff --git a/mingw-freetype.spec b/mingw-freetype.spec index 2980db2..9ff0772 100644 --- a/mingw-freetype.spec +++ b/mingw-freetype.spec @@ -14,8 +14,17 @@ URL: http://www.freetype.org Source0: http://download.savannah.gnu.org/releases/freetype/freetype-%{version}.tar.bz2 # Patches from native Fedora package. -Patch21: freetype-2.3.0-enable-spr.patch -Patch46: freetype-2.2.1-enable-valid.patch +Patch0: freetype-2.3.0-enable-spr.patch +# Enable otvalid and gxvalid modules +Patch1: freetype-2.2.1-enable-valid.patch +# Enable additional demos +#Patch2: freetype-2.5.2-more-demos.patch +Patch3: freetype-2.6.5-libtool.patch +Patch4: freetype-2.8-pcf-encoding.patch +Patch5: freetype-2.8-loop-counter.patch +Patch6: 0077-truetype-Fix-loading-of-named-instances.patch +Patch7: 0079-src-truetype-ttgxvar.c-TT_Get_MM_Var-Fix-thinko.patch +Patch8: freetype-2.8-multilib.patch BuildArch: noarch @@ -73,10 +82,21 @@ Static version of the MinGW Windows Freetype library. %setup -q -n freetype-%{version} %if %{?_with_subpixel_rendering:1}%{!?_with_subpixel_rendering:0} -%patch21 -p1 -b .enable-spr +%patch0 -p1 -b .enable-spr %endif -%patch46 -p1 -b .enable-valid +%patch1 -p1 -b .enable-valid + +#pushd ft2demos-%{version} +#%patch2 -p1 -b .more-demos +#popd + +%patch3 -p1 -b .libtool +%patch4 -p1 -b .pcf-encoding +%patch5 -p1 -b .loop-counter +%patch6 -p1 -b .named-instances +%patch7 -p1 -b .named-instances2 +%patch8 -p1 -b .multilib %build @@ -129,6 +149,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw32_mandir} $RPM_BUILD_ROOT%{mingw64_mandir} %changelog * Sun Oct 15 2017 Kalev Lember - 2.8-1 - Update to 2.8 +- Sync patches with the native package * Wed Jul 26 2017 Fedora Release Engineering - 2.7.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild