[mingw-pango] Make fontconfig and freetype runtime dependencies instead of hard dependencies
Erik van Pienbroek
epienbro at fedoraproject.org
Sun May 20 13:30:51 UTC 2012
commit db14633c9d8953842807760fc3711d6443d29c8b
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date: Sun May 20 15:30:40 2012 +0200
Make fontconfig and freetype runtime dependencies instead of hard dependencies
mingw-pango.spec | 15 ++++-
...ble-delay-load-of-freetype-and-fontconfig.patch | 82 ++++++++++++++++++++
2 files changed, 96 insertions(+), 1 deletions(-)
---
diff --git a/mingw-pango.spec b/mingw-pango.spec
index c7e4ac9..f4d13fe 100644
--- a/mingw-pango.spec
+++ b/mingw-pango.spec
@@ -22,6 +22,9 @@ Source1: pango.modules
Patch1000: pango_enable_static_build.patch
+# Make the dependencies on freetype and fontconfig runtime dependencies
+Patch1001: pango-enable-delay-load-of-freetype-and-fontconfig.patch
+
BuildArch: noarch
BuildRequires: mingw32-filesystem >= 95
@@ -54,6 +57,9 @@ BuildRequires: mingw64-pixman
BuildRequires: pkgconfig
+# Needed for the delay-load patch
+BuildRequires: autoconf automake libtool
+
%description
MinGW Windows Pango library.
@@ -97,7 +103,11 @@ Static version of the MinGW Windows Pango library.
%prep
%setup -q -n pango-%{version}
-%patch1000
+
+%patch1001 -p0 -b .delay_load
+autoreconf -i --force
+
+%patch1000 -b .static
%build
@@ -244,6 +254,9 @@ rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/pango/1.6.0/modules/*.dll.a
%changelog
+* Sun May 20 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.30.0-2
+- Make fontconfig and freetype runtime dependencies instead of hard dependencies
+
* Wed Mar 28 2012 Kalev Lember <kalevlember at gmail.com> - 1.30.0-1
- Update to 1.30.0
- Regenerate pango.modules
diff --git a/pango-enable-delay-load-of-freetype-and-fontconfig.patch b/pango-enable-delay-load-of-freetype-and-fontconfig.patch
new file mode 100644
index 0000000..3cfd4d9
--- /dev/null
+++ b/pango-enable-delay-load-of-freetype-and-fontconfig.patch
@@ -0,0 +1,82 @@
+--- configure.in.orig 2012-05-17 22:22:21.648736737 +0200
++++ configure.in 2012-05-18 00:52:16.411099722 +0200
+@@ -332,6 +332,31 @@
+ fi
+
+ #
++# Checks for delay-loaded fontconfig/freetype runtime dependencies
++#
++AC_ARG_ENABLE(delay-load,
++ [AC_HELP_STRING([--enable-delay-load],
++ [makes the pangoft2 backend and the fontconfig/freetype dependencies optional at runtime (win32 only)])],,
++ [enable_delay_load=no])
++
++AC_MSG_CHECKING([whether to enable the use of delay-loaded fontconfig/freetype dependencies])
++if test $have_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 pangoft2 backend and the fontconfig/freetype dependencies) couldn't be detected])
++ fi
++ AC_MSG_RESULT([yes])
++fi
++
++#
+ # Checks for ATSUI
+ #
+ AC_CHECK_HEADER(Carbon/Carbon.h, [have_atsui=true], [have_atsui=false])
+--- pango/Makefile.am.orig 2012-05-17 21:58:54.398720821 +0200
++++ pango/Makefile.am 2012-05-18 00:55:05.403187480 +0200
+@@ -380,8 +380,35 @@
+ endif
+
+ if HAVE_CAIRO_FREETYPE
++if ENABLE_DELAY_LOAD
++# Create delay-loaded import libraries for pangoft2, fontconfig and freetype
++libpangoft2-delay-loaded-$(PANGO_API_VERSION).dll.a: libpangoft2-$(PANGO_API_VERSION).la
++ $(DLLTOOL) --def $(srcdir)/pangoft2.def --kill-at --output-delaylib libpangoft2-delay-loaded-$(PANGO_API_VERSION).dll.a
++
++libfontconfig-delay-loaded.dll.a:
++ DLL=$(bindir)/libfontconfig-1.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" > fontconfig_delay_load.def; \
++ $(DLLTOOL) --def fontconfig_delay_load.def --kill-at --output-delaylib libfontconfig-delay-loaded.dll.a
++
++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
++
++libpangocairo_1_0_la_LDFLAGS += -Wl,libpangoft2-delay-loaded-$(PANGO_API_VERSION).dll.a -Wl,libfontconfig-delay-loaded.dll.a -Wl,libfreetype-delay-loaded.dll.a
++libpangocairo_1_0_la_DEPENDENCIES += libpangoft2-delay-loaded-$(PANGO_API_VERSION).dll.a libfontconfig-delay-loaded.dll.a libfreetype-delay-loaded.dll.a libpangoft2-$(PANGO_API_VERSION).la
++else
+ libpangocairo_1_0_la_LIBADD += libpangoft2-$(PANGO_API_VERSION).la $(FREETYPE_LIBS)
+ libpangocairo_1_0_la_DEPENDENCIES += libpangoft2-$(PANGO_API_VERSION).la
++endif
+ PANGOCAIRO_FONT_BACKEND_GI_MODULE = PangoFT2-1.0
+
+ libpangocairo_1_0_la_SOURCES += \
+@@ -644,6 +671,9 @@
+ s-enum-types-h \
+ pango-enum-types.c \
+ s-enum-types-c \
++ libpangoft2-delay-loaded-$(PANGO_API_VERSION).dll.a pangoft2.def \
++ libfontconfig-delay-loaded.dll.a fontconfig_delay_load.def \
++ libfreetype-delay-loaded.dll.a freetype_delay_load.def \
+ $(INTROSPECTION_GIRS) \
+ $(INTROSPECTION_GIRS:.gir=.typelib)
+
More information about the scm-commits
mailing list