diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e75f553 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/harfbuzz-1.4.8.tar.bz2 diff --git a/.mingw-harfbuzz.metadata b/.mingw-harfbuzz.metadata new file mode 100644 index 0000000..cf268c2 --- /dev/null +++ b/.mingw-harfbuzz.metadata @@ -0,0 +1 @@ +e48cd89f6e5c9c732923f2c4afd0b9d4e6a85968 SOURCES/harfbuzz-1.4.8.tar.bz2 diff --git a/SOURCES/harfbuzz-enable-delayload-freetype.patch b/SOURCES/harfbuzz-enable-delayload-freetype.patch new file mode 100644 index 0000000..c898292 --- /dev/null +++ b/SOURCES/harfbuzz-enable-delayload-freetype.patch @@ -0,0 +1,84 @@ +--- harfbuzz-1.1.2/configure.ac.orig 2015-12-31 15:58:04.284354714 +0100 ++++ harfbuzz-1.1.2/configure.ac 2015-12-31 16:08:46.848239317 +0100 +@@ -432,6 +432,30 @@ + + dnl =========================================================================== + ++AC_ARG_ENABLE(delay-load, ++ [AC_HELP_STRING([--enable-delay-load], ++ [makes the freetype dependency optional at runtime (win32 only)])],, ++ [enable_delay_load=no]) ++ ++AC_MSG_CHECKING([whether to enable the use of delay-loaded freetype dependencies]) ++if test $hb_os_win32 = false; then ++ enable_delay_load=false ++fi ++AM_CONDITIONAL(ENABLE_DELAY_LOAD, test x"$enable_delay_load" = x"yes") ++AC_MSG_RESULT([$enable_delay_load]) ++ ++if test x"$enable_delay_load" = x"yes" ; then ++ AC_CHECK_TOOL([GENDEF], [gendef]) ++ ++ AC_MSG_CHECKING([whether gendef was found]) ++ if test x"$GENDEF" = x"" ; then ++ AC_MSG_ERROR([The gendef tool (required for delay loading the freetype dependency) could not be detected]) ++ fi ++ AC_MSG_RESULT([yes]) ++fi ++ ++dnl =========================================================================== ++ + AC_CONFIG_FILES([ + Makefile + src/Makefile +@@ -475,4 +499,5 @@ + Documentation: ${have_gtk_doc} + GObject bindings: ${have_gobject} + Introspection: ${have_introspection} ++ Enable delay loading: ${enable_delay_load} + ]) +--- harfbuzz-1.2.6/src/Makefile.am.orig 2016-03-15 23:14:32.000000000 +0100 ++++ harfbuzz-1.2.6/src/Makefile.am 2016-04-09 22:32:19.462635695 +0200 +@@ -51,14 +51,29 @@ + endif + + if HAVE_FREETYPE +-HBCFLAGS += $(FREETYPE_CFLAGS) ++if ENABLE_DELAY_LOAD ++# Create delay-loaded import library for freetype ++libfreetype-delay-loaded.dll.a: ++ DLL=$(bindir)/libfreetype-6.dll; \ ++ if test ! -f "$$DLL" ; then \ ++ echo "*** File $$DLL could not be found, unable to create delay-loaded import library"; \ ++ exit 1; \ ++ fi; \ ++ $(GENDEF) - "$$DLL" > freetype_delay_load.def; \ ++ $(DLLTOOL) --def freetype_delay_load.def --kill-at --output-delaylib libfreetype-delay-loaded.dll.a ++ ++harfbuzz_delayload_ldflags = -Wl,libfreetype-delay-loaded.dll.a -Wl,-lmingwex -Wl,-lkernel32 ++harfbuzz_delayload_dependency = libfreetype-delay-loaded.dll.a ++else + HBLIBS += $(FREETYPE_LIBS) ++endif + # XXX + # The following creates a recursive dependency on FreeType if FreeType is + # built with HarfBuzz support enabled. Newer pkg-config handles that just + # fine but pkg-config 0.26 as shipped in Ubuntu 14.04 crashes. Remove + # in a year or two, or otherwise work around it... + #HBDEPS += $(FREETYPE_DEPS) ++HBCFLAGS += $(FREETYPE_CFLAGS) + HBSOURCES += $(HB_FT_sources) + HBHEADERS += $(HB_FT_headers) + endif +@@ -120,9 +135,9 @@ + + libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS) + libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) +-libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined ++libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined $(harfbuzz_delayload_ldflags) + libharfbuzz_la_LIBADD = $(HBLIBS) +-EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) ++EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) $(harfbuzz_delayload_dependency) + pkginclude_HEADERS = $(HBHEADERS) + nodist_pkginclude_HEADERS = $(HBNODISTHEADERS) + pkgconfigdir = $(libdir)/pkgconfig diff --git a/SPECS/mingw-harfbuzz.spec b/SPECS/mingw-harfbuzz.spec new file mode 100644 index 0000000..a6970a8 --- /dev/null +++ b/SPECS/mingw-harfbuzz.spec @@ -0,0 +1,252 @@ +%{?mingw_package_header} + +Name: mingw-harfbuzz +Version: 1.4.8 +Release: 3%{?dist} +Summary: MinGW Windows Harfbuzz library + +License: MIT +URL: http://www.harfbuzz.org +Source0: http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-%{version}.tar.bz2 + +# Allow the freetype dependency to be optional at runtime +Patch0: harfbuzz-enable-delayload-freetype.patch + +BuildArch: noarch +ExclusiveArch: %{ix86} x86_64 + +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw32-gcc +BuildRequires: mingw32-glib2 +BuildRequires: mingw32-freetype +BuildRequires: mingw32-cairo +BuildRequires: mingw32-icu + +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc +BuildRequires: mingw64-glib2 +BuildRequires: mingw64-freetype +BuildRequires: mingw64-cairo +BuildRequires: mingw64-icu + +# Needed for the delay-load patch +BuildRequires: mingw-w64-tools +BuildRequires: autoconf automake libtool + + +%description +HarfBuzz is an implementation of the OpenType Layout engine. + + +# Win32 +%package -n mingw32-harfbuzz +Summary: MinGW Windows Harfbuzz library + +%description -n mingw32-harfbuzz +HarfBuzz is an implementation of the OpenType Layout engine. + +%package -n mingw32-harfbuzz-static +Summary: Static version of the MinGW Windows Harfbuzz library +Requires: mingw32-harfbuzz = %{version}-%{release} +Requires: mingw32-glib2-static + +%description -n mingw32-harfbuzz-static +Static version of the MinGW Windows Harfbuzz library. + +# Win64 +%package -n mingw64-harfbuzz +Summary: MinGW Windows Harfbuzz library + +%description -n mingw64-harfbuzz +HarfBuzz is an implementation of the OpenType Layout engine. + +%package -n mingw64-harfbuzz-static +Summary: Static version of the MinGW Windows Harfbuzz library +Requires: mingw64-harfbuzz = %{version}-%{release} +Requires: mingw64-glib2-static + +%description -n mingw64-harfbuzz-static +Static version of the MinGW Windows Harfbuzz library. + + +%{?mingw_debug_package} + + +%prep +%setup -q -n harfbuzz-%{version} +%patch0 -p1 +autoreconf -i --force + + +%build +%mingw_configure --enable-shared --enable-static --enable-delay-load +%mingw_make %{?_smp_mflags} V=1 + + +%install +%mingw_make install DESTDIR=$RPM_BUILD_ROOT + +# Drop all .la files +find $RPM_BUILD_ROOT -name "*.la" -delete + + +# Win32 +%files -n mingw32-harfbuzz +%license COPYING +%{mingw32_bindir}/hb-ot-shape-closure.exe +%{mingw32_bindir}/hb-shape.exe +%{mingw32_bindir}/hb-view.exe +%{mingw32_bindir}/libharfbuzz-0.dll +%{mingw32_bindir}/libharfbuzz-icu-0.dll +%{mingw32_includedir}/harfbuzz/ +%{mingw32_libdir}/libharfbuzz.dll.a +%{mingw32_libdir}/libharfbuzz-icu.dll.a +%{mingw32_libdir}/pkgconfig/harfbuzz.pc +%{mingw32_libdir}/pkgconfig/harfbuzz-icu.pc + +%files -n mingw32-harfbuzz-static +%{mingw32_libdir}/libharfbuzz.a +%{mingw32_libdir}/libharfbuzz-icu.a + +# Win64 +%files -n mingw64-harfbuzz +%license COPYING +%{mingw64_bindir}/hb-ot-shape-closure.exe +%{mingw64_bindir}/hb-shape.exe +%{mingw64_bindir}/hb-view.exe +%{mingw64_bindir}/libharfbuzz-0.dll +%{mingw64_bindir}/libharfbuzz-icu-0.dll +%{mingw64_includedir}/harfbuzz/ +%{mingw64_libdir}/libharfbuzz.dll.a +%{mingw64_libdir}/libharfbuzz-icu.dll.a +%{mingw64_libdir}/pkgconfig/harfbuzz.pc +%{mingw64_libdir}/pkgconfig/harfbuzz-icu.pc + +%files -n mingw64-harfbuzz-static +%{mingw64_libdir}/libharfbuzz.a +%{mingw64_libdir}/libharfbuzz-icu.a + + +%changelog +* Thu Aug 16 2018 Eduardo Lima (Etrunko) - 1.4.8-3 +- ExclusiveArch: i686, x86_64 + Related: rhbz#1615874 + +* Thu Feb 08 2018 Fedora Release Engineering - 1.4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Oct 15 2017 Kalev Lember - 1.4.8-1 +- Update to 1.4.8 + +* Wed Jul 26 2017 Fedora Release Engineering - 1.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jun 19 2017 Kalev Lember - 1.4.4-1 +- Update to 1.4.4 + +* Fri Feb 10 2017 Fedora Release Engineering - 1.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Oct 24 2016 Kalev Lember - 1.3.2-2 +- Rebuilt for mingw-icu 57 + +* Sun Oct 16 2016 Kalev Lember - 1.3.2-1 +- Update to 1.3.2 + +* Wed Aug 10 2016 Kalev Lember - 1.3.0-1 +- Update to 1.3.0 + +* Tue May 03 2016 Kalev Lember - 1.2.7-1 +- Update to 1.2.7 + +* Sat Apr 9 2016 Erik van Pienbroek - 1.2.6-1 +- Update to 1.2.6 + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Dec 31 2015 Erik van Pienbroek - 1.1.2-1 +- Update to 1.1.2 +- Make freetype an optional runtime dependency instead of a hard dependency (using delay load) +- Perform verbose make + +* Fri Sep 25 2015 Kalev Lember - 1.0.3-1 +- Update to 1.0.3 + +* Sat Aug 22 2015 Kalev Lember - 1.0.2-1 +- Update to 1.0.2 + +* Sat Aug 22 2015 Kalev Lember - 1.0.1-1 +- Update to 1.0.1 + +* Wed Jun 17 2015 Fedora Release Engineering - 0.9.40-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Mar 24 2015 Kalev Lember - 0.9.40-1 +- Update to 0.9.40 +- Use license macro for the COPYING file + +* Wed Dec 31 2014 Erik van Pienbroek - 0.9.37-2 +- Added Requires: mingw{32,64}-glib2-static tags to the -static subpackages + +* Wed Dec 31 2014 Erik van Pienbroek - 0.9.37-1 +- Update to 0.9.37 + +* Sat Nov 15 2014 Kalev Lember - 0.9.34-1 +- Update to 0.9.34 + +* Sat Jun 07 2014 Fedora Release Engineering - 0.9.28-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu May 22 2014 Kalev Lember - 0.9.28-1 +- Update to 0.9.28 + +* Sat Mar 29 2014 Kalev Lember - 0.9.27-1 +- Update to 0.9.27 + +* Sat Jan 25 2014 Erik van Pienbroek - 0.9.25-1 +- Update to 0.9.25 + +* Wed Nov 20 2013 Erik van Pienbroek - 0.9.24-1 +- Update to 0.9.24 + +* Sat Sep 7 2013 Erik van Pienbroek - 0.9.20-1 +- Update to 0.9.20 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.9.18-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jun 17 2013 Kalev Lember - 0.9.18-4 +- Rebuilt for icu 50 + +* Sun Jun 16 2013 Erik van Pienbroek - 0.9.18-3 +- Rebuild to resolve InterlockedCompareExchange regression in mingw32 libraries + +* Sat Jun 15 2013 Erik van Pienbroek - 0.9.18-2 +- Rebuild to resolve InterlockedCompareExchange regression in mingw32 libraries + +* Sun Jun 09 2013 Kalev Lember - 0.9.18-1 +- Update to 0.9.18 + +* Thu May 9 2013 Erik van Pienbroek - 0.9.16-1 +- Update to 0.9.16 + +* Sun Mar 24 2013 Erik van Pienbroek - 0.9.14-1 +- Update to 0.9.14 + +* Sun Jan 27 2013 Erik van Pienbroek - 0.9.9-3 +- Rebuild against mingw-gcc 4.8 (win64 uses SEH exceptions now) + +* Wed Jan 02 2013 Erik van Pienbroek - 0.9.9-2 +- Rebuilt against mingw-icu 49 + +* Mon Dec 24 2012 Erik van Pienbroek - 0.9.9-1 +- Update to 0.9.9 +- Fix compatibility with WinXP (FreeDesktop Bug #55494) + +* Wed Nov 21 2012 Erik van Pienbroek - 0.9.7-1 +- Update to 0.9.7 + +* Sun Aug 26 2012 Erik van Pienbroek - 0.9.3-1 +- Initial release +