From 2fede6d02829b4bacb6cbe418ac1e164bea353e6 Mon Sep 17 00:00:00 2001 From: fbrosson Date: Thu, 18 Oct 2018 21:28:53 +0000 Subject: [PATCH] HarfBuzz: bump to 2.0.0. --- ...uzz-1.5.1.recipe => harfbuzz-2.0.0.recipe} | 48 ++++++++---- .../harfbuzz/patches/harfbuzz-1.5.1.patchset | 75 ------------------- .../harfbuzz/patches/harfbuzz-2.0.0.patchset | 64 ++++++++++++++++ 3 files changed, 96 insertions(+), 91 deletions(-) rename media-libs/harfbuzz/{harfbuzz-1.5.1.recipe => harfbuzz-2.0.0.recipe} (66%) delete mode 100644 media-libs/harfbuzz/patches/harfbuzz-1.5.1.patchset create mode 100644 media-libs/harfbuzz/patches/harfbuzz-2.0.0.patchset diff --git a/media-libs/harfbuzz/harfbuzz-1.5.1.recipe b/media-libs/harfbuzz/harfbuzz-2.0.0.recipe similarity index 66% rename from media-libs/harfbuzz/harfbuzz-1.5.1.recipe rename to media-libs/harfbuzz/harfbuzz-2.0.0.recipe index ea8db60e9..7dc0d9208 100644 --- a/media-libs/harfbuzz/harfbuzz-1.5.1.recipe +++ b/media-libs/harfbuzz/harfbuzz-2.0.0.recipe @@ -2,7 +2,7 @@ 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-2017 Behdad Esfahbod +COPYRIGHT="2004-2018 Behdad Esfahbod 2000-2005 Owen Taylor 2013, 2015-2017 Khaled Hosny 2010,2011,2012 Google, Inc. @@ -18,26 +18,30 @@ COPYRIGHT="2004-2017 Behdad Esfahbod LICENSE="MIT" REVISION="1" SOURCE_URI="https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-$portVersion.tar.bz2" -CHECKSUM_SHA256="56838dfdad2729b8866763c82d623354d138a4d99d9ffb710c7d377b5cfc7c51" +CHECKSUM_SHA256="cc973f6839c4ce6425889d24f81fc23736cc97334bde0343c08a9c2ccc1d8965" PATCHES="harfbuzz-$portVersion.patchset" ARCHITECTURES="!x86_gcc2 x86 x86_64" -SECONDARY_ARCHITECTURES="!x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" -if [ "$targetArchitecture" != x86_gcc2 ]; then - commandSuffix=$secondaryArchSuffix - commandBinDir=$binDir -else +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then commandSuffix= commandBinDir=$prefix/bin fi +libVersion="0.20000.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + PROVIDES=" harfbuzz$secondaryArchSuffix = $portVersion compat >= 0.9 cmd:hb_ot_shape_closure$commandSuffix cmd:hb_shape$commandSuffix - lib:libharfbuzz$secondaryArchSuffix = 0.10501.0 compat >= 0 - lib:libharfbuzz_icu$secondaryArchSuffix = 0.10501.0 compat >= 0 + cmd:hb_subset$commandSuffix + lib:libharfbuzz$secondaryArchSuffix = $libVersionCompat + lib:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat + lib:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat " REQUIRES=" haiku$secondaryArchSuffix @@ -54,8 +58,9 @@ REQUIRES=" PROVIDES_devel=" harfbuzz${secondaryArchSuffix}_devel = $portVersion compat >= 0.9 - devel:libharfbuzz$secondaryArchSuffix = 0.10501.0 compat >= 0 - devel:libharfbuzz_icu$secondaryArchSuffix = 0.10501.0 compat >= 0 + devel:libharfbuzz$secondaryArchSuffix = $libVersionCompat + devel:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat + devel:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat " REQUIRES_devel=" harfbuzz$secondaryArchSuffix == $portVersion base @@ -86,14 +91,23 @@ BUILD_PREREQUIRES=" 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 \ + runConfigure --omit-dirs binDir ./configure --bindir="$commandBinDir" \ --with-graphite2=yes --with-icu make $jobArgs } @@ -103,17 +117,19 @@ INSTALL() make install # remove libtool library files - rm $libDir/libharfbuzz*.la + rm -f "$libDir"/libharfbuzz*.la prepareInstalledDevelLibs \ libharfbuzz \ - libharfbuzz-icu + libharfbuzz-icu \ + libharfbuzz-subset \ + fixPkgconfig # devel package packageEntries devel \ - $developDir \ - $dataDir + "$dataDir" \ + "$developDir" } TEST() diff --git a/media-libs/harfbuzz/patches/harfbuzz-1.5.1.patchset b/media-libs/harfbuzz/patches/harfbuzz-1.5.1.patchset deleted file mode 100644 index 50a0dd0d5..000000000 --- a/media-libs/harfbuzz/patches/harfbuzz-1.5.1.patchset +++ /dev/null @@ -1,75 +0,0 @@ -From a8cf9112a315902e3cfb2f3ba796ad6a048d9a79 Mon Sep 17 00:00:00 2001 -From: fbrosson -Date: Sun, 19 Jun 2016 14:41:51 +0000 -Subject: Fix scripts in the test suite to better filter the output of nm. - -src/check-defs.sh and src/check-symbols.sh compare the list of -symbols in libharfbuzz.so against a known list. This patch teaches -these scripts that they should ignore two symbols that are Haiku-specific: -_gSharedObjectHaikuABI and _gSharedObjectHaikuVersion. - -diff --git a/src/check-defs.sh b/src/check-defs.sh -index 480d499..8a0d395 100755 ---- a/src/check-defs.sh -+++ b/src/check-defs.sh -@@ -21,7 +21,7 @@ for def in $defs; do - lib=`echo "$def" | sed 's/[.]def$//;s@.*/@@'` - so=.libs/lib${lib}.so - -- EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] .' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>\| __gcov_flush\>\| llvm_' | cut -d' ' -f3`" -+ EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] .' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>\| __gcov_flush\>\| _gSharedObjectHaikuABI\>\| _gSharedObjectHaikuVersion\>\| llvm_' | cut -d' ' -f3`" - - if test -f "$so"; then - -diff --git a/src/check-symbols.sh b/src/check-symbols.sh -index d4d655d..ac449dc 100755 ---- a/src/check-symbols.sh -+++ b/src/check-symbols.sh -@@ -20,7 +20,7 @@ for suffix in so dylib; do - so=.libs/libharfbuzz.$suffix - if ! test -f "$so"; then continue; fi - -- EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] .' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>\| __gcov_flush\>\| ___gcov_flush\>\| llvm_\| _llvm_' | cut -d' ' -f3`" -+ EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] .' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>\| __gcov_flush\>\| ___gcov_flush\>\| _gSharedObjectHaikuABI\>\| _gSharedObjectHaikuVersion\>\| llvm_\| _llvm_' | cut -d' ' -f3`" - - prefix=`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'` - --- -2.7.0 - - -From c8b977379a62f5119a799c8b14d48dc9031b9994 Mon Sep 17 00:00:00 2001 -From: fbrosson -Date: Sun, 19 Jun 2016 17:53:12 +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 b541828..7a1595a 100755 ---- a/src/check-libstdc++.sh -+++ b/src/check-libstdc++.sh -@@ -7,10 +7,10 @@ test -z "$srcdir" && srcdir=. - stat=0 - - --if which ldd 2>/dev/null >/dev/null; then -+if which objdump 2>/dev/null >/dev/null; then - : - else -- echo "check-libstdc++.sh: 'ldd' not found; skipping test" -+ echo "check-libstdc++.sh: 'objdump' not found; skipping test" - exit 77 - fi - -@@ -20,7 +20,7 @@ for suffix in so dylib; do - if ! test -f "$so"; then continue; fi - - echo "Checking that we are not linking to libstdc++ or libc++" -- if ldd $so | grep 'libstdc[+][+]\|libc[+][+]'; then -+ if objdump -x $so | grep NEEDED | grep 'libstdc[+][+]\|libc[+][+]'; then - echo "Ouch, linked to libstdc++ or libc++" - stat=1 - fi --- -2.7.0 - diff --git a/media-libs/harfbuzz/patches/harfbuzz-2.0.0.patchset b/media-libs/harfbuzz/patches/harfbuzz-2.0.0.patchset new file mode 100644 index 000000000..682f844d6 --- /dev/null +++ b/media-libs/harfbuzz/patches/harfbuzz-2.0.0.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 +