From ece9fc05b1b7410c50a51a00daee8853bc23451d Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 24 Dec 2015 00:25:30 +0100 Subject: [PATCH] added bootstrap package for mingw-w64-freetype2 --- ...0001-Enable-table-validation-modules.patch | 34 +++++++++++ .../0002-Enable-subpixel-rendering.patch | 25 ++++++++ .../0003-Enable-subpixel-hinting.patch | 25 ++++++++ ...ask-subpixel-hinting-with-an-env-var.patch | 31 ++++++++++ freetype2/mingw-w64-bootstrap/PKGBUILD | 61 +++++++++++++++++++ freetype2/mingw-w64/PKGBUILD | 10 +-- pkgbuilds.pro | 7 ++- 7 files changed, 187 insertions(+), 6 deletions(-) create mode 100644 freetype2/mingw-w64-bootstrap/0001-Enable-table-validation-modules.patch create mode 100644 freetype2/mingw-w64-bootstrap/0002-Enable-subpixel-rendering.patch create mode 100644 freetype2/mingw-w64-bootstrap/0003-Enable-subpixel-hinting.patch create mode 100644 freetype2/mingw-w64-bootstrap/0004-Mask-subpixel-hinting-with-an-env-var.patch create mode 100644 freetype2/mingw-w64-bootstrap/PKGBUILD diff --git a/freetype2/mingw-w64-bootstrap/0001-Enable-table-validation-modules.patch b/freetype2/mingw-w64-bootstrap/0001-Enable-table-validation-modules.patch new file mode 100644 index 00000000..4ed7dd81 --- /dev/null +++ b/freetype2/mingw-w64-bootstrap/0001-Enable-table-validation-modules.patch @@ -0,0 +1,34 @@ +From 27f765b5f41638de36de728e9018a1400b0be615 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:40:29 +0200 +Subject: [PATCH 1/4] Enable table validation modules + +--- + modules.cfg | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.cfg b/modules.cfg +index 2984e51..a5db21d 100644 +--- a/modules.cfg ++++ b/modules.cfg +@@ -110,7 +110,7 @@ RASTER_MODULES += smooth + AUX_MODULES += cache + + # TrueType GX/AAT table validation. Needs ftgxval.c below. +-# AUX_MODULES += gxvalid ++AUX_MODULES += gxvalid + + # Support for streams compressed with gzip (files with suffix .gz). + # +@@ -129,7 +129,7 @@ AUX_MODULES += bzip2 + + # OpenType table validation. Needs ftotval.c below. + # +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # +-- +2.6.0 + diff --git a/freetype2/mingw-w64-bootstrap/0002-Enable-subpixel-rendering.patch b/freetype2/mingw-w64-bootstrap/0002-Enable-subpixel-rendering.patch new file mode 100644 index 00000000..acc0475c --- /dev/null +++ b/freetype2/mingw-w64-bootstrap/0002-Enable-subpixel-rendering.patch @@ -0,0 +1,25 @@ +From 27d96091b2bb0a825cbd62a332ef918f39c6126f Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:43:07 +0200 +Subject: [PATCH 2/4] Enable subpixel rendering + +--- + include/freetype/config/ftoption.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h +index 4970945..ab407e3 100644 +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -92,7 +92,7 @@ FT_BEGIN_HEADER + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ +-- +2.6.0 + diff --git a/freetype2/mingw-w64-bootstrap/0003-Enable-subpixel-hinting.patch b/freetype2/mingw-w64-bootstrap/0003-Enable-subpixel-hinting.patch new file mode 100644 index 00000000..00a5c2f7 --- /dev/null +++ b/freetype2/mingw-w64-bootstrap/0003-Enable-subpixel-hinting.patch @@ -0,0 +1,25 @@ +From f96a1d21d787b173d6293330fbf782b977194aa7 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:43:57 +0200 +Subject: [PATCH 3/4] Enable subpixel hinting + +--- + include/freetype/config/ftoption.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h +index ab407e3..a2eab6a 100644 +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -602,7 +602,7 @@ FT_BEGIN_HEADER + /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ + /* defined. */ + /* */ +-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ ++#define TT_CONFIG_OPTION_SUBPIXEL_HINTING + + + /*************************************************************************/ +-- +2.6.0 + diff --git a/freetype2/mingw-w64-bootstrap/0004-Mask-subpixel-hinting-with-an-env-var.patch b/freetype2/mingw-w64-bootstrap/0004-Mask-subpixel-hinting-with-an-env-var.patch new file mode 100644 index 00000000..ec891048 --- /dev/null +++ b/freetype2/mingw-w64-bootstrap/0004-Mask-subpixel-hinting-with-an-env-var.patch @@ -0,0 +1,31 @@ +From bb5ece9c6773145c8342107bd32fcacbc4b212ab Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:34:54 +0200 +Subject: [PATCH 4/4] Mask subpixel hinting with an env var + +--- + src/truetype/ttobjs.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c +index 6060d6f..3fa98e7 100644 +--- a/src/truetype/ttobjs.c ++++ b/src/truetype/ttobjs.c +@@ -1302,10 +1302,11 @@ + TT_Driver driver = (TT_Driver)ttdriver; + + #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING +- driver->interpreter_version = TT_INTERPRETER_VERSION_38; +-#else +- driver->interpreter_version = TT_INTERPRETER_VERSION_35; ++ if ( getenv( "FT2_SUBPIXEL_HINTING" ) ) ++ driver->interpreter_version = TT_INTERPRETER_VERSION_38; ++ else + #endif ++ driver->interpreter_version = TT_INTERPRETER_VERSION_35; + + #else /* !TT_USE_BYTECODE_INTERPRETER */ + +-- +2.6.0 + diff --git a/freetype2/mingw-w64-bootstrap/PKGBUILD b/freetype2/mingw-w64-bootstrap/PKGBUILD new file mode 100644 index 00000000..694ef375 --- /dev/null +++ b/freetype2/mingw-w64-bootstrap/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Martchus +pkgname=mingw-w64-freetype2-bootstrap +pkgver=2.6.2 +pkgrel=1 +pkgdesc="TrueType font rendering library (mingw-w64 bootstrap)" +arch=('any') +url="http://www.freetype.org/" +license=('GPL') +# adding harfbuzz for improved OpenType features auto-hinting +# introduces a cycle dep to harfbuzz depending on freetype wanted by upstream +depends=(mingw-w64-crt mingw-w64-zlib mingw-w64-bzip2) +makedepends=(mingw-w64-gcc mingw-w64-configure) +provides=(${pkgname%-bootstrap}) +conflicts=(${pkgname%-bootstrap}) +source=(http://download.savannah.gnu.org/releases/freetype/freetype-${pkgver}.tar.bz2{,.sig} + 0001-Enable-table-validation-modules.patch + 0002-Enable-subpixel-rendering.patch + 0003-Enable-subpixel-hinting.patch + 0004-Mask-subpixel-hinting-with-an-env-var.patch) +options=(!strip !buildflags !libtool staticlibs) +sha1sums=('29c22b85b77cb22cf95c13e7062e21f39fe6b17a' + 'SKIP' + '1c7bc438df0428a63f881e7e4343b22c5b09ecb1' + 'e2d2b8c4847ab9cfd497179c7140835e99ece711' + 'ebe3d7a6fc41304a77c23cb56e94dc718146d963' + 'f50c70080f3fbee45b9c4264d8ae37eb4f1ac335') +validpgpkeys=('58E0C111E39F5408C5D3EC76C1A60EACE707FDA5') + +_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + +prepare() { + cd "${srcdir}/freetype-${pkgver}" + patch -Np1 -i "${srcdir}/0001-Enable-table-validation-modules.patch" + patch -Np1 -i "${srcdir}/0002-Enable-subpixel-rendering.patch" + + # https://bugs.archlinux.org/task/35274 + patch -Np1 -i "${srcdir}/0003-Enable-subpixel-hinting.patch" + # Provide a way to enable the above patch at runtime. + # Hopefully just a temporary measure until fontconfig picks up + # the necessary configurables. + patch -Np1 -i "${srcdir}/0004-Mask-subpixel-hinting-with-an-env-var.patch" +} + +build() { + for _arch in ${_architectures}; do + mkdir -p "${srcdir}/freetype-${pkgver}/build-${_arch}" + cd "${srcdir}/freetype-${pkgver}/build-${_arch}" + ${_arch}-configure --with-zlib=/usr/${_arch} --without-png + make + done +} + +package() { + for _arch in ${_architectures}; do + cd "${srcdir}/freetype-${pkgver}/build-${_arch}" + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}/usr/${_arch}/share/" + ${_arch}-strip -g "${pkgdir}/usr/${_arch}/lib/"*.a + ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll + done +} diff --git a/freetype2/mingw-w64/PKGBUILD b/freetype2/mingw-w64/PKGBUILD index caf4d5a0..109189d4 100644 --- a/freetype2/mingw-w64/PKGBUILD +++ b/freetype2/mingw-w64/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Martchus pkgname=mingw-w64-freetype2 pkgver=2.6.2 -pkgrel=1 +pkgrel=2 pkgdesc="TrueType font rendering library (mingw-w64)" arch=('any') url="http://www.freetype.org/" @@ -10,9 +10,9 @@ license=('GPL') # introduces a cycle dep to harfbuzz depending on freetype wanted by upstream depends=(mingw-w64-crt mingw-w64-zlib mingw-w64-harfbuzz mingw-w64-bzip2) makedepends=(mingw-w64-gcc mingw-w64-configure) -provides=(mingw-w64-freetype) -replaces=(mingw-w64-freetype) -conflicts=(mingw-w64-freetype) +provides=($pkgname-bootstrap) +replaces=($pkgname-bootstrap) +conflicts=($pkgname-bootstrap) source=(http://download.savannah.gnu.org/releases/freetype/freetype-${pkgver}.tar.bz2{,.sig} 0001-Enable-table-validation-modules.patch 0002-Enable-subpixel-rendering.patch @@ -51,7 +51,7 @@ build() { done } -package () { +package() { for _arch in ${_architectures}; do cd "${srcdir}/freetype-${pkgver}/build-${_arch}" make DESTDIR="${pkgdir}" install diff --git a/pkgbuilds.pro b/pkgbuilds.pro index 058d850e..8a53cc60 100644 --- a/pkgbuilds.pro +++ b/pkgbuilds.pro @@ -66,4 +66,9 @@ OTHER_FILES += \ freetype2/mingw-w64/0001-Enable-table-validation-modules.patch \ freetype2/mingw-w64/0002-Enable-subpixel-rendering.patch \ freetype2/mingw-w64/0003-Enable-subpixel-hinting.patch \ - freetype2/mingw-w64/0004-Mask-subpixel-hinting-with-an-env-var.patch + freetype2/mingw-w64/0004-Mask-subpixel-hinting-with-an-env-var.patch \ + freetype2/mingw-w64-bootstrap/PKGBUILD \ + freetype2/mingw-w64-bootstrap/0001-Enable-table-validation-modules.patch \ + freetype2/mingw-w64-bootstrap/0002-Enable-subpixel-rendering.patch \ + freetype2/mingw-w64-bootstrap/0003-Enable-subpixel-hinting.patch \ + freetype2/mingw-w64-bootstrap/0004-Mask-subpixel-hinting-with-an-env-var.patch