Author: ken Date: Fri May 18 12:14:08 2018 New Revision: 3751 Log: Better version of the firefox system graphite2/harfbuzz patch: When I first started using a version of that, I misattributed the orginator's 'distro', it should be _Free_ BSD. Then when I was testing ff58beta I had to rework it and missed one small and unimportant item - it still worked like that. In checking progress for 61beta I discovered the FreeBSD version had been updated, except for newer required verions of those two packages, so use that as the basis going forward.
Added: trunk/firefox/firefox-60.0.1-system_graphite2_harfbuzz-1.patch Added: trunk/firefox/firefox-60.0.1-system_graphite2_harfbuzz-1.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/firefox/firefox-60.0.1-system_graphite2_harfbuzz-1.patch Fri May 18 12:14:08 2018 (r3751) @@ -0,0 +1,256 @@ +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2018-05-18 +Initial Package Version: 60.0.1 +Upstream Status: Waiting for review (mozilla bug 847568) +Origin: Jan Beich at FreeBSD +Description: Refreshed from +https://svnweb.freebsd.org/ports/head/www/firefox/files/patch-bug847568 +and versions of graphite2 and harfbuzz updated to match what is in +firefox-60.0 (my own attempt to forward-port the old patch for ff58 was +adequate but overlooked one of the items). This also corrects the +attribution to FreeBSD. + +diff -Naur firefox-61.0/config/system-headers.mozbuild firefox-61.0-freebsd/config/system-headers.mozbuild +--- firefox-61.0/config/system-headers.mozbuild 2018-05-14 17:55:54.000000000 +0100 ++++ firefox-61.0-freebsd/config/system-headers.mozbuild 2018-05-15 19:31:48.299484650 +0100 +@@ -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', +diff -Naur firefox-61.0/dom/base/moz.build firefox-61.0-freebsd/dom/base/moz.build +--- firefox-61.0/dom/base/moz.build 2018-05-14 17:55:54.000000000 +0100 ++++ firefox-61.0-freebsd/dom/base/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -479,6 +479,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', +diff -Naur firefox-61.0/gfx/graphite2/moz-gr-update.sh firefox-61.0-freebsd/gfx/graphite2/moz-gr-update.sh +--- firefox-61.0/gfx/graphite2/moz-gr-update.sh 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/graphite2/moz-gr-update.sh 2018-05-15 19:31:48.299484650 +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/<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 +diff -Naur firefox-61.0/gfx/harfbuzz/README-mozilla firefox-61.0-freebsd/gfx/harfbuzz/README-mozilla +--- firefox-61.0/gfx/harfbuzz/README-mozilla 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/harfbuzz/README-mozilla 2018-05-15 19:31:48.299484650 +0100 +@@ -19,3 +19,8 @@ + + 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 toolkit/moz.configure in sync ++with checkout version or increment latest tag by one if it's not based ++on upstream release. +diff -Naur firefox-61.0/gfx/moz.build firefox-61.0-freebsd/gfx/moz.build +--- firefox-61.0/gfx/moz.build 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -10,6 +10,12 @@ + 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 @@ + 'qcms', + 'gl', + 'layers', +- 'graphite2/src', +- 'harfbuzz/src', + 'ots/src', + 'thebes', + 'ipc', +diff -Naur firefox-61.0/gfx/skia/generate_mozbuild.py firefox-61.0-freebsd/gfx/skia/generate_mozbuild.py +--- firefox-61.0/gfx/skia/generate_mozbuild.py 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/skia/generate_mozbuild.py 2018-05-15 19:31:48.299484650 +0100 +@@ -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'] +diff -Naur firefox-61.0/gfx/skia/moz.build firefox-61.0-freebsd/gfx/skia/moz.build +--- firefox-61.0/gfx/skia/moz.build 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/skia/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -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'] +diff -Naur firefox-61.0/gfx/thebes/moz.build firefox-61.0-freebsd/gfx/thebes/moz.build +--- firefox-61.0/gfx/thebes/moz.build 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/gfx/thebes/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -274,7 +274,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. +diff -Naur firefox-61.0/intl/unicharutil/util/moz.build firefox-61.0-freebsd/intl/unicharutil/util/moz.build +--- firefox-61.0/intl/unicharutil/util/moz.build 2018-05-14 17:55:56.000000000 +0100 ++++ firefox-61.0-freebsd/intl/unicharutil/util/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -25,4 +25,7 @@ + 'nsUnicodeProperties.cpp', + ] + ++if CONFIG['MOZ_SYSTEM_HARFBUZZ']: ++ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++ + FINAL_LIBRARY = 'xul' +diff -Naur firefox-61.0/netwerk/dns/moz.build firefox-61.0-freebsd/netwerk/dns/moz.build +--- firefox-61.0/netwerk/dns/moz.build 2018-05-14 17:56:01.000000000 +0100 ++++ firefox-61.0-freebsd/netwerk/dns/moz.build 2018-05-15 19:31:48.299484650 +0100 +@@ -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'] +diff -Naur firefox-61.0/old-configure.in firefox-61.0-freebsd/old-configure.in +--- firefox-61.0/old-configure.in 2018-05-14 17:56:01.000000000 +0100 ++++ firefox-61.0-freebsd/old-configure.in 2018-05-15 19:53:08.513745343 +0100 +@@ -3956,6 +3956,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,11) ++ #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 ======================================================== + +diff -Naur firefox-61.0/toolkit/library/moz.build firefox-61.0-freebsd/toolkit/library/moz.build +--- firefox-61.0/toolkit/library/moz.build 2018-05-14 17:56:07.000000000 +0100 ++++ firefox-61.0-freebsd/toolkit/library/moz.build 2018-05-15 19:31:48.300484645 +0100 +@@ -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'] + +diff -Naur firefox-61.0/toolkit/moz.configure firefox-61.0-freebsd/toolkit/moz.configure +--- firefox-61.0/toolkit/moz.configure 2018-05-14 17:56:07.000000000 +0100 ++++ firefox-61.0-freebsd/toolkit/moz.configure 2018-05-15 19:53:55.055487329 +0100 +@@ -1030,6 +1030,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.6', ++ when='--with-system-harfbuzz') ++ ++set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) ++ + # Mortar + # ============================================================== + option('--enable-mortar', help='Enable mortar extension') -- http://lists.linuxfromscratch.org/listinfo/patches FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page