Summary: HarfBuzz - internationalized text shaping library - MinGW32 cross version
Summary(pl.UTF-8): Rasteryzer fontów TrueType - wersja skrośna dla MinGW32
Name: crossmingw32-harfbuzz
-Version: 0.9.16
+Version: 2.6.2
Release: 1
License: MIT
Group: Development/Libraries
-Source0: http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-%{version}.tar.bz2
-# Source0-md5: 90855e670c790c1fec4592908be3c0b8
-Patch0: harfbuzz-mingw32.patch
-URL: http://www.freedesktop.org/wiki/HarfBuzz
-BuildRequires: crossmingw32-cairo >= 1.8.0
-BuildRequires: crossmingw32-freetype >= 2.3.8
-BuildRequires: crossmingw32-glib2 >= 2.16
-BuildRequires: crossmingw32-gcc-c++
+Source0: https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-%{version}.tar.xz
+# Source0-md5: 1551bb7ebe970d3466787cd26cfa7f76
+Patch0: harfbuzz-win32.patch
+URL: https://www.freedesktop.org/wiki/HarfBuzz
+BuildRequires: autoconf >= 2.64
+BuildRequires: automake >= 1:1.13.0
+# cairo is used only for utilities, which are not packaged
+#BuildRequires: crossmingw32-cairo >= 1.8.0
+BuildRequires: crossmingw32-freetype >= 2.9
+BuildRequires: crossmingw32-glib2 >= 2.38
+BuildRequires: crossmingw32-gcc-c++ >= 1:4.7
+BuildRequires: crossmingw32-pthreads-w32
+BuildRequires: libtool >= 2:2.2
BuildRequires: pkgconfig >= 1:0.20
-Requires: crossmingw32-cairo >= 1.8.0
-Requires: crossmingw32-freetype >= 2.3.8
-Requires: crossmingw32-glib2 >= 2.16
-Requires: crossmingw32-gcc-c++
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires: crossmingw32-freetype >= 2.9
+Requires: crossmingw32-glib2 >= 2.38
+Requires: crossmingw32-gcc-c++ >= 1:4.7
+Requires: crossmingw32-pthreads-w32
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# see <harfbuzz/internal/ftserv.h>, the real horror
%define __cc %{target}-gcc
%define __cxx %{target}-g++
%define __pkgconfig_provides %{nil}
+%define __pkgconfig_requires %{nil}
%ifnarch %{ix86}
# arch-specific flags (like alpha's -mieee) are not valid for i386 gcc
-%define optflags -O2
+%define optflags -O2 -march=i486
%endif
# -z options are invalid for mingw linker, most of -f options are Linux-specific
%define filterout_ld -Wl,-z,.*
Summary: DLL harfbuzz library for Windows
Summary(pl.UTF-8): Biblioteka DLL harfbuzz dla Windows
Group: Applications/Emulators
-Requires: crossmingw32-cairo-dll >= 1.8.0
-Requires: crossmingw32-freetype-dll >= 2.3.8
-Requires: crossmingw32-glib2-dll >= 2.16
+Requires: crossmingw32-freetype-dll >= 2.9
+Requires: crossmingw32-glib2-dll >= 2.38
Requires: wine
%description dll
%description dll -l pl.UTF-8
Biblioteka DLL harfbuzz dla Windows.
+%package subset
+Summary: HarfBuzz text shaping library - font subsetter - MinGW32 cross version
+Summary(pl.UTF-8): Biblioteka HarfBuzz do rysowania tekstu - font subsetter - wersja skrośna dla MinGW32
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description subset
+HarfBuzz text shaping library - font subsetter.
+
+This package contains the cross version for Win32.
+
+%description subset -l pl.UTF-8
+Biblioteka HarfBuzz do rysowania tekstu - font subsetter.
+
+Ten pakiet zawiera wersję skrośną dla Win32.
+
+%package subset-static
+Summary: Static HarfBuzz subset library (cross MinGW32 version)
+Summary(pl.UTF-8): Biblioteka statyczna HarfBuzz subset (wersja skrośna MinGW32)
+Group: Development/Libraries
+Requires: %{name}-subset = %{version}-%{release}
+
+%description subset-static
+Static HarfBuzz subset library (cross MinGW32 version).
+
+%description subset-static -l pl.UTF-8
+Biblioteka statyczna HarfBuzz subset (wersja skrośna MinGW32).
+
+%package subset-dll
+Summary: DLL HarfBuzz subset library for Windows
+Summary(pl.UTF-8): Biblioteka DLL HarfBuzz subset dla Windows
+Group: Applications/Emulators
+Requires: %{name}-dll = %{version}-%{release}
+
+%description subset-dll
+DLL HarfBuzz subset library for Windows.
+
+%description subset-dll -l pl.UTF-8
+Biblioteka DLL HarfBuzz subset dla Windows.
+
%prep
%setup -q -n harfbuzz-%{version}
%patch0 -p1
%build
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
export PKG_CONFIG_LIBDIR=%{_pkgconfigdir}
+# MingW32 headers require GNU extensions (-std=c++11 doesn't work)
%configure \
- ICU_CONFIG=/none \
+ CPPFLAGS="%{rpmcppflags} -D_GNU_SOURCE" \
+ CXXFLAGS="%{rpmcxxflags} -std=gnu++11" \
+ PTHREAD_LIBS="-lpthread" \
--target=%{target} \
--build=i686-pc-linux-gnu \
--host=%{target} \
+ --disable-gtk-doc \
--disable-silent-rules \
- --enable-static
+ --enable-static \
+ --without-cairo \
+ --with-freetype \
+ --with-glib \
+ --without-graphite2 \
+ --with-html-dir=%{_gtkdocdir} \
+ --without-icu \
+ --with-uniscribe
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-# parallel install broken (hb-version.h both in pkginclude_HEADERS and
-# nodist_pkginclude_HEADERS)
-%{__make} -j1 install \
+%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_dlldir}
-mv -f $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
+%{__mv} $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
%if 0%{!?debug:1}
%{target}-strip --strip-unneeded -R.comment -R.note $RPM_BUILD_ROOT%{_dlldir}/*.dll
%{target}-strip -g -R.comment -R.note $RPM_BUILD_ROOT%{_libdir}/*.a
%endif
+%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/cmake/harfbuzz
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/hb*.exe
+%{__rm} -rf $RPM_BUILD_ROOT%{_gtkdocdir}
+
%clean
rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc COPYING ChangeLog README TODO
%{_libdir}/libharfbuzz.dll.a
-%{_libdir}/libharfbuzz.la
-%{_includedir}/harfbuzz
+%dir %{_includedir}/harfbuzz
+%{_includedir}/harfbuzz/hb.h
+%{_includedir}/harfbuzz/hb-aat.h
+%{_includedir}/harfbuzz/hb-aat-layout.h
+%{_includedir}/harfbuzz/hb-blob.h
+%{_includedir}/harfbuzz/hb-buffer.h
+%{_includedir}/harfbuzz/hb-common.h
+%{_includedir}/harfbuzz/hb-deprecated.h
+%{_includedir}/harfbuzz/hb-face.h
+%{_includedir}/harfbuzz/hb-font.h
+%{_includedir}/harfbuzz/hb-ft.h
+%{_includedir}/harfbuzz/hb-glib.h
+%{_includedir}/harfbuzz/hb-map.h
+%{_includedir}/harfbuzz/hb-ot-color.h
+%{_includedir}/harfbuzz/hb-ot-deprecated.h
+%{_includedir}/harfbuzz/hb-ot-font.h
+%{_includedir}/harfbuzz/hb-ot-layout.h
+%{_includedir}/harfbuzz/hb-ot-math.h
+%{_includedir}/harfbuzz/hb-ot-meta.h
+%{_includedir}/harfbuzz/hb-ot-metrics.h
+%{_includedir}/harfbuzz/hb-ot-name.h
+%{_includedir}/harfbuzz/hb-ot-shape.h
+%{_includedir}/harfbuzz/hb-ot-var.h
+%{_includedir}/harfbuzz/hb-ot.h
+%{_includedir}/harfbuzz/hb-set.h
+%{_includedir}/harfbuzz/hb-shape-plan.h
+%{_includedir}/harfbuzz/hb-shape.h
+%{_includedir}/harfbuzz/hb-unicode.h
+%{_includedir}/harfbuzz/hb-uniscribe.h
+%{_includedir}/harfbuzz/hb-version.h
%{_pkgconfigdir}/harfbuzz.pc
%files static
%files dll
%defattr(644,root,root,755)
-%{_dlldir}/libharfbuzz-*.dll
+%{_dlldir}/libharfbuzz-0.dll
+
+%files subset
+%defattr(644,root,root,755)
+%{_libdir}/libharfbuzz-subset.dll.a
+%{_includedir}/harfbuzz/hb-subset.h
+%{_pkgconfigdir}/harfbuzz-subset.pc
+
+%files subset-static
+%defattr(644,root,root,755)
+%{_libdir}/libharfbuzz-subset.a
+
+%files subset-dll
+%defattr(644,root,root,755)
+%{_dlldir}/libharfbuzz-subset-0.dll