Patchwork [v2] harfbuzz: New package

login
register
mail settings
Submitter Markos Chandras
Date Aug. 19, 2013, 3:36 p.m.
Message ID <1376926609-11561-1-git-send-email-markos.chandras@imgtec.com>
Download mbox | patch
Permalink /patch/268255/
State Superseded
Headers show

Comments

Markos Chandras - Aug. 19, 2013, 3:36 p.m.
HarfBuzz is an OpenType text shaping engine

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

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
---
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
Arnout Vandecappelle - Aug. 21, 2013, 9:18 p.m.
On 19/08/13 17:36, Markos Chandras wrote:
> HarfBuzz is an OpenType text shaping engine
>
> http://www.freedesktop.org/wiki/Software/HarfBuzz/
>
> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
> ---
> 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
>
> diff --git a/package/Config.in b/package/Config.in
> index 7069d77..1b06755 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -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"
> diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
> new file mode 100644
> index 0000000..1b1bad3
> --- /dev/null
> +++ b/package/harfbuzz/Config.in
> @@ -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

  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.

> +
> +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
> diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
> new file mode 100644
> index 0000000..9aee90f
> --- /dev/null
> +++ b/package/harfbuzz/harfbuzz.mk
> @@ -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?

> +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.

> +	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"

> +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
> +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


> +else
> +	HARFBUZZ_CONF_OPT += --with-icu=no
> +endif
> +
> +$(eval $(autotools-package))
>
Luca Ceresoli - Aug. 22, 2013, 7:15 a.m.
Hi Arnout,

Arnout Vandecappelle wrote:
> On 19/08/13 17:36, Markos Chandras wrote:
>> HarfBuzz is an OpenType text shaping engine
>>
>> http://www.freedesktop.org/wiki/Software/HarfBuzz/
>>
>> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> 
...
>> diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
>> new file mode 100644
>> index 0000000..9aee90f
>> --- /dev/null
>> +++ b/package/harfbuzz/harfbuzz.mk
>> @@ -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?

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...

> 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
Markos Chandras - Aug. 22, 2013, 8:52 a.m.
On 21 August 2013 22:18, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 19/08/13 17:36, Markos Chandras wrote:
>>
>> HarfBuzz is an OpenType text shaping engine
>>
>> http://www.freedesktop.org/wiki/Software/HarfBuzz/
>>
>> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
>> ---
>> 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
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 7069d77..1b06755 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -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"
>> diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
>> new file mode 100644
>> index 0000000..1b1bad3
>> --- /dev/null
>> +++ b/package/harfbuzz/Config.in
>> @@ -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
>
>
>  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.
>
>
>> +
>> +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
>> diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
>> new file mode 100644
>> index 0000000..9aee90f
>> --- /dev/null
>> +++ b/package/harfbuzz/harfbuzz.mk
>> @@ -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?
>
>
>> +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.
>
>
>> +       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"
>
>
>> +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
>> +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.

Patch

diff --git a/package/Config.in b/package/Config.in
index 7069d77..1b06755 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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"
diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
new file mode 100644
index 0000000..1b1bad3
--- /dev/null
+++ b/package/harfbuzz/Config.in
@@ -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
diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
new file mode 100644
index 0000000..9aee90f
--- /dev/null
+++ b/package/harfbuzz/harfbuzz.mk
@@ -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
+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)
+	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
+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
+endif
+
+ifeq ($(BR2_PACKAGE_HARFBUZZ_ICU),y)
+	HARFBUZZ_DEPENDENCIES += icu
+	HARFBUZZ_CONF_OPT += --with-icu=yes
+else
+	HARFBUZZ_CONF_OPT += --with-icu=no
+endif
+
+$(eval $(autotools-package))