summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-graphics/harfbuzz
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-graphics/harfbuzz')
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch27
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch28
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch121
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb41
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb52
5 files changed, 228 insertions, 41 deletions
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch
new file mode 100644
index 000000000..d00656fc8
--- /dev/null
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch
@@ -0,0 +1,27 @@
+From df5848f423ec0f4b3e519900014349a0c00b1969 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 17 Aug 2020 16:36:03 +0200
+Subject: [PATCH] Do not disable introspection in cross builds.
+
+Yocto can and does support introspection cross builds, through
+running target binaries under qemu emulation.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 1865633..5e1787c 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -634,7 +634,7 @@ if have_gobject
+ gir = find_program('g-ir-scanner', required: get_option('introspection'))
+ build_gir = gir.found()
+
+- build_gir = build_gir and not meson.is_cross_build()
++ build_gir = build_gir
+ if not build_gir and get_option('introspection').enabled()
+ error('Introspection support is requested but it isn\'t available in cross builds')
+ endif
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch
new file mode 100644
index 000000000..d9fccfac0
--- /dev/null
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch
@@ -0,0 +1,28 @@
+From f316b794265f28e89821dfab0772caac1bb6b056 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 18 Aug 2020 10:31:47 +0000
+Subject: [PATCH] src/hb-gobject-enums.cc.tmpl: write out only the filename,
+ not the full path
+
+This is beneficial for reproducible builds, as build paths can vary
+between builds.
+
+Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/e876886d1e877ad90b6f02badefd6ebee1bc0b09]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/hb-gobject-enums.cc.tmpl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/hb-gobject-enums.cc.tmpl b/src/hb-gobject-enums.cc.tmpl
+index 2ffd1c9..87a11dd 100644
+--- a/src/hb-gobject-enums.cc.tmpl
++++ b/src/hb-gobject-enums.cc.tmpl
+@@ -43,7 +43,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN file-tail ***/
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch
new file mode 100644
index 000000000..2d692f36b
--- /dev/null
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch
@@ -0,0 +1,121 @@
+Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/5aff83104e03d6d2617987d24a51e490ab7a5cd1]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From bc1c93fbe04459a4b12c76c713ba1b750d2d9108 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 7 Sep 2020 17:11:17 +0100
+Subject: [PATCH 1/2] [build] No need to pass source directory to
+ gen-hb-version
+
+The input file is by definition in the source directory, so dirname()
+that instead of needing the directory to be passed.
+
+Needed because a follow-up commit will change when this is called, and the
+source directory isn't trivially available at that point.
+---
+ src/gen-hb-version.py | 6 +++---
+ src/meson.build | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/gen-hb-version.py b/src/gen-hb-version.py
+index 15e56b93..bf16f88a 100755
+--- a/src/gen-hb-version.py
++++ b/src/gen-hb-version.py
+@@ -4,15 +4,15 @@
+
+ import os, sys, shutil
+
+-if len (sys.argv) < 5:
++if len (sys.argv) < 4:
+ sys.exit(__doc__)
+
+ version = sys.argv[1]
+ major, minor, micro = version.split (".")
+
+ OUTPUT = sys.argv[2]
+-CURRENT_SOURCE_DIR = sys.argv[3]
+-INPUT = sys.argv[4]
++INPUT = sys.argv[3]
++CURRENT_SOURCE_DIR = os.path.dirname(INPUT)
+
+ with open (INPUT, "r", encoding='utf-8') as template:
+ with open (OUTPUT, "wb") as output:
+diff --git a/src/meson.build b/src/meson.build
+index 5d7cd578..2d78c992 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -286,7 +286,7 @@ custom_target('hb-version.h',
+ input: 'hb-version.h.in',
+ output: 'hb-version.h',
+ command: [find_program('gen-hb-version.py'), meson.project_version(),
+- '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
++ '@OUTPUT@', '@INPUT@'],
+ )
+
+ ragel = find_program('ragel', required: false)
+--
+2.28.0
+
+
+From 5aff83104e03d6d2617987d24a51e490ab7a5cd1 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 7 Sep 2020 10:55:33 +0100
+Subject: [PATCH 2/2] [build] generate hb-version.h once at configure time with
+ Meson
+
+Currently with Meson hb-version.h is generated during the build without
+any explicit dependencies which can result in build failures due races
+over the file.
+
+Change this to be generated at configure time, so that the file is always
+generated once before the build itself.
+
+Closes #2667
+---
+ src/meson.build | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 2d78c992..19290245 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -1,3 +1,10 @@
++hb_version_h = configure_file(
++ command: [find_program('gen-hb-version.py'), meson.project_version(), '@OUTPUT@', '@INPUT@'],
++ input: 'hb-version.h.in',
++ output: 'hb-version.h',
++ install: true,
++ install_dir: join_paths(get_option('includedir'), meson.project_name()))
++
+ # Base and default-included sources and headers
+ hb_base_sources = files(
+ 'hb-aat-layout-ankr-table.hh',
+@@ -214,9 +221,9 @@ hb_base_headers = files(
+ 'hb-shape.h',
+ 'hb-style.h',
+ 'hb-unicode.h',
+- 'hb-version.h',
+ 'hb.h',
+ )
++hb_base_headers += hb_version_h
+
+ # Optional Sources and Headers with external deps
+
+@@ -281,14 +288,6 @@ hb_gobject_headers = files(
+ 'hb-gobject-structs.h',
+ )
+
+-custom_target('hb-version.h',
+- build_by_default: true,
+- input: 'hb-version.h.in',
+- output: 'hb-version.h',
+- command: [find_program('gen-hb-version.py'), meson.project_version(),
+- '@OUTPUT@', '@INPUT@'],
+-)
+-
+ ragel = find_program('ragel', required: false)
+ if not ragel.found()
+ warning('You have to install ragel if you are going to develop HarfBuzz itself')
+--
+2.28.0
+
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
deleted file mode 100644
index ee08c12be..000000000
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Text shaping library"
-DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e11f5c3149cdec4bb309babb020b32b9 \
- file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc"
-
-SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.xz"
-SRC_URI[md5sum] = "2b3a4dfdb3e5e50055f941978944da9f"
-SRC_URI[sha256sum] = "9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12"
-
-inherit autotools pkgconfig lib_package gtk-doc
-
-PACKAGECONFIG ??= "cairo fontconfig freetype glib icu"
-PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo"
-PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig"
-PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype"
-PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0"
-PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2"
-PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
-
-PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
-
-LEAD_SONAME = "libharfbuzz.so"
-
-do_install_append() {
- # If no tools are installed due to PACKAGECONFIG then this directory is
- #still installed, so remove it to stop packaging wanings.
- rmdir --ignore-fail-on-non-empty ${D}${bindir}
-}
-
-FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
-FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
- ${libdir}/libharfbuzz-icu.so \
- ${libdir}/pkgconfig/harfbuzz-icu.pc \
-"
-FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb
new file mode 100644
index 000000000..f95273f68
--- /dev/null
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Text shaping library"
+DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f787620b7d3866d9552fd1924c07572 \
+ file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "harfbuzz-(?P<pver>\d+(\.\d+)+).tar"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \
+ file://0001-Do-not-disable-introspection-in-cross-builds.patch \
+ file://0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch \
+ file://version-race.patch \
+ "
+SRC_URI[sha256sum] = "b8c048d7c2964a12f2c80deb6634dfc836b603dd12bf0d0a3df1627698e220ce"
+
+inherit meson pkgconfig lib_package gtk-doc gobject-introspection
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "cairo fontconfig freetype glib icu"
+PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
+PACKAGECONFIG[fontconfig] = "-Dfontconfig=enabled,-Dfontconfig=disabled,fontconfig"
+PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
+PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
+PACKAGECONFIG[graphite] = "-Dgraphite=enabled,-Dgraphite=disabled,graphite2"
+PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu"
+
+PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
+
+LEAD_SONAME = "libharfbuzz.so"
+
+do_install_append() {
+ # If no tools are installed due to PACKAGECONFIG then this directory is
+ #still installed, so remove it to stop packaging wanings.
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
+FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
+ ${libdir}/libharfbuzz-icu.so \
+ ${libdir}/pkgconfig/harfbuzz-icu.pc \
+"
+FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
+
+BBCLASSEXTEND = "native nativesdk"