--- /dev/null
+Name: harfbuzz
+Version: 2.6.4
+Release: 0
+License: MIT and ISC
+Summary: An OpenType text shaping engine
+Url: http://www.freedesktop.org/wiki/Software/HarfBuzz
+Group: Graphics/Font Management
+Source: %{name}-%{version}.tar.xz
+Source99: baselibs.conf
+Source1001: harfbuzz.manifest
+BuildRequires: gcc-c++
+#BuildRequires: pkgconfig(cairo) >= 1.8.0
+#BuildRequires: pkgconfig(cairo-ft)
+BuildRequires: pkgconfig(freetype2) >= 2.3.8
+BuildRequires: pkgconfig(glib-2.0) >= 2.16
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(gthread-2.0)
+BuildRequires: pkgconfig(icu-uc)
+
+%description
+HarfBuzz is an OpenType text shaping engine.
+
+%package -n libharfbuzz
+Summary: An OpenType text shaping engine
+Group: Graphics/Font Management
+
+%description -n libharfbuzz
+HarfBuzz is an OpenType text shaping engine.
+
+%package tools
+Summary: An OpenType text shaping engine -- Tools
+Group: Graphics/Font Management
+
+%description tools
+HarfBuzz is an OpenType text shaping engine.
+
+%package devel
+Summary: An OpenType text shaping engine -- Development Files
+Group: Development/Libraries
+Requires: libharfbuzz = %{version}
+
+%description devel
+HarfBuzz is an OpenType text shaping engine.
+
+%prep
+%setup -q
+cp %{SOURCE1001} .
+patch -p1 < %{_builddir}/%{name}-%{version}/patch/remove-icu-header-dependencies-from-harfbuzz-header.patch
+
+%build
+%configure \
+ --disable-static
+make %{?_smp_mflags}
+
+%install
+%make_install
+rm -rf %{buildroot}/%{_datadir}/gtk-doc
+
+%post -n libharfbuzz -p /sbin/ldconfig
+
+%postun -n libharfbuzz -p /sbin/ldconfig
+
+%files -n libharfbuzz
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%license COPYING
+%{_libdir}/*.so.0*
+
+%files tools
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%{_bindir}/hb-ot-shape-closure
+%{_bindir}/hb-shape
+%{_bindir}/hb-subset
+#%{_bindir}/hb-view
+
+%files devel
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%{_includedir}/harfbuzz/
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/*.pc
+%{_libdir}/cmake/harfbuzz/harfbuzz-config.cmake
--- /dev/null
+From d90ac5141407d6c3278bb67784ea8cec1743ff89 Mon Sep 17 00:00:00 2001
+From: Bowon Ryu <bowon.ryu@samsung.com>
+Date: Tue, 25 Feb 2020 17:22:46 +0900
+Subject: [PATCH] remove icu header dependencies from harfbuzz header
+
+Harfbuzz header include icu header that is not Tizen public API.
+In order to remove icu header from rootstrap, icu header dependencies
+should be removed.
+
+@tizen_fix
+
+Change-Id: Iecf2c69345cdb795c63be238895796e1d4adc610
+Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
+---
+ src/hb-icu.cc | 17 ++++++++++-------
+ src/hb-icu.h | 5 ++---
+ 2 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/src/hb-icu.cc b/src/hb-icu.cc
+index 985ff02..4767722 100644
+--- a/src/hb-icu.cc
++++ b/src/hb-icu.cc
+@@ -40,6 +40,7 @@
+ #include <unicode/ustring.h>
+ #include <unicode/utf16.h>
+ #include <unicode/uversion.h>
++#include <unicode/uscript.h>
+
+ /* ICU extra semicolon, fixed since 65, https://github.com/unicode-org/icu/commit/480bec3 */
+ #if U_ICU_VERSION_MAJOR_NUM < 65 && (defined(__GNUC__) || defined(__clang__))
+@@ -58,26 +59,28 @@
+ **/
+
+ hb_script_t
+-hb_icu_script_to_script (UScriptCode script)
++hb_icu_script_to_script (unsigned int numScript)
+ {
++ UScriptCode script = (UScriptCode) numScript;
++
+ if (unlikely (script == USCRIPT_INVALID_CODE))
+ return HB_SCRIPT_INVALID;
+
+ return hb_script_from_string (uscript_getShortName (script), -1);
+ }
+
+-UScriptCode
++unsigned int
+ hb_icu_script_from_script (hb_script_t script)
+ {
+ if (unlikely (script == HB_SCRIPT_INVALID))
+- return USCRIPT_INVALID_CODE;
++ return (unsigned int) USCRIPT_INVALID_CODE;
+
+ unsigned int numScriptCode = 1 + u_getIntPropertyMaxValue (UCHAR_SCRIPT);
+ for (unsigned int i = 0; i < numScriptCode; i++)
+- if (unlikely (hb_icu_script_to_script ((UScriptCode) i) == script))
+- return (UScriptCode) i;
++ if (unlikely (hb_icu_script_to_script (i) == script))
++ return i;
+
+- return USCRIPT_UNKNOWN;
++ return (unsigned int) USCRIPT_UNKNOWN;
+ }
+
+
+@@ -160,7 +163,7 @@ hb_icu_unicode_script (hb_unicode_funcs_t *ufuncs HB_UNUSED,
+ if (unlikely (U_FAILURE (status)))
+ return HB_SCRIPT_UNKNOWN;
+
+- return hb_icu_script_to_script (scriptCode);
++ return hb_icu_script_to_script ((unsigned int) scriptCode);
+ }
+
+ static hb_bool_t
+diff --git a/src/hb-icu.h b/src/hb-icu.h
+index 2db6a7b..dc6d7aa 100644
+--- a/src/hb-icu.h
++++ b/src/hb-icu.h
+@@ -31,15 +31,14 @@
+
+ #include "hb.h"
+
+-#include <unicode/uscript.h>
+
+ HB_BEGIN_DECLS
+
+
+ HB_EXTERN hb_script_t
+-hb_icu_script_to_script (UScriptCode script);
++hb_icu_script_to_script (unsigned int numScript);
+
+-HB_EXTERN UScriptCode
++HB_EXTERN unsigned int
+ hb_icu_script_from_script (hb_script_t script);
+
+
+--
+2.7.4
+