diff options
author | Mark H Weaver <mhw@netris.org> | 2018-09-23 04:46:59 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-09-25 19:58:58 -0400 |
commit | 257e3247910610fe24ae1b86f38e85552d53e48c (patch) | |
tree | 546fa26fbcc619741776bddeab8e4996be799483 /gnu/packages/patches | |
parent | 3b97a1779f3b65d582b8edc8c154b6414314b946 (diff) | |
download | guix-257e3247910610fe24ae1b86f38e85552d53e48c.tar guix-257e3247910610fe24ae1b86f38e85552d53e48c.tar.gz |
gnu: icecat: Unbundle graphite2 and harfbuzz.
* gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch: New file.
* gnu/packages/patches/icecat-use-system-graphite2.patch,
gnu/packages/patches/icecat-use-system-harfbuzz.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/gnuzilla.scm (icecat)[source]: Add new patch. Delete
bundled graphite2 and harfbuzz in snippet.
[inputs]: Add graphite2 and harfbuzz.
[arguments]: Add --with-system-{graphite2,harfbuzz} to configure flags.
Diffstat (limited to 'gnu/packages/patches')
3 files changed, 226 insertions, 527 deletions
diff --git a/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch b/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch new file mode 100644 index 0000000000..94c211b797 --- /dev/null +++ b/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch @@ -0,0 +1,226 @@ +Allow building against system-wide graphite2/harfbuzz. +See <https://bugzilla.mozilla.org/show_bug.cgi?id=847568> +Based on: + https://svnweb.freebsd.org/ports/head/www/firefox-esr/files/patch-bug847568?revision=472833&view=co +Modified for use with patch -p1, and to apply cleanly to GNU IceCat. + +--- icecat-60.2.0/config/system-headers.mozbuild ++++ icecat-60.2.0/config/system-headers.mozbuild +@@ -1311,6 +1311,19 @@ + 'pixman.h', + ] + ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ system_headers += [ ++ 'graphite2/Font.h', ++ 'graphite2/Segment.h', ++ ] ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ system_headers += [ ++ 'harfbuzz/hb-glib.h', ++ 'harfbuzz/hb-ot.h', ++ 'harfbuzz/hb.h', ++ ] ++ + if CONFIG['MOZ_SYSTEM_LIBVPX']: + system_headers += [ + 'vpx_mem/vpx_mem.h', +--- icecat-60.2.0/dom/base/moz.build ++++ icecat-60.2.0/dom/base/moz.build +@@ -474,6 +474,9 @@ + if CONFIG['MOZ_X11']: + CXXFLAGS += CONFIG['TK_CFLAGS'] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + GENERATED_FILES += [ + 'PropertyUseCounterMap.inc', + 'UseCounterList.h', +--- icecat-60.2.0/gfx/graphite2/moz-gr-update.sh ++++ icecat-60.2.0/gfx/graphite2/moz-gr-update.sh +@@ -1,6 +1,7 @@ + #!/bin/bash + + # Script used to update the Graphite2 library in the mozilla source tree ++# and bump version for --with-system-graphite2 + + # This script lives in gfx/graphite2, along with the library source, + # but must be run from the top level of the mozilla-central tree. +@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla + #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; + #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; + ++# chase version for --with-system-graphite2 ++perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ ++ if /GR2_VERSION_REQUIRE/" old-configure.in ++ + # summarize what's been touched + echo Updated to $RELEASE. + echo Here is what changed in the gfx/graphite2 directory: + echo + +-hg stat gfx/graphite2 ++hg stat old-configure.in gfx/graphite2 + + echo + echo If gfx/graphite2/src/files.mk has changed, please make corresponding +--- icecat-60.2.0/gfx/moz.build ++++ icecat-60.2.0/gfx/moz.build +@@ -10,6 +10,12 @@ with Files('**'): + if CONFIG['MOZ_TREE_CAIRO']: + DIRS += ['cairo'] + ++if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ DIRS += ['graphite2/src' ] ++ ++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ DIRS += ['harfbuzz/src'] ++ + DIRS += [ + '2d', + 'ycbcr', +@@ -18,8 +24,6 @@ DIRS += [ + 'qcms', + 'gl', + 'layers', +- 'graphite2/src', +- 'harfbuzz/src', + 'ots/src', + 'thebes', + 'ipc', +--- icecat-60.2.0/gfx/skia/generate_mozbuild.py ++++ icecat-60.2.0/gfx/skia/generate_mozbuild.py +@@ -148,6 +148,9 @@ + '-Wno-unused-private-field', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): + CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] + CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] +--- icecat-60.2.0/gfx/skia/moz.build ++++ icecat-60.2.0/gfx/skia/moz.build +@@ -822,6 +822,9 @@ + '-Wno-unused-private-field', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): + CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] + CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] +--- icecat-60.2.0/gfx/thebes/moz.build ++++ icecat-60.2.0/gfx/thebes/moz.build +@@ -272,7 +272,13 @@ + + LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] + +-DEFINES['GRAPHITE2_STATIC'] = True ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] ++else: ++ DEFINES['GRAPHITE2_STATIC'] = True ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + + if CONFIG['CC_TYPE'] == 'clang': + # Suppress warnings from Skia header files. +--- icecat-60.2.0/intl/unicharutil/util/moz.build ++++ icecat-60.2.0/intl/unicharutil/util/moz.build +@@ -25,4 +25,7 @@ UNIFIED_SOURCES += [ + 'nsUnicodeProperties.cpp', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + FINAL_LIBRARY = 'xul' +--- icecat-60.2.0/netwerk/dns/moz.build ++++ icecat-60.2.0/netwerk/dns/moz.build +@@ -76,3 +76,6 @@ + + if CONFIG['CC_TYPE'] in ('clang', 'gcc'): + CXXFLAGS += ['-Wno-error=shadow'] ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] +--- icecat-60.2.0/old-configure.in ++++ icecat-60.2.0/old-configure.in +@@ -3995,6 +3995,27 @@ + AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) + + dnl ======================================================== ++dnl Check for graphite2 ++dnl ======================================================== ++if test -n "$MOZ_SYSTEM_GRAPHITE2"; then ++ dnl graphite2.pc has bogus version, check manually ++ _SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" ++ AC_TRY_COMPILE([ #include <graphite2/Font.h> ++ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ ++ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ ++ * 100 + GR2_VERSION_BUGFIX >= \ ++ (major) * 10000 + (minor) * 100 + (bugfix) ) ++ ], [ ++ #if !GR2_VERSION_REQUIRE(1,3,10) ++ #error "Insufficient graphite2 version." ++ #endif ++ ], [], ++ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) ++ CFLAGS=$_SAVE_CFLAGS ++fi ++ ++dnl ======================================================== + dnl Check for pixman and cairo + dnl ======================================================== + +--- icecat-60.2.0/toolkit/library/moz.build ++++ icecat-60.2.0/toolkit/library/moz.build +@@ -235,6 +235,12 @@ + if CONFIG['MOZ_SYSTEM_PNG']: + OS_LIBS += CONFIG['MOZ_PNG_LIBS'] + ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] ++ ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] ++ + if CONFIG['MOZ_SYSTEM_HUNSPELL']: + OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] + +--- icecat-60.2.0/toolkit/moz.configure ++++ icecat-60.2.0/toolkit/moz.configure +@@ -1051,6 +1051,26 @@ + add_old_configure_assignment('FT2_CFLAGS', + ft2_info.cflags) + ++# Graphite2 ++# ============================================================== ++option('--with-system-graphite2', ++ help="Use system graphite2 (located with pkgconfig)") ++ ++system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', ++ when='--with-system-graphite2') ++ ++set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) ++ ++# HarfBuzz ++# ============================================================== ++option('--with-system-harfbuzz', ++ help="Use system harfbuzz (located with pkgconfig)") ++ ++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.7.4', ++ when='--with-system-harfbuzz') ++ ++set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) ++ + # Mortar + # ============================================================== + option('--enable-mortar', help='Enable mortar extension') diff --git a/gnu/packages/patches/icecat-use-system-graphite2.patch b/gnu/packages/patches/icecat-use-system-graphite2.patch deleted file mode 100644 index 188fba2bc9..0000000000 --- a/gnu/packages/patches/icecat-use-system-graphite2.patch +++ /dev/null @@ -1,248 +0,0 @@ -Copied from <https://reviewboard.mozilla.org/r/90218/diff/4> -See <https://bugzilla.mozilla.org/show_bug.cgi?id=847568> - -diff --git a/config/Makefile.in b/config/Makefile.in ---- a/config/Makefile.in -+++ b/config/Makefile.in -@@ -36,16 +36,17 @@ ifdef WRAP_SYSTEM_INCLUDES - export-preqs = \ - $(call mkdir_deps,system_wrappers) \ - $(NULL) - - export:: $(export-preqs) - $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ - -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ - -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ -+ -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \ - -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ - -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ - -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ - -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ - -DMOZ_SYSTEM_PNG=$(MOZ_SYSTEM_PNG) \ - -DMOZ_SYSTEM_JPEG=$(MOZ_SYSTEM_JPEG) \ - -DMOZ_SYSTEM_LIBEVENT=$(MOZ_SYSTEM_LIBEVENT) \ - -DMOZ_SYSTEM_LIBVPX=$(MOZ_SYSTEM_LIBVPX) \ -diff --git a/config/system-headers b/config/system-headers ---- a/config/system-headers -+++ b/config/system-headers -@@ -1260,16 +1260,20 @@ zlib.h - #ifdef MOZ_ENABLE_STARTUP_NOTIFICATION - libsn/sn.h - libsn/sn-common.h - libsn/sn-launchee.h - libsn/sn-launcher.h - libsn/sn-monitor.h - libsn/sn-util.h - #endif -+#if MOZ_SYSTEM_GRAPHITE2==1 -+graphite2/Font.h -+graphite2/Segment.h -+#endif - #if MOZ_SYSTEM_HARFBUZZ==1 - harfbuzz/hb-glib.h - harfbuzz/hb-ot.h - harfbuzz/hb.h - #endif - #if MOZ_SYSTEM_HUNSPELL==1 - hunspell.hxx - #endif -diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh ---- a/gfx/graphite2/moz-gr-update.sh -+++ b/gfx/graphite2/moz-gr-update.sh -@@ -1,11 +1,12 @@ - #!/bin/bash - - # Script used to update the Graphite2 library in the mozilla source tree -+# and bump version for --with-system-graphite2 - - # This script lives in gfx/graphite2, along with the library source, - # but must be run from the top level of the mozilla-central tree. - - # Run as - # - # ./gfx/graphite2/moz-gr-update.sh RELEASE - # -@@ -32,22 +33,26 @@ echo "This directory contains the Graphi - echo "$TARBALL" >> gfx/graphite2/README.mozilla - echo "" - echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla - - # fix up includes because of bug 721839 (cstdio) and bug 803066 (Windows.h) - #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; - #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \; - -+# chase version for --with-system-graphite2 -+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ -+ if /GR2_VERSION_REQUIRE/" old-configure.in -+ - # summarize what's been touched - echo Updated to $RELEASE. - echo Here is what changed in the gfx/graphite2 directory: - echo - --hg stat gfx/graphite2 -+hg stat old-configure.in gfx/graphite2 - - echo - echo If gfx/graphite2/src/files.mk has changed, please make corresponding - echo changes to gfx/graphite2/src/moz.build - echo - - echo - echo Now use hg commands to create a patch for the mozilla tree. -diff --git a/gfx/moz.build b/gfx/moz.build ---- a/gfx/moz.build -+++ b/gfx/moz.build -@@ -2,28 +2,30 @@ - # vim: set filetype=python: - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - if CONFIG['MOZ_TREE_CAIRO']: - DIRS += ['cairo'] - -+if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ DIRS += ['graphite2/src' ] -+ - if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: - DIRS += ['harfbuzz/src'] - - DIRS += [ - '2d', - 'ycbcr', - 'angle', - 'src', - 'qcms', - 'gl', - 'layers', -- 'graphite2/src', - 'ots/src', - 'thebes', - 'ipc', - 'vr', - 'config', - ] - - if CONFIG['MOZ_ENABLE_SKIA']: -diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build ---- a/gfx/thebes/moz.build -+++ b/gfx/thebes/moz.build -@@ -261,16 +261,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('and - CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] - - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): - CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] - - LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] - LOCAL_INCLUDES += ['/media/libyuv/include'] - --DEFINES['GRAPHITE2_STATIC'] = True -+if CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] -+else: -+ DEFINES['GRAPHITE2_STATIC'] = True - - if CONFIG['MOZ_SYSTEM_HARFBUZZ']: - CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] - - if CONFIG['CLANG_CXX']: - # Suppress warnings from Skia header files. - SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough'] -diff --git a/moz.configure b/moz.configure ---- a/moz.configure -+++ b/moz.configure -@@ -260,16 +260,28 @@ def extra_programs(target): - - check_prog('DSYMUTIL', delayed_getattr(extra_programs, 'DSYMUTIL'), - allow_missing=True) - check_prog('GENISOIMAGE', delayed_getattr(extra_programs, 'GENISOIMAGE'), - allow_missing=True) - check_prog('RPMBUILD', delayed_getattr(extra_programs, 'RPMBUILD'), - allow_missing=True) - -+option('--with-system-graphite2', -+ help="Use system graphite2 (located with pkgconfig)") -+ -+@depends('--with-system-graphite2', compile_environment) -+def check_for_graphite2(value, compile_env): -+ return value and compile_env -+ -+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', -+ check_for_graphite2) -+ -+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) -+ - option('--with-system-harfbuzz', - help="Use system harfbuzz (located with pkgconfig)") - - @depends('--with-system-harfbuzz', compile_environment) - def check_for_harfbuzz(value, compile_env): - return value and compile_env - - system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.3.3', -diff --git a/old-configure.in b/old-configure.in ---- a/old-configure.in -+++ b/old-configure.in -@@ -5060,16 +5060,37 @@ if test "$USE_FC_FREETYPE"; then - CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS" - MOZ_CHECK_HEADERS([fontconfig/fcfreetype.h], , - [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)], [#include <fontconfig/fontconfig.h>]) - CPPFLAGS="$_SAVE_CPPFLAGS" - fi - fi - - dnl ======================================================== -+dnl Check for graphite2 -+dnl ======================================================== -+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then -+ dnl graphite2.pc has bogus version, check manually -+ _SAVE_CFLAGS=$CFLAGS -+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" -+ AC_TRY_COMPILE([ #include <graphite2/Font.h> -+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ -+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ -+ * 100 + GR2_VERSION_BUGFIX >= \ -+ (major) * 10000 + (minor) * 100 + (bugfix) ) -+ ], [ -+ #if !GR2_VERSION_REQUIRE(1,3,8) -+ #error "Insufficient graphite2 version." -+ #endif -+ ], [], -+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) -+ CFLAGS=$_SAVE_CFLAGS -+fi -+ -+dnl ======================================================== - dnl Check for pixman and cairo - dnl ======================================================== - - MOZ_TREE_CAIRO=1 - MOZ_ARG_ENABLE_BOOL(system-cairo, - [ --enable-system-cairo Use system cairo (located with pkgconfig)], - MOZ_TREE_CAIRO=, - MOZ_TREE_CAIRO=1 ) -diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build ---- a/toolkit/library/moz.build -+++ b/toolkit/library/moz.build -@@ -221,16 +221,19 @@ if CONFIG['SERVO_TARGET_DIR']: - OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo'] - - if CONFIG['MOZ_SYSTEM_JPEG']: - OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] - - if CONFIG['MOZ_SYSTEM_PNG']: - OS_LIBS += CONFIG['MOZ_PNG_LIBS'] - -+if CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] -+ - if CONFIG['MOZ_SYSTEM_HARFBUZZ']: - OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] - - if CONFIG['MOZ_SYSTEM_HUNSPELL']: - OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] - - if CONFIG['MOZ_SYSTEM_LIBEVENT']: - OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] - diff --git a/gnu/packages/patches/icecat-use-system-harfbuzz.patch b/gnu/packages/patches/icecat-use-system-harfbuzz.patch deleted file mode 100644 index 083d404c13..0000000000 --- a/gnu/packages/patches/icecat-use-system-harfbuzz.patch +++ /dev/null @@ -1,279 +0,0 @@ -Copied from <https://reviewboard.mozilla.org/r/35763/diff/9> -See <https://bugzilla.mozilla.org/show_bug.cgi?id=847568> - -diff --git a/config/Makefile.in b/config/Makefile.in ---- a/config/Makefile.in -+++ b/config/Makefile.in -@@ -36,16 +36,17 @@ ifdef WRAP_SYSTEM_INCLUDES - export-preqs = \ - $(call mkdir_deps,system_wrappers) \ - $(NULL) - - export:: $(export-preqs) - $(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \ - -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \ - -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ -+ -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \ - -DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \ - -DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \ - -DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \ - -DMOZ_SYSTEM_PNG=$(MOZ_SYSTEM_PNG) \ - -DMOZ_SYSTEM_JPEG=$(MOZ_SYSTEM_JPEG) \ - -DMOZ_SYSTEM_LIBEVENT=$(MOZ_SYSTEM_LIBEVENT) \ - -DMOZ_SYSTEM_LIBVPX=$(MOZ_SYSTEM_LIBVPX) \ - -DMOZ_SYSTEM_ICU=$(MOZ_SYSTEM_ICU) \ -diff --git a/config/system-headers b/config/system-headers ---- a/config/system-headers -+++ b/config/system-headers -@@ -1260,16 +1260,21 @@ zlib.h - #ifdef MOZ_ENABLE_STARTUP_NOTIFICATION - libsn/sn.h - libsn/sn-common.h - libsn/sn-launchee.h - libsn/sn-launcher.h - libsn/sn-monitor.h - libsn/sn-util.h - #endif -+#if MOZ_SYSTEM_HARFBUZZ==1 -+harfbuzz/hb-glib.h -+harfbuzz/hb-ot.h -+harfbuzz/hb.h -+#endif - #if MOZ_SYSTEM_HUNSPELL==1 - hunspell.hxx - #endif - #if MOZ_SYSTEM_BZ2==1 - bzlib.h - #endif - #ifdef MOZ_ENABLE_GIO - gio/gio.h -diff --git a/dom/base/moz.build b/dom/base/moz.build ---- a/dom/base/moz.build -+++ b/dom/base/moz.build -@@ -474,16 +474,19 @@ for var in ('MOZ_B2G_RIL'): - DEFINES[var] = True - - if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: - DEFINES['HAVE_SIDEBAR'] = True - - if CONFIG['MOZ_X11']: - CXXFLAGS += CONFIG['TK_CFLAGS'] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - GENERATED_FILES += [ - 'PropertyUseCounterMap.inc', - 'UseCounterList.h', - ] - - countermap = GENERATED_FILES['PropertyUseCounterMap.inc'] - countermap.script = 'gen-usecounters.py:property_map' - countermap.inputs = ['UseCounters.conf'] -diff --git a/gfx/harfbuzz/README-mozilla b/gfx/harfbuzz/README-mozilla ---- a/gfx/harfbuzz/README-mozilla -+++ b/gfx/harfbuzz/README-mozilla -@@ -14,8 +14,13 @@ this file when updating harfbuzz, and ch - - The normal approach to updating harfbuzz, therefore, is to pull the latest HB - source into a scratch directory and do a local build; then copy the original - sources AND the generated header mentioned above from the build directory into - the mozilla tree. - - If the collection of source files changes, manual updates to moz.build may be - needed, as we don't use the upstream makefiles. -+ -+The in-tree copy may be omitted during build by --with-system-harfbuzz. -+Make sure to keep pkg-config version check within old-configure.in in sync -+with checkout version or increment latest tag by one if it's not based -+on upstream release. -diff --git a/gfx/moz.build b/gfx/moz.build ---- a/gfx/moz.build -+++ b/gfx/moz.build -@@ -2,26 +2,28 @@ - # vim: set filetype=python: - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - if CONFIG['MOZ_TREE_CAIRO']: - DIRS += ['cairo'] - -+if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ DIRS += ['harfbuzz/src'] -+ - DIRS += [ - '2d', - 'ycbcr', - 'angle', - 'src', - 'qcms', - 'gl', - 'layers', - 'graphite2/src', -- 'harfbuzz/src', - 'ots/src', - 'thebes', - 'ipc', - 'vr', - 'config', - ] - - if CONFIG['MOZ_ENABLE_SKIA']: -diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py ---- a/gfx/skia/generate_mozbuild.py -+++ b/gfx/skia/generate_mozbuild.py -@@ -138,16 +138,19 @@ if CONFIG['GNU_CXX'] and not CONFIG['CLA - if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: - CXXFLAGS += [ - '-Wno-implicit-fallthrough', - '-Wno-inconsistent-missing-override', - '-Wno-macro-redefined', - '-Wno-unused-private-field', - ] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): - CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] - CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] - - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): - CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] - """ - -diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build ---- a/gfx/skia/moz.build -+++ b/gfx/skia/moz.build -@@ -748,14 +748,17 @@ if CONFIG['GNU_CXX'] and not CONFIG['CLA - if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']: - CXXFLAGS += [ - '-Wno-implicit-fallthrough', - '-Wno-inconsistent-missing-override', - '-Wno-macro-redefined', - '-Wno-unused-private-field', - ] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android'): - CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] - CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] - - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): - CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] -diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build ---- a/gfx/thebes/moz.build -+++ b/gfx/thebes/moz.build -@@ -263,11 +263,14 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('and - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'): - CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] - - LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] - LOCAL_INCLUDES += ['/media/libyuv/include'] - - DEFINES['GRAPHITE2_STATIC'] = True - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - if CONFIG['CLANG_CXX']: - # Suppress warnings from Skia header files. - SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough'] -diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build ---- a/intl/unicharutil/util/moz.build -+++ b/intl/unicharutil/util/moz.build -@@ -37,9 +37,12 @@ if CONFIG['_MSC_VER']: - DEFINES['_USE_ANSI_CPP'] = True - # Don't include directives about which CRT to use - CFLAGS += ['-Zl'] - CXXFLAGS += ['-Zl'] - - if CONFIG['ENABLE_INTL_API']: - USE_LIBS += ['icu'] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - DIST_INSTALL = True -diff --git a/moz.configure b/moz.configure ---- a/moz.configure -+++ b/moz.configure -@@ -260,16 +260,28 @@ def extra_programs(target): - - check_prog('DSYMUTIL', delayed_getattr(extra_programs, 'DSYMUTIL'), - allow_missing=True) - check_prog('GENISOIMAGE', delayed_getattr(extra_programs, 'GENISOIMAGE'), - allow_missing=True) - check_prog('RPMBUILD', delayed_getattr(extra_programs, 'RPMBUILD'), - allow_missing=True) - -+option('--with-system-harfbuzz', -+ help="Use system harfbuzz (located with pkgconfig)") -+ -+@depends('--with-system-harfbuzz', compile_environment) -+def check_for_harfbuzz(value, compile_env): -+ return value and compile_env -+ -+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.3.3', -+ check_for_harfbuzz) -+ -+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) -+ - option('--enable-system-hunspell', - help="Use system hunspell (located with pkgconfig)") - - @depends('--enable-system-hunspell', compile_environment) - def check_for_hunspell(value, compile_env): - return value and compile_env - - system_hunspell = pkg_check_modules('MOZ_HUNSPELL', 'hunspell', -diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build ---- a/netwerk/dns/moz.build -+++ b/netwerk/dns/moz.build -@@ -61,16 +61,19 @@ etld_data = GENERATED_FILES['etld_data.i - etld_data.script = 'prepare_tlds.py' - etld_data.inputs = ['effective_tld_names.dat'] - - # need to include etld_data.inc - LOCAL_INCLUDES += [ - '/netwerk/base', - ] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] -+ - if CONFIG['ENABLE_INTL_API']: - DEFINES['IDNA2008'] = True - USE_LIBS += ['icu'] - else: - UNIFIED_SOURCES += [ - 'nameprep.c', - ] - -diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build ---- a/toolkit/library/moz.build -+++ b/toolkit/library/moz.build -@@ -221,16 +221,19 @@ if CONFIG['SERVO_TARGET_DIR']: - OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo'] - - if CONFIG['MOZ_SYSTEM_JPEG']: - OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] - - if CONFIG['MOZ_SYSTEM_PNG']: - OS_LIBS += CONFIG['MOZ_PNG_LIBS'] - -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] -+ - if CONFIG['MOZ_SYSTEM_HUNSPELL']: - OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] - - if CONFIG['MOZ_SYSTEM_LIBEVENT']: - OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] - - if CONFIG['MOZ_SYSTEM_LIBVPX']: - OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS'] - |