Includes fixes for CVE-2018-18500, CVE-2018-18501, and CVE-2018-18505. * gnu/packages/gnuzilla.scm (icecat): Update to 60.5.0-guix1. [version]: Use %icecat-version. [source]: Inherit from 'icecat-source'. Remove obsolete patches. * gnu/packages/patches/icecat-avoid-bundled-libraries.patch, gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch, gnu/packages/patches/icecat-use-system-media-libs.patch: Adapt to 60.5.0.
		
			
				
	
	
		
			226 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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.5.0/config/system-headers.mozbuild
 | 
						|
+++ icecat-60.5.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.5.0/dom/base/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/gfx/graphite2/moz-gr-update.sh
 | 
						|
+++ icecat-60.5.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.5.0/gfx/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/gfx/skia/generate_mozbuild.py
 | 
						|
+++ icecat-60.5.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.5.0/gfx/skia/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/gfx/thebes/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/intl/unicharutil/util/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/netwerk/dns/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/old-configure.in
 | 
						|
+++ icecat-60.5.0/old-configure.in
 | 
						|
@@ -3971,6 +3971,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.5.0/toolkit/library/moz.build
 | 
						|
+++ icecat-60.5.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.5.0/toolkit/moz.configure
 | 
						|
+++ icecat-60.5.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')
 |