[EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
authordominik.rottsches@intel.com <dominik.rottsches@intel.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2012 16:59:27 +0000 (16:59 +0000)
committerdominik.rottsches@intel.com <dominik.rottsches@intel.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2012 16:59:27 +0000 (16:59 +0000)
https://bugs.webkit.org/show_bug.cgi?id=101323

Reviewed by Martin Robinson.

Source/WebCore:

Removing ifdef since we bumped Harfbuzz dependency. This is the
real fix replacing the previous workaround of having a Chromium
specific ifdef here, since Chromium uses a newer HarfBuzz version
already.

No new tests, covered by css3/flexbox/inline-flex-crash.html
which will not crash anymore even with the ifdef removed.

* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

Tools:

Bumping Harfbuzz to newer version so that we can remove the
ifdef round the fix for bug 101009 for EFL, too.
We're using the zip snapshot since jhbuild can fallback to the previously
downloaded blob in case of network failures which leads to better
buildbot robustness. This zip snapshot currently needs to be locally
patched to fix ICU detection on systems that don't have icu pkg-config files.
The patch is suggested for merging into HarfBuzz. We can remove it locally
once it's accepted into HarfBuzz upstream.

* efl/patches/harfbuzz-icu-detection-fix.patch: Applied after retrieving source to fix harfbuzz detection on systems that don't have pkg-config files for it.
* efl/jhbuild.modules: Bumping harfbuzz version.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@134781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp
Tools/ChangeLog
Tools/efl/jhbuild.modules
Tools/efl/patches/harfbuzz-icu-detection-fix.patch [new file with mode: 0644]

index fcb71e3..92a6459 100644 (file)
@@ -1,3 +1,21 @@
+2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
+        https://bugs.webkit.org/show_bug.cgi?id=101323
+
+        Reviewed by Martin Robinson.
+
+        Removing ifdef since we bumped Harfbuzz dependency. This is the
+        real fix replacing the previous workaround of having a Chromium
+        specific ifdef here, since Chromium uses a newer HarfBuzz version
+        already.
+
+        No new tests, covered by css3/flexbox/inline-flex-crash.html
+        which will not crash anymore even with the ifdef removed.
+
+        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
+        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
+
 2012-11-15  Andreas Kling  <kling@webkit.org>
 
         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
index 91c239c..9d2385f 100644 (file)
@@ -328,13 +328,10 @@ bool HarfBuzzShaper::shapeHarfBuzzRuns(bool shouldSetDirection)
         if (shouldSetDirection)
             hb_buffer_set_direction(harfbuzzBuffer.get(), currentRun->rtl() ? HB_DIRECTION_RTL : HB_DIRECTION_LTR);
 
-        // This #if should be removed after all ports update harfbuzz-ng.
-#if PLATFORM(CHROMIUM)
         // Add a space as pre-context to the buffer. This prevents showing dotted-circle
         // for combining marks at the beginning of runs.
         static const uint16_t preContext = ' ';
         hb_buffer_add_utf16(harfbuzzBuffer.get(), &preContext, 1, 1, 0);
-#endif
 
         if (m_font->isSmallCaps() && u_islower(m_normalizedBuffer[currentRun->startIndex()])) {
             String upperText = String(m_normalizedBuffer.get() + currentRun->startIndex(), currentRun->numCharacters());
index 5cfa3ba..fab36da 100644 (file)
@@ -1,3 +1,22 @@
+2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
+        https://bugs.webkit.org/show_bug.cgi?id=101323
+
+        Reviewed by Martin Robinson.
+
+        Bumping Harfbuzz to newer version so that we can remove the
+        ifdef round the fix for bug 101009 for EFL, too.
+        We're using the zip snapshot since jhbuild can fallback to the previously
+        downloaded blob in case of network failures which leads to better
+        buildbot robustness. This zip snapshot currently needs to be locally
+        patched to fix ICU detection on systems that don't have icu pkg-config files.
+        The patch is suggested for merging into HarfBuzz. We can remove it locally
+        once it's accepted into HarfBuzz upstream.
+
+        * efl/patches/harfbuzz-icu-detection-fix.patch: Applied after retrieving source to fix harfbuzz detection on systems that don't have pkg-config files for it.
+        * efl/jhbuild.modules: Bumping harfbuzz version.
+
 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
 
         [Mac] Implement WTR --no-timeout-at-all option
index 5528788..04de528 100644 (file)
   </autotools>
 
  <autotools id="harfbuzz" autogen-sh="configure">
-   <branch module="software/harfbuzz/release/harfbuzz-0.9.2.tar.bz2" version="0.9.2"
-           checkoutdir="harfbuzz-0.9.2"
+   <branch module="software/harfbuzz/release/harfbuzz-0.9.6.tar.bz2" version="0.9.6"
+           checkoutdir="harfbuzz-0.9.6"
            repo="freedesktop.org"
-           hash="sha256:c9b581d6357a32043b84ec78179390b582448de790deb487dfdb90b632dc8558"
-           md5sum="f1c1a2793b44b4d6613f58cc92caa366">
+           hash="sha256:394a849d6061993018754b0cc04110891ad215e3df3f6953b75dcc55a11f9d9b"
+           md5sum="f3a100a0512c185b211a0deb4790c34c">
+     <patch file="harfbuzz-icu-detection-fix.patch" strip="1" />
    </branch>
  </autotools>
 
diff --git a/Tools/efl/patches/harfbuzz-icu-detection-fix.patch b/Tools/efl/patches/harfbuzz-icu-detection-fix.patch
new file mode 100644 (file)
index 0000000..567e24d
--- /dev/null
@@ -0,0 +1,36 @@
+diff --git a/configure.ac b/configure.ac
+index b1948f1..9ae69dd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -184,6 +184,31 @@ fi
+ AM_CONDITIONAL(HAVE_ICU_LE, $have_icu_le)
+ dnl ==========================================================================
++dnl Fallback to icu-config if ICU pkg-config files could not be found
++dnl ==========================================================================
++
++if test "$have_icu" != "true"; then
++    AC_PATH_PROG(icu_config, icu-config, no)
++    AC_MSG_CHECKING([for ICU by using icu-config fallback])
++    if test "$icu_config" != "no"; then
++        # We don't use --cflags as this gives us a lot of things that we don't
++        # necessarily want, like debugging and optimization flags
++        # See man (1) icu-config for more info.
++        ICU_CFLAGS=`$icu_config --cppflags`
++        ICU_LIBS=`$icu_config --ldflags-libsonly --ldflags-layout`
++        AC_SUBST(ICU_CFLAGS)
++        AC_SUBST(ICU_LIBS)
++        AC_DEFINE(HAVE_ICU_LE, 1, [Have ICU Layout Engine library])
++        AC_DEFINE(HAVE_ICU, 1, [Have ICU library])
++        AM_CONDITIONAL(HAVE_ICU, true)
++        AM_CONDITIONAL(HAVE_ICU_LE, true)
++        AC_MSG_RESULT([yes])
++    else
++        AC_MSG_RESULT([no])
++    fi
++fi
++
++dnl ==========================================================================
+ PKG_CHECK_MODULES(GRAPHITE2, graphite2, have_graphite=true, have_graphite=false)
+ if $have_graphite; then