Submitted By: Ken Moffat Date: 2016-06-13 Initial Package Version: 47.0 Upstream Status: Waiting for review Origin: OpenBSD (found at gentoo, rediffed because of one offset > 1500 lines) Description: Allow use of system versions of graphite2 and harfbuzz. This should be regarded as experimental. Add the options --enable-system-graphite and --enable-system-harfbuzz to use this (needs recent versions of both). diff -Naur ff47-vanilla/config/Makefile.in ff47-patched/config/Makefile.in --- ff47-vanilla/config/Makefile.in 2016-06-01 05:11:40.000000000 +0100 +++ ff47-patched/config/Makefile.in 2016-06-11 18:51:40.389876996 +0100 @@ -49,6 +49,8 @@ -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + -DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \ + -DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \ $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers $(INSTALL) system_wrappers $(DIST) diff -Naur ff47-vanilla/config/system-headers ff47-patched/config/system-headers --- ff47-vanilla/config/system-headers 2016-06-01 05:11:40.000000000 +0100 +++ ff47-patched/config/system-headers 2016-06-11 18:51:40.389876996 +0100 @@ -1345,3 +1345,11 @@ #endif libutil.h unwind.h +#if MOZ_NATIVE_GRAPHITE2==1 +graphite2/Font.h +graphite2/Segment.h +#endif +#if MOZ_NATIVE_HARFBUZZ==1 +harfbuzz/hb-ot.h +harfbuzz/hb.h +#endif diff -Naur ff47-vanilla/dom/base/moz.build ff47-patched/dom/base/moz.build --- ff47-vanilla/dom/base/moz.build 2016-06-01 05:11:44.000000000 +0100 +++ ff47-patched/dom/base/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -482,6 +482,9 @@ if CONFIG['MOZ_X11']: CXXFLAGS += CONFIG['TK_CFLAGS'] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + GENERATED_FILES += [ 'PropertyUseCounterMap.inc', 'UseCounterList.h', diff -Naur ff47-vanilla/gfx/graphite2/moz-gr-update.sh ff47-patched/gfx/graphite2/moz-gr-update.sh --- ff47-vanilla/gfx/graphite2/moz-gr-update.sh 2016-05-12 18:13:36.000000000 +0100 +++ ff47-patched/gfx/graphite2/moz-gr-update.sh 2016-06-11 18:51:40.389876996 +0100 @@ -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 @@ #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;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/" 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 configure.in gfx/graphite2 echo echo If gfx/graphite2/src/files.mk has changed, please make corresponding diff -Naur ff47-vanilla/gfx/moz.build ff47-patched/gfx/moz.build --- ff47-vanilla/gfx/moz.build 2016-05-12 18:13:06.000000000 +0100 +++ ff47-patched/gfx/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -7,6 +7,12 @@ if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] +if not CONFIG['MOZ_NATIVE_GRAPHITE2']: + DIRS += ['graphite2/src' ] + +if not CONFIG['MOZ_NATIVE_HARFBUZZ']: + DIRS += ['harfbuzz/src'] + DIRS += [ '2d', 'ycbcr', @@ -15,8 +21,6 @@ 'qcms', 'gl', 'layers', - 'graphite2/src', - 'harfbuzz/src', 'ots/src', 'thebes', 'ipc', diff -Naur ff47-vanilla/gfx/skia/generate_mozbuild.py ff47-patched/gfx/skia/generate_mozbuild.py --- ff47-vanilla/gfx/skia/generate_mozbuild.py 2016-06-01 05:11:44.000000000 +0100 +++ ff47-patched/gfx/skia/generate_mozbuild.py 2016-06-11 18:51:40.389876996 +0100 @@ -134,6 +134,9 @@ '-Wno-unused-private-field', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff -Naur ff47-vanilla/gfx/skia/moz.build ff47-patched/gfx/skia/moz.build --- ff47-vanilla/gfx/skia/moz.build 2016-06-01 05:11:44.000000000 +0100 +++ ff47-patched/gfx/skia/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -752,6 +752,9 @@ '-Wno-unused-private-field', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] diff -Naur ff47-vanilla/gfx/thebes/moz.build ff47-patched/gfx/thebes/moz.build --- ff47-vanilla/gfx/thebes/moz.build 2016-06-01 05:11:44.000000000 +0100 +++ ff47-patched/gfx/thebes/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -307,7 +307,14 @@ LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] -DEFINES['GRAPHITE2_STATIC'] = True +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + +if CONFIG['MOZ_NATIVE_GRAPHITE2']: + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +else: + DEFINES['GRAPHITE2_STATIC'] = True + if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. diff -Naur ff47-vanilla/intl/unicharutil/util/moz.build ff47-patched/intl/unicharutil/util/moz.build --- ff47-vanilla/intl/unicharutil/util/moz.build 2016-06-01 05:11:45.000000000 +0100 +++ ff47-patched/intl/unicharutil/util/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -44,4 +44,7 @@ LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] USE_LIBS += ['icu'] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + DIST_INSTALL = True diff -Naur ff47-vanilla/netwerk/dns/moz.build ff47-patched/netwerk/dns/moz.build --- ff47-vanilla/netwerk/dns/moz.build 2016-05-12 18:13:28.000000000 +0100 +++ ff47-patched/netwerk/dns/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -66,6 +66,9 @@ '/netwerk/base', ] +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19': LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']] diff -Naur ff47-vanilla/old-configure.in ff47-patched/old-configure.in --- ff47-vanilla/old-configure.in 2016-06-01 05:11:44.000000000 +0100 +++ ff47-patched/old-configure.in 2016-06-11 18:51:40.389876996 +0100 @@ -8013,6 +8013,49 @@ fi dnl ======================================================== +dnl Check for harfbuzz +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-harfbuzz, +[ --with-system-harfbuzz Use system harfbuzz (located with pkgconfig)], +MOZ_NATIVE_HARFBUZZ=1, +MOZ_NATIVE_HARFBUZZ=) + +if test -n "$MOZ_NATIVE_HARFBUZZ"; then + PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.3) +fi + +AC_SUBST(MOZ_NATIVE_HARFBUZZ) + +dnl ======================================================== +dnl Check for graphite2 +dnl ======================================================== + +MOZ_ARG_WITH_BOOL(system-graphite2, +[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)], +MOZ_NATIVE_GRAPHITE2=1, +MOZ_NATIVE_GRAPHITE2=) + +if test -n "$MOZ_NATIVE_GRAPHITE2"; then + PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2) + + dnl graphite2.pc has bogus version, check manually + AC_TRY_COMPILE([ #include + #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])]) +fi + +AC_SUBST(MOZ_NATIVE_GRAPHITE2) + +dnl ======================================================== dnl Check for pixman and cairo dnl ======================================================== diff -Naur ff47-vanilla/toolkit/library/moz.build ff47-patched/toolkit/library/moz.build --- ff47-vanilla/toolkit/library/moz.build 2016-06-01 05:11:43.000000000 +0100 +++ ff47-patched/toolkit/library/moz.build 2016-06-11 18:51:40.389876996 +0100 @@ -235,6 +235,12 @@ if CONFIG['MOZ_ALSA']: OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] +if CONFIG['MOZ_NATIVE_GRAPHITE2']: + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] + +if CONFIG['MOZ_NATIVE_HARFBUZZ']: + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] + if CONFIG['HAVE_CLOCK_MONOTONIC']: OS_LIBS += CONFIG['REALTIME_LIBS']