%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%bcond_with subpixel_rendering

Summary: FreeType 2 library
Summary(ja): FreeType 2 ライブラリ
Name: freetype2
Version: 2.4.12
Release: 1%{?_dist_release}
License: GPL/FTL dual license
URL: http://www.freetype.org/
Group: System Environment/Libraries

Source: freetype-%{version}.tar.bz2
Source1: freetype-doc-%{version}.tar.bz2
Source2: ft2demos-%{version}.tar.bz2

# enable subpixel rendering
Patch21: freetype-2.3.0-enable-spr.patch
# Enable otvalid and gxvalid modules
Patch46:  freetype-2.2.1-enable-valid.patch
# Fix multilib conflicts
Patch88:  freetype-multilib.patch
# Fix crash https://bugs.freedesktop.org/show_bug.cgi?id=6841
Patch89:  freetype-2.2.1-memcpy-fix.patch

Patch200: freetype-2.1.10-slight-embolden.patch
Patch201: freetype-2.4.12-x86_64-invalid_outline.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-root

BuildRequires: zlib-devel
BuildRequires: bzip2-devel
BuildRequires: libX11-devel
Requires: zlib
Requires: bzip2

%description
The FreeType project is a team of volunteers who develop free,
portable and high-quality software solutions for digital typography.
They specifically target embedded systems and focus on bringing small,
efficient and ubiquitous products.

The FreeType 2 library is their new software font engine. It has been
designed to provide the following important features:
 * A universal and simple API to manage font files
 * Support for several font formats through loadable modules
 * High-quality anti-aliasing
 * High portability & performance

Supported font formats include:
 * TrueType files (.ttf) and collections (.ttc)
 * Type 1 font files both in ASCII (.pfa) or binary (.pfb) format
 * Type 1 Multiple Master fonts. The FreeType 2 API also provides
   routines to manage design instances easily
 * Type 1 CID-keyed fonts
 * OpenType/CFF (.otf) fonts
 * CFF/Type 2 fonts
 * Adobe CEF fonts (.cef), used to embed fonts in SVG documents with
   the Adobe SVG viewer plugin. 
 * Windows FNT/FON bitmap fonts

This package contains the files needed to run programs that use the
FreeType 2 library.


%package demos
Summary: A collection of FreeType demos
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Obsoletes: freetype-utils < 2.0
Provides: freetype-utils = %{version}

%description demos
A collection of FreeType demos.


%package -n compat32-%{name}
Summary: FreeType 2 library
Summary(ja): FreeType 2 ライブラリ
Group: System Environment/Libraries
Requires:	%{name} = %{version}-%{release}


%description -n compat32-%{name}
The FreeType project is a team of volunteers who develop free,
portable and high-quality software solutions for digital typography.
They specifically target embedded systems and focus on bringing small,
efficient and ubiquitous products.

The FreeType 2 library is their new software font engine. It has been
designed to provide the following important features:
 * A universal and simple API to manage font files
 * Support for several font formats through loadable modules
 * High-quality anti-aliasing
 * High portability & performance

Supported font formats include:
 * TrueType files (.ttf) and collections (.ttc)
 * Type 1 font files both in ASCII (.pfa) or binary (.pfb) format
 * Type 1 Multiple Master fonts. The FreeType 2 API also provides
   routines to manage design instances easily
 * Type 1 CID-keyed fonts
 * OpenType/CFF (.otf) fonts
 * CFF/Type 2 fonts
 * Adobe CEF fonts (.cef), used to embed fonts in SVG documents with
   the Adobe SVG viewer plugin. 
 * Windows FNT/FON bitmap fonts

This package contains the files needed to run programs that use the
FreeType 2 library.


%package devel
Summary:	Development files for FreeType 2 library
Summary(ja):	FreeType 2 ライブラリの開発ファイル
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}
Requires:	zlib-devel
Requires:	bzip2-devel


%description devel
The FreeType project is a team of volunteers who develop free,
portable and high-quality software solutions for digital typography.
They specifically target embedded systems and focus on bringing small,
efficient and ubiquitous products.

The FreeType 2 library is their new software font engine. It has been
designed to provide the following important features:
 * A universal and simple API to manage font files
 * Support for several font formats through loadable modules
 * High-quality anti-aliasing
 * High portability & performance

Supported font formats include:
 * TrueType files (.ttf) and collections (.ttc)
 * Type 1 font files both in ASCII (.pfa) or binary (.pfb) format
 * Type 1 Multiple Master fonts. The FreeType 2 API also provides
   routines to manage design instances easily
 * Type 1 CID-keyed fonts
 * OpenType/CFF (.otf) fonts
 * CFF/Type 2 fonts
 * Adobe CEF fonts (.cef), used to embed fonts in SVG documents with
   the Adobe SVG viewer plugin. 
 * Windows FNT/FON bitmap fonts

This package contains all supplementary files (static library, headers
and documentation) you need to develop your own programs using the
FreeType 2 library.


%package -n compat32-%{name}-devel
Summary:	FreeType 2 library
Summary(ja):	FreeType 2 ライブラリ
Group:		Development/Libraries
Requires:	compat32-%{name} = %{version}-%{release}
Requires:	%{name}-devel    = %{version}-%{release}
Requires:	compat32-zlib-devel
Requires:	compat32-bzip2-devel

%description -n compat32-%{name}-devel
The FreeType project is a team of volunteers who develop free,
portable and high-quality software solutions for digital typography.
They specifically target embedded systems and focus on bringing small,
efficient and ubiquitous products.

The FreeType 2 library is their new software font engine. It has been
designed to provide the following important features:
 * A universal and simple API to manage font files
 * Support for several font formats through loadable modules
 * High-quality anti-aliasing
 * High portability & performance

Supported font formats include:
 * TrueType files (.ttf) and collections (.ttc)
 * Type 1 font files both in ASCII (.pfa) or binary (.pfb) format
 * Type 1 Multiple Master fonts. The FreeType 2 API also provides
   routines to manage design instances easily
 * Type 1 CID-keyed fonts
 * OpenType/CFF (.otf) fonts
 * CFF/Type 2 fonts
 * Adobe CEF fonts (.cef), used to embed fonts in SVG documents with
   the Adobe SVG viewer plugin. 
 * Windows FNT/FON bitmap fonts

This package contains all supplementary files (static library, headers
and documentation) you need to develop your own programs using the
FreeType 2 library.

%package static
Summary:	Static ilbrary for FreeType 2
Summary(ja):	FreeType 2 のスタティックライブラリ
Group:		Development/Libraries
Requires:	%{name}-devel = %{version}-%{release}

%description static
This package contains the static library for %{name}

%prep
%setup -q -n freetype-%{version} -b 1 -a 2

%if %{with subpixel_rendering}
%patch21 -p1 -b .enable-spr
%endif

%patch46 -p1 -b .enable-valid
%patch88 -p1 -b .multilib
%patch89 -p1 -b .memcpy

%patch200 -p1 -b .slight-embolden

%ifarch x86_64
%patch201 -p1 -b .invalid_outline
%endif

%build
%configure
%__make %{?_smp_mflags}

# Build demos
pushd ft2demos-%{version}
make TOP_DIR=".."
popd


%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT

%makeinstall gnulocaledir=$RPM_BUILD_ROOT%{_datadir}/locale

for ftdemo in ftbench ftdump ftlint ftvalid ftdiff ftgamma ftgrid ftmulti ftstring ftview
do
  builds/unix/libtool --mode=install install -m 755 ft2demos-%{version}/bin/$ftdemo $RPM_BUILD_ROOT/%{_bindir}
done

## remove unuse files
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la


%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT


%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post -n compat32-%{name} -p /sbin/ldconfig

%postun -n compat32-%{name} -p /sbin/ldconfig

%files
%defattr(-, root, root)
%{_libdir}/*.so*
%doc docs

%files devel
%defattr(-, root, root)
%{_bindir}/freetype-config
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/*
%{_datadir}/aclocal/freetype2.m4

%files static
%defattr(-, root, root)
%{_libdir}/*.a

%files demos
%defattr(-,root,root)
%{_bindir}/ftbench
%{_bindir}/ftdump
%{_bindir}/ftlint
%{_bindir}/ftvalid
%{_bindir}/ftdiff
%{_bindir}/ftgamma
%{_bindir}/ftgrid
%{_bindir}/ftmulti
%{_bindir}/ftstring
%{_bindir}/ftview

%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-, root, root)
%{_libdir}/*.so*

%files -n compat32-%{name}-devel
%defattr(-, root, root)
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%endif

%changelog
* Sun May 19 2013 Toshiharu Kudoh <toshi.kd2@gmail.com> 2.4.12-1
- new upstream release
- refreshed Patch88, 201

* Sat Dec 22 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> 2.4.11-1
- new upstream release

* Sun Sep 23 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> 2.4.10-1
- new upstream release
- updated Patch201

* Fri Dec 23 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 2.4.8-1
- new upstream release
- add BuildRequires: bzip2-devel
- add Requires: bzip2-devel (-devel package)

* Wed Sep 28 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 2.4.6-1
- new upstream release

* Fri Dec 03 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.4.4-1
- new upstream release

* Tue Sep 21 2010 IWAI, Masaharu <iwai@alib.jp> 2.4.2-2
- build with rpm-4.8.1-1 for pkg-config file

* Mon Aug 16 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.4.2-1
- new upstream release

* Tue Jul 27 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.4.1-1
- new upstream release

* Thu Jul 15 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.4.0-1
- new upstream release

* Sun May 09 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.12-2
- enable bytecode interpreter, the patent is now expired.

* Tue Feb 16 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.12-1
- new upstream release

* Tue Oct 13 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.11-1
- new upstream release
- update patch201

* Sun Aug 16 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.9-6
- rebuild with gpg signing

* Wed Jul 29 2009 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.3.9-5
- fixed "Invalid Outline" error on x86_64.

* Sun May 03 2009 NAKAMURA Kenta <kenta@vinelinux.org> 2.3.9-4
- removed %%if !%%{build_compat32} case condition
- removed CC='gcc -m32' before make setup

* Sun Apr 05 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.9-3
- enable Patch200 again

* Fri Mar 27 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.9-2
- split static library to freetype2-static
  - needed by tuxonice-userui
- disable Patch200

* Sat Mar 14 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.9-1
- new upstream release

* Wed Jan 14 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.8-1
- new upstream release

* Sun Oct 12 2008 Shu KONNO <owa@bg.wakwak.com> 2.3.7-2
- removed *.la

* Wed Jul 02 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.7-1
- new upstream release

* Wed Jun 11 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.6-1
- new upstream release

* Sun May 11 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.5-3
- add Provides: freetype-utils = %%{version} to freetype2-demos

* Thu Apr 17 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.5-2
- remove %%{_bindir}/* from -devel

* Fri Mar 21 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.5-1
- new upstream release
- add freetype2-demos
  - Obsoletes: freetype-utils

* Wed May 23 2007 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.3.4-0vl2
- add Patch201 (CVE-2007-2754)

* Sun May 20 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 2.3.4-0vl1
- new upstream release

* Thu Aug 17 2006 KAZUKI SHIMURA <kazuki@ma.ccnw.ne.jp> 2.1.10-0vl8
- add Requires: zlib-devel (devel package)
- compat32
  - add BuildRequires: compat32-zlib-devel
  - add Requires: compat32-zlib-devel (devel package)

* Thu Jul 20 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.10-0vl7
- add Patch200 to adjust synthetic-embold font weight.
  - default value is too heavy...

* Sat Jun 17 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.10-0vl6
- add Patch100 for autofit-cjk

* Fri Feb 24 2006 Shu KONNO <owa@bg.wakwak.com> 2.1.10-0vl5
- added --libdir=%%{_libdir} to make setup
- added CC='gcc -m32' before make setup if compat32

* Sun Feb 12 2006 NAKAMURA Kenta <kenta@c.csce.kyushu-u.ac.jp> 2.1.10-0vl4
- added compat32-* packages for x86_64 architecture support

* Thu Oct 13 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.10-0vl3
- add upstream patches (from MDK)
  - add Patch13 to fix memleak
  - add Patch14 to put back internal API, used by XOrg
  - add Patch15 to fix bad anti-aliasing

* Sat Oct 01 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.10-0vl2
- add upstream patches (from MDK)
  - add Patch10 to add fixes from CVS
  - add Patch11 to fix autofit render setup
  - add Patch12 to fix kerning
- add Patch20 (enable bytecode interpreter), but not applied by default

* Tue Sep  6 2005 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.10-0vl1
- new upstream release
- drop Patch1 (auto-hinter has been replaced with a new module)
- drop Patch2 (included in freetype-2.1.8)
- add pkgconfig file

* Fri Apr 16 2004 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.7-0vl4
- add xtt2-1.2a related patch which is merged in CVS.
  (http://x-tt.sourceforge.jp/index_nippon.html)

* Thu Apr 01 2004 Tomoya TAKA <taka@vinelinux.org> 2.1.7-0vl3
- add a fix from Fedora freetype-2.1.7-3
  * Wed Mar 10 2004 Mike A. Harris <mharris@redhat.com> 2.1.7-3
  - Added -fno-strict-aliasing to CFLAGS and CXXFLAGS to try to fix SEGV and
    SIGILL crashes in mkfontscale which have been traced into freetype and seem
    to be caused by aliasing issues in freetype macros

* Wed Dec 10 2003 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 2.1.7-0vl2
- update patch1

* Sun Nov 09 2003 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.7-0vl1
- new upstream release

* Sat Sep 27 2003 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.5-0vl2
- rebuild for VineSeed

* Sat Sep 27 2003 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.5-0vl1
- source upgrade
- add Patch1 from http://www.kde.gr.jp/~akito/
- remove Source1
- remove Patch0 (no need to 2.1.5)

* Wed Aug 06 2003 Daisuke SUZUKI <daisuke@linux.or.jp> 2.1.4-0vl2
- correct License tag from GPL to GPL/FTL dual license
  - FTL: The FreeType Project License

* Wed Apr  9 2003 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.4-0vl1
- source upgrade

* Sat Dec  7 2002 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.3-0vl1
- source and patch upgrade

* Thu Dec  5 2002 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.2-0vl3
- rebuild with new toolchain

* Wed Aug 21 2002 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.2-0vl2
- add Patch0 to fix problem to Dyna-Font

* Mon Jul 23 2002 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 2.1.2-0vl1
- source upgrade
- add %{_datadir}/aclocal/freetype2.m4 to -devel

* Mon Jan 28 2002 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 2.0.6-0vl2
- modified %%build section

* Wed Jan 16 2002 AKIYAMA Kazuhito <akiyama@karen.servepics.com> 2.0.6-0vl1
- source update
- add ftdocs

* Fri Nov 23 2001 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 2.0.1-0vl5
- small build fix

* Wed May  9 2001 Akira TAGOH <tagoh@gnome.gr.jp> 2.0.1-0vl4
- Added Requires for -devel
- Fixed config path

* Mon Apr 23 2001 Kazuhisa TAKEI <takei@vinelinux.org> 2.0.1-0vl3
- add %{_bindir} in devel package's %file section. 

* Tue Jan  9 2001 Akira TAGOH <tagoh@gnome.gr.jp> 2.0.1-0vl2
- Added %defattr.

* Sun Dec 17 2000 Akira TAGOH <tagoh@gnome.gr.jp> 2.0.1-0vl1
- Initial revision.