Skip to contentSkip to conversation

harfbuzz: New package

PATCH Superseded Markos Chandras 4 participants 4 messages Aug 19, 2013 – Aug 22, 2013

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 harfbuzz: New package

HarfBuzz is an OpenType text shaping engine

http://www.freedesktop.org/wiki/Software/HarfBuzz/

---
http://lists.busybox.net/pipermail/buildroot/2013-August/076645.html
Changes since v1:
- Fix alphabetical order in package/Config.in
- Rename 'LIBSTDCPP support' to 'C++ support'

---
 package/Config.in            |  1 +
 package/harfbuzz/Config.in   | 34 ++++++++++++++++++++++++++++++++++
 package/harfbuzz/harfbuzz.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 79 insertions(+)
 create mode 100644 package/harfbuzz/Config.in
 create mode 100644 package/harfbuzz/harfbuzz.mk
package/Config.in +1 -0
index 7069d77..1b06755 100644
@@ -130,6 +130,7 @@ endif
 source "package/fbterm/Config.in"
 source "package/fbv/Config.in"
 source "package/fb-test-app/Config.in"
+source "package/harfbuzz/Config.in"
 source "package/imagemagick/Config.in"
 source "package/linux-fusion/Config.in"
 source "package/lite/Config.in"
package/harfbuzz/Config.in new file +34 -0
new file mode 100644
index 0000000..1b1bad3
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_HARFBUZZ
+	bool "harfbuzz"
+	help
+	  HarfBuzz is an OpenType text shaping engine
+
+	  http://www.freedesktop.org/wiki/Software/HarfBuzz/
+
+if BR2_PACKAGE_HARFBUZZ
+
+config BR2_PACKAGE_HARFBUZZ_CAIRO
+	bool "Use cairo"
+	select BR2_PACKAGE_CAIRO
+
+config BR2_PACKAGE_HARFBUZZ_FREETYPE
+	bool "Use the FreeType library"
+	select BR2_PACKAGE_FREETYPE
+
+config BR2_PACKAGE_HARFBUZZ_GLIB
+	bool "Use glib"
+	select BR2_PACKAGE_LIBGLIB2
+	depends on BR2_USE_WCHAR # gettext dep in libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+comment "glib support requires a toolchain with WCHAR and threading support."
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_HARFBUZZ_ICU
+	bool "Use ICU"
+	select BR2_PACKAGE_ICU
+	depends on BR2_USE_WCHAR # icu
+	depends on BR2_INSTALL_LIBSTDCPP # icu
+
+comment "icu support requires a toolchain with WCHAR and C++ support."
+	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
+endif
package/harfbuzz/harfbuzz.mk new file +44 -0

44 lines not on this page · raw message

Signature · 1 line
1.8.3.2
#1 lore raw

PATCH v2 1/1 harfbuzz: New package

Quoted 38 lines · Markos Chandras

HarfBuzz is an OpenType text shaping engine

http://www.freedesktop.org/wiki/Software/HarfBuzz/

---
http://lists.busybox.net/pipermail/buildroot/2013-August/076645.html
Changes since v1:
- Fix alphabetical order in package/Config.in
- Rename 'LIBSTDCPP support' to 'C++ support'

---
  package/Config.in            |  1 +
  package/harfbuzz/Config.in   | 34 ++++++++++++++++++++++++++++++++++
  package/harfbuzz/harfbuzz.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 79 insertions(+)

create mode 100644 package/harfbuzz/Config.in
create mode 100644 package/harfbuzz/harfbuzz.mk

package/Config.in +1 -0
index 7069d77..1b06755 100644
@@ -130,6 +130,7 @@ endif
  source "package/fbterm/Config.in"
  source "package/fbv/Config.in"
  source "package/fb-test-app/Config.in"
+source "package/harfbuzz/Config.in"
  source "package/imagemagick/Config.in"
  source "package/linux-fusion/Config.in"
  source "package/lite/Config.in"
package/harfbuzz/Config.in new file +2 -0
new file mode 100644
index 0000000..1b1bad3
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_HARFBUZZ
+	bool "harfbuzz"

package/harfbuzz/Config.in line 12

Quoted 10 lines
package/harfbuzz/Config.in new file +10 -0
+	help
+	  HarfBuzz is an OpenType text shaping engine
+
+	  http://www.freedesktop.org/wiki/Software/HarfBuzz/
+
+if BR2_PACKAGE_HARFBUZZ
+
+config BR2_PACKAGE_HARFBUZZ_CAIRO
+	bool "Use cairo"
+	select BR2_PACKAGE_CAIRO

We normally don't add options like this, but instead use automatic
selection (see below).

You may want to add some help text to say that it can make use of
cairo, freetype, glib2 and icu if these packages are selected.

Quoted 28 lines
package/harfbuzz/Config.in new file +22 -0
+
+config BR2_PACKAGE_HARFBUZZ_FREETYPE
+	bool "Use the FreeType library"
+	select BR2_PACKAGE_FREETYPE
+
+config BR2_PACKAGE_HARFBUZZ_GLIB
+	bool "Use glib"
+	select BR2_PACKAGE_LIBGLIB2
+	depends on BR2_USE_WCHAR # gettext dep in libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+comment "glib support requires a toolchain with WCHAR and threading support."
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_HARFBUZZ_ICU
+	bool "Use ICU"
+	select BR2_PACKAGE_ICU
+	depends on BR2_USE_WCHAR # icu
+	depends on BR2_INSTALL_LIBSTDCPP # icu
+
+comment "icu support requires a toolchain with WCHAR and C++ support."
+	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
+endif
package/harfbuzz/harfbuzz.mk new file +0 -0
new file mode 100644
index 0000000..9aee90f

package/harfbuzz/harfbuzz.mk line 10

Quoted 10 lines
package/harfbuzz/harfbuzz.mk new file +10 -0
@@ -0,0 +1,44 @@
+################################################################################
+#
+# harfbuzz
+#
+################################################################################
+
+HARFBUZZ_VERSION = 0.9.19
+HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release/
+HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2
+HARFBUZZ_LICENSE = Old-MIT ISC ICU

What is Old-MIT?

We still haven't had the final word on how the LICENSE string should be
formatted, but I think it is something like this:

MIT, ISC (ucdn library), ICU License (icu support library)

Luca, can you confirm?

package/harfbuzz/harfbuzz.mk line 16

Quoted 6 lines
package/harfbuzz/harfbuzz.mk new file +6 -0
+HARFBUZZ_LICENSE_FILES = COPYING src/hb-ucdn/COPYING src/hb-icu-le/COPYING
+HARFBUZZ_INSTALL_STAGING = YES
+
+HARFBUZZ_CONF_OPT = --without-coretext --without-uniscribe --without-graphite2
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_CAIRO),y)

To make it an automatic dependency, replace this condition with

ifeq ($(BR2_PACKAGE_CAIRO),y)

Same for the stuff below.

package/harfbuzz/harfbuzz.mk line 25

Quoted 9 lines
package/harfbuzz/harfbuzz.mk new file +9 -0
+	HARFBUZZ_DEPENDENCIES += cairo
+	HARFBUZZ_CONF_OPT += --with-cairo=yes
+else
+	HARFBUZZ_CONF_OPT += --with-cairo=no
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_FREETYPE),y)
+	HARFBUZZ_DEPENDENCIES += freetype
+	HARFBUZZ_CONF_OPT += --with-freetype=yes

Does harfbuzz use pkg-config for freetype? If not, you'll need

--with-freetype-config="$(STAGING_DIR)/usr/bin/freetype-config"

Quoted 4 lines
package/harfbuzz/harfbuzz.mk new file +4 -0
+else
+	HARFBUZZ_CONF_OPT += --with-freetype=no
+endif
+

package/harfbuzz/harfbuzz.mk line 39

Quoted 10 lines
package/harfbuzz/harfbuzz.mk new file +10 -0
+ifeq ($(BR2_PACKAGE_HARFBUZZ_GLIB),y)
+	HARFBUZZ_DEPENDENCIES += libglib2
+	HARFBUZZ_CONF_OPT += --with-glib=yes
+else
+	HARFBUZZ_CONF_OPT += --with-glib=no
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_ICU),y)
+	HARFBUZZ_DEPENDENCIES += icu
+	HARFBUZZ_CONF_OPT += --with-icu=yes

icu also has a custom config script so check if you need to pass it.

Regards,
Arnout

Quoted 6 lines
package/harfbuzz/harfbuzz.mk new file +5 -0
+else
+	HARFBUZZ_CONF_OPT += --with-icu=no
+endif
+
+$(eval $(autotools-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#2 lore raw

PATCH v2 1/1 harfbuzz: New package

Hi Arnout,

Quoted 6 lines · Arnout Vandecappelle
Quoted 5 lines · Markos Chandras

HarfBuzz is an OpenType text shaping engine

http://www.freedesktop.org/wiki/Software/HarfBuzz/

...

Quoted 13 lines
Quoted 13 lines
package/harfbuzz/harfbuzz.mk new file +5 -0
new file mode 100644
index 0000000..9aee90f
@@ -0,0 +1,44 @@
+################################################################################ 
 
+#
+# harfbuzz
+#
+################################################################################ 
Quoted 7 lines

package/harfbuzz/harfbuzz.mk line 10

Quoted 5 lines
package/harfbuzz/harfbuzz.mk new file +5 -0
+
+HARFBUZZ_VERSION = 0.9.19
+HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release/
+HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2
+HARFBUZZ_LICENSE = Old-MIT ISC ICU

What is Old-MIT?

It's been amazing to discover how many MIT license variants, all "functionally
identical",do exist (at least according to
https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT).

The one used in harfbuzz is not the one published on the OSI website, but it identical to the "Modern variants" wording on the fedora link above. So I guess it actually is an MITlicense...

Quoted 6 lines

We still haven't had the final word on how the LICENSE string should be formatted, but I think it is something like this:

MIT, ISC (ucdn library), ICU License (icu support library)

Luca, can you confirm?

It's never been madeofficial, but that's what we kind of agreed, and IMO the best choice.
Alas, not all packaged are compliant in current BR, but that's another issue.

Luca

#3 lore raw

PATCH v2 1/1 harfbuzz: New package

In reply to Arnout Vandecappelle
Quoted 155 lines · Arnout Vandecappelle
Quoted 40 lines · Markos Chandras

HarfBuzz is an OpenType text shaping engine

http://www.freedesktop.org/wiki/Software/HarfBuzz/

---
http://lists.busybox.net/pipermail/buildroot/2013-August/076645.html
Changes since v1:
- Fix alphabetical order in package/Config.in
- Rename 'LIBSTDCPP support' to 'C++ support'

---
  package/Config.in            |  1 +
  package/harfbuzz/Config.in   | 34 ++++++++++++++++++++++++++++++++++
  package/harfbuzz/harfbuzz.mk | 44
++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 79 insertions(+)

create mode 100644 package/harfbuzz/Config.in
create mode 100644 package/harfbuzz/harfbuzz.mk

package/Config.in +1 -0
index 7069d77..1b06755 100644
@@ -130,6 +130,7 @@ endif
  source "package/fbterm/Config.in"
  source "package/fbv/Config.in"
  source "package/fb-test-app/Config.in"
+source "package/harfbuzz/Config.in"
  source "package/imagemagick/Config.in"
  source "package/linux-fusion/Config.in"
  source "package/lite/Config.in"
package/harfbuzz/Config.in new file +2 -0
new file mode 100644
index 0000000..1b1bad3
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_HARFBUZZ
+       bool "harfbuzz"

package/harfbuzz/Config.in line 12

Quoted 10 lines
package/harfbuzz/Config.in new file +10 -0
+       help
+         HarfBuzz is an OpenType text shaping engine
+
+         http://www.freedesktop.org/wiki/Software/HarfBuzz/
+
+if BR2_PACKAGE_HARFBUZZ
+
+config BR2_PACKAGE_HARFBUZZ_CAIRO
+       bool "Use cairo"
+       select BR2_PACKAGE_CAIRO

We normally don't add options like this, but instead use automatic
selection (see below).

You may want to add some help text to say that it can make use of cairo,
freetype, glib2 and icu if these packages are selected.

Quoted 31 lines
package/harfbuzz/Config.in new file +11 -0
+
+config BR2_PACKAGE_HARFBUZZ_FREETYPE
+       bool "Use the FreeType library"
+       select BR2_PACKAGE_FREETYPE
+
+config BR2_PACKAGE_HARFBUZZ_GLIB
+       bool "Use glib"
+       select BR2_PACKAGE_LIBGLIB2
+       depends on BR2_USE_WCHAR # gettext dep in libglib2
+       depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+comment "glib support requires a toolchain with WCHAR and threading

support."

package/harfbuzz/Config.in new file +11 -0
+       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_HARFBUZZ_ICU
+       bool "Use ICU"
+       select BR2_PACKAGE_ICU
+       depends on BR2_USE_WCHAR # icu
+       depends on BR2_INSTALL_LIBSTDCPP # icu
+
+comment "icu support requires a toolchain with WCHAR and C++ support."
+       depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
+endif
package/harfbuzz/harfbuzz.mk new file +1 -0
new file mode 100644
index 0000000..9aee90f
@@ -0,0 +1,44 @@
 
+################################################################################

package/harfbuzz/harfbuzz.mk line 10

Quoted 10 lines
package/harfbuzz/harfbuzz.mk new file +9 -0
+#
+# harfbuzz
+#
 
+################################################################################
+
+HARFBUZZ_VERSION = 0.9.19
+HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release/
+HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2
+HARFBUZZ_LICENSE = Old-MIT ISC ICU

What is Old-MIT?

We still haven't had the final word on how the LICENSE string should be
formatted, but I think it is something like this:

MIT, ISC (ucdn library), ICU License (icu support library)

Luca, can you confirm?

package/harfbuzz/harfbuzz.mk line 16

Quoted 8 lines

+HARFBUZZ_LICENSE_FILES = COPYING src/hb-ucdn/COPYING src/hb-icu-le/COPYING

package/harfbuzz/harfbuzz.mk new file +5 -1
+HARFBUZZ_INSTALL_STAGING = YES
+
+HARFBUZZ_CONF_OPT = --without-coretext --without-uniscribe
--without-graphite2
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_CAIRO),y)

To make it an automatic dependency, replace this condition with

ifeq ($(BR2_PACKAGE_CAIRO),y)

Same for the stuff below.

package/harfbuzz/harfbuzz.mk line 25

Quoted 9 lines
package/harfbuzz/harfbuzz.mk new file +9 -0
+       HARFBUZZ_DEPENDENCIES += cairo
+       HARFBUZZ_CONF_OPT += --with-cairo=yes
+else
+       HARFBUZZ_CONF_OPT += --with-cairo=no
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_FREETYPE),y)
+       HARFBUZZ_DEPENDENCIES += freetype
+       HARFBUZZ_CONF_OPT += --with-freetype=yes

Does harfbuzz use pkg-config for freetype? If not, you'll need

--with-freetype-config="$(STAGING_DIR)/usr/bin/freetype-config"

Quoted 9 lines
package/harfbuzz/harfbuzz.mk new file +9 -0
+else
+       HARFBUZZ_CONF_OPT += --with-freetype=no
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_GLIB),y)
+       HARFBUZZ_DEPENDENCIES += libglib2
+       HARFBUZZ_CONF_OPT += --with-glib=yes
+else
+       HARFBUZZ_CONF_OPT += --with-glib=no
Quoted 9 lines

package/harfbuzz/harfbuzz.mk line 39

Quoted 5 lines
package/harfbuzz/harfbuzz.mk new file +5 -0
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_ICU),y)
+       HARFBUZZ_DEPENDENCIES += icu
+       HARFBUZZ_CONF_OPT += --with-icu=yes

icu also has a custom config script so check if you need to pass it.

Hi Arnout,

Thanks I will submit a new patch then.

Signature · 2 lines
Regards,
Markos Chandras