diff --git a/media-libs/harfbuzz/harfbuzz-2.3.1.recipe b/media-libs/harfbuzz/harfbuzz-2.3.1.recipe new file mode 100644 index 000000000..395f0c2e1 --- /dev/null +++ b/media-libs/harfbuzz/harfbuzz-2.3.1.recipe @@ -0,0 +1,139 @@ +SUMMARY="An OpenType text shaping engine" +DESCRIPTION="HarfBuzz is an OpenType text shaping engine. It is used to \ +layout complex text such as the Indic and Arabic alphabets." +HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz/" +COPYRIGHT="2004-2018 Behdad Esfahbod + 2000-2005 Owen Taylor + 2013, 2015-2017 Khaled Hosny + 2010,2011,2012 Google, Inc. + 2012 Mozilla Foundation + 2011 Codethink Limited + 2008,2010 Nokia Corporation and/or its subsidiary(-ies) + 2009 Keith Stribley + 2009 Martin Hosken and SIL International + 2007 Chris Wilson + 2005 David Turner + 2004,2007,2008,2009,2010 Red Hat, Inc. + 1998-2004 David Turner and Werner Lemberg" +LICENSE="MIT" +REVISION="1" +SOURCE_URI="https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-$portVersion.tar.bz2" +CHECKSUM_SHA256="f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468" +PATCHES="harfbuzz-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +libVersion="0.20301.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + harfbuzz$secondaryArchSuffix = $portVersion compat >= 0.9 + cmd:hb_ot_shape_closure$commandSuffix + cmd:hb_shape$commandSuffix + cmd:hb_subset$commandSuffix + lib:libharfbuzz$secondaryArchSuffix = $libVersionCompat + lib:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat + lib:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libgraphite2$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + harfbuzz${secondaryArchSuffix}_devel = $portVersion compat >= 0.9 + devel:libharfbuzz$secondaryArchSuffix = $libVersionCompat + devel:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat + devel:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + harfbuzz$secondaryArchSuffix == $portVersion base + devel:libglib_2.0$secondaryArchSuffix + devel:libgraphite2$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libbz2$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgraphite2$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libicuuc$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:python + cmd:ragel$secondaryArchSuffix + cmd:sed + cmd:which + " + +defineDebugInfoPackage harfbuzz$secondaryArchSuffix \ + "$commandBinDir"/hb-ot-shape-closure \ + "$commandBinDir"/hb-shape \ + "$commandBinDir"/hb-subset \ + "$libDir"/libharfbuzz.so.$libVersion \ + "$libDir"/libharfbuzz-icu.so.$libVersion \ + "$libDir"/libharfbuzz-subset.so.$libVersion + +BUILD() +{ + autoreconf -fi + runConfigure --omit-dirs binDir ./configure --bindir="$commandBinDir" \ + --with-graphite2=yes --with-icu + make $jobArgs +} + +INSTALL() +{ + make install + + # remove libtool library files + rm -f "$libDir"/libharfbuzz*.la + + prepareInstalledDevelLibs \ + libharfbuzz \ + libharfbuzz-icu \ + libharfbuzz-subset \ + + fixPkgconfig + + # devel package + packageEntries devel \ + "$dataDir" \ + "$developDir" \ + "$libDir"/cmake +} + +TEST() +{ + make check +} diff --git a/media-libs/harfbuzz/patches/harfbuzz-2.3.1.patchset b/media-libs/harfbuzz/patches/harfbuzz-2.3.1.patchset new file mode 100644 index 000000000..682f844d6 --- /dev/null +++ b/media-libs/harfbuzz/patches/harfbuzz-2.3.1.patchset @@ -0,0 +1,64 @@ +From cd059ecb349a848e670418a347c5f7c51e041ba4 Mon Sep 17 00:00:00 2001 +From: fbrosson +Date: Wed, 6 Jun 2018 20:38:08 +0000 +Subject: Fix script in the test suite to better filter the output of nm. + +src/check-symbols.sh compares the list of symbols in libharfbuzz.so against +a known list, $IGNORED_SYMBOLS, but Haiku has 2 symbols which are missing +in this list: _gSharedObjectHaiku{ABI,Version}. + +diff --git a/src/check-symbols.sh b/src/check-symbols.sh +index cea8684..538291e 100755 +--- a/src/check-symbols.sh ++++ b/src/check-symbols.sh +@@ -7,7 +7,7 @@ test -z "$srcdir" && srcdir=. + test -z "$libs" && libs=.libs + stat=0 + +-IGNORED_SYMBOLS='_fini\|_init\|_fdata\|_ftext\|_fbss\|__bss_start\|__bss_start__\|__bss_end__\|_edata\|_end\|_bss_end__\|__end__\|__gcov_flush\|llvm_.*' ++IGNORED_SYMBOLS='_fini\|_init\|_fdata\|_ftext\|_fbss\|__bss_start\|__bss_start__\|__bss_end__\|_edata\|_end\|_bss_end__\|__end__\|__gcov_flush\|_gSharedObjectHaikuABI\|_gSharedObjectHaikuVersion\|llvm_.*' + + if which nm 2>/dev/null >/dev/null; then + : +-- +2.17.1 + + +From dd78e507d3f667f7aa2027fe719bb11735882e4f Mon Sep 17 00:00:00 2001 +From: fbrosson +Date: Wed, 6 Jun 2018 20:39:08 +0000 +Subject: Patch src/check-libstdc++.sh to use objdump instead of ldd. + + +diff --git a/src/check-libstdc++.sh b/src/check-libstdc++.sh +index ce0bdab..ccfb420 100755 +--- a/src/check-libstdc++.sh ++++ b/src/check-libstdc++.sh +@@ -10,10 +10,15 @@ stat=0 + + if which ldd 2>/dev/null >/dev/null; then + LDD=ldd ++ GREP_NEEDED=cat + else + # macOS specific tool + if which otool 2>/dev/null >/dev/null; then + LDD="otool -L" ++ GREP_NEEDED=cat ++ elif which objdump 2>/dev/null >/dev/null; then ++ LDD="objdump -x" ++ GREP_NEEDED="grep NEEDED" + else + echo "check-libstdc++.sh: 'ldd' not found; skipping test" + exit 77 +@@ -29,7 +34,7 @@ for soname in harfbuzz harfbuzz-gobject; do + if ! test -f "$so"; then continue; fi + + echo "Checking that we are not linking to libstdc++ or libc++ in $so" +- if $LDD $so | grep 'libstdc[+][+]\|libc[+][+]'; then ++ if $LDD $so | $GREP_NEEDED | grep 'libstdc[+][+]\|libc[+][+]'; then + echo "Ouch, linked to libstdc++ or libc++" + stat=1 + fi +-- +2.17.1 +