[gtk-osx] Update modulesets to current versions of most everything.



commit 216a97a68071751bb3be5746197d0ebddf649ff2
Author: John Ralls <jralls ceridwen us>
Date:   Fri Apr 28 14:51:18 2017 -0700

    Update modulesets to current versions of most everything.

 modulesets-stable/gtk-osx-bootstrap.modules        |   23 +-
 modulesets-stable/gtk-osx-gstreamer.modules        |   34 +-
 modulesets-stable/gtk-osx-gtkmm.modules            |   18 +-
 modulesets-stable/gtk-osx-network.modules          |   56 +-
 modulesets-stable/gtk-osx-python.modules           |   42 +-
 modulesets-stable/gtk-osx-random.modules           |   33 +-
 modulesets-stable/gtk-osx-themes.modules           |   11 +-
 modulesets-stable/gtk-osx-unsupported.modules      |   17 +-
 modulesets-stable/gtk-osx.modules                  |   20 +-
 modulesets-unstable/gtk-osx-bootstrap.modules      |   43 +-
 modulesets-unstable/gtk-osx-gstreamer.modules      |   94 +-
 modulesets-unstable/gtk-osx-gtkmm.modules          |   90 +-
 modulesets-unstable/gtk-osx-network.modules        |   33 +-
 modulesets-unstable/gtk-osx-python.modules         |   67 +-
 modulesets-unstable/gtk-osx-random.modules         |  147 +--
 modulesets-unstable/gtk-osx-themes.modules         |   22 +-
 modulesets-unstable/gtk-osx-unsupported.modules    |   42 +-
 modulesets-unstable/gtk-osx.modules                |   32 -
 modulesets/gtk-osx-bootstrap.modules               |   37 +-
 modulesets/gtk-osx-gstreamer.modules               |  100 +-
 modulesets/gtk-osx-gtkmm.modules                   |   35 +-
 modulesets/gtk-osx-javascript.modules              |    2 +-
 modulesets/gtk-osx-network.modules                 |   83 +-
 modulesets/gtk-osx-python.modules                  |   64 +-
 modulesets/gtk-osx-random.modules                  |  177 +--
 modulesets/gtk-osx-themes.modules                  |   20 +-
 modulesets/gtk-osx-unsupported.modules             |   29 +-
 modulesets/gtk-osx.modules                         |   28 +-
 ...bKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch | 1983 ++++++++++++++++++++
 patches/WebKit-2.4.11-fixups.patch                 |   37 +
 patches/Webkit-2.16-Fix-some-includes.patch        |   46 +
 patches/Webkit-2.16-build-without-OpenGL.patch     |  375 ++++
 ...Build-fails-on-MacOS-because-glib-doesn-t.patch |   68 +
 33 files changed, 3050 insertions(+), 858 deletions(-)
---
diff --git a/modulesets-stable/gtk-osx-bootstrap.modules b/modulesets-stable/gtk-osx-bootstrap.modules
index b3eed9d..11e30e1 100644
--- a/modulesets-stable/gtk-osx-bootstrap.modules
+++ b/modulesets-stable/gtk-osx-bootstrap.modules
@@ -9,7 +9,7 @@
   <repository type="tarball" name="sourceforge"
               href="http://downloads.sourceforge.net/sourceforge/"/>
   <repository type="tarball" name="jpeg"
-             href="http://www.ijg.org/files/"/>
+              href="http://www.ijg.org/files/"/>
   <repository type="tarball" name="libtiff"
              href="http://download.osgeo.org/"/>
   <repository type="tarball" name="fontconfig"
@@ -28,6 +28,12 @@
   <repository type="tarball" name="ragel"
               href="http://www.colm.net/files/ragel/"/>
 
+  <autotools id='readline' autogen-sh="configure">
+    <branch repo="ftp.gnu.org" module="readline/readline-7.0.tar.gz"
+      version="7.0">
+    </branch>
+  </autotools>
+  
   <autotools id="libpng" autogenargs="--enable-shared" autogen-sh="configure">
     <branch version="1.6.29" module="libpng/libpng-1.6.29.tar.xz"
             repo="sourceforge"/>
@@ -118,6 +124,7 @@
             module="icu4c/58.2/icu4c-58_2-src.tgz"/>
   </autotools>
 
+
   <autotools id="ragel" autogen-sh='autoreconf'>
     <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
@@ -141,7 +148,7 @@
              skip-autogen="never"
              autogenargs="--without-bzip2 --without-harfbuzz">
     <branch module="freetype/freetype-2.7.1.tar.gz" version="2.7.1"
-           repo="sourceforge">
+            repo="sourceforge">
       <!--patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/freetype-2.5.3-ccexe_cflags.patch"; 
strip="1"/-->
     </branch>
     <dependencies>
@@ -161,7 +168,7 @@
   </autotools>
 
   <autotools id="fontconfig" autogen-sh="autoreconf"
-            autogenargs="--disable-docs">
+             autogenargs="--disable-docs">
     <branch repo="fontconfig" version="2.12.1"
             module="fontconfig-2.12.1.tar.bz2"/>
     <dependencies>
@@ -171,8 +178,8 @@
 
   <autotools id="hicolor-icon-theme" autogen-sh="configure"
             supports-non-srcdir-builds="no">
-    <branch module="hicolor-icon-theme-0.13.tar.gz" repo="icon-theme"
-            version="0.13"/>
+    <branch module="hicolor-icon-theme-0.15.tar.gz" repo="icon-theme"
+            version="0.15"/>
   </autotools>
 
   <autotools id="gettext-runtime" autogen-sh="configure"
@@ -181,12 +188,6 @@
             module="gettext/gettext-0.19.8.tar.xz" version="0.19.8"/>
   </autotools>
 
-  <autotools id='readline' autogen-sh="configure">
-    <branch repo="ftp.gnu.org" module="readline/readline-7.0.tar.gz"
-      version="7.0">
-    </branch>
-  </autotools>
-  
   <metamodule id="meta-gtk-osx-bootstrap">
     <dependencies>
       <dep package="libpng"/>
diff --git a/modulesets-stable/gtk-osx-gstreamer.modules b/modulesets-stable/gtk-osx-gstreamer.modules
index 806675a..693eb01 100644
--- a/modulesets-stable/gtk-osx-gstreamer.modules
+++ b/modulesets-stable/gtk-osx-gstreamer.modules
@@ -24,8 +24,8 @@
 
   <autotools id="gstreamer" autogenargs="--disable-tests" supports-non-srcdir-builds="no"
     makeargs="ERROR_CFLAGS=" autogen-sh="configure">
-    <branch module="gstreamer/1.11/gstreamer-1.11.2.tar.xz" version="1.11.2"
-            hash="sha256:baa27e761e9d2e1770a8e311b2a61397edd6a288b2ff188940ea001615883305">
+    <branch module="gstreamer/gstreamer-1.10.4.tar.xz" version="1.10.4"
+            hash="sha256:50c2f5af50a6cc6c0a3f3ed43bdd8b5e2bff00bacfb766d4be139ec06d8b5218">
     </branch>
     <after>
       <dep package="glib"/>
@@ -34,9 +34,9 @@
 
   <autotools id="gst-plugins-base" autogenargs="--disable-tests --disable-x --disable-xvideo" 
supports-non-srcdir-builds="no"
     makeargs="ERROR_CFLAGS=" autogen-sh="configure">
-    <branch module="gst-plugins-base/1.11/gst-plugins-base-1.11.2.tar.xz"
-            version="1.11.2"
-            hash="sha256:7f73876e795dccf8acf1a45148b7cdd32bc618de6cadb049a00ea38111ceebd9"/>
+    <branch module="gst-plugins-base/gst-plugins-base-1.10.4.tar.xz"
+            version="1.10.4"
+            hash="sha256:f6d245b6b3d4cb733f81ebb021074c525ece83db0c10e932794b339b8d935eb7"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="liborc"/>
@@ -47,9 +47,9 @@
 
   <autotools id="gst-plugins-good" autogenargs="--disable-tests --disable-x --disable-xvideo 
--disable-osx-video" supports-non-srcdir-builds="no"
     makeargs="ERROR_CFLAGS=" autogen-sh="configure">
-    <branch module="gst-plugins-good/1.11/gst-plugins-good-1.11.2.tar.xz"
-            version="1.11.2"
-            hash="sha256:704dadaa6b024bb5cdbdae58d6dabcbc3134294b64555484927a137c5b66ae69"/>
+    <branch module="gst-plugins-good/gst-plugins-good-1.10.4.tar.xz"
+            version="1.10.4"
+            hash="sha256:8a86c61434a8c44665365bd0b3557a040937d1f44bf69caee4e9ea816ce74d7e"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
@@ -59,9 +59,9 @@
   <autotools id="gst-plugins-ugly" autogenargs="--disable-tests"
              supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS="
              autogen-sh="configure">
-    <branch repo="gstreamer" version="1.11.2"
-            module="gst-plugins-ugly/gst-plugins-ugly-1.11.2.tar.xz"
-            hash="sha256:240c4d933f331f003386795ad10674e58440e2a7f8b82cb742d67d2df333116d"/>
+    <branch repo="gstreamer" version="1.10.4"
+            module="gst-plugins-ugly/gst-plugins-ugly-1.10.4.tar.xz"
+            hash="sha256:6386c77ca8459cba431ed0b63da780c7062c7cc48055d222024d8eaf198ffa59"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
@@ -71,9 +71,9 @@
   <autotools id="gst-plugins-bad" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvid"
              makeargs="ERROR_CFLAGS=" autogen-sh="configure">
-    <branch repo="gstreamer" version="1.11.2"
-            module="gst-plugins-bad/gst-plugins-bad-1.11.2.tar.xz"
-            hash="sha256:c23fc89a5fdd8e1c77a3b12e8667df33990526c88b328ee7957dbbf9b29cc16a"/>
+    <branch repo="gstreamer" version="1.10.4"
+            module="gst-plugins-bad/gst-plugins-bad-1.10.4.tar.xz"
+            hash="sha256:23ddae506b3a223b94869a0d3eea3e9a12e847f94d2d0e0b97102ce13ecd6966"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
@@ -87,9 +87,9 @@
   <autotools id="gst-libav" supports-non-srcdir-builds="no"
              autogen-sh="configure"
              autogenargs="--disable-tests --disable-mmx --with-libav-extra-configure='--disable-yasm'">
-    <branch repo="gstreamer" version="1.11.2"
-            module="gst-libav/gst-libav-1.11.2.tar.xz"
-            hash="sha256:b4798dc916a9ce7cdbbab1b9ecfb5170113b8fc1ba6db440c37d603621ae7fda"/>
+    <branch repo="gstreamer" version="1.10.4"
+            module="gst-libav/gst-libav-1.10.4.tar.xz"
+            hash="sha256:6ca0feca75e3d48315e07f20ec37cf6260ed1e9dde58df355febd5016246268b"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
diff --git a/modulesets-stable/gtk-osx-gtkmm.modules b/modulesets-stable/gtk-osx-gtkmm.modules
index ed1be63..dcad4f5 100644
--- a/modulesets-stable/gtk-osx-gtkmm.modules
+++ b/modulesets-stable/gtk-osx-gtkmm.modules
@@ -22,8 +22,8 @@
   </metamodule>
 
   <autotools id="cairomm" autogen-sh="configure">
-    <branch module="cairomm-1.15.3.tar.gz" version="1.15.3"
-           hash="sha1:e87ccdae0800615beab29a0328e88f4597ecb805"
+    <branch module="cairomm-1.12.2.tar.gz" version="1.12.2"
+           hash="sha1:621546f32221a2ddc079167a13ce5b5409bed704"
             repo="cairographics" />
     <dependencies>
       <dep package="cairo"/>
@@ -31,8 +31,10 @@
   </autotools>
 
   <autotools id="glibmm" autogen-sh="configure">
-    <branch module="glibmm/2.53/glibmm-2.53.1.tar.xz" version="2.53.1"
-            hash="sha256:ccd3f4ae8522cf7e0220f60141c91b547c9cf698d48ee8f86c92128dfc556863"/>
+    <branch module="glibmm/2.50/glibmm-2.50.1.tar.xz" version="2.50.1"
+            hash="sha256:1fd85051da9cb402cc8348cec72dfe4d79f9345df4a1dbf68703a4ded45846a4">
+            <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/glibmm-Bug-781947-Build-fails-on-MacOS-because-glib-doesn-t.patch";
 strip="1"/>
+    </branch>
     <dependencies>
       <dep package="glib"/>
       <dep package="libsigc++2"/>
@@ -40,8 +42,8 @@
   </autotools>
 
   <autotools id="pangomm" autogen-sh="configure">
-    <branch module="pangomm/2.41/pangomm-2.41.2.tar.xz" version="2.41.2"
-            hash="sha256:3bd99f5793e08f2d728af4306757559c66bcfce07eabe7a7a03cbe335e4b61fb"/>
+    <branch module="pangomm/2.40/pangomm-2.40.1.tar.xz" version="2.40.1"
+            hash="sha256:9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af"/>
     <dependencies>
       <dep package="glibmm"/>
       <dep package="cairomm"/>
@@ -50,8 +52,8 @@
   </autotools>
 
   <autotools id="atkmm" autogen-sh="configure">
-    <branch module="atkmm/2.25/atkmm-2.25.2.tar.xz" version="2.25.2"
-           hash="sha256:b20d1e8368097c34115b687b703f908ea1a1120b21ef92d54954de92f5277a67"/>
+    <branch module="atkmm/2.24/atkmm-2.24.2.tar.xz" version="2.24.2"
+           hash="sha256:ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd"/>
     <dependencies>
       <dep package="glibmm"/>
       <dep package="cairomm"/>
diff --git a/modulesets-stable/gtk-osx-network.modules b/modulesets-stable/gtk-osx-network.modules
index 6d39596..00d2deb 100644
--- a/modulesets-stable/gtk-osx-network.modules
+++ b/modulesets-stable/gtk-osx-network.modules
@@ -14,12 +14,14 @@
               href="http://downloads.webmproject.org/releases/"/>
   <repository name="webkit.org" type="tarball"
               href="http://www.webkitgtk.org/releases/"/>
+  <repository type="tarball" name="icu"
+              href="http://download.icu-project.org/files/"/>
 
   <!-- Builds last version of WebKitGTK that supported GTK 2.x -->
   <metamodule id="meta-gtk-osx-webkit">
     <dependencies>
       <dep package="meta-gtk-osx-core"/>
-      <dep package="WebKit"/>
+      <dep package="webkit"/>
     </dependencies>
   </metamodule>
 
@@ -33,18 +35,19 @@
 
   <!-- of the many arguments such as prefix and libdir that jhbuild might pass
   to configure, openssl only understands prefix, and only with =. -->
+  <!-- Unfortunately Python2 hasn't been fixed up to use the 1.1 API
+       so we're stuck at 1.0. -->
   <autotools id="openssl" autogen-sh="Configure" autogenargs="shared "
              autogen-template="%(srcdir)s/%(autogen-sh)s --prefix=%(prefix)s --openssldir=%(prefix)s/etc/ssl 
%(autogenargs)s"
              makeinstallargs="install_sw" supports-non-srcdir-builds="no">
-    <branch module="openssl-1.1.0e.tar.gz" version="1.1.0e" repo="openssl"
-            hash="sha256:57be8618979d80c910728cfc99369bf97b2a1abd8f366ab6ebdee8975ad3874c"/>
+    <branch module="openssl-1.0.2k.tar.gz" version="1.0.2k" repo="openssl"
+            hash="sha256:6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0"/>
   </autotools>
 
   <!-- Rudely demands TeX to build documentation -->
   <!-- Assembler files are missing md5-compress.asm for x86_64 -->
   <autotools id="libnettle" autogen-sh="configure"
              autogenargs="--disable-documentation --disable-assembler">
-    <!-- gnutls 3.3.x does not support nettle 3.0 -->
     <branch repo="ftp.gnu.org" version="3.3"
             module="nettle/nettle-3.3.tar.gz">
       <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/libnettle-cc-for-build-needs-cflags.patch"; 
strip="1"/>
@@ -111,6 +114,13 @@
     <branch repo="webm" module="webp/libwebp-0.6.0.tar.gz" version="0.6.0"/>
   </autotools>
 
+  <autotools id="icu55" autogen-sh="source/configure"
+             autogenargs="--enable-rpath"
+             makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
+    <branch repo="icu" version="55.1" checkoutdir="icu"
+            module="icu4c/55.1/icu4c-55_1-src.tgz"/>
+  </autotools>
+
   <!-- This is WebKitGTK 2.4.x, the last version that had the WebKit1 API.
     disable-webkit2: Requires both GTK2 and 3. Currently not supported.
     disable-credential-storage: Requires libsecret. No module for this yet.
@@ -119,22 +129,27 @@
       audio, add this to your .jhbuildrc:
       append_autogenargs('WebKit', '&#45;-enable-video')
       append_autogenargs('WebKit', '&#45;-enable-web-audio')
-    -j1: Workaround for https://bugs.webkit.org/show_bug.cgi?id=140171
+      -j1: Workaround for https://bugs.webkit.org/show_bug.cgi?id=140171
+
+   It has some issues with ICU 58 so we keep it on ICU55. Note that
+   you can't install both, so if you need to build this webkit add icu
+   to your skip-list.
   -->
   <autotools id="webkit" autogen-sh="autoreconf"
-             autogenargs="--enable-quartz-target --with-gtk=2.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
+             autogenargs="--enable-quartz-target --with-gtk=2.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-stdlib=libc++'"
+             makeargs="-j1">
+
     <branch repo="webkit.org" module="webkitgtk-2.4.11.tar.xz" version="2.4.11">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
       <dep package="enchant"/>
-      <dep package="icu"/>
+      <dep package="icu55"/>
       <dep package="libsoup"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
@@ -146,19 +161,19 @@
 
   <!-- This is WebKitGTK 2.4.x as above, but for gtk3.  -->
   <autotools id="webkit1gtk3" autogen-sh="autoreconf"
-             autogenargs="--enable-quartz-target --with-gtk=3.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
-    <branch repo="webkit.org" module="webkitgtk-2.4.9.tar.xz" version="2.4.9">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+             autogenargs="--enable-quartz-target --with-gtk=3.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-stdlib=libc++'"
+             makeargs="-j1" >
+    <branch repo="webkit.org" module="webkitgtk-2.4.11.tar.xz" version="2.4.11">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
       <dep package="enchant"/>
-      <dep package="icu"/>
+      <dep package="icu55"/>
       <dep package="libsoup"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
@@ -184,8 +199,11 @@
     USE_LIBHYPHEN: Requires libhyphen. No module for this yet.
   -->
   <cmake id="webkit2gtk3"
-         cmakeargs='-DPORT=GTK -DENABLE_X11_TARGET=OFF -DENABLE_QUARTZ_TARGET=ON -DENABLE_INTROSPECTION=OFF  
-DENABLE_OPENGL=OFF -DENABLE_PLUGIN_PROCESS_GTK2=OFF -DENABLE_VIDEO=OFF -DENABLE_WEB_AUDIO=OFF 
-DENABLE_GEOLOCATION=OFF -DUSE_LIBNOTIFY=OFF -DUSE_LIBHYPHEN=OFF -DUSE_LIBSECRET=OFF 
-DENABLE_TOUCH_EVENTS=OFF -DCMAKE_CXX_FLAGS="$CXX_FLAGS -stdlib=libc++"'>
+         cmakeargs='-DPORT=GTK -DENABLE_X11_TARGET=OFF -DENABLE_QUARTZ_TARGET=ON -DENABLE_INTROSPECTION=OFF  
-DENABLE_OPENGL=OFF -DENABLE_PLUGIN_PROCESS_GTK2=OFF -DENABLE_VIDEO=OFF -DENABLE_WEB_AUDIO=OFF 
-DENABLE_GEOLOCATION=OFF -DUSE_LIBNOTIFY=OFF -DUSE_LIBHYPHEN=OFF -DUSE_LIBSECRET=OFF 
-DENABLE_TOUCH_EVENTS=OFF -DCMAKE_CXX_FLAGS="-stdlib=libc++"'>
     <branch repo="webkit.org" module="webkitgtk-2.16.1.tar.xz" version="2.16.1">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch"; 
strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/Webkit-2.16-build-without-OpenGL.patch"; strip="1"/>
+<patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/Webkit-2.16-Fix-some-includes.patch"; 
strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
diff --git a/modulesets-stable/gtk-osx-python.modules b/modulesets-stable/gtk-osx-python.modules
index 81e4729..7c38865 100644
--- a/modulesets-stable/gtk-osx-python.modules
+++ b/modulesets-stable/gtk-osx-python.modules
@@ -8,11 +8,13 @@
   <repository type="tarball" name="cairographics.org"
               href="http://cairographics.org/releases/"/>
   <repository type="tarball" name="python"
-             href="https://www.python.org/ftp/python/"/>
+              href="https://www.python.org/ftp/python/"/>
   <repository type="tarball" name="oracle"
              href="http://download.oracle.com/"/>
   <repository type="tarball" name="pymodules"
-             href="http://pypi.python.org/packages/source/"/>
+              href="http://pypi.python.org/packages/source/"/>
+  <repository type="tarball" name="github-tarball"
+              href="https://github.com"/>
 
   <metamodule id="meta-gtk-osx-python">
     <dependencies>
@@ -78,6 +80,7 @@
     <dependencies>
       <dep package="gettext-runtime"/>
       <dep package='readline'/>
+      <dep package="openssl"/> <!-- For hashlib -->
     </dependencies>
     <after>
       <dep package="berkeleydb"/>
@@ -108,36 +111,20 @@
     </after>
   </distutils>
 
-<!-- Cairographics have changed the name to py2cairo for python 2 holdouts. -->
-  <waf id="py2cairo">
-    <branch module="py2cairo-1.10.0.tar.bz2" repo="cairographics.org"
-            version="1.10.0"
-           hash="sha1:2efa8dfafbd6b8e492adaab07231556fec52d6eb">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/py2cairo-python2.6-Dont-try-to-guess-arch.patch";
-             strip="1"/>
-    </branch>
-    <dependencies>
-      <dep package="cairo"/>
-    </dependencies>
-    <after>
-      <dep package="python"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </waf>
-
-<!-- Pycairo is for those who've made the leap. -->
-  <waf id="pycairo" autogen-sh="configure" python-command="python3">
-    <branch module="pycairo-1.10.0.tar.bz2" repo="cairographics.org"
-            version="1.10.0"
-           hash="sha1:b4283aa1cc9aafd12fd72ad371303a486da1d014"/>
+  <distutils id="pycairo" autogen-sh="configure" python-command="python3">
+    <branch module="/pygobject/pycairo/releases/download/v1.12.0/pycairo-1.12.0.tar.gz" repo="github-tarball"
+            version="1.12.0"
+           hash="sha256:243c351d7abcef41ac1fa984d2c753f3d065336a0fcf4c20fafb191b23423095"/>
     <dependencies>
       <dep package="cairo"/>
     </dependencies>
     <after>
       <dep package="python3"/>
+      <dep package="python"/>
       <dep package="meta-gtk-osx-gtk3"/>
+      <dep package="meta-gtk-osx"/>
     </after>
-  </waf>
+  </distutils>
 
 <!-- PyGObject 2.28 is the last series for Gtk+-2; for co-installation
      with later versions it installs as pygobject2 and PyGObject 3
@@ -161,12 +148,11 @@
            hash="sha256:a628a95aa0909e13fb08230b1b98fc48adef10b220932f76d62f6821b3fdbffd"/>
     <dependencies>
       <dep package="meta-gtk-osx-gtk3"/>
+      <dep package="pycairo"/>
     </dependencies>
     <after>
       <dep package="python"/>
       <dep package="python3"/>
-      <dep package="pycairo"/>
-      <dep package="py2cairo"/>
     </after>
   </autotools>
 
@@ -180,7 +166,7 @@
     <dependencies>
       <dep package="pygobject"/>
       <dep package="meta-gtk-osx-core"/>
-      <dep package="py2cairo"/>
+      <dep package="pycairo"/>
     </dependencies>
     <after>
       <dep package="libglade"/>
diff --git a/modulesets-stable/gtk-osx-random.modules b/modulesets-stable/gtk-osx-random.modules
index cfb661a..b796bd0 100644
--- a/modulesets-stable/gtk-osx-random.modules
+++ b/modulesets-stable/gtk-osx-random.modules
@@ -5,7 +5,7 @@
   <repository type="tarball" name="ftp.gnome.org" default="yes"
               href="http://ftp.gnome.org/pub/GNOME/sources/"/>
   <repository type="tarball" name="ftp.gtk.org"
-             href="ftp://ftp.gtk.org/pub/"/>
+              href="ftp://ftp.gtk.org/pub/"/>
   <repository type="tarball" name="hadess"
               href="http://freedesktop.org/~hadess/"/>
   <repository type="tarball" name="gimp"
@@ -15,8 +15,9 @@
   <repository type="tarball" name="sourceforge"
               href="http://downloads.sourceforge.net/sourceforge/"/>
   <repository type="git" name="github.com" href="git://github.com/"/>
+  <repository type="tarball" name="github-tarball" href="https://github.com/"/>
   <repository type="tarball" name="dbus.freedesktop.org"
-             href="http://dbus.freedesktop.org/releases/"/>
+              href="http://dbus.freedesktop.org/releases/"/>
   <repository type="tarball" name="sqlite" href="http://www.sqlite.org/"/>
   <repository type="tarball" name="oracle"
              href="http://download.oracle.com/"/>
@@ -66,15 +67,16 @@ Libglade itself is deprecated. This is the last release. -->
     </after>
   </autotools>
 
+
   <autotools id="libunique" autogen-sh="configure"
              autogenargs="--without-x --disable-dbus">
-    <branch module="libunique/1.1/libunique-1.1.6.tar.bz2" version="1.1.6"
-            hash="sha256:e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb">
+    <branch module="libunique/3.0/libunique-3.0.2.tar.bz2" version="3.0.2"
+            hash="sha256:a8f02ce073e2b920cca8ac45d418e7cb64438ad0814780c5912c6d63f8a4e038">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/libunique-663913-sockaddr-un.patch"; 
strip="1"/>
     </branch>
     <dependencies>
-       <dep package="gtk+"/>
-       </dependencies>
+      <dep package="gtk+"/>
+    </dependencies>
   </autotools>
 
 <!-- This is, I think, the last Gtk+2 version -->
@@ -167,8 +169,7 @@ Libglade itself is deprecated. This is the last release. -->
     </after>
   </autotools>
   <autotools id="lcms" autogen-sh="configure">
-    <branch module="lcms/lcms2-2.8.tar.gz" version="2.8" repo="sourceforge"
-            />
+    <branch module="lcms/lcms2-2.8.tar.gz" version="2.8" repo="sourceforge" />
   </autotools>
 
   <autotools id="shared-mime-info"  autogen-sh="configure"
@@ -257,7 +258,7 @@ Libglade itself is deprecated. This is the last release. -->
     </dependencies>
   </autotools>
 
-<!-- Goocanvas-2 is for gtk+-3. -->
+<!-- Goocanvas2 is for gtk+-3. -->
 
   <autotools id="goocanvas2" supports-non-srcdir-builds="no">
     <branch module="goocanvas/2.0/goocanvas-2.0.2.tar.xz" version="2.0.2"
@@ -279,8 +280,8 @@ Libglade itself is deprecated. This is the last release. -->
   </autotools>
 
   <autotools id="hunspell" autogen-sh="configure">
-    <branch module="hunspell/hunspell-1.3.3.tar.gz" version="1.3.3"
-           repo="sourceforge"/>
+    <branch module="hunspell/hunspell/archive/v1.6.1.tar.gz" version="1.3.3"
+           repo="github-tarball"/>
   </autotools>
 
   <autotools id="enchant" autogen-sh="configure"
@@ -335,12 +336,13 @@ Libglade itself is deprecated. This is the last release. -->
     </branch>
   </autotools>
 
-  <autotools id="libatomic-ops">
+  <autotools id="libatomic-ops"
+             autogen-template="%(autogen-sh)s && ./configure --prefix=%(prefix)s> %(autogen-args)s"
     <branch repo="github.com" module="ivmai/libatomic_ops"
            revision="libatomic_ops-7_4_4"/>
   </autotools>
 
-  <autotools id="bdw-gc" autogen-template="pushd %(srcdir)s &amp;&amp; ./autogen.sh &amp;&amp; automake-1.10 
-ac &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
+  <autotools id="bdw-gc" autogen-template="pushd %(srcdir)s &amp;&amp; ./autogen.sh &amp;&amp; automake-1.14 
-ac &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
     <branch repo="github.com" module="ivmai/bdwgc"  revision="gc7_6_0" />
     <dependencies>
       <dep package="libatomic-ops"/>
@@ -356,9 +358,10 @@ Libglade itself is deprecated. This is the last release. -->
     </dependencies>
   </autotools>
 
+  <!-- Guile 2.0.14 crashes during build. Stay at 2.0.12 while this is investigated. -->
   <autotools id="guile2" autogen-sh="configure">
-    <branch repo="ftp.gnu.org" module="guile/guile-2.0.14.tar.gz"
-           version="2.0.14">
+    <branch repo="ftp.gnu.org" module="guile/guile-2.0.12.tar.gz"
+           version="2.0.12">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/guild-shell.patch"; strip="1"/>
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/guile-clocktime.patch"; strip="1"/>
     </branch>
diff --git a/modulesets-stable/gtk-osx-themes.modules b/modulesets-stable/gtk-osx-themes.modules
index 7a4d727..8d01448 100644
--- a/modulesets-stable/gtk-osx-themes.modules
+++ b/modulesets-stable/gtk-osx-themes.modules
@@ -85,13 +85,20 @@
            hash="sha256:e6a2af72674403d06c03e067d915004e8d9cdeec206f3350c7f3ee595b139912"/>
   </autotools>
 
+  <!-- librsvg is converting to the Rust language. This requires
+       substantial infrastructure that's resistant to installing with
+       jhbuild, so we'll freeze at the 2.40 branch. -->
   <autotools id="librsvg" autogenargs="--disable-Bsymbolic">
-    <branch module="librsvg/2.41/librsvg-2.41.0.tar.xz" version="2.41.0"
-           hash="sha256:a13573cb4efe3678eaf8709ae3533d79b17d33d29ca78a1e03e81b6235577140"/>
+    <branch module="librsvg/2.40/librsvg-2.40.17.tar.xz" version="2.40.17"
+           hash="sha256:e6f6c5cbecc405bb945c7cd15061276035ae3173bbb3bb25e8a916779c7f69cc"/>
     <dependencies>
       <dep package="libcroco"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
+    <after>
+      <dep package="meta-gtk-osx-core"/>
+      <dep package="meta-gtk-osx-gtk3"/>
+    </after>
   </autotools>
 
   <autotools id="libcroco" autogenargs="--disable-Bsymbolic"
diff --git a/modulesets-stable/gtk-osx-unsupported.modules b/modulesets-stable/gtk-osx-unsupported.modules
index 4f5882a..01bff57 100644
--- a/modulesets-stable/gtk-osx-unsupported.modules
+++ b/modulesets-stable/gtk-osx-unsupported.modules
@@ -29,8 +29,9 @@
     </dependencies>
   </autotools>
 
+  <!-- Iso-codes >= 3.68 requires Python3, a dependency too far. -->
   <autotools id="iso-codes" autogen-sh="configure">
-    <branch module="iso-codes-3.74.tar.xz" version="3.74"
+    <branch module="iso-codes-3.67.tar.xz" version="3.67"
            repo="iso-codes"/>
   </autotools>
 
@@ -66,7 +67,7 @@
       <dep package="dbus"/>
     </dependencies>
   </autotools>
-/gcrypt/libgpg-error/libgpg-error-1.27.tar.bz2
+
   <autotools id="libgpg-error" autogen-sh="autogen.sh"
              autogenargs="--disable-doc"
              autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s 
 %(autogenargs)s">
@@ -89,4 +90,16 @@
       <dep package="libgpg-error" />
     </dependencies>
   </autotools>
+
+   <autotools id="gnome-keyring"
+             autogenargs="--disable-pam --without-root-certs">
+     <branch module="gnome-keyring/3.20/gnome-keyring-3.20.0.tar.xz"
+             version="3.20.0"
+             hash="sha256:bc17cecd748a0e46e302171d11c3ae3d76bba5258c441fabec3786f418e7ec99"/>
+    <dependencies>
+      <dep package="gtk+"/>
+      <dep package="libgcrypt"/>
+      <dep package="libtasn1"/>
+    </dependencies>
+  </autotools>
 </moduleset>
\ No newline at end of file
diff --git a/modulesets-stable/gtk-osx.modules b/modulesets-stable/gtk-osx.modules
index 3a0c3ab..447f083 100644
--- a/modulesets-stable/gtk-osx.modules
+++ b/modulesets-stable/gtk-osx.modules
@@ -100,22 +100,6 @@
             version="3.2.1"/>
   </autotools>
 
-  <autotools id="xorg-util-macros">
-    <branch repo="freedesktop" version="1.19.1"
-            module="xorg/individual/util/util-macros-1.19.1.tar.bz2"/>
-  </autotools>
-
-  <!-- There is no stable release yet that works here, but commit
-       06fd4a27 breaks the build for gtk-osx, tag v1.3.1 builds
-       fine. -->
-anholt/libepoxy/releases/download/1.4.1/libepoxy-1.4.1.tar.xz
-  <autotools id="libepoxy" autogen-sh="configure">
-    <branch repo="github-tarball" version="v1.4.1"
-            module="anholt/libepoxy/releases/download/1.4.1/libepoxy-1.4.1.tar.xz" />
-    <dependencies>
-      <dep package="xorg-util-macros"/>
-    </dependencies>
-  </autotools>
 
   <autotools id="gobject-introspection" autogen-sh="configure">
     <branch module="gobject-introspection/1.52/gobject-introspection-1.52.1.tar.xz"
@@ -199,8 +183,7 @@ anholt/libepoxy/releases/download/1.4.1/libepoxy-1.4.1.tar.xz
              autogenargs="--enable-quartz-backend --enable-quartz-relocation">
     <branch module="gtk+/3.22/gtk+-3.22.12.tar.xz" version="3.22.12"
             hash="sha256:84fae0cefb6a11ee2b4e86b8ac42fe46a3d30b4ad16661d5fc51e8ae03e2a98c">
-      <!--patch 
href="https://git.gnome.org/browse/gtk-osx/plain/patches/0001-Bug-781118-gtk-3.22.12-quartz-backend-s.patch"; 
strip="1"/-->
-      <patch 
file="file:///Users/john/Development/GTK-OSX/gtk-osx-build/patches/0001-Bug-781118-gtk-3.22.12-quartz-backend-s.patch"
 strip="1"/>
+      <patch 
href="https://git.gnome.org/browse/gtk-osx/plain/patches/0001-Bug-781118-gtk-3.22.12-quartz-backend-s.patch"; 
strip="1"/>
     </branch>
     <dependencies>
       <dep package="glib"/>
@@ -208,7 +191,6 @@ anholt/libepoxy/releases/download/1.4.1/libepoxy-1.4.1.tar.xz
       <dep package="atk"/>
       <dep package="gdk-pixbuf"/>
       <dep package="gobject-introspection"/>
-      <dep package="libepoxy"/>
     </dependencies>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
diff --git a/modulesets-unstable/gtk-osx-bootstrap.modules b/modulesets-unstable/gtk-osx-bootstrap.modules
index f7a3706..edf1d08 100644
--- a/modulesets-unstable/gtk-osx-bootstrap.modules
+++ b/modulesets-unstable/gtk-osx-bootstrap.modules
@@ -4,7 +4,7 @@
 <moduleset>
 
   <repository type="tarball" name="ftp.gnome.org" default="yes"
-             href="ftp://ftp.gnome.org/pub/gnome/sources/"/>
+              href="ftp://ftp.gnome.org/pub/gnome/sources/"/>
   <repository type="tarball" name="ftp.gnu.org" href="ftp://ftp.gnu.org/gnu/"/>
   <repository type="tarball" name="sourceforge"
              href="http://downloads.sourceforge.net/sourceforge/"/>
@@ -17,7 +17,7 @@
   <repository type="git" name="freedesktop"
              href="git://anongit.freedesktop.org/"/>
   <repository type="tarball" name="icon-theme"
-             href="http://icon-theme.freedesktop.org/releases/"/>
+              href="http://icon-theme.freedesktop.org/releases/"/>
   <repository type="tarball" name="xmlsoft.org"
              href="ftp://xmlsoft.org/libxml2/"/>
   <repository type="git" name="git.gnome.org"
@@ -32,25 +32,25 @@
               href="http://www.colm.net/files/ragel/"/>
 
   <autotools id='readline' autogen-sh="configure">
-    <branch repo="ftp.gnu.org" module="readline/readline-6.3.tar.gz"
-           version="6.3">
+    <branch repo="ftp.gnu.org" module="readline/readline-7.0.tar.gz"
+           version="7.0">
     </branch>
   </autotools>
 
   <autotools id="libpng" autogenargs="--enable-shared" autogen-sh="configure">
-    <branch version="1.6.17" module="libpng/libpng-1.6.17.tar.xz"
-            repo="sourceforge" md5sum="430a9b76b78533235cd4b9b26ce75c7e"/>
+    <branch version="1.6.29" module="libpng/libpng-1.6.29.tar.xz"
+            repo="sourceforge"/>
   </autotools>
 
   <autotools id="libjpeg">
-    <branch module="jpegsrc.v9a.tar.gz" version="9a"
+    <branch module="jpegsrc.v9b.tar.gz" version="9b"
             repo="jpeg"
             checkoutdir="jpeg-9a">
     </branch>
   </autotools>
 
   <autotools id="libtiff" autogen-sh="configure" autogenargs="--without-x">
-    <branch version="4.0.3" module="libtiff/tiff-4.0.3.tar.gz"
+    <branch version="4.0.7" module="libtiff/tiff-4.0.7.tar.gz"
            repo="libtiff"/>
     <dependencies>
       <dep package="libjpeg"/>
@@ -115,24 +115,24 @@
     </dependencies>
   </autotools>
 
+  <autotools id="icu" autogen-sh="source/configure" autogenargs="--enable-rpath"
+             makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
+    <branch repo="icu" version="58.2" checkoutdir="icu"
+            module="icu4c/58.2/icu4c-58_2-src.tgz"/>
+  </autotools>
+
   <autotools id="freetype-no-harfbuzz" skip-autogen="never" autogenargs="--without-bzip2 --without-harfbuzz"
             autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s"
-            supports-non-srcdir-builds="no">
+             supports-non-srcdir-builds="no">
     <branch module="freetype/freetype2" repo="nongnu"/>
     <dependencies>
       <dep package="zlib"/>
     </dependencies>
   </autotools>
 
-  <autotools id="icu" autogen-sh="source/configure" autogenargs="--enable-rpath"
-             makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
-    <branch repo="icu" version="55.1" checkoutdir="icu"
-            module="icu4c/55.1/icu4c-55_1-src.tgz"/>
-  </autotools>
-
   <!-- Ragel, like Vala, isn't bootstrappable from git, so we might as well just use the tarball. -->
   <autotools id="ragel" autogen-sh='autoreconf'>
-    <branch repo="ragel" module="ragel-6.9.tar.gz" version="6.9">
+    <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
     </branch>
   </autotools>
@@ -147,6 +147,15 @@
     </dependencies>
   </autotools>
 
+  <autotools id="freetype-no-harfbuzz" skip-autogen="never" autogenargs="--without-bzip2 --without-harfbuzz"
+            autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s"
+             supports-non-srcdir-builds="no">
+    <branch module="freetype/freetype2" repo="nongnu"/>
+    <dependencies>
+      <dep package="zlib"/>
+    </dependencies>
+  </autotools>
+
   <autotools id="freetype" skip-autogen="never" autogenargs="--without-bzip2"
             autogen-template="make distclean &amp;&amp; %(srcdir)s/autogen.sh &amp;&amp; 
%(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s"
             supports-non-srcdir-builds="no">
@@ -164,7 +173,7 @@
       <dep package="libxslt"/>
     </dependencies>
   </distutils>
-  
+
   <distutils id="python-six">
     <branch module="s/six/six-1.10.0.tar.gz" repo="pypi" version="1.10.0"
             checkoutdir="six"/>
diff --git a/modulesets-unstable/gtk-osx-gstreamer.modules b/modulesets-unstable/gtk-osx-gstreamer.modules
index 0516ace..6544cbb 100644
--- a/modulesets-unstable/gtk-osx-gstreamer.modules
+++ b/modulesets-unstable/gtk-osx-gstreamer.modules
@@ -14,14 +14,6 @@
        are unversioned and haven't been tested for gtk-osx
        compatibility, but there are more of them. -->
 
-  <!-- liboil is in maintenance mode, use tarball. -->
-  <autotools id="liboil" makeargs=' CFLAGS="$CFLAGS -DHAVE_SYMBOL_UNDERSCORE"'
-             autogen-template="autoreconf -fis &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s">
-    <branch repo="liboil" module="liboil-0.3.17.tar.gz" version="0.3.17">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/liboil-use-ac-config-headers-macro.patch"; strip="1"/>
-    </branch>
-  </autotools>
-
   <autotools id="liborc">
     <branch repo="gstreamer" module="orc"/>
   </autotools>
@@ -37,17 +29,7 @@
   <autotools id="gstreamer" autogenargs="--disable-tests"
              supports-non-srcdir-builds="no"
     makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
-    <after>
-      <dep package="glib"/>
-      <dep package="libxml2"/>
-    </after>
-  </autotools>
-
-   <autotools id="gstreamer-1.0" autogenargs="--disable-tests"
-             supports-non-srcdir-builds="no"
-             makeargs="ERROR_CFLAGS=">
-    <branch module="gstreamer" checkoutdir="gstreamer-1.0"/>
+    <branch/>
     <after>
       <dep package="glib"/>
       <dep package="libxml2"/>
@@ -57,95 +39,42 @@
   <autotools id="gst-plugins-base" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvideo"
              makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch />
     <dependencies>
       <dep package="gstreamer"/>
-      <dep package="liboil"/>
-    </dependencies>
-    <after>
-    </after>
-  </autotools>
-
-  <autotools id="gst-plugins-base-1.0" supports-non-srcdir-builds="no"
-             autogenargs="--disable-tests --disable-x --disable-xvideo"
-             makeargs="ERROR_CFLAGS=">
-    <branch module="gst-plugins-base" checkoutdir="gst-plugins-base-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
       <dep package="liborc"/>
     </dependencies>
-    <after>
-    </after>
   </autotools>
 
   <autotools id="gst-plugins-good" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvideo --disable-osx-video"
              makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch />
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
     </dependencies>
   </autotools>
 
-  <autotools id="gst-plugins-good-1.0" supports-non-srcdir-builds="no"
-             autogenargs="--disable-tests --disable-x --disable-xvideo --disable-osx-video"
-             makeargs="ERROR_CFLAGS=">
-    <branch module="gst-plugins-good" checkoutdir="gst-plugins-good-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gst-plugins-ugly" autogenargs="--disable-tests"
              supports-non-srcdir-builds="no"
     makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
     </dependencies>
   </autotools>
 
-  <autotools id="gst-plugins-ugly-1.0" autogenargs="--disable-tests"
-             supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS=">
-    <branch module="gst-plugins-ugly" checkoutdir="gst-plugins-ugly-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gst-plugins-bad" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvid"
     makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
       <dep package="faad2"/>
-    </dependencies>
-  </autotools>
-
-  <autotools id="gst-plugins-bad-1.0" supports-non-srcdir-builds="no"
-             autogenargs="--disable-tests --disable-x --disable-xvid"
-             makeargs="ERROR_CFLAGS=">
-    <branch module="gst-plugins-bad" checkoutdir="gst-plugins-bad-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-      <dep package="faad2"/>
-    </dependencies>
-  </autotools>
-
-  <!-- gst-libav was named gst-ffmpeg before 1.0 -->
-  <autotools id="gst-ffmpeg" autogenargs="--disable-tests --disable-mmx"
-             supports-non-srcdir-builds="no" >
-    <branch revision="0.10"/>
-    <dependencies>
-      <dep package="gstreamer"/>
-      <dep package="gst-plugins-base"/>
+      <dep package='openssl'/>
     </dependencies>
   </autotools>
 
@@ -171,15 +100,4 @@
     </dependencies>
   </metamodule>
 
-  <metamodule id="meta-gstreamer-1.0">
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-      <dep package="gst-plugins-good-1.0"/>
-      <!--dep package="gst-plugins-ugly-1.0"/-->
-      <dep package="gst-plugins-bad-1.0"/>
-      <dep package="gst-libav"/>
-    </dependencies>
-  </metamodule>
-
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx-gtkmm.modules b/modulesets-unstable/gtk-osx-gtkmm.modules
index 72bc7d6..e6a1735 100644
--- a/modulesets-unstable/gtk-osx-gtkmm.modules
+++ b/modulesets-unstable/gtk-osx-gtkmm.modules
@@ -20,6 +20,14 @@
     <branch module="mm-common"/>
   </autotools>
 
+  <autotools id="cairomm3" >
+    <branch module="cairomm"  revision="cairomm-1-14"
+            repo="cairographics" />
+    <dependencies>
+      <dep package="cairo"/>
+    </dependencies>
+  </autotools>
+
   <autotools id="cairomm" >
     <branch module="cairomm"  
             repo="cairographics" />
@@ -28,11 +36,28 @@
     </dependencies>
   </autotools>
 
+  <autotools id="glibmm3" >
+    <branch module="glibmm" revision="glibmm-2-50"/>
+    <dependencies>
+      <dep package="glib"/>
+      <dep package="libsigc++2"/>
+    </dependencies>
+  </autotools>
+
   <autotools id="glibmm" >
     <branch />
     <dependencies>
       <dep package="glib"/>
-      <dep package="libsigc++2"/>
+      <dep package="libsigc++3"/>
+    </dependencies>
+  </autotools>
+
+  <autotools id="pangomm3" >
+     <branch module="pangomm" revision="pangomm-2-40"/>
+    <dependencies>
+      <dep package="glibmm3"/>
+      <dep package="cairomm3"/>
+      <dep package="pango"/>
     </dependencies>
   </autotools>
 
@@ -45,47 +70,78 @@
     </dependencies>
   </autotools>
 
-  <autotools id="doxygen" 
-             autogen-template="%(srcdir)s/configure --prefix %(prefix)s">
-    <branch 
-            repo="doxygen" />
+  <autotools id="atkmm3">
+    <branch module="atkmm" revision="atkmm-2-24"/>
+    <dependencies>
+      <dep package="glibmm3"/>
+      <dep package="cairomm3"/>
+      <dep package="pangomm3"/>
+      <dep package="atk"/>
+    </dependencies>
   </autotools>
 
+  <autotools id="atkmm">
+    <branch/>
+    <dependencies>
+      <dep package="glibmm"/>
+      <dep package="cairomm"/>
+      <dep package="pangomm"/>
+      <dep package="atk"/>
+    </dependencies>
+  </autotools>
+  
 <!-- libsigc++ depends on doxygen for documentation, but doxygen
      doesn't build correctly under gtk-osx. It builds fine on its own,
      of course, and there are OSX binaries available on their
      website. If you want the docs, install it separately and renable
      documentation in your jhbuildrc-custom. -->
   <autotools id="libsigc++2" autogen-args="--disable-documentation">
-     <branch />
+     <branch module="libsigcplusplus" revision="libsigc++-2-10"/>
     <dependencies>
       <dep package="mm-common"/>
       <!-- dep package="doxygen"/ -->
     </dependencies>
   </autotools>
 
-  <autotools id="atkmm">
-    <branch/>
+  <autotools id="libsigc++3" autogen-args="--disable-documentation">
+     <branch module="libsigcplusplus"/>
     <dependencies>
-      <dep package="glibmm"/>
-      <dep package="cairomm"/>
-      <dep package="pangomm"/>
-      <dep package="atk"/>
+      <dep package="mm-common"/>
+      <!-- dep package="doxygen"/ -->
     </dependencies>
   </autotools>
 
   <autotools id="gtkmm" >
-    <branch />
+    <branch revision="gtkmm-2-24"/>
+    <dependencies>
+      <dep package="glibmm3"/>
+      <dep package="cairomm3"/>
+      <dep package="pangomm3"/>
+      <dep package="atkmm"/>
+      <dep package="gtk+"/>
+    </dependencies>
+  </autotools>
+
+  <autotools id="gtkmm3">
+    <branch module="gtkmm" revision="gtkmm-3-22"/>
+    <dependencies>
+      <dep package="glibmm3"/>
+      <dep package="cairomm3"/>
+      <dep package="pangomm3"/>
+      <dep package="atkmm3"/>
+      <dep package="gtk+-3.0"/>
+    </dependencies>
+  </autotools>
+
+  <autotools id="gtkmm4" >
+    <branch module="gtkmm"/>
     <dependencies>
       <dep package="glibmm"/>
       <dep package="cairomm"/>
       <dep package="pangomm"/>
       <dep package="atkmm"/>
+      <dep package="gtk+-4.0"/>
     </dependencies>
-    <after>
-      <dep package="gtk+"/>
-      <dep package="gtk+-3.0"/>
-    </after>
   </autotools>
 
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx-network.modules b/modulesets-unstable/gtk-osx-network.modules
index 678336e..9e60fd5 100644
--- a/modulesets-unstable/gtk-osx-network.modules
+++ b/modulesets-unstable/gtk-osx-network.modules
@@ -20,6 +20,8 @@
               href="http://www.webkitgtk.org/releases/"/>
   <repository name="webkit-git" type="git"
               href="git://git.webkit.org"/>
+  <repository type="tarball" name="icu"
+              href="http://download.icu-project.org/files/"/>
 
   <!-- Builds last version of WebKitGTK that supported GTK 2.x -->
   <metamodule id="meta-gtk-osx-webkit">
@@ -38,7 +40,9 @@
   </metamodule>
 
   <!-- of the many arguments such as prefix and libdir that jhbuild might pass
-  to configure, openssl only understands prefix, and only with =. -->
+       to configure, openssl only understands prefix, and only with =. -->
+  <!-- Unfortunately Python2 hasn't been fixed up to use the 1.1 API
+       so we're stuck at 1.0. -->
   <autotools id="openssl" autogen-sh="Configure" autogenargs="shared"
              autogen-template="%(srcdir)s/%(autogen-sh)s --prefix=%(prefix)s --openssldir=%(prefix)s/etc/ssl 
%(autogenargs)s"
              makeinstallargs="install_sw" supports-non-srcdir-builds="no">
@@ -114,6 +118,13 @@
     <branch repo="chromium" module="webm/libwebp"/>
   </autotools>
 
+  <autotools id="icu55" autogen-sh="source/configure"
+             autogenargs="--enable-rpath"
+             makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
+    <branch repo="icu" version="55.1" checkoutdir="icu"
+            module="icu4c/55.1/icu4c-55_1-src.tgz"/>
+  </autotools>
+
   <!-- This is WebKitGTK 2.4.x, the last version that had the WebKit1 API.
     disable-webkit2: Requires both GTK2 and 3. Currently not supported.
     disable-credential-storage: Requires libsecret. No module for this yet.
@@ -123,21 +134,24 @@
       append_autogenargs('WebKit', '&#45;-enable-video')
       append_autogenargs('WebKit', '&#45;-enable-web-audio')
     -j1: Workaround for https://bugs.webkit.org/show_bug.cgi?id=140171
+
+   It has some issues with ICU 58 so we keep it on ICU55. Note that
+   you can't install both, so if you need to build this webkit add icu
+   to your skip-list.
   -->
   <autotools id="webkit" autogen-sh="autoreconf"
              autogenargs="--enable-quartz-target --with-gtk=2.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
     <branch repo="webkit.org" module="webkitgtk-2.4.9.tar.xz" version="2.4.9">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
       <dep package="enchant"/>
-      <dep package="icu"/>
+      <dep package="icu55"/>
       <dep package="libsoup"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
@@ -151,12 +165,11 @@
   <autotools id="webkit1gtk3" autogen-sh="autoreconf"
              autogenargs="--enable-quartz-target --with-gtk=3.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
     <branch repo="webkit.org" module="webkitgtk-2.4.9.tar.xz" version="2.4.9">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
diff --git a/modulesets-unstable/gtk-osx-python.modules b/modulesets-unstable/gtk-osx-python.modules
index bbf999c..f2a77d4 100644
--- a/modulesets-unstable/gtk-osx-python.modules
+++ b/modulesets-unstable/gtk-osx-python.modules
@@ -5,10 +5,10 @@
 
   <repository type="git" name="git.gnome.org" default="yes"
               href="git://git.gnome.org/"/>
-  <repository type="git" name="cairographics"
-              href="git://git.cairographics.org/git/"/>
+  <repository type="git" name="github"
+              href="git://github.com"/>
   <repository type="tarball" name="python"
-             href="https://www.python.org/ftp/python/"/>
+              href="https://www.python.org/ftp/python/"/>
   <repository type="tarball" name="oracle"
              href="http://download.oracle.com/"/>
   <repository type="tarball" name="pymodules"
@@ -17,7 +17,7 @@
   <metamodule id="meta-gtk-osx-python">
     <dependencies>
       <dep package="meta-gtk-osx-core"/>
-      <dep package="py2cairo"/>
+      <dep package="pycairo"/>
       <dep package="pygobject"/>
       <dep package="pygtk"/>
       <dep package="gtk-mac-integration-python"/>
@@ -27,7 +27,7 @@
   <metamodule id="meta-gtk-osx-python-gtk3">
     <dependencies>
       <dep package="meta-gtk-osx-gtk3"/>
-      <dep package="py2cairo"/>
+      <dep package="pycairo"/>
       <dep package="pygobject3"/>
       <dep package="gtk-mac-integration-python"/>
     </dependencies>
@@ -43,7 +43,7 @@
   </metamodule>
 
   <!--Note the leading ; in autogen-template. It's there on purpose in case the user has set nice_build so 
that the nice prepended to the command doesn't eat the cd. -->
-   <autotools id="berkeleydb4.8" autogen-sh="dist/configure"
+   <autotools id="berkeleydb" autogen-sh="dist/configure"
          autogen-template="cd .;cd build_unix; ../%(autogen-sh)s --prefix %(prefix)s  %(autogenargs)s" 
makeargs="-C build_unix"
          makeinstallargs="-C build_unix install"
         supports-non-srcdir-builds="no">
@@ -54,38 +54,26 @@
     </branch>
   </autotools>
 
-<!-- Python-2.7.5's hashlib doesn't build correctly with gcc-4.2, though it does fine with Clang (and 
probably later gccs as well). -->
   <autotools id="python" autogenargs="--enable-shared" supports-non-srcdir-builds="no"
             autogen-sh="configure">
     <branch repo="python"
-           module="2.7.12/Python-2.7.12.tar.xz" version="2.7.12">
+           module="2.7.13/Python-2.7.13.tar.xz" version="2.7.13">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/python2-linkflags.patch"; strip="1"/>
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/python-issue27806_v3.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="gettext-runtime"/>
       <dep package='readline'/>
+      <dep package="openssl" /> <!-- For hashlib -->
     </dependencies>
     <after>
-      <dep package="berkeleydb4.8"/>
+      <dep package="berkeleydb"/>
     </after>
   </autotools>
 
-<!--Note the leading ; in autogen-template. It's there on purpose in case the user has set nice_build so 
that the nice prepended to the command doesn't eat the cd. -->
-   <autotools id="berkeleydb5.0" autogen-sh="dist/configure"
-         autogen-template="cd .;cd build_unix; ../%(autogen-sh)s --prefix %(prefix)s  %(autogenargs)s" 
makeargs="-C build_unix"
-         makeinstallargs="-C build_unix install"
-        supports-non-srcdir-builds="no">
-
-    <branch module="berkeley-db/db-5.0.32.NC.tar.gz" version="5.0.32"
-        repo="oracle">
-      <patch file="https://github.com/narkoleptik/os-x-berkeleydb-patch/raw/master/atomic.patch"; strip='1'/>
-    </branch>
-  </autotools>
-
   <autotools id="python3" autogenargs="--enable-shared" autogen-sh="configure">
     <branch repo="python"
-           module="3.4.3/Python-3.4.3.tar.xz" version="3.4.3">
+           module="3.6.1/Python-3.6.1.tar.xz" version="3.6.1">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/Python3.4-stack_size-flag.patch"; 
strip="1"/>
     </branch>
     <dependencies>
@@ -93,45 +81,32 @@
       <dep package='readline'/>
     </dependencies>
     <after>
-      <dep package="berkeleydb5.0"/>
+      <dep package="berkeleydb"/>
     </after>
   </autotools>
 
 <!-- Pybsddb replaces Python2's built-in bsd module. Their repo uses
      hg, so we stick with the tarball. -->
   <distutils id="pybsddb">
-    <branch module="b/bsddb3/bsddb3-5.3.0.tar.gz"
-           hash="md5:d5aa4f293c4ea755e84383537f74be82" repo="pymodules"
-           version="5.3.0"/>
+    <branch module="b/bsddb3/bsddb3-6.2.4.tar.gz"
+           hash="md5:eec77d104c5981366701c6b0de585504" repo="pymodules"
+           version="6.2.4"/>
     <dependencies>
       <dep package="python3"/>
     </dependencies>
     <after>
-      <dep package="berkeleydb4.8"/>
-      <dep package="berkeleydb5.0"/>
+      <dep package="berkeleydb"/>
     </after>
   </distutils>
 
-<!--Py2cairo is for Python2 and pycairo is for Python3 -->
- <autotools id="py2cairo" >
-    <branch module="py2cairo" repo="cairographics" />
-    <dependencies>
-      <dep package="cairo"/>
-    </dependencies>
-    <after>
-      <dep package="python"/>
-      <dep package="meta-gtk-osx-core"/>
-      <dep package="meta-gtk-osx-gtk3"/>
-    </after>
-  </autotools>
-
  <distutils id="pycairo" >
-    <branch module="pycairo" repo="cairographics" />
+    <branch module="pygobject/pycairo" repo="github" />
     <dependencies>
       <dep package="cairo"/>
     </dependencies>
     <after>
       <dep package="python3"/>
+      <dep package="python"/>
       <dep package="meta-gtk-osx-core"/>
       <dep package="meta-gtk-osx-gtk3"/>
     </after>
@@ -151,17 +126,19 @@
     <dependencies>
       <dep package="pycairo"/>
       <dep package="meta-gtk-osx-gtk3"/>
-      <dep package="python3"/>
    </dependencies>
+   <after>
+     <dep package="python3"/>
+      <dep package="python"/>
+   </after>
   </autotools>
 
-
   <autotools id="pygtk" autogenargs="--disable-introspection">
     <branch />
     <dependencies>
       <dep package="pygobject"/>
       <dep package="meta-gtk-osx-core"/>
-      <dep package="py2cairo"/>
+      <dep package="pycairo"/>
     </dependencies>
     <after>
       <dep package="libglade"/>
diff --git a/modulesets-unstable/gtk-osx-random.modules b/modulesets-unstable/gtk-osx-random.modules
index 1bb5549..1717667 100644
--- a/modulesets-unstable/gtk-osx-random.modules
+++ b/modulesets-unstable/gtk-osx-random.modules
@@ -6,7 +6,7 @@
               href="git://git.gnome.org/"/>
   <repository type="git" name="github" href="git://github.com/"/>
   <repository type="tarball" name="ftp.gnome.org" 
-             href="ftp://ftp.gnome.org/pub/gnome/sources/"/>
+              href="ftp://ftp.gnome.org/pub/gnome/sources/"/>
   <repository type="tarball" name="ftp.gnu.org"
              href="ftp://ftp.gnu.org/gnu/"/>
   <repository type="git" name="git.freedesktop.org"
@@ -19,9 +19,6 @@
   <repository type="tarball" name="sourceforge"
               href="http://downloads.sourceforge.net/sourceforge/"/>
   <repository type="tarball" name="sqlite" href="http://www.sqlite.org/"/>
-  <repository type="cvs" name="hunspell-cvs"
-             cvsroot=":pserver:anonymous hunspell cvs sourceforge net:/cvsroot/hunspell"
-             password=""/>
   <repository type="cvs" name="gtkspell"
              cvsroot=":pserver:anonymous gtkspell cvs sourceforge net:/cvsroot/gtkspell"
              password=""/>
@@ -45,20 +42,8 @@
     </dependencies>
   </metamodule>
 
-  <!-- Loudmouth seems to be a bit of a football. This is pointed at
-       the dev on github who's done the most recent work, though the
-       release in question is from the original author. The project
-       website is at http://www.loudmouth-project.org/, but it's a bit
-       out of date. -->
-  <autotools id="loudmouth" autogenargs="--with-ssl=openssl">
-<!-- loudmouth > 1.4.3 requires openssl-0.9.8f; Leopard provides only 0.9.7. -->
-    <branch module="engineyard/loudmouth" />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="glib"/>
-    </after>
-  </autotools>
-
+  <!-- Libglade's functions are now part of Gtk+ with different names and
+     Libglade itself is deprecated.-->
   <autotools id="libglade">
     <branch />
     <after>
@@ -67,19 +52,7 @@
     </after>
   </autotools>
 
-  <autotools id="gossip">
-    <branch />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-themes"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-    <dependencies>
-      <dep package="loudmouth"/>
-      <dep package="libglade"/>
-    </dependencies>
-  </autotools>
-<!-- Vala-bootstrap is the current stable vala precompiled to C. -->
+  <!-- Vala-bootstrap is the current stable vala precompiled to C. -->
   <!--<autotools id="vala" autogen-sh="configure">
     <branch module="vala-bootstrap"/>
   </autotools>-->
@@ -119,6 +92,7 @@
     </dependencies>
   </autotools>
 
+<!-- Glade 3.8 is the last stable series for Gtk+-2 -->
   <autotools id="glade3" autogenargs="--disable-scrollkeeper">
     <branch module="glade" tag="glade-3-8"/>
     <after>
@@ -130,6 +104,9 @@
 
   <autotools id="glade" autogenargs="--disable-scrollkeeper">
     <branch />
+    <dependencies>
+      <dep package="itstool"/>
+    </dependencies>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
       <dep package="meta-gtk-osx-themes"/>
@@ -145,58 +122,6 @@
     </after>
   </autotools>
 
-  <autotools id="libIDL">
-    <branch />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
-
-  <autotools id="ORBit2">
-    <branch />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-    </after>
-    <dependencies>
-      <dep package="libIDL"/>
-    </dependencies>
-  </autotools>
-
-  <!-- This stays as a tarball so that the patches can be applied -->
-  <autotools id="dbus" autogen-sh='configure'
-          autogenargs="--disable-selinux --without-x --disable-launchd
-          --with-session-socket-dir=/var/tmp">
-    <branch module="dbus/dbus-1.6.8.tar.gz"  version="1.6.8"
-           repo="dbus.freedesktop.org">
-    </branch>
-    <dependencies>
-      <dep package="python"/>
-    </dependencies>
-  </autotools>
-
-  <autotools id="dbus-glib" autogenargs="--disable-selinux">
-    <branch repo="git.freedesktop.org" module="dbus/dbus-glib" />
-    <dependencies>
-      <dep package="dbus"/>
-    </dependencies>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
-
-  <!-- Note: -disable-defaults-service removes dependency on "PolicyKit"
-       which is available only through svn or from Linux distros -->
-<!-- Pegged at gnome-2-28 until gdbus is fixed for OSX -->
-  <autotools id="gconf" autogenargs="--disable-defaults-service">
-    <branch revision="gnome-2-28"/>
-    <dependencies>
-      <dep package="ORBit2"/>
-      <dep package="dbus-glib"/>
-    </dependencies>
-  </autotools>
-
   <!-- These folks don't make their repository available.-->
   <autotools id="lcms" autogen-sh="configure">
     <branch module="lcms/lcms-1.18a.tar.gz" version="1.18" repo="sourceforge"
@@ -218,20 +143,6 @@
     </dependencies>
   </autotools>
 
-  <cmake id="exiv2" supports-non-srcdir-builds="no">
-    <branch repo="exiv2.org" module="svn">
-    </branch>
-  </cmake>
-  
-  <autotools id="gexiv2" supports-non-srcdir-builds="no"
-            autogenargs="--enable-introspection --with-libtool=libtool"
-            autogen-template="%(srcdir)s/%(autogen-sh)s --prefix=%(prefix)s %(autogenargs)s">
-    <branch/>
-    <dependencies>
-      <dep package="exiv2"/>
-    </dependencies>
-  </autotools>
-  
   <autotools id="gimp" 
              autogenargs="--disable-python --disable-print --without-x
                           --without-dbus --without-gnomevfs --without-wmf"
@@ -252,7 +163,7 @@
   <autotools id="json-glib">
     <branch/>
   </autotools>
-  
+ 
   <autotools id="babl">
     <branch />
   </autotools>
@@ -278,7 +189,7 @@
   <autotools id="sqlite" autogenargs="--disable-tcl --enable-threadsafe" >
     <!-- Another package with a non-standard repository structure. Tarballs
     are easier.-->
-    <branch module="sqlite-autoconf-3071401.tar.gz" version="3.7.14"
+    <branch module="2017/sqlite-autoconf-3180000.tar.gz" version='3.18.0'
             repo="sqlite"/>
   </autotools>
 
@@ -289,6 +200,10 @@
     </dependencies>
   </autotools>
 
+  <autotools id="hunspell" autogen-sh="configure">
+    <branch module="hunspell/hunspell" repo="github"/>
+  </autotools>
+
   <autotools id="enchant" >
     <!-- No version. Doesn't seem to have been touched in a while. -->
     <branch repo="abisource/enchant" module="enchant"/>
@@ -297,18 +212,20 @@
     </dependencies>
   </autotools>
 
-  <autotools id="gtkspell">
-    <branch module="gtkspell2" repo="gtkspell"/>
+  <!-- GtkSpell has switched to Mercurial for VCS, so we'll use the
+       tarballs to avoid the dependency. -->
+  <autotools id="gtkspell" autogen-sh="configure">
+    <branch module="gtkspell/gtkspell-2.0.16.tar.gz" repo="sourceforge"
+           version="2.0.16"/>
     <dependencies>
       <dep package="enchant"/>
     </dependencies>
   </autotools>
 
-<!-- GtkSpell has switched to Mercurial for VCS, so we'll use the
-     tarball to avoid the dependency. -->
   <autotools id="gtkspell3" autogen-sh="configure">
-    <branch module="gtkspell/gtkspell3-3.0.7.tar.gz" repo="sourceforge"
-           version="3.0.7">
+    <branch module="gtkspell/gtkspell3-3.0.9.tar.gz" repo="sourceforge"
+           version="3.0.9">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/0001-Enable-use-of-XDG_DATA_DIRS-for-locating-iso-code-fi.patch";
 strip="1"/>
     </branch>
     <dependencies>
       <dep package="enchant"/>
@@ -334,12 +251,17 @@
     </branch>
   </autotools>
 
-  <autotools id="bdw-gc" autogen-template="pushd %(srcdir)s &amp;&amp; ./autogen.sh &amp;&amp; automake-1.10 
-ac &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
-    <branch repo="github" module="ivmai/bdwgc" revision="release-7_2"/>
+  <autotools id="libatomic-ops"
+             autogen-template="%(autogen-sh)s &amp;&amp; ./configure --prefix=%(prefix)s> %(autogen-args)s">
+    <branch repo="github" module="ivmai/libatomic_ops" />
+  </autotools>
+
+  <autotools id="bdw-gc" autogen-template="pushd %(srcdir)s &amp;&amp; ./autogen.sh &amp;&amp; automake-1.14 
-ac &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
+    <branch repo="github" module="ivmai/bdwgc" />
   </autotools>
 
   <autotools id="guile" autogenargs="--disable-error-on-warning">
-    <branch repo="savannah" module="guile.git"/>
+    <branch repo="savannah" module="guile.git" revision="branch_release-1-8"/>
     <dependencies>
       <dep package="gmp"/>
     </dependencies>
@@ -355,13 +277,4 @@
     </dependencies>
   </autotools>
 
-  <autotools id="hunspell" autogen-sh="configure">
-    <branch repo="hunspell-cvs"/>
-  </autotools>
-
-  <autotools id="bdw-gc" autogen-sh="configure">
-    <branch repo="boehm" module="gc/gc_source/gc-7.2e.tar.gz" version="7.2e"
-           checkoutdir="gc-7.2"/>
-  </autotools>
-
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx-themes.modules b/modulesets-unstable/gtk-osx-themes.modules
index 3c93f38..03f41e2 100644
--- a/modulesets-unstable/gtk-osx-themes.modules
+++ b/modulesets-unstable/gtk-osx-themes.modules
@@ -28,7 +28,7 @@
   <autotools id="icon-naming-utils" autogen-sh="configure" >
     <branch repo="freedesktop.org" module="gstreamer-sdk/icon-naming-utils" 
            revision="sdk-0.8.7"/>
-    <after>
+cgit    <after>
       <dep package="meta-gtk-osx-bootstrap"/>
     </after>
   </autotools>
@@ -80,20 +80,27 @@
     <branch module="murrine"/>
   </autotools>
 
+  <!-- librsvg is converting to the Rust language. This requires
+       substantial infrastructure that's resistant to installing with
+       jhbuild, so we'll freeze at the 2.40 branch. -->
   <autotools id="librsvg" autogenargs="--disable-Bsymbolic">
-    <branch module="librsvg"/>
+    <branch module="librsvg" tag="librsvg-2-40"/>
     <dependencies>
       <dep package="libcroco"/>
-      <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
+    <after>
+      <dep package="meta-gtk-osx-core"/>
+      <dep package="meta-gtk-osx-gtk3"/>
+    </after>
   </autotools>
 
   <autotools id="libcroco" autogenargs="--disable-Bsymbolic">
     <branch/>
   </autotools>
 
+  <!-- Unmaintained since September 2009. -->
   <autotools id="libcss" autogenargs="--disable-examples">
-    <branch module="ccss" repo="freedesktop.org" tag="ccss-0.5.0"/>
+    <branch module="ccss" repo="freedesktop.org" />
     <dependencies>
       <dep package="libcroco"/>
     </dependencies>
@@ -106,11 +113,4 @@
     </after>
   </autotools>
 
-  <autotools id="gtk-quartz-engine">
-    <branch module="jralls/gtk-quartz-engine"
-            repo="github.com"  />
-    <after>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx-unsupported.modules b/modulesets-unstable/gtk-osx-unsupported.modules
index 55ee644..9158f77 100644
--- a/modulesets-unstable/gtk-osx-unsupported.modules
+++ b/modulesets-unstable/gtk-osx-unsupported.modules
@@ -13,6 +13,7 @@
              href="git://anongit.freedesktop.org"/>
   <repository type="tarball" name="curl.haxx.se"
               href="http://curl.haxx.se/download/"/>
+  <repository type="git" name="github" href="git://github.com"/>
 
   <metamodule id="meta-gtk-osx-unsupported">
     <dependencies>
@@ -28,9 +29,10 @@
     </dependencies>
   </autotools>
 
+  <!-- Iso-codes >= 3.68 requires Python3, a dependency too far. -->
   <autotools id="iso-codes" >
     <branch repo="git.debian.org" 
-            module="iso-codes/iso-codes"/>
+            module="pkg-isocodes/iso-codes" tag="iso-codes-3.67"/>
 
   </autotools>
 
@@ -41,6 +43,24 @@
     </dependencies>
   </autotools>
 
+  <cmake id='libproxy'
+         cmakeargs="-DWITH_PYTHON=OFF -DWITH_PERL=OFF -DWITH_NM=OF">
+    <branch repo='github' module="master" />
+    <dependencies>
+    </dependencies>
+  </cmake>
+
+  <autotools id="libgnome-keyring"
+             autogenargs="--disable-pam --without-root-certs">
+    <branch/>
+    <dependencies>
+      <dep package="libgcrypt"/>
+      <dep package="libtasn1"/>
+      <dep package="glib"/>
+      <dep package="dbus"/>
+    </dependencies>
+  </autotools>
+
   <autotools id="libgpg-error" autogen-sh="autogen.sh"
              autogenargs="--disable-doc"
              autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s 
 %(autogenargs)s">
@@ -55,15 +75,6 @@
     </dependencies>
   </autotools>
 
-  <autotools id="libgnome-keyring" autogenargs="--disable-pam --without-root-certs">
-    <branch/>
-    <dependencies>
-      <dep package="libgcrypt"/>
-      <dep package="libtasn1"/>
-      <dep package="glib"/>
-      <dep package="dbus"/>
-    </dependencies>
-  </autotools>
 
    <autotools id="gnome-keyring"
              autogenargs="--disable-pam --without-root-certs">
@@ -75,15 +86,4 @@
     </dependencies>
   </autotools>
 
-  <cmake id='libproxy'  cmakeargs="-DWITH_PYTHON=OFF -DWITH_PERL=OFF -DWITH_NM=OF">
-    <branch repo='libproxy.google.com' module="trunk" />
-    <dependencies>
-    </dependencies>
-  </cmake>
-
-  <!-- 10.5 has 7.16.3, which is too old for some things, and also doesn't
-  provide a pkgconfig file. Otherwise can be skipped. -->
-  <autotools id="libcurl" autogen-sh="configure">
-    <branch repo="curl.haxx.se" module="curl-7.47.1.tar.bz2" version="7.47.1"/>
-  </autotools>
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx.modules b/modulesets-unstable/gtk-osx.modules
index adc1938..d5cb49e 100644
--- a/modulesets-unstable/gtk-osx.modules
+++ b/modulesets-unstable/gtk-osx.modules
@@ -78,19 +78,6 @@
     <branch module="atgreen/libffi" repo="github"/>
   </autotools>
 
-  <autotools id="xorg-util-macros">
-    <branch repo="freedesktop" module="xorg/util/macros"/>
-  </autotools>
-
-  
-  <!-- Commit 06fd4a27 breaks the build for gtk-osx, tag v1.3.1 builds fine. -->
-  <autotools id="libepoxy">
-    <branch repo="github" module="anholt/libepoxy" revision="v1.3.1"/>
-    <dependencies>
-      <dep package="xorg-util-macros"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gobject-introspection">
     <branch/>
     <dependencies>
@@ -126,23 +113,6 @@
     </after>
   </autotools>
 
-  <autotools id="at-spi2-atk">
-    <branch/>
-    <dependencies>
-      <dep package="dbus"/>
-      <dep package="atk"/>
-      <dep package="at-spi2-core"/>
-    </dependencies>
-  </autotools>
-
-  <autotools id="at-spi2-core">
-    <branch/>
-    <dependencies>
-      <dep package="glib"/>
-      <dep package="dbus"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gdk-pixbuf">
     <branch />
     <after>
@@ -184,7 +154,6 @@
       <dep package="gdk-pixbuf"/>
       <dep package="atk"/>
       <dep package="gobject-introspection"/>
-      <dep package="libepoxy"/>
     </dependencies>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
@@ -200,7 +169,6 @@
       <dep package="gdk-pixbuf"/>
       <dep package="atk"/>
       <dep package="gobject-introspection"/>
-      <dep package="libepoxy"/>
       <dep package="graphene"/>
     </dependencies>
     <after>
diff --git a/modulesets/gtk-osx-bootstrap.modules b/modulesets/gtk-osx-bootstrap.modules
index 1782c35..73bfbcf 100644
--- a/modulesets/gtk-osx-bootstrap.modules
+++ b/modulesets/gtk-osx-bootstrap.modules
@@ -29,25 +29,25 @@
               href="http://www.colm.net/files/ragel/"/>
 
   <autotools id='readline' autogen-sh="configure">
-    <branch repo="ftp.gnu.org" module="readline/readline-6.3.tar.gz"
-           version="6.3">
+    <branch repo="ftp.gnu.org" module="readline/readline-7.0.tar.gz"
+           version="7.0">
     </branch>
   </autotools>
 
 <autotools id="libpng" autogenargs="--enable-shared" autogen-sh="configure">
-    <branch version="1.6.17" module="libpng/libpng-1.6.17.tar.xz"
-            repo="sourceforge" md5sum="430a9b76b78533235cd4b9b26ce75c7e"/>
+    <branch version="1.6.29" module="libpng/libpng-1.6.29.tar.xz"
+            repo="sourceforge"/>
   </autotools>
 
   <autotools id="libjpeg" autogen-sh="configure">
-    <branch module="jpegsrc.v9a.tar.gz" version="9a"
+    <branch module="jpegsrc.v9b.tar.gz" version="9b"
             repo="jpeg"
-            checkoutdir="jpeg-9a">
+            checkoutdir="jpeg-9b">
     </branch>
   </autotools>
 
   <autotools id="libtiff" autogen-sh="configure" autogenargs="--without-x">
-    <branch version="4.0.3" module="libtiff/tiff-4.0.3.tar.gz"
+    <branch version="4.0.7" module="libtiff/tiff-4.0.7.tar.gz"
            repo="libtiff"/>
     <dependencies>
       <dep package="libjpeg"/>
@@ -71,7 +71,7 @@
   </autotools>
 
   <autotools id="libxslt" autogen-sh="configure">
-    <branch version="1.1.28" module="libxslt-1.1.28.tar.gz"
+    <branch version="1.1.29" module="libxslt-1.1.29.tar.gz"
            repo="xmlsoft.org"/>
     <dependencies>
       <dep package="libxml2"/>
@@ -86,7 +86,7 @@
   </autotools>
 
   <autotools id="yelp-xsl">
-    <branch repo="git.gnome.org" revision="gnome-3-16"/>
+    <branch repo="git.gnome.org" revision="gnome-3-20"/>
     <dependencies>
       <dep package="libxml2"/>
       <dep package="libxslt"/>
@@ -94,8 +94,9 @@
     </dependencies>
   </autotools>
 
+  <!-- Yelp tools is releasing from the master branch. -->
   <autotools id="yelp-tools">
-    <branch repo="git.gnome.org" tag="3.16.1"/>
+    <branch repo="git.gnome.org"/>
     <dependencies>
       <dep package="libxml2"/>
       <dep package="libxslt"/>
@@ -106,7 +107,7 @@
 
   <autotools id="gtk-doc"
              autogenargs="--with-xml-catalog=$JHBUILD_PREFIX/share/xml/catalog">
-    <branch repo="git.gnome.org" version="1.21" tag="GTK_DOC_1_21"/>
+    <branch repo="git.gnome.org" version="1.25" tag="GTK_DOC_1_25"/>
     <dependencies>
       <dep package="libxml2"/>
       <dep package="itstool"/>
@@ -116,20 +117,20 @@
 
   <autotools id="icu" autogen-sh="source/configure" autogenargs="--enable-rpath"
              makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
-    <branch repo="icu" version="55.1" checkoutdir="icu"
-            module="icu4c/55.1/icu4c-55_1-src.tgz"/>
+    <branch repo="icu" version="58.2" checkoutdir="icu"
+            module="icu4c/58.2/icu4c-58_2-src.tgz"/>
   </autotools>
 
   <!-- Ragel, like Vala, isn't bootstrappable from git, so we might as well just use the tarball. -->
   <autotools id="ragel" autogen-sh='autoreconf'>
-    <branch repo="ragel" module="ragel-6.9.tar.gz" version="6.9">
+    <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
     </branch>
   </autotools>
 
   <autotools id="harfbuzz"
              autogenargs="--with-coretext --with-freetype --with-icu">
-    <branch repo="freedesktop" tag="0.9.40"/>
+    <branch repo="freedesktop" tag="1.4.5"/>
     <dependencies>
       <dep package="freetype-no-harfbuzz"/>
       <dep package="ragel"/>
@@ -140,7 +141,7 @@
 
   <autotools id="freetype-no-harfbuzz" skip-autogen="never" autogenargs="--without-bzip2 --without-harfbuzz"
             autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s">
-    <branch module="freetype/freetype2" tag="VER-2-5-3" repo="nongnu"/>
+    <branch module="freetype/freetype2" tag="VER-2-7-1" repo="nongnu"/>
     <dependencies>
       <dep package="zlib"/>
     </dependencies>
@@ -148,7 +149,7 @@
 
   <autotools id="freetype" skip-autogen="never" autogenargs="--without-bzip2"
             autogen-template="make distclean &amp;&amp; %(srcdir)s/autogen.sh &amp;&amp; 
%(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
-    <branch module="freetype/freetype2" tag="VER-2-5-3" repo="nongnu"/>
+    <branch module="freetype/freetype2" tag="VER-2-7-1" repo="nongnu"/>
     <dependencies>
       <dep package="harfbuzz"/>
       <dep package="zlib"/>
@@ -156,7 +157,7 @@
  </autotools>
 
   <autotools id="fontconfig" autogenargs="--disable-docs">
-    <branch repo="freedesktop" tag="2.11.1"/>
+    <branch repo="freedesktop" tag="2.12.1"/>
     <dependencies>
       <dep package="freetype"/>
     </dependencies>
diff --git a/modulesets/gtk-osx-gstreamer.modules b/modulesets/gtk-osx-gstreamer.modules
index 5ba9ca3..3d0464c 100644
--- a/modulesets/gtk-osx-gstreamer.modules
+++ b/modulesets/gtk-osx-gstreamer.modules
@@ -14,14 +14,6 @@
        are unversioned and haven't been tested for gtk-osx
        compatibility. -->
 
-  <!-- liboil is in maintenance mode, use tarball. -->
-  <autotools id="liboil" makeargs=' CFLAGS="$CFLAGS -DHAVE_SYMBOL_UNDERSCORE"'
-             autogen-template="autoreconf -fis &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s">
-    <branch repo="liboil" module="liboil-0.3.17.tar.gz" version="0.3.17">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/liboil-use-ac-config-headers-macro.patch"; strip="1"/>
-    </branch>
-  </autotools>
-
   <autotools id="liborc">
     <branch repo="gstreamer" module="orc" tag="orc-0.4.22"/>
   </autotools>
@@ -37,7 +29,7 @@
   <autotools id="gstreamer" autogenargs="--disable-tests"
              supports-non-srcdir-builds="no"
             makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10">
+    <branch>
       <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/gstreamer-fix-includes-in-gstdatetime.patch"; 
strip="1"/>
     </branch>
     <after>
@@ -46,20 +38,10 @@
     </after>
   </autotools>
 
-   <autotools id="gstreamer-1.0" autogenargs="--disable-tests"
-             supports-non-srcdir-builds="no"
-            makeargs="ERROR_CFLAGS=" >
-    <branch module="gstreamer" revision="1.4" checkoutdir="gstreamer-1.0"/>
-    <after>
-      <dep package="glib"/>
-      <dep package="libxml2"/>
-    </after>
-  </autotools>
-
   <autotools id="gst-plugins-base" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvideo"
              makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch revision="1.10"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="liboil"/>
@@ -68,62 +50,28 @@
     </after>
   </autotools>
 
-  <autotools id="gst-plugins-base-1.0" supports-non-srcdir-builds="no"
-             autogenargs="--disable-tests --disable-x --disable-xvideo"
-             makeargs="ERROR_CFLAGS=" >
-    <branch module="gst-plugins-base" revision="1.4"
-            checkoutdir="gst-plugins-base-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="liborc"/>
-    </dependencies>
-    <after>
-    </after>
-  </autotools>
-
   <autotools id="gst-plugins-good" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-x --disable-xvideo --disable-osx-video"
              makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch revision="1.10"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
     </dependencies>
   </autotools>
 
-  <autotools id="gst-plugins-good-1.0" supports-non-srcdir-builds="no"
-            autogenargs="--disable-tests --disable-x --disable-xvideo --disable-osx-video"
-             makeargs="ERROR_CFLAGS=" >
-    <branch module="gst-plugins-good" revision="1.4"
-            checkoutdir="gst-plugins-good-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gst-plugins-ugly" autogenargs="--disable-tests"
             supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch revision="1.10"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
     </dependencies>
   </autotools>
 
-  <autotools id="gst-plugins-ugly-1.0" autogenargs="--disable-tests"
-            supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS=" >
-    <branch module="gst-plugins-ugly" revision="1.4"
-            checkoutdir="gst-plugins-ugly-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gst-plugins-bad" autogenargs="--disable-tests --disable-x --disable-xvid"
             supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS=" >
-    <branch revision="0.10"/>
+    <branch revision="1.10"/>
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
@@ -131,36 +79,15 @@
     </dependencies>
   </autotools>
 
-  <autotools id="gst-plugins-bad-1.0" autogenargs="--disable-tests --disable-x --disable-xvid"
-            supports-non-srcdir-builds="no" makeargs="ERROR_CFLAGS=" >
-    <branch module="gst-plugins-bad" revision="1.4"
-            checkoutdir="gst-plugins-bad-1.0"/>
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-      <dep package="faad2"/>
-    </dependencies>
-  </autotools>
-
-  <!-- gst-libav was named gst-ffmpeg before 1.0 -->
-  <autotools id="gst-ffmpeg" autogenargs="--disable-tests --disable-mmx"
-             supports-non-srcdir-builds="no" >
-    <branch revision="0.10"/>
-    <dependencies>
-      <dep package="gstreamer"/>
-      <dep package="gst-plugins-base"/>
-    </dependencies>
-  </autotools>
-
   <!-- disable-yasm: gst-libav's version of libav (10.5) on the 1.4 branch
   requires yasm 0.8.0 or nasm 2.0.3; OSX 10.9 has nasm 0.98.40. (Oddly, the
   version of libav on master (10.3) does not.) -->
   <autotools id="gst-libav" supports-non-srcdir-builds="no"
              autogenargs="--disable-tests --disable-mmx --with-libav-extra-configure='--disable-yasm'">
-    <branch module="gst-libav" revision="1.4"/>
+    <branch module="gst-libav" revision="1.10"/>
     <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
+      <dep package="gstreamer"/>
+      <dep package="gst-plugins-base"/>
     </dependencies>
   </autotools>
 
@@ -175,15 +102,4 @@
     </dependencies>
   </metamodule>
 
-  <metamodule id="meta-gstreamer-1.0">
-    <dependencies>
-      <dep package="gstreamer-1.0"/>
-      <dep package="gst-plugins-base-1.0"/>
-      <dep package="gst-plugins-good-1.0"/>
-      <!--dep package="gst-plugins-ugly-1.0"/-->
-      <dep package="gst-plugins-bad-1.0"/>
-      <dep package="gst-libav"/>
-    </dependencies>
-  </metamodule>
-
 </moduleset>
diff --git a/modulesets/gtk-osx-gtkmm.modules b/modulesets/gtk-osx-gtkmm.modules
index 3176ca7..1ee14f2 100644
--- a/modulesets/gtk-osx-gtkmm.modules
+++ b/modulesets/gtk-osx-gtkmm.modules
@@ -21,12 +21,11 @@
 
 <!-- mm-common is C++ glue code needed only to build from git. -->
   <autotools id="mm-common">
-    <branch module="mm-common" tag="0.9.7"/>
+    <branch module="mm-common" tag="0.9.10"/>
   </autotools>
 
   <autotools id="cairomm" >
-<!-- 1.10.0, the latest stable release, was built from the master branch. -->
-    <branch module="cairomm" tag="v1.11.2"
+    <branch module="cairomm" revision="cairomm-1-14"
             repo="cairographics" />
     <dependencies>
       <dep package="cairo"/>
@@ -34,7 +33,7 @@
   </autotools>
 
   <autotools id="glibmm" >
-    <branch tag="glibmm-2-42"/>
+    <branch revision="glibmm-2-50"/>
     <dependencies>
       <dep package="libsigc++2"/>
     </dependencies>
@@ -43,9 +42,8 @@
     </after>
   </autotools>
 
-<!-- Pangomm's last stable branch was 2-24 -->
   <autotools id="pangomm" >
-     <branch tag="2.34.0"/>
+     <branch revision="pangomm-2-40"/>
     <dependencies>
        <dep package="cairomm"/>
     </dependencies>
@@ -56,6 +54,16 @@
     </after>
   </autotools>
 
+  <autotools id="atkmm">
+    <branch module="atkmm" revision="atkmm-2-24"/>
+    <dependencies>
+      <dep package="glibmm"/>
+      <dep package="cairomm"/>
+      <dep package="pangomm"/>
+      <dep package="atk"/>
+    </dependencies>
+  </autotools>
+
 <!-- libsigc++ depends on doxygen for documentation, but doxygen
      doesn't build correctly under gtk-osx. It builds fine on its own,
      of course, and there are OSX binaries available on their
@@ -63,23 +71,12 @@
      documentation in your jhbuildrc-custom. -->
 <!-- libsigc++2 releaseed 2.4.0 from master -->
   <autotools id="libsigc++2"  autogen-args="--disable-documentation">
-    <branch revision="2.4.0"/>
+    <branch module="libsigcplusplus" revision="libsigc++-2-10"/>
     <dependencies>
       <dep package="mm-common"/>
     </dependencies>
   </autotools>
 
-<!-- atkmm doesn't branch -->
-  <autotools id="atkmm">
-    <branch module="atkmm" tag="2.22.7"/>
-    <dependencies>
-      <dep package="glibmm"/>
-      <dep package="cairomm"/>
-      <dep package="pangomm"/>
-      <dep package="atk"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gtkmm" >
     <branch revision="gtkmm-2-24"/>
     <dependencies>
@@ -92,7 +89,7 @@
   </autotools>
 
   <autotools id="gtkmm3" >
-    <branch revision="gtkmm-3-14" module="gtkmm"/>
+    <branch module="gtkmm" revision="gtkmm-3-22"/>
     <dependencies>
       <dep package="glibmm"/>
       <dep package="cairomm"/>
diff --git a/modulesets/gtk-osx-javascript.modules b/modulesets/gtk-osx-javascript.modules
index 5e15ee2..c58a5d1 100644
--- a/modulesets/gtk-osx-javascript.modules
+++ b/modulesets/gtk-osx-javascript.modules
@@ -18,7 +18,7 @@
   </metamodule>
 
   <autotools id="gjs" autogenargs="--enable-installed-tests">
-    <branch revision="gnome-3-14"/>
+    <branch revision="gnome-3-24"/>
     <dependencies>
       <dep package="gobject-introspection"/>
       <dep package="js24"/>
diff --git a/modulesets/gtk-osx-network.modules b/modulesets/gtk-osx-network.modules
index a5e99ed..545d372 100644
--- a/modulesets/gtk-osx-network.modules
+++ b/modulesets/gtk-osx-network.modules
@@ -18,6 +18,8 @@
               href="https://chromium.googlesource.com/"/>
   <repository name="webkit.org" type="tarball"
               href="http://www.webkitgtk.org/releases/"/>
+  <repository type="tarball" name="icu"
+              href="http://download.icu-project.org/files/"/>
 
   <!-- Builds last version of WebKitGTK that supported GTK 2.x -->
   <metamodule id="meta-gtk-osx-webkit">
@@ -40,8 +42,8 @@
   <autotools id="openssl" autogen-sh="Configure" autogenargs="shared"
              autogen-template="%(srcdir)s/%(autogen-sh)s --prefix=%(prefix)s --openssldir=%(prefix)s/etc/ssl 
%(autogenargs)s"
              makeinstallargs="install_sw" supports-non-srcdir-builds="no">
-    <branch module="openssl-1.0.2f.tar.gz" version="1.0.2f" repo="openssl"
-            hash="sha256:932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c"/>
+    <branch module="openssl-1.0.2k.tar.gz" version="1.0.2k" repo="openssl"
+            hash="sha256:6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0"/>
   </autotools>
 
   <!-- Rudely demands TeX to build documentation -->
@@ -49,9 +51,8 @@
   <autotools id="libnettle"
              autogenargs="--disable-documentation --disable-assembler"
              autogen-template="autoreconf -fis &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s">
-    <!-- gnutls 3.3.x does not support nettle 3.0 -->
     <branch repo="lysator" module="nettle/nettle.git"
-            tag="nettle_2.7_release_20130424"/>
+            tag="nettle_3.3_release_20161001"/>
     <dependencies>
       <dep package="gmp"/>
       <dep package="openssl"/>
@@ -61,14 +62,14 @@
   <autotools id="libtasn1" supports-non-srcdir-builds="no">
     <!-- Git repository is missing files required to build libtasn1
     <branch repo="git.gnu.org" tag="libtasn1_4_4"  module="libtasn1"/> -->
-    <branch repo="ftp.gnu.org" version="4.4"
-            module="libtasn1/libtasn1-4.4.tar.gz"/>
+    <branch repo="ftp.gnu.org" version="4.10"
+            module="libtasn1/libtasn1-4.10.tar.gz"/>
   </autotools>
 
   <autotools id="zlib" autogen-sh="configure" skip-autogen="never"
              supports-non-srcdir-builds="no">
-    <branch repo="sourceforge" version="1.2.8"
-            module="libpng/zlib-1.2.8.tar.gz"/>
+    <branch repo="sourceforge" version="1.2.11"
+            module="libpng/zlib-1.2.11.tar.gz"/>
   </autotools>
 
   <!-- Building from git does not work because they have checked in a bunch of
@@ -77,8 +78,8 @@
   <autotools id="gnutls" autogen-sh="configure"
              autogenargs="--disable-gtk-doc-html --without-p11-kit">
     <!--branch repo="gitlab" module="gnutls/gnutls"/-->
-    <branch repo="gnutls" version="3.3.12"
-            module="gcrypt/gnutls/v3.3/gnutls-3.3.12.tar.xz"/>
+    <branch repo="gnutls" version="3.5.9"
+            module="gcrypt/gnutls/v3.5/gnutls-3.5.9.tar.xz"/>
     <dependencies>
       <dep package="libnettle"/>
       <dep package="libtasn1" />
@@ -86,16 +87,21 @@
     </dependencies>
   </autotools>
 
+  <autotools id="libgcrypt" autogen-sh="configure">
+    <branch repo="gnutls" version="1.7.6"
+            module="gcrypt/libgcrypt/libgcrypt-1.7.6.tar.gz"/>
+  </autotools>
+
   <autotools id="glib-networking"
              autogenargs="--without-ca-certificates set_more_warnings=no">
-    <branch revision="glib-2-44"/>
+    <branch revision="glib-2-50"/>
     <dependencies>
       <dep package="gnutls"/>
     </dependencies>
   </autotools>
 
   <autotools id="libsoup" autogenargs="set_more_warnings=no">
-    <branch revision="gnome-3-14"/>
+    <branch revision="gnome-3-24"/>
     <dependencies>
       <dep package="glib"/>
       <dep package="glib-networking"/>
@@ -104,7 +110,14 @@
   </autotools>
 
   <autotools id="libwebp" autogen-sh="autoreconf">
-    <branch repo="chromium" module="webm/libwebp" revision="0.4.3"/>
+    <branch repo="chromium" module="webm/libwebp" revision="0.6.0"/>
+  </autotools>
+
+  <autotools id="icu55" autogen-sh="source/configure"
+             autogenargs="--enable-rpath"
+             makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
+    <branch repo="icu" version="55.1" checkoutdir="icu"
+            module="icu4c/55.1/icu4c-55_1-src.tgz"/>
   </autotools>
 
   <!-- This is WebKitGTK 2.4.x, the last version that had the WebKit1 API.
@@ -116,21 +129,24 @@
       append_autogenargs('WebKit', '&#45;-enable-video')
       append_autogenargs('WebKit', '&#45;-enable-web-audio')
     -j1: Workaround for https://bugs.webkit.org/show_bug.cgi?id=140171
+
+   It has some issues with ICU 58 so we keep it on ICU55. Note that
+   you can't install both, so if you need to build this webkit add icu
+   to your skip-list.
   -->
   <autotools id="webkit" autogen-sh="autoreconf"
-             autogenargs="--enable-quartz-target --with-gtk=2.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
-    <branch repo="webkit.org" module="webkitgtk-2.4.9.tar.xz" version="2.4.9">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+             autogenargs="--enable-quartz-target --with-gtk=2.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-stdlib=libc++'">
+    <branch repo="webkit.org" module="webkitgtk-2.4.11.tar.xz" version="2.4.11">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
       <dep package="enchant"/>
-      <dep package="icu"/>
+      <dep package="icu"55/>
       <dep package="libsoup"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
@@ -142,19 +158,18 @@
 
   <!-- This is WebKitGTK 2.4.x as above, but for gtk3.  -->
   <autotools id="webkit1gtk3" autogen-sh="autoreconf"
-             autogenargs="--enable-quartz-target --with-gtk=3.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-std=gnu++11'">
+             autogenargs="--enable-quartz-target --with-gtk=3.0 --disable-webkit2 
--disable-credential-storage --disable-geolocation --disable-video --disable-web-audio 
CXXFLAGS='-stdllib=libc++'">
     <branch repo="webkit.org" module="webkitgtk-2.4.9.tar.xz" version="2.4.9">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch";
-             strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-140167-disable-netscape-api.patch"; strip="1"/>
       <!-- This patch can be commented out for XCode >= 6.3, but does no harm if
       it's left in -->
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch";
-             strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-133293-cfi-clang-failure.patch"; 
strip="1"/>
+      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.4.11-fixups.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
       <dep package="enchant"/>
-      <dep package="icu"/>
+      <dep package="icu55"/>
       <dep package="libsoup"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
@@ -181,17 +196,11 @@
   -->
   <cmake id="webkit2gtk3"
          cmakeargs="-DPORT=GTK -DENABLE_X11_TARGET=OFF -DENABLE_QUARTZ_TARGET=ON -DENABLE_TOOLS=ON 
-DENABLE_MINIBROWSER=ON -DENABLE_PLUGIN_PROCESS_GTK2=OFF -DENABLE_VIDEO=OFF -DENABLE_WEB_AUDIO=OFF 
-DENABLE_CREDENTIAL_STORAGE=OFF -DENABLE_GEOLOCATION=OFF -DENABLE_OPENGL=OFF -DUSE_LIBNOTIFY=OFF 
-DUSE_LIBHYPHEN=OFF -DCMAKE_CXX_FLAGS='-stdlib=libc++'">
-    <branch repo="webkit.org" module="webkitgtk-2.10.2.tar.xz" version="2.10.2">
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-144561-quartz-backend.patch";
-             strip="1"/>
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-144560-platform-fixes.patch";
-             strip="1"/>
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-144785-link-injected-bundle.patch";
-             strip="1"/>
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-148606-build-texture-mapper-gl-separately.patch";
-             strip="1"/>
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/webkit-148607-include-stub-for-plugin-permission-request.patch";
-             strip="1"/>
+    <branch repo="webkit.org" module="webkitgtk-2.16.1.tar.xz" version="2.16.1">
+    <branch repo="webkit.org" module="webkitgtk-2.16.1.tar.xz" version="2.16.1">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/WebKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch"; 
strip="1"/>
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/Webkit-2.16-build-without-OpenGL.patch"; strip="1"/>
+<patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/Webkit-2.16-Fix-some-includes.patch"; 
strip="1"/>
     </branch>
     <dependencies>
       <dep package="libwebp"/>
diff --git a/modulesets/gtk-osx-python.modules b/modulesets/gtk-osx-python.modules
index cd6449a..cd8e7d3 100644
--- a/modulesets/gtk-osx-python.modules
+++ b/modulesets/gtk-osx-python.modules
@@ -15,7 +15,7 @@
              href="http://download.oracle.com/"/>
   <repository type="tarball" name="pymodules"
              href="http://pypi.python.org/packages/source/"/>
-
+  <repository type="git" name="github" href="git://github.com/"/>
 
   <metamodule id="meta-gtk-osx-python">
     <dependencies>
@@ -59,13 +59,14 @@
   <autotools id="python" autogenargs="--enable-shared"
             autogen-sh="configure">
     <branch repo="python"
-           module="2.7.12/Python-2.7.12.tar.xz" version="2.7.12">
+           module="2.7.13/Python-2.7.13.tar.xz" version="2.7.13">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/python2-linkflags.patch"; strip="1"/>
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/python-issue27806_v3.patch"; strip="1"/>
     </branch>
     <dependencies>
       <dep package="gettext-runtime"/>
       <dep package='readline'/>
+      <dep package="openssl"/> <!-- For hashlib -->
     </dependencies>
     <after>
       <dep package="berkeleydb"/>
@@ -73,7 +74,7 @@
   </autotools>
 
   <autotools id="python3" autogenargs="--enable-shared" autogen-sh="configure">
-    <branch repo="python" module="3.4.3/Python-3.4.3.tar.xz" version="3.4.3">
+    <branch repo="python" module="3.6.1/Python-3.6.1.tar.xz" version="3.6.1">
       <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/Python3.4-stack_size-flag.patch"; 
strip="1"/>
     </branch>
     <dependencies>
@@ -85,45 +86,40 @@
     </after>
   </autotools>
 
-<!-- Cairographics have changed the name to py2cairo for python 2 holdouts. -->
-  <waf id="py2cairo">
-    <branch module="py2cairo-1.10.0.tar.bz2" repo="cairographics"
-            version="1.10.0"
-            hash="sha1:2efa8dfafbd6b8e492adaab07231556fec52d6eb">
-      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/py2cairo-python2.6-Dont-try-to-guess-arch.patch";
-             strip="1"/>
-    </branch>
+  <distutils id="pybsddb">
+    <branch module="b/bsddb3/bsddb3-6.2.4.tar.gz"
+           hash="md5:eec77d104c5981366701c6b0de585504" repo="pymodules"
+           version="6.2.4"/>
     <dependencies>
-      <dep package="cairo"/>
+      <dep package="python3"/>
     </dependencies>
     <after>
-      <dep package="python"/>
-      <dep package="meta-gtk-osx-core"/>
+      <dep package="berkeleydb"/>
+      <dep package="berkeleydb-nonsrctree"/>
     </after>
-  </waf>
+  </distutils>
 
-<!-- Pycairo-python3 for those who've made the leap. -->
-  <waf id="pycairo" python-command="python3">
-    <branch module="pycairo-1.10.0.tar.bz2" repo="cairographics"
-            version="1.10.0"
-           hash="sha1:2efa8dfafbd6b8e492adaab07231556fec52d6eb"/>
+  <distutils id="pybsddb">
+    <branch module="b/bsddb3/bsddb3-6.2.4.tar.gz"
+           hash="md5:eec77d104c5981366701c6b0de585504" repo="pymodules"
+           version="6.2.4"/>
+    <dependencies>
+      <dep package="python3"/>
+      <dep package="berkeleydb"/>
+    </dependencies>
+  </distutils>
+
+  <distutils id="pycairo" autogen-sh="configure" python-command="python3">
+    <branch module="pygobject/pycairo" repo="github"/>
     <dependencies>
       <dep package="cairo"/>
     </dependencies>
     <after>
       <dep package="python3"/>
-      <dep package="meta-gtk-osx-core"/>
+      <dep package="python"/>
+      <dep package="meta-gtk-osx-gtk3"/>
+      <dep package="meta-gtk-osx"/>
     </after>
-  </waf>
-
-  <distutils id="pybsddb">
-    <branch module="b/bsddb3/bsddb3-5.3.0.tar.gz"
-           hash="md5:d5aa4f293c4ea755e84383537f74be82" repo="pymodules"
-           version="5.3.0"/>
-    <dependencies>
-      <dep package="python3"/>
-      <dep package="berkeleydb"/>
-    </dependencies>
   </distutils>
 
   <autotools id="pygobject" autogenargs="--disable-introspection">
@@ -137,7 +133,7 @@
   </autotools>
 
   <autotools id="pygobject3">
-    <branch tag="pygobject-3-16" module="pygobject" checkoutdir="pygobject3"/>
+    <branch tag="pygobject-3-24" module="pygobject" checkoutdir="pygobject3"/>
     <dependencies>
       <dep package="meta-gtk-osx-gtk3"/>
     </dependencies>
@@ -147,9 +143,7 @@
     </after>
   </autotools>
 
-<!-- PyGtk is maintenance-only, since it's unecessary for Gtk3. There
-     is no pygtk-2-24 branch; all maintenance is occuring on
-     master. -->
+<!-- PyGtk is discontinued. -->
   <autotools id="pygtk" autogenargs="--disable-introspection">
     <branch tag="master"/>
     <dependencies>
diff --git a/modulesets/gtk-osx-random.modules b/modulesets/gtk-osx-random.modules
index 0f7634c..3cf5ee1 100644
--- a/modulesets/gtk-osx-random.modules
+++ b/modulesets/gtk-osx-random.modules
@@ -16,12 +16,7 @@
   <repository type="tarball" name="sourceforge"
               href="http://downloads.sourceforge.net/sourceforge/"/>
   <repository type="tarball" name="sqlite" href="http://www.sqlite.org/"/>
-  <repository type="cvs" name="hunspell-cvs"
-             cvsroot=":pserver:anonymous hunspell cvs sourceforge net:/cvsroot/hunspell"
-             password=""/>
-  <repository type="cvs" name="gtkspell-cvs"
-             cvsroot=":pserver:anonymous gtkspell cvs sourceforge net:/cvsroot/gtkspell"
-             password=""/>
+  <repository type="git" name="github" href="git://github.com/"/>
   <repository type="git" name="savannah" href="git://git.sv.gnu/org/"/>
   <repository type="tarball" name="boehm"
              href="http://www.hboem.info/"/>
@@ -40,20 +35,6 @@
     </dependencies>
   </metamodule>
 
-  <!-- Loudmouth is an abandoned Imendio project, now developed on
-       Github. This is pointed at the dev on github who's done the
-       most recent work, though the release in question is from the
-       original author.  -->
-  <autotools id="loudmouth" autogenargs="--with-ssl=openssl">
-<!-- Release 1.4.3, immediately after which loudmouth requires openssl-0.9.8f; Leopard provides only 0.9.7. 
-->
-    <branch tag="b0c0551776079953cbd7132b69a0dd3c8e05886c" repo="github"
-            module="mcabberengineyard/loudmouth" />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="glib"/>
-    </after>
-  </autotools>
-
 <!-- Libglade's functions have been rolled into Gtk+, and Libglade is
      deprecated. This is the last release. -->
   <autotools id="libglade">
@@ -64,34 +45,20 @@
     </after>
   </autotools>
 
-<!-- Gossip is no longer in the Gnome Git Repository.
-  <autotools id="gossip">
-    <branch tag="GOSSIP_0_31"/>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-themes"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-    <dependencies>
-      <dep package="loudmouth"/>
-      <dep package="libglade"/>
-    </dependencies>
-  </autotools>
--->
-
 <!-- Vala-bootstrap is the current stable vala precompiled to C. -->
   <!--<autotools id="vala" autogen-sh="configure">
     <branch module="vala-bootstrap"/>
   </autotools>-->
   <!-- vala-bootstrap is stuck at 0.16, so use a tarball for the time being.-->
   <autotools id="vala" autogen-sh="configure">
-    <branch repo="ftp.gnome.org" version="0.28.0"
-            module="vala/0.28/vala-0.28.0.tar.xz"
-            hash="sha256:0d9e3bd3f82145664875f7c29b2f544ba92d2814f75412948f774c0727fc977f"/>
+    <branch repo="ftp.gnome.org" version="0.36.0"
+            module="vala/0.36/vala-0.36.0.tar.xz"
+            hash="sha256:13f4a3f99d983bf76e8d9dd736021ecc95f53ec1f9582423aa4b4be87455aa07"/>
   </autotools>
 
+  <!-- unique is obsolete, retained only for the gtk2 version of devhelp.-->
   <autotools id="unique">
-    <branch tag="3.0.2"/>
+    <branch />
   </autotools>
 
   <autotools id="devhelp">
@@ -108,7 +75,7 @@
   </autotools>
 
   <autotools id="devhelp-gtk3">
-    <branch module="devhelp" revision="gnome-3-16"/>
+    <branch module="devhelp" revision="gnome-3-24"/>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
       <dep package="meta-gtk-osx-themes"/>
@@ -122,6 +89,7 @@
     </dependencies>
   </autotools>
 
+  <!-- Glade 3.8 is the last stable series for Gtk+-2 -->
   <autotools id="glade3" autogenargs="--disable-scrollkeeper">
     <branch revision="glade-3-8" module="glade"/>
     <after>
@@ -132,7 +100,7 @@
   </autotools>
 
   <autotools id="glade" autogenargs="--disable-scrollkeeper">
-    <branch revision="glade-3-18"/>
+    <branch revision="glade-3-20"/>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
       <dep package="meta-gtk-osx-themes"/>
@@ -149,74 +117,21 @@
   </autotools>
 
   <autotools id="gtksourceview-gtk3">
-    <branch revision="gnome-3-14" module="gtksourceview"/>
+    <branch revision="gnome-3-24" module="gtksourceview"/>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
       <dep package="meta-gtk-osx-gtk3"/>
     </after>
   </autotools>
 
-  <autotools id="libIDL">
-    <branch tag="LIBIDL_0_8_14"/>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-gtk3"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
-
-  <autotools id="ORBit2">
-    <!-- Release 2.14.19 -->
-    <branch tag="ORBIT2_2_14_19"/>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-    </after>
-    <dependencies>
-      <dep package="libIDL"/>
-    </dependencies>
-  </autotools>
-
-  <!-- This stays as a tarball so that the patches can be applied -->
-    <autotools id="dbus" autogen-sh='configure'
-          autogenargs="--disable-selinux --without-x --disable-launchd
-          --with-session-socket-dir=/var/tmp">
-    <branch module="dbus/dbus-1.6.8.tar.gz"  version="1.6.8"
-           repo="dbus.freedesktop.org">
-    </branch>
-    <after>
-      <dep package="gtk+"/>
-    </after>
-  </autotools>
-
-  <autotools id="dbus-glib" autogenargs="--disable-selinux">
-    <branch repo="git.freedesktop.org" module="dbus/dbus-glib"
-            tag="dbus-glib_0.100"/>
-    <dependencies>
-      <dep package="dbus"/>
-    </dependencies>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
-
-  <!-- Note: -disable-defaults-service removes dependency on "PolicyKit"
-       which is available only through svn or from Linux distros -->
-  <autotools id="gconf" autogenargs="--disable-defaults-service">
-    <branch />
-    <dependencies>
-      <dep package="ORBit2"/>
-      <dep package="dbus-glib"/>
-    </dependencies>
-  </autotools>
 
   <!-- These folks don't make their repository available.-->
   <autotools id="lcms" autogen-sh="configure">
-    <branch module="lcms/lcms2-2.2.tar.gz" version="2.2" repo="sourceforge"/>
+    <branch module="lcms/lcms2-2.8.tar.gz" version="2.8" repo="sourceforge"/>
   </autotools>
 
   <autotools id="shared-mime-info" supports-non-srcdir-builds="no" >
-    <branch module="xdg/shared-mime-info" tag="Release-1-0"
+    <branch module="xdg/shared-mime-info" tag="Release-1-7"
             repo="git.freedesktop.org"/>
     <dependencies>
       <dep package="glib"/>
@@ -224,7 +139,7 @@
   </autotools>
 
   <autotools id="gsettings-desktop-schemas" autogenargs="--enable-introspection=yes">
-    <branch revision="master"/>  <!-- no gnome-3-16 branch yet -->
+    <branch revision="gnome-3-22"/>
     <dependencies>
       <dep package="gobject-introspection"/>
     </dependencies>
@@ -247,25 +162,25 @@
   </autotools>
 
   <autotools id="json-glib">
-    <branch tag="1.0.2"/>
+    <branch revision="json-glib-1-2"/>
   </autotools>
   
    <autotools id="babl">
-     <branch tag="BABL_0_1_10"/>
+     <branch tag="BABL_0_1_24"/>
   </autotools>
 
   <autotools id="gegl">
-    <branch tag="GEGL_0_2_0"/>
+    <branch tag="GEGL_0_3_14"/>
     <dependencies>
       <dep package="babl"/>
       <dep package="json-glib"/>
     </dependencies>
   </autotools>
 
- <autotools id="poppler"
+  <!-- Poppler is releasing from master -->
+  <autotools id="poppler"
            autogenargs="--disable-qt --disable-qt4 --without-x --disable-gtk-test --enable-xpdf-headers">
-    <branch repo="git.freedesktop.org" module="poppler/poppler"
-            revision="poppler-0.20"/>
+    <branch repo="git.freedesktop.org" module="poppler/poppler" />
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
       <dep package="meta-gtk-osx-core"/>
@@ -276,7 +191,7 @@
   <autotools id="sqlite" autogenargs="--disable-tcl --enable-threadsafe" >
     <!-- Another package with a non-standard repository structure. Tarballs
     are easier.-->
-    <branch module="sqlite-autoconf-3071401.tar.gz" version='3.7.14'
+    <branch module="2017/sqlite-autoconf-3180000.tar.gz" version='3.18.0'
            repo="sqlite"/>
   </autotools>
 
@@ -284,17 +199,16 @@
   <autotools id="goocanvas">
     <branch revision="goocanvas-1.0"/>
     <dependencies>
-      <dep package="gtk+"/>
+      <dep package="meta-gtk-osx-core"/>
     </dependencies>
   </autotools>
 
-<!-- Goocanvas 2.0 is for Gtk+-3, and uses the master branch. -->
+<!-- Goocanvas2 is for Gtk+-3, and uses the master branch. -->
   <autotools id="goocanvas2">
     <!-- No tags, so this is release 2.0.1 -->
-    <branch revision="533e446e584f0da3a21e38f412557986c131e0ad"
-           module="goocanvas"/>
+    <branch revision="goocanvas-2.0" module="goocanvas"/>
     <dependencies>
-      <dep package="gtk+-3"/>
+      <dep package="meta-gtk-osx-core-gtk3"/>
     </dependencies>
   </autotools>
 
@@ -319,18 +233,21 @@
     </dependencies>
   </autotools>
 
-  <autotools id="gtkspell">
-    <branch module="gtkspell" repo="gtkspell-cvs"
+  <!-- GtkSpell has switched to Mercurial for VCS, so we'll use the
+       tarballs to avoid the dependency. -->
+
+  <autotools id="gtkspell" autogen-sh="configure">
+    <branch module="gtkspell/gtkspell-2.0.16.tar.gz" repo="sourceforge"
            version="2.0.16"/>
     <dependencies>
       <dep package="enchant"/>
     </dependencies>
   </autotools>
-<!-- GtkSpell has switched to Mercurial for VCS, so we'll use the
-     tarball to avoid the dependency. -->
+
   <autotools id="gtkspell3" autogen-sh="configure">
-    <branch module="gtkspell/gtkspell3-3.0.7.tar.gz" repo="sourceforge"
-           version="3.0.7">
+    <branch module="gtkspell/gtkspell3-3.0.9.tar.gz" repo="sourceforge"
+            version="3.0.9">
+      <patch 
file="https://git.gnome.org/browse/gtk-osx/plain/patches/0001-Enable-use-of-XDG_DATA_DIRS-for-locating-iso-code-fi.patch";
 strip="1"/>
     </branch>
     <dependencies>
       <dep package="enchant"/>
@@ -340,25 +257,28 @@
 
 <!-- LibGSF develops in master -->
   <autotools id="libgsf" autogenargs="--without-python">
-    <branch tag="LIBGSF_1_14_21"/>
+    <branch tag="LIBGSF_1_14_41"/>
   </autotools>
 
   <!-- gmp uses Mercurial, so we stick with the tarball to avoid
        having to install yet another vcs tool. -->
- <autotools id="gmp">
-    <!--branch repo="ftp.gnu.org" module="gmp/gmp-5.0.5.tar.bz2" version="5.0.2"/-->
-    <branch repo="ftp.gnu.org" module="gmp/gmp-4.3.2.tar.bz2" version="4.3.2">
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/gmp-cc-for-build-needs-cflags.patch"; 
strip="1"/>
-      <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/gmp-4.3.2-stddef.patch"; strip="1"/>
+  <autotools id="gmp">
+    <branch repo="ftp.gnu.org" module="gmp/gmp-6.1.2.tar.bz2" version="6.1.2">
     </branch>
   </autotools>
 
   <autotools id="libunistring" autogen-sh="configure">
-    <branch repo="savannah" module="libunistring.git" tag="v0.9.3"/>
+    <branch repo="savannah" module="libunistring.git" tag="v0.9.7"/>
+  </autotools>
+
+  <autotools id="libatomic-ops"
+             autogen-template="%(autogen-sh)s && ./configure --prefix=%(prefix)s> %(autogen-args)s"
+    <branch repo="github.com" module="ivmai/libatomic_ops"
+           revision="libatomic_ops-7_4_4"/>
   </autotools>
 
   <autotools id="bdw-gc" autogen-template="pushd %(srcdir)s &amp;&amp; ./autogen.sh &amp;&amp; automake-1.10 
-ac &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
-    <branch repo="github" module="ivmai/bdwgc" revision="release-7_2"/>
+    <branch repo="github" module="ivmai/bdwgc" revision="release-7_6_0"/>
   </autotools>
 
   <autotools id="guile" autogenargs="--disable-error-on-warning">
@@ -378,13 +298,4 @@
     </dependencies>
   </autotools>
 
-  <autotools id="hunspell" autogen-sh="configure">
-    <branch repo="hunspell-cvs"/>
-  </autotools>
-
-  <autotools id="bdw-gc" autogen-sh="configure">
-    <branch repo="boehm" module="gc/gc_source/gc-7.2e.tar.gz" version="7.2e"
-           checkoutdir="gc-7.2"/>
-  </autotools>
-
 </moduleset>
diff --git a/modulesets/gtk-osx-themes.modules b/modulesets/gtk-osx-themes.modules
index cd1691c..3541aff 100644
--- a/modulesets/gtk-osx-themes.modules
+++ b/modulesets/gtk-osx-themes.modules
@@ -47,7 +47,7 @@
   </autotools>
 
   <autotools id="adwaita-icon-theme">
-    <branch revision="gnome-3-16"/>
+    <branch revision="gnome-3-24"/>
     <dependencies>
       <dep package="librsvg"/>
       <dep package="hicolor-icon-theme"/>
@@ -56,7 +56,7 @@
   </autotools>
 
   <autotools id="gnome-themes-standard" autogenargs="--disable-gtk2-engine">
-    <branch revision="master"/> <!-- no gnome-3-16 branch yet -->
+    <branch revision="gnome-3-22"/> 
     <dependencies>
       <dep package="librsvg"/>
       <dep package="adwaita-icon-theme"/>
@@ -74,12 +74,19 @@
     <branch module="murrine"/>
   </autotools>
 
+  <!-- librsvg is converting to the Rust language. This requires
+       substantial infrastructure that's resistant to installing with
+       jhbuild, so we'll freeze at the 2.40 branch. -->
   <autotools id="librsvg" autogenargs="--disable-Bsymbolic">
-    <branch module="librsvg"/>
+    <branch module="librsvg" tag="librsvg-2-40"/>
     <dependencies>
       <dep package="libcroco"/>
       <dep package="meta-gtk-osx-freetype"/>
     </dependencies>
+    <after>
+      <dep package="meta-gtk-osx-core"/>
+      <dep package="meta-gtk-osx-gtk3"/>
+    </after>
   </autotools>
 
   <autotools id="libcroco" autogenargs="--disable-Bsymbolic">
@@ -100,11 +107,4 @@
     </after>
   </autotools>
 
-  <autotools id="gtk-quartz-engine">
-    <branch module="jralls/gtk-quartz-engine"
-            repo="github.com"  />
-    <after>
-      <dep package="meta-gtk-osx-core"/>
-    </after>
-  </autotools>
 </moduleset>
diff --git a/modulesets/gtk-osx-unsupported.modules b/modulesets/gtk-osx-unsupported.modules
index 71063ad..0d512fa 100644
--- a/modulesets/gtk-osx-unsupported.modules
+++ b/modulesets/gtk-osx-unsupported.modules
@@ -8,8 +8,8 @@
              href="git://git.debian.org/git/"/>
   <repository type='git' name='git.gnupg.org' href="git://git.gnupg.org/" />
   <repository type='tarball' name='ftp.gnupg.org' href="ftp://ftp.gnupg.org/"; />
-  <repository type='svn' name='libproxy.google.com'
-              href='http://libproxy.googlecode.com/svn/'
+  <repository type='git' name='github'
+              href='git://github.com/'
               tags-template="tags/%(tag)s"/>
   <repository type="git" name="freedesktop"
               href="git://anongit.freedesktop.org"/>
@@ -31,7 +31,7 @@
   </autotools>
 
   <autotools id="iso-codes" >
-    <branch repo="git.debian.org" tag="iso-codes/3.57"
+    <branch repo="git.debian.org" tag="iso-codes/3.67"
             module="iso-codes/iso-codes"/>
 
   </autotools>
@@ -44,14 +44,15 @@
   </autotools>
 
   <cmake id='libproxy' cmakeargs="-DWITH_PYTHON=OFF">
-    <branch tag="libproxy-0.4.10"
-            repo='libproxy.google.com'/>
+    <branch module="libproxy/libproxy" tag="0.4.14"
+            repo='github'/>
     <dependencies>
     </dependencies>
   </cmake>
 
+  <!-- libgnome-keyring releases from master. -->
   <autotools id="libgnome-keyring">
-    <branch tag="3.6.0"/>
+    <branch />
     <dependencies>
       <dep package="glib"/>
       <dep package="libgcrypt"/>
@@ -71,8 +72,8 @@
     is available, currently only on master.
     <branch repo="git.gnupg.org" revision="LIBGCRYPT_1_6_BRANCH"
             module="libgcrypt"/> -->
-    <branch repo="ftp.gnupg.org" version="1.6.3"
-            module="gcrypt/libgcrypt/libgcrypt-1.6.3.tar.bz2">
+    <branch repo="ftp.gnupg.org" version="1.7.6"
+            module="gcrypt/libgcrypt/libgcrypt-1.7.6.tar.bz2">
             <patch file="https://git.gnome.org/browse/gtk-osx/plain/patches/libgcrypt-cflags-for-build.patch";
        strip="1"/>
     </branch>
@@ -81,9 +82,13 @@
     </dependencies>
   </autotools>
 
-  <!-- 10.5 has 7.16.3, which is too old for some things, and also doesn't
-  provide a pkgconfig file. Otherwise can be skipped. -->
-  <autotools id="libcurl" autogen-sh="configure">
-    <branch repo="curl.haxx.se" module="curl-7.47.1.tar.bz2" version="7.47.1"/>
+  <autotools id="gnome-keyring" autogenargs="--disable-pam --without-root-certs">
+    <branch revision="gnome-3-20"/>
+    <dependencies>
+      <dep package="gtk+"/>
+      <dep package="libgcrypt"/>
+      <dep package="libtasn1"/>
+    </dependencies>
   </autotools>
+
 </moduleset>
diff --git a/modulesets/gtk-osx.modules b/modulesets/gtk-osx.modules
index d173f59..20c4d4b 100644
--- a/modulesets/gtk-osx.modules
+++ b/modulesets/gtk-osx.modules
@@ -67,7 +67,7 @@
   </metamodule>
 
   <autotools id="glib">
-    <branch tag="glib-2-44"/>
+    <branch tag="glib-2-52"/>
     <dependencies>
       <dep package="libffi"/>
     </dependencies>
@@ -81,23 +81,8 @@
     <branch module="atgreen/libffi" repo="github" tag="v3.2.1"/>
   </autotools>
 
-  <autotools id="xorg-util-macros">
-    <branch repo="freedesktop" module="xorg/util/macros"
-            tag="util-macros-1.19.0"/>
-  </autotools>
-
-  <!-- There is no stable release yet that works here, but commit
-       06fd4a27 breaks the build for gtk-osx, tag v1.3.1 builds
-       fine. -->
-  <autotools id="libepoxy">
-    <branch repo="github" module="anholt/libepoxy" revision="v1.3.1"/>
-    <dependencies>
-      <dep package="xorg-util-macros"/>
-    </dependencies>
-  </autotools>
-
   <autotools id="gobject-introspection">
-    <branch tag="gnome-3-16" module="gobject-introspection"/>
+    <branch tag="gnome-3-24" module="gobject-introspection"/>
     <dependencies>
       <dep package="glib"/>
       <dep package="cairo"/>
@@ -108,7 +93,7 @@
   </autotools>
 
   <autotools id="pango">
-    <branch tag="pango-1-38"/>
+    <branch tag="pango-1-40"/>
     <dependencies>
       <dep package="glib"/>
       <dep package="cairo"/>
@@ -121,7 +106,7 @@
   </autotools>
 
   <autotools id="atk">
-    <branch tag="gnome-3-16"/>
+    <branch tag="gnome-3-24"/>
     <dependencies>
     </dependencies>
     <after>
@@ -156,14 +141,13 @@
 
   <autotools id="gtk+-3.0"
             autogenargs="--enable-quartz-backend --disable-colord  --enable-quartz-relocation">
-    <branch module="gtk+" checkoutdir="gtk+-3.0" revision="gtk-3-20"/>
+    <branch module="gtk+" checkoutdir="gtk+-3.0" revision="gtk-3-22"/>
     <dependencies>
       <dep package="glib"/>
       <dep package="pango"/>
       <dep package="atk"/>
       <dep package="gdk-pixbuf"/>
       <dep package="gobject-introspection"/>
-      <dep package="libepoxy"/>
     </dependencies>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
@@ -171,7 +155,7 @@
   </autotools>
 
   <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx">
-    <branch repo="freedesktop" module="pixman" tag="0.32"/>
+    <branch repo="freedesktop" module="pixman" revision="0.34"/>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
     </after>
diff --git a/patches/WebKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch 
b/patches/WebKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch
new file mode 100644
index 0000000..a7fa363
--- /dev/null
+++ b/patches/WebKit-2.16.1-Bug-167343-wtf-unicode-UTF8.h.patch
@@ -0,0 +1,1983 @@
+From 63c9bea0142a6452769a3ea11505d491afafca2b Mon Sep 17 00:00:00 2001
+From: "annulen yandex ru"
+ <annulen yandex ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Fri, 21 Apr 2017 17:26:07 +0000
+Subject: [PATCH 1/3] [cmake] WTF target should not have wtf and subdirectries
+ in public interface https://bugs.webkit.org/show_bug.cgi?id=171115
+
+Reviewed by Michael Catanzaro.
+
+In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of
+targets as their public interface, so that linked targets can use them
+implicitly without copying directory lists around. This matches existing
+practice for all targets except WTF, headers from which are always included
+with full path starting from "<wtf/...".
+
+Since r209665 it became possible to include headers from wtf or its
+subdirectories in CMake builds without using "<wtf/..." path. It should
+not be allowed.
+
+.:
+
+* Source/cmake/WebKitMacros.cmake: Support xxx_PRIVATE_HEADERS
+CMake variables.
+
+Source/WebCore:
+
+* platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Fix
+incorrect include of WTF header.
+
+Source/WTF:
+
+* wtf/CMakeLists.txt: WTF/wtf and its sudirectories should not be in
+public include paths of WTF target.
+---
+ ChangeLog                                          |   20 +
+ Source/WTF/ChangeLog                               | 1818 ++++++++++++++++++++
+ Source/WTF/wtf/CMakeLists.txt                      |    9 +-
+ Source/WebCore/ChangeLog                           |   22 +-
+ .../texmap/coordinated/TiledBackingStore.cpp       |    2 +-
+ Source/cmake/WebKitMacros.cmake                    |    1 +
+ 6 files changed, 1867 insertions(+), 5 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 335b63d..dfab03d 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,23 @@
++2017-04-21  Konstantin Tokarev  <annulen yandex ru>
++
++        [cmake] WTF target should not have wtf and subdirectries in public interface
++        https://bugs.webkit.org/show_bug.cgi?id=171115
++
++        Reviewed by Michael Catanzaro.
++
++        In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of
++        targets as their public interface, so that linked targets can use them
++        implicitly without copying directory lists around. This matches existing
++        practice for all targets except WTF, headers from which are always included
++        with full path starting from "<wtf/...".
++
++        Since r209665 it became possible to include headers from wtf or its
++        subdirectories in CMake builds without using "<wtf/..." path. It should
++        not be allowed.
++
++        * Source/cmake/WebKitMacros.cmake: Support xxx_PRIVATE_HEADERS
++        CMake variables.
++
+ 2017-04-04  Carlos Garcia Campos  <cgarcia igalia com>
+ 
+         Unreviewed. Update OptionsGTK.cmake and NEWS for 2.16.1 release.
+diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog
+index c56557b..c6b4cfb 100644
+--- a/Source/WTF/ChangeLog
++++ b/Source/WTF/ChangeLog
+@@ -1,3 +1,1821 @@
++2017-04-21  Konstantin Tokarev  <annulen yandex ru>
++
++        [cmake] WTF target should not have wtf and subdirectries in public interface
++        https://bugs.webkit.org/show_bug.cgi?id=171115
++
++        Reviewed by Michael Catanzaro.
++
++        In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of
++        targets as their public interface, so that linked targets can use them
++        implicitly without copying directory lists around. This matches existing
++        practice for all targets except WTF, headers from which are always included
++        with full path starting from "<wtf/...".
++
++        Since r209665 it became possible to include headers from wtf or its
++        subdirectories in CMake builds without using "<wtf/..." path. It should
++        not be allowed.
++
++        * wtf/CMakeLists.txt: WTF/wtf and its sudirectories should not be in
++        public include paths of WTF target.
++
++2017-04-20  Sam Weinig  <sam webkit org>
++
++        Move notFound into its own file
++        https://bugs.webkit.org/show_bug.cgi?id=170972
++
++        Reviewed by Zalan Bujtas.
++
++        It is odd to require including <wtf/Vector.h> just to use WTF::notFound.
++        This is not causing any current problems, but does in few changes I have
++        queued up.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/NotFound.h: Added.
++        * wtf/Vector.h:
++        * wtf/text/StringCommon.h:
++
++2017-04-20  Filip Pizlo  <fpizlo apple com>
++
++        Optimize SharedArrayBuffer in the DFG+FTL
++        https://bugs.webkit.org/show_bug.cgi?id=164108
++
++        Reviewed by Saam Barati.
++        
++        Made small changes as part of benchmarking the JS versions of these locks.
++
++        * benchmarks/LockSpeedTest.cpp:
++        * benchmarks/ToyLocks.h:
++        * wtf/Range.h:
++        (WTF::Range::dump):
++
++2017-04-19  Youenn Fablet  <youenn apple com>
++
++        [Win] Activate streams API by default
++        https://bugs.webkit.org/show_bug.cgi?id=171000
++
++        Reviewed by Brent Fulgham.
++
++        * wtf/FeatureDefines.h:
++
++2017-04-19  David Kilzer  <ddkilzer apple com>
++
++        Vector.h: error: 'auto' not allowed in lambda parameter
++        <https://webkit.org/b/171010>
++        <rdar://problem/31716076>
++
++        Reviewed by Saam Barati.
++
++        * wtf/Vector.h:
++        (WTF::removeRepeatedElements): Replace 'auto' with a specific
++        type, 'T', based on a Vector<> template type.
++
++2017-04-19  Ryan Haddad  <ryanhaddad apple com>
++
++        Unreviewed, rolling out r215518.
++
++        This change appears to have broken the Windows build.
++
++        Reverted changeset:
++
++        "Move notFound into its own file"
++        https://bugs.webkit.org/show_bug.cgi?id=170972
++        http://trac.webkit.org/changeset/215518
++
++2017-04-19  Sam Weinig  <sam webkit org>
++
++        Move notFound into its own file
++        https://bugs.webkit.org/show_bug.cgi?id=170972
++
++        Reviewed by Zalan Bujtas.
++
++        It is odd to require including <wtf/Vector.h> just to use WTF::notFound.
++        This is not causing any current problems, but does in few changes I have
++        queued up.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/NotFound.h: Added.
++        * wtf/Vector.h:
++        * wtf/text/StringCommon.h:
++
++2017-04-18  Carlos Garcia Campos  <cgarcia igalia com>
++
++        [GLIB] Define priorities also for async network IO tasks
++        https://bugs.webkit.org/show_bug.cgi?id=170905
++
++        Reviewed by Žan Doberšek.
++
++        Add AsyncIONetwork, DiskCacheRead and DiskCacheWrite priorities.
++
++        * wtf/glib/RunLoopSourcePriority.h:
++
++2017-04-18  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC][GTK] glib RunLoop does not accept negative start interval
++        https://bugs.webkit.org/show_bug.cgi?id=170775
++
++        Reviewed by Saam Barati.
++
++        RunLoop::Timer for glib does not accept negative start interval.
++        We use 0_s if the given value is negative.
++
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::RunLoop::TimerBase::secondsUntilFire):
++
++2017-04-17  Alex Christensen  <achristensen webkit org>
++
++        Allow Variants of RetainPtrs
++        https://bugs.webkit.org/show_bug.cgi?id=170923
++
++        Reviewed by Tim Horton and Sam Weinig.
++
++        * wtf/RetainPtr.h:
++        (WTF::RetainPtr::operator&): Deleted.
++        Operator& was causing a compile error when making Variant<RetainPtr<T>, ...>
++        and because it is strange and only used once, let's just remove it.
++        * wtf/Variant.h:
++        (WTF::get):
++        (WTF::get_if):
++        Use std::addressof instead of operator& which could be overloaded to return any type with any 
meaning.
++
++2017-04-17  Youenn Fablet  <youenn apple com>
++
++        Disable outdated WritableStream API
++        https://bugs.webkit.org/show_bug.cgi?id=170749
++        <rdar://problem/31446233>
++
++        Reviewed by Alex Christensen.
++
++        Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by:
++        - A STREAMS_API compilation flag.
++        - A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT.
++
++        * wtf/FeatureDefines.h:
++
++2017-04-17  Dan Bernstein  <mitz apple com>
++
++        [Cocoa] Move isNullFunctionPointer down into WTF
++        https://bugs.webkit.org/show_bug.cgi?id=170892
++
++        Reviewed by Sam Weinig.
++
++        Test: TestWebKitAPI/Tests/WTF/darwin/WeakLinking.cpp
++
++        * WTF.xcodeproj/project.pbxproj: Added reference to new file.
++        * wtf/darwin: Added.
++        * wtf/darwin/WeakLinking.h: Added.
++        (WTF::isNullFunctionPointer): Copied from ResourceLoadStatisticsClassifierCocoa.cpp in
++          WebKit2 and changed into a function template that works with any function pointer.
++
++2017-04-17  Ryan Haddad  <ryanhaddad apple com>
++
++        Unreviewed, rolling out r215366.
++
++        This test is failing on performance bots.
++
++        Reverted changeset:
++
++        "Add performance test for asking the platform for a font for
++        U+2060 WORD JOINER"
++        https://bugs.webkit.org/show_bug.cgi?id=170842
++        http://trac.webkit.org/changeset/215366
++
++2017-04-17  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSCOnly] Fix build failures in macOS
++        https://bugs.webkit.org/show_bug.cgi?id=170887
++
++        Reviewed by Alex Christensen.
++
++        JSCOnly port does not use mac/MainThread.cpp.
++        We change the ifdef gurard to use generic implementaion in JSCOnly on macOS.
++
++        * wtf/MainThread.cpp:
++        * wtf/PlatformJSCOnly.cmake:
++
++2017-04-17  JF Bastien  <jfbastien apple com>
++
++        B3: don't allow unsigned offsets in Value
++        https://bugs.webkit.org/show_bug.cgi?id=170692
++
++        Reviewed by Filip Pizlo.
++
++        Add C++17's std::conjunction type trait, except for Microsoft VS
++        2015 update 2 and later because it adds the logical operator type
++        traits, event when C++ is pre-2017:
++        
https://blogs.msdn.microsoft.com/vcblog/2016/01/22/vs-2015-update-2s-stl-is-c17-so-far-feature-complete/
++
++        * wtf/StdLibExtras.h:
++
++2017-04-14  Mark Lam  <mark lam apple com>
++
++        Update architectures in xcconfig files.
++        https://bugs.webkit.org/show_bug.cgi?id=170867
++        <rdar://problem/31628104>
++
++        Reviewed by Joseph Pecoraro.
++
++        * Configurations/Base.xcconfig:
++
++2017-04-14  Myles C. Maxfield  <mmaxfield apple com>
++
++        Add performance test for asking the platform for a font for U+2060 WORD JOINER
++        https://bugs.webkit.org/show_bug.cgi?id=170842
++
++        Reviewed by Tim Horton.
++
++        * wtf/unicode/CharacterNames.h:
++
++2017-04-13  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Date.parse should accept wider range of representation
++        https://bugs.webkit.org/show_bug.cgi?id=170720
++
++        Reviewed by Darin Adler.
++
++        We would like to relax Date.parse to accept the representation "May 8".
++        At that time, we choose `2000` as a default year. This is because of
++        the following reason.
++
++        1. According to the V8, this default value is compatible to the old KJS. While current V8 uses 2001,
++           SpiderMonkey does not have such a fallback path. So this reason is not big deal.
++
++        2. It is a leap year. When using `new Date("Feb 29")`, we assume that people want to save month and 
day.
++           Leap year can save user inputs if they is valid. If we use the current year instead, the current 
year
++           may not be a leap year. In that case, `new Date("Feb 29").getMonth()` becomes 2 (March).
++
++        * wtf/DateMath.cpp:
++        (WTF::parseDateFromNullTerminatedCharacters):
++
++2017-04-13  Dan Bernstein  <mitz apple com>
++
++        WTF installs an extra copy of a header outside /usr/local/include/wtf
++
++        * WTF.xcodeproj/project.pbxproj: Demoted PriorityQueue.h from Private to Project.
++
++2017-04-13  Oliver Hunt  <oliver apple com>
++
++        allocationSize should use safe arithmetic by default
++        https://bugs.webkit.org/show_bug.cgi?id=170804
++
++        Reviewed by JF Bastien.
++
++        Make all allocationSize() functions work in terms
++        of Checked<size_t>
++
++        * wtf/text/StringImpl.h:
++        (WTF::StringImpl::allocationSize):
++        (WTF::StringImpl::tailOffset):
++
++2017-04-13  JF Bastien  <jfbastien apple com>
++
++        WebAssembly: manage memory better
++        https://bugs.webkit.org/show_bug.cgi?id=170628
++
++        Reviewed by Keith Miller, Michael Saboff.
++
++        Re-use a VM tag which was intended for JavaScript core, was then
++        used by our GC, and is now unused. If I don't do this then
++        WebAssembly fast memories will make vmmap look super weird because
++        it'll look like multi-gigabyte of virtual memory are allocated as
++        part of our process' regular memory!
++
++        Separately I need to update vmmap and other tools to print the
++        right name. Right now this tag gets identified as "JS garbage
++        collector".
++
++        * wtf/OSAllocator.h:
++        * wtf/VMTags.h:
++
++2017-04-13  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Use proper ifdef guard for code using MachineContext
++        https://bugs.webkit.org/show_bug.cgi?id=170800
++
++        Reviewed by Carlos Alberto Lopez Perez.
++
++        SamplingProfiler and FastMemory rely on MachineContext feature.
++
++        * wtf/Platform.h:
++
++2017-04-12  Dan Bernstein  <mitz apple com>
++
++        [Mac] Future-proof .xcconfig files
++        https://bugs.webkit.org/show_bug.cgi?id=170802
++
++        Reviewed by Tim Horton.
++
++        * Configurations/Base.xcconfig:
++        * Configurations/DebugRelease.xcconfig:
++
++2017-04-12  Yusuke Suzuki  <utatane tea gmail com>
++
++        Use HAVE(MACHINE_CONTEXT) instead of USE(MACHINE_CONTEXT)
++        https://bugs.webkit.org/show_bug.cgi?id=170770
++
++        Rubber stamped by Mark Lam.
++
++        * wtf/Platform.h:
++        * wtf/PlatformRegisters.h:
++        * wtf/ThreadingPthreads.cpp:
++        (WTF::Thread::getRegisters):
++
++2017-04-12  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Clean up heap/MachineStackMarker by introducing USE(MACHINE_CONTEXT)
++        https://bugs.webkit.org/show_bug.cgi?id=170770
++
++        Reviewed by Mark Lam.
++
++        We add a new define USE_MACHINE_CONTEXT, which becomes true if mcontext_t exists
++        and we know the way to retrieve values from mcontext_t.
++
++        * wtf/Platform.h:
++        * wtf/PlatformRegisters.h:
++        * wtf/ThreadingPthreads.cpp:
++        (WTF::Thread::getRegisters):
++
++2017-04-12  Yusuke Suzuki  <utatane tea gmail com>
++
++        [WTF] Introduce Thread class and use RefPtr<Thread> and align Windows Threading implementation 
semantics to Pthread one
++        https://bugs.webkit.org/show_bug.cgi?id=170502
++
++        Reviewed by Mark Lam.
++
++        This patch is refactoring of WTF Threading mechanism to merge JavaScriptCore's threading extension 
to WTF Threading.
++        Previously, JavaScriptCore requires richer threading features (such as suspending and resuming 
threads), and they
++        are implemented for PlatformThread in JavaScriptCore. But these features should be implemented in 
WTF Threading side
++        instead of maintaining JSC's own threading features too. This patch removes these features from JSC 
and move it to
++        WTF Threading.
++
++        However, current WTF Threading has one problem: Windows version of WTF Threading has different 
semantics from Pthreads
++        one. In Windows WTF Threading, we cannot perform any operation after the target thread is detached: 
WTF Threading stop
++        tracking the state of the thread once the thread is detached. But this is not the same to Pthreads 
one. In Pthreads,
++        pthread_detach just means that the resource of the thread will be destroyed automatically. While 
some operations like
++        pthread_join will be rejected, some operations like pthread_kill will be accepted.
++
++        The problem is that detached thread can be suspended and resumed in JSC. For example, in jsc.cpp, 
we start the worker
++        thread and detach it immediately. In worker thread, we will create VM and thus concurrent GC will 
suspend and resume
++        the detached thread. However, in Windows WTF Threading, we have no reference to the detached 
thread. Thus we cannot
++        perform suspend and resume operations onto the detached thread.
++
++        To solve the problem, we change Windows Threading mechanism drastically to align it to the Pthread 
semantics. In the
++        new Threading, we have RefPtr<Thread> class. It holds a handle to a platform thread. We can perform 
threading operations
++        with this class. For example, Thread::suspend is offered. And we use destructor of the thread local 
variable to release
++        the resources held by RefPtr<Thread>. In Windows, Thread::detach does nothing because the resource 
will be destroyed
++        automatically by RefPtr<Thread>.
++
++        To do so, we introduce ThreadHolder for Windows. This is similar to the previous 
ThreadIdentifierData for Pthreads.
++        It holds RefPtr<Thread> in the thread local storage (technically, it is Fiber Local Storage in 
Windows). Thread::current()
++        will return this reference.
++
++        The problematic situation is that the order of the deallocation of the thread local storage is not 
defined. So we should
++        not touch thread local storage in the destructor of the thread local storage. To avoid such edge 
cases, we have
++        currentThread() / Thread::currentID() APIs. They are safe to be called even in the destructor of 
the other thread local
++        storage. And in Windows, in the FLS destructor, we will create the thread_local variable to defer 
the destruction of
++        the ThreadHolder. We ensure that this destructor is called after the other FLS destructors are 
called in Windows 10.
++
++        This patch is performance neutral.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * benchmarks/ConditionSpeedTest.cpp:
++        * benchmarks/LockFairnessTest.cpp:
++        * benchmarks/LockSpeedTest.cpp:
++        * wtf/AutomaticThread.cpp:
++        (WTF::AutomaticThread::start):
++        * wtf/CMakeLists.txt:
++        * wtf/MainThread.h:
++        * wtf/MemoryPressureHandler.h:
++        * wtf/ParallelJobsGeneric.cpp:
++        (WTF::ParallelEnvironment::ThreadPrivate::tryLockFor):
++        (WTF::ParallelEnvironment::ThreadPrivate::workerThread):
++        * wtf/ParallelJobsGeneric.h:
++        (WTF::ParallelEnvironment::ThreadPrivate::ThreadPrivate): Deleted.
++        * wtf/ParkingLot.cpp:
++        (WTF::ParkingLot::forEachImpl):
++        * wtf/ParkingLot.h:
++        (WTF::ParkingLot::forEach):
++        * wtf/PlatformRegisters.h: Renamed from Source/JavaScriptCore/runtime/PlatformThread.h.
++        * wtf/RefPtr.h:
++        (WTF::RefPtr::RefPtr):
++        * wtf/ThreadFunctionInvocation.h:
++        (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
++        * wtf/ThreadHolder.cpp: Added.
++        (WTF::ThreadHolder::~ThreadHolder):
++        (WTF::ThreadHolder::initialize):
++        * wtf/ThreadHolder.h: Renamed from Source/WTF/wtf/ThreadIdentifierDataPthreads.h.
++        (WTF::ThreadHolder::thread):
++        (WTF::ThreadHolder::ThreadHolder):
++        * wtf/ThreadHolderPthreads.cpp: Renamed from Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp.
++        (WTF::ThreadHolder::initializeOnce):
++        (WTF::ThreadHolder::current):
++        (WTF::ThreadHolder::destruct):
++        * wtf/ThreadHolderWin.cpp: Added.
++        (WTF::threadMapMutex):
++        (WTF::threadMap):
++        (WTF::ThreadHolder::initializeOnce):
++        (WTF::ThreadHolder::current):
++        (WTF::ThreadHolder::destruct):
++        * wtf/ThreadSpecific.h:
++        * wtf/Threading.cpp:
++        (WTF::Thread::normalizeThreadName):
++        (WTF::threadEntryPoint):
++        (WTF::Thread::create):
++        (WTF::Thread::setCurrentThreadIsUserInteractive):
++        (WTF::Thread::setCurrentThreadIsUserInitiated):
++        (WTF::Thread::setGlobalMaxQOSClass):
++        (WTF::Thread::adjustedQOSClass):
++        (WTF::Thread::dump):
++        (WTF::initializeThreading):
++        (WTF::normalizeThreadName): Deleted.
++        (WTF::createThread): Deleted.
++        (WTF::setCurrentThreadIsUserInteractive): Deleted.
++        (WTF::setCurrentThreadIsUserInitiated): Deleted.
++        (WTF::setGlobalMaxQOSClass): Deleted.
++        (WTF::adjustedQOSClass): Deleted.
++        * wtf/Threading.h:
++        (WTF::Thread::id):
++        (WTF::Thread::operator==):
++        (WTF::Thread::operator!=):
++        (WTF::Thread::joinableState):
++        (WTF::Thread::didBecomeDetached):
++        (WTF::Thread::didJoin):
++        (WTF::Thread::hasExited):
++        (WTF::currentThread):
++        * wtf/ThreadingPthreads.cpp:
++        (WTF::Thread::Thread):
++        (WTF::Thread::~Thread):
++        (WTF::Thread::signalHandlerSuspendResume):
++        (WTF::Thread::initializePlatformThreading):
++        (WTF::initializeCurrentThreadEvenIfNonWTFCreated):
++        (WTF::wtfThreadEntryPoint):
++        (WTF::Thread::createInternal):
++        (WTF::Thread::initializeCurrentThreadInternal):
++        (WTF::Thread::changePriority):
++        (WTF::Thread::waitForCompletion):
++        (WTF::Thread::detach):
++        (WTF::Thread::current):
++        (WTF::Thread::currentID):
++        (WTF::Thread::signal):
++        (WTF::Thread::resume):
++        (WTF::Thread::getRegisters):
++        (WTF::Thread::didExit):
++        (WTF::Thread::establish):
++        (WTF::PthreadState::PthreadState): Deleted.
++        (WTF::PthreadState::joinableState): Deleted.
++        (WTF::PthreadState::pthreadHandle): Deleted.
++        (WTF::PthreadState::didBecomeDetached): Deleted.
++        (WTF::PthreadState::didExit): Deleted.
++        (WTF::PthreadState::didJoin): Deleted.
++        (WTF::PthreadState::hasExited): Deleted.
++        (WTF::threadMapMutex): Deleted.
++        (WTF::initializeThreading): Deleted.
++        (WTF::threadMap): Deleted.
++        (WTF::identifierByPthreadHandle): Deleted.
++        (WTF::establishIdentifierForPthreadHandle): Deleted.
++        (WTF::pthreadHandleForIdentifierWithLockAlreadyHeld): Deleted.
++        (WTF::createThreadInternal): Deleted.
++        (WTF::initializeCurrentThreadInternal): Deleted.
++        (WTF::changeThreadPriority): Deleted.
++        (WTF::waitForThreadCompletion): Deleted.
++        (WTF::detachThread): Deleted.
++        (WTF::threadDidExit): Deleted.
++        (WTF::currentThread): Deleted.
++        (WTF::signalThread): Deleted.
++        * wtf/ThreadingWin.cpp:
++        (WTF::Thread::Thread):
++        (WTF::Thread::~Thread):
++        (WTF::Thread::initializeCurrentThreadInternal):
++        (WTF::Thread::initializePlatformThreading):
++        (WTF::wtfThreadEntryPoint):
++        (WTF::Thread::createInternal):
++        (WTF::Thread::changePriority):
++        (WTF::Thread::waitForCompletion):
++        (WTF::Thread::detach):
++        (WTF::Thread::resume):
++        (WTF::Thread::getRegisters):
++        (WTF::Thread::current):
++        (WTF::Thread::currentID):
++        (WTF::Thread::didExit):
++        (WTF::Thread::establish):
++        (WTF::initializeCurrentThreadInternal): Deleted.
++        (WTF::threadMapMutex): Deleted.
++        (WTF::initializeThreading): Deleted.
++        (WTF::threadMap): Deleted.
++        (WTF::storeThreadHandleByIdentifier): Deleted.
++        (WTF::threadHandleForIdentifier): Deleted.
++        (WTF::clearThreadHandleForIdentifier): Deleted.
++        (WTF::createThreadInternal): Deleted.
++        (WTF::changeThreadPriority): Deleted.
++        (WTF::waitForThreadCompletion): Deleted.
++        (WTF::detachThread): Deleted.
++        (WTF::currentThread): Deleted.
++        * wtf/WorkQueue.cpp:
++        (WTF::WorkQueue::concurrentApply):
++        * wtf/WorkQueue.h:
++        * wtf/cocoa/WorkQueueCocoa.cpp:
++        (WTF::dispatchQOSClass):
++        * wtf/generic/WorkQueueGeneric.cpp:
++        (WorkQueue::platformInitialize):
++        (WorkQueue::platformInvalidate):
++        * wtf/linux/MemoryPressureHandlerLinux.cpp:
++        (WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
++        (WTF::MemoryPressureHandler::EventFDPoller::~EventFDPoller):
++        * wtf/win/MainThreadWin.cpp:
++        (WTF::initializeMainThreadPlatform):
++
++2017-04-11  Zan Dobersek  <zdobersek igalia com>
++
++        [GTK] Use the DisplayRefreshMonitor facilities
++        https://bugs.webkit.org/show_bug.cgi?id=170599
++
++        Reviewed by Carlos Garcia Campos.
++
++        * wtf/Platform.h: Enable USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR for the GTK+ port.
++        * wtf/glib/RunLoopSourcePriority.h: Add the DisplayRefreshMonitorTimer entry that
++        matches the value of LayerFlushTimer.
++
++2017-04-11  Yusuke Suzuki  <utatane tea gmail com>
++
++        [WebCore][JSC] ResourceUsageData.{timeOfNextEdenCollection,timeOfNextFullCollection} should be 
MonotonicTime
++        https://bugs.webkit.org/show_bug.cgi?id=170725
++
++        Reviewed by Sam Weinig.
++
++        Make MonotonicTime more constexpr friendly mainly to annotate MonotonicTime::nan() as constexpr.
++
++        * wtf/MonotonicTime.h:
++        (WTF::MonotonicTime::MonotonicTime):
++        (WTF::MonotonicTime::fromRawSeconds):
++        (WTF::MonotonicTime::infinity):
++        (WTF::MonotonicTime::nan):
++        (WTF::MonotonicTime::secondsSinceEpoch):
++        (WTF::MonotonicTime::operator bool):
++        (WTF::MonotonicTime::operator+):
++        (WTF::MonotonicTime::operator-):
++        (WTF::MonotonicTime::operator==):
++        (WTF::MonotonicTime::operator!=):
++        (WTF::MonotonicTime::operator<):
++        (WTF::MonotonicTime::operator>):
++        (WTF::MonotonicTime::operator<=):
++        (WTF::MonotonicTime::operator>=):
++
++2017-04-11  Yusuke Suzuki  <utatane tea gmail com>
++
++        Unreviewed, build fix for Windows port after r215228
++        https://bugs.webkit.org/show_bug.cgi?id=170723
++
++        * wtf/win/RunLoopWin.cpp:
++        (WTF::RunLoop::TimerBase::timerFired):
++
++2017-04-11  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC][GTK] Use RunLoop::Timer in GTK port
++        https://bugs.webkit.org/show_bug.cgi?id=170723
++
++        Reviewed by Carlos Garcia Campos.
++
++        Add secondsUntilFire method. And add setName and setPriority
++        for GTK RunLoop::Timer.
++
++        * wtf/RunLoop.h:
++        * wtf/cf/RunLoopCF.cpp:
++        (WTF::RunLoop::TimerBase::secondsUntilFire):
++        * wtf/generic/RunLoopGeneric.cpp:
++        (WTF::RunLoop::TimerBase::secondsUntilFire):
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::RunLoop::TimerBase::setName):
++        (WTF::RunLoop::TimerBase::secondsUntilFire):
++        * wtf/win/RunLoopWin.cpp:
++        (WTF::RunLoop::TimerBase::timerFired):
++        (WTF::RunLoop::TimerBase::start):
++        (WTF::RunLoop::TimerBase::isActive):
++        (WTF::RunLoop::TimerBase::secondsUntilFire):
++
++2017-04-11  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Enable JSRunLoopTimer for JSCOnly and Windows
++        https://bugs.webkit.org/show_bug.cgi?id=170655
++
++        Reviewed by Carlos Garcia Campos.
++
++        This patch makes RunLoop::Timer in Generic and Windows thread-safe to use it
++        in JSC's JSRunLoopTimer. Eventually, we would like to replace JSRunLoopTimer's
++        platform-dependent implementation to WTF::RunLoop::Timer.
++
++        * wtf/RunLoop.h:
++        * wtf/cf/RunLoopCF.cpp:
++        (WTF::RunLoop::TimerBase::start):
++        * wtf/generic/RunLoopGeneric.cpp:
++        (WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
++        (WTF::RunLoop::populateTasks):
++        (WTF::RunLoop::runImpl):
++        (WTF::RunLoop::schedule):
++        (WTF::RunLoop::scheduleAndWakeUp):
++        (WTF::RunLoop::TimerBase::~TimerBase):
++        (WTF::RunLoop::TimerBase::start):
++        (WTF::RunLoop::TimerBase::stop):
++        (WTF::RunLoop::TimerBase::isActive):
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::RunLoop::TimerBase::TimerBase):
++        * wtf/win/RunLoopWin.cpp:
++        (WTF::RunLoop::TimerBase::timerFired):
++        (WTF::RunLoop::TimerBase::start):
++        (WTF::RunLoop::TimerBase::stop):
++        (WTF::RunLoop::TimerBase::isActive):
++
++2017-04-11  Zan Dobersek  <zdobersek igalia com>
++
++        REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
++        https://bugs.webkit.org/show_bug.cgi?id=169510
++
++        Reviewed by Saam Barati.
++
++        Add the `volatile` qualifiers for ASM statements that set up ldxr and stxr
++        instruction calls when HAVE(LL_SC) is enabled for aarch64 platforms.
++
++        This avoids indefinite execution when running GCC-compiled JSC on Linux.
++        Specific bug or expected behavior that differs from Clang wasn't determined.
++
++        HAVE(LL_SC) is re-enabled on non-Darwin aarch64 platforms.
++
++        * wtf/Atomics.h:
++        * wtf/Platform.h:
++
++2017-04-10  Thorsten Glaser  <tg mirbsd de>
++
++        [GTK] Fix x32 build
++        https://bugs.webkit.org/show_bug.cgi?id=170673
++
++        Reviewed by Carlos Alberto Lopez Perez.
++
++        * wtf/Platform.h:
++
++2017-04-09  Yusuke Suzuki  <utatane tea gmail com>
++
++        [WTF] Annotate Seconds' member functions and operators with constexpr
++        https://bugs.webkit.org/show_bug.cgi?id=170662
++
++        Reviewed by Daniel Bates.
++
++        Annotate Seconds' member functions and operators with constexpr.
++        It allows us to use Seconds calculation in compile time and use these
++        calculation for static const global variables.
++
++        operator% is an exception: it uses fmod and it is not offered as constexpr.
++
++        * wtf/MathExtras.h:
++        (defaultMinimumForClamp):
++        (defaultMaximumForClamp):
++        (clampToAccepting64):
++        Super unfortunate ugly code. This is because GCC 4.9 does not support C++14 relaxed constexpr.
++
++        * wtf/Seconds.h:
++        (WTF::Seconds::Seconds):
++        (WTF::Seconds::value):
++        (WTF::Seconds::minutes):
++        (WTF::Seconds::seconds):
++        (WTF::Seconds::milliseconds):
++        (WTF::Seconds::microseconds):
++        (WTF::Seconds::nanoseconds):
++        (WTF::Seconds::operator bool):
++        (WTF::Seconds::operator+):
++        (WTF::Seconds::operator-):
++        (WTF::Seconds::operator*):
++        (WTF::Seconds::operator/):
++        (WTF::Seconds::operator==):
++        (WTF::Seconds::operator!=):
++        (WTF::Seconds::operator<):
++        (WTF::Seconds::operator>):
++        (WTF::Seconds::operator<=):
++        (WTF::Seconds::operator>=):
++
++2017-04-09  Chris Dumez  <cdumez apple com>
++
++        Start dropping Timer API dealing with double
++        https://bugs.webkit.org/show_bug.cgi?id=170649
++
++        Reviewed by Yusuke Suzuki.
++
++        Start dropping Timer API dealing with double as people should use Seconds now.
++
++        * wtf/RunLoopTimer.h:
++        * wtf/glib/MainThreadGLib.cpp:
++        (WTF::MainThreadDispatcher::schedule):
++
++2017-04-07  Keith Miller  <keith_miller apple com>
++
++        Unreviewed, remove constexpr function since GTK didn't like it.
++
++        * wtf/PriorityQueue.h:
++        (WTF::PriorityQueue::parentOf):
++
++2017-04-07  Chris Dumez  <cdumez apple com>
++
++        Start using MonotonicTime / Seconds in Timer class
++        https://bugs.webkit.org/show_bug.cgi?id=170625
++
++        Reviewed by Simon Fraser.
++
++        Add modulo operator to MonotonicTime.
++
++        * wtf/MonotonicTime.h:
++        (WTF::MonotonicTime::operator%):
++
++2017-04-07  Keith Miller  <keith_miller apple com>
++
++        Add a PriorityQueue class
++        https://bugs.webkit.org/show_bug.cgi?id=170579
++
++        Reviewed by Saam Barati.
++
++        This patch adds a new PriorityQueue class that is backed by
++        WTF::Vector.  It also has a number of other niceties such as being
++        able to iterate the queue and increase or decrease keys.
++
++        One note is that increaseKey and decreaseKey are O(n) rather than
++        O(log(n)).  Traditionally, the lookup of the key is done with a
++        hash map but that's not feasible here.  This is because unless the
++        queue's element type is a pointer there is no good way maintain a
++        persistent reference to every entry in the queue while we sift.
++        The only way to update the location of an entry is to do a hash
++        table lookup with the entry's hash but this is probably more
++        expensive than just doing a linear search.
++
++        Also, add comparison operator functions, which can be passed to PriorityQueue.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/MathExtras.h:
++        (isLessThan):
++        (isLessThanEqual):
++        (isGreaterThan):
++        (isGreaterThanEqual):
++        * wtf/PriorityQueue.h: Added.
++        (WTF::PriorityQueue::size):
++        (WTF::PriorityQueue::isEmpty):
++        (WTF::PriorityQueue::enqueue):
++        (WTF::PriorityQueue::peek):
++        (WTF::PriorityQueue::dequeue):
++        (WTF::PriorityQueue::decreaseKey):
++        (WTF::PriorityQueue::increaseKey):
++        (WTF::PriorityQueue::begin):
++        (WTF::PriorityQueue::end):
++        (WTF::PriorityQueue::isValidHeap):
++        (WTF::PriorityQueue::parentOf):
++        (WTF::PriorityQueue::leftChildOf):
++        (WTF::PriorityQueue::rightChildOf):
++        (WTF::PriorityQueue::siftUp):
++        (WTF::PriorityQueue::siftDown):
++
++2017-04-07  Alex Christensen  <achristensen webkit org>
++
++        Use audit_token_t instead of pid_t for checking sandbox of other processes
++        https://bugs.webkit.org/show_bug.cgi?id=170616
++        <rdar://problem/31158189>
++
++        Reviewed by Daniel Bates.
++
++        * wtf/spi/darwin/SandboxSPI.h:
++        Declare more SPI.
++
++2017-04-07  Ting-Wei Lan  <lantw44 gmail com>
++
++        Include cstdio before using sscanf and stderr
++        https://bugs.webkit.org/show_bug.cgi?id=170098
++
++        Reviewed by Michael Catanzaro.
++
++        * wtf/NumberOfCores.cpp:
++
++2017-04-07  Saam Barati  <sbarati apple com>
++
++        WebAssembly: Make to a compilation API that allows for multi-VM concurrent compilations of Wasm 
Modules
++        https://bugs.webkit.org/show_bug.cgi?id=170488
++
++        Reviewed by JF Bastien.
++
++        * wtf/SharedTask.h: Make SharedTaskFunctor forward its arguments.
++
++2017-04-07  Carlos Garcia Campos  <cgarcia igalia com>
++
++        [GTK] Update the priorities used in glib main loop sources
++        https://bugs.webkit.org/show_bug.cgi?id=170457
++
++        Reviewed by Žan Doberšek.
++
++        Add an enum to define prirorities used in different GLib main sources. It allows to give them a 
better name
++        than high, low, medium, etc., but also to document them and other GLib based ports can define their 
own
++        values without changing all the places where they are used. The default values are based on the 
priorities
++        pre-defined by GLib.
++
++        * wtf/glib/MainThreadGLib.cpp:
++        (WTF::MainThreadDispatcher::MainThreadDispatcher):
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::RunLoop::RunLoop):
++        (WTF::RunLoop::dispatchAfter):
++        (WTF::RunLoop::TimerBase::TimerBase):
++        * wtf/glib/RunLoopSourcePriority.h: Added.
++        * wtf/linux/MemoryPressureHandlerLinux.cpp:
++        (WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
++
++2017-04-06  Filip Pizlo  <fpizlo apple com>
++
++        Linear scan should run liveness only once
++        https://bugs.webkit.org/show_bug.cgi?id=170569
++
++        Reviewed by Keith Miller.
++        
++        Have Liveness<> call Adapter::prepareToCompute(), since this makes it a lot easier to implement
++        constraint generation, since the constraint generator now gets to run after the Adapter is fully
++        constructed.
++        
++        * wtf/IndexMap.h:
++        (WTF::IndexMap::append): Also make this a bit more versatile.
++        * wtf/Liveness.h:
++        (WTF::Liveness::LocalCalc::Iterable::contains):
++        (WTF::Liveness::Iterable::contains):
++        (WTF::Liveness::compute):
++
++2017-04-06  Andreas Kling  <akling apple com>
++
++        Kill any WebContent process using over 16 GB of memory.
++        https://bugs.webkit.org/show_bug.cgi?id=170515
++        <rdar://problem/29930931>
++
++        Reviewed by Antti Koivisto.
++
++        Restructure the code since it was getting out of sync with the intended behavior.
++        Now there's a thresholdForMemoryKill() which returns the current memory limit based
++        on the process status.
++
++        The memory usage policy is separated from the killing, and now only drives the
++        asynchronous invocations of pressure relief that occur when we pass over one of
++        the policy edges (now 1GB for Conservative, 2GB for Strict.)
++
++        Removed the "Panic" policy and moved the memory kill logic to shrinkOrDie().
++
++        Behavior as of this patch:
++
++            - Everyone gets killed over 16 GB.
++            - Inactive processes get killed over 4 GB.
++            - Strict memory usage policy kicks in at 2 GB.
++            - Conservative memory usage policy at 1 GB.
++
++        Like before, we make a best-effort attempt to free up memory before killing the process.
++
++        * wtf/MemoryPressureHandler.cpp:
++        (WTF::toString):
++        (WTF::MemoryPressureHandler::thresholdForMemoryKill):
++        (WTF::thresholdForPolicy):
++        (WTF::policyForFootprint):
++        (WTF::MemoryPressureHandler::shrinkOrDie):
++        (WTF::MemoryPressureHandler::setMemoryUsagePolicyBasedOnFootprint):
++        (WTF::MemoryPressureHandler::measurementTimerFired):
++        * wtf/MemoryPressureHandler.h:
++
++2017-04-05  Andreas Kling  <akling apple com>
++
++        Make inactive web processes behave as though under memory pressure.
++        https://bugs.webkit.org/show_bug.cgi?id=170042
++        <rdar://problem/31038445>
++
++        Reviewed by Antti Koivisto.
++
++        Once a web process becomes inactive, let's try to reduce its impact
++        on memory usage by treating it as if it's under memory pressure until
++        it becomes active.
++
++        * wtf/MemoryPressureHandler.cpp:
++        (WTF::MemoryPressureHandler::setProcessState):
++        (WTF::MemoryPressureHandler::isUnderMemoryPressure):
++        * wtf/MemoryPressureHandler.h:
++        (WTF::MemoryPressureHandler::isUnderMemoryPressure): Deleted.
++
++2017-04-05  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Suppress warnings in GCC
++        https://bugs.webkit.org/show_bug.cgi?id=170501
++
++        Reviewed by Keith Miller.
++
++        Add a new macro UNUSED_FUNCTION to annotate unused static functions.
++        #pragma GCC diagnostic ignored "-Wunused-function" does not work.
++
++        * wtf/Compiler.h:
++
++2017-04-04  Filip Pizlo  <fpizlo apple com>
++
++        Air::eliminateDeadCode() should not use a HashSet
++        https://bugs.webkit.org/show_bug.cgi?id=170487
++
++        Reviewed by Saam Barati.
++        
++        BitVector::iterator knows when it's at the end. Expose this functionality.
++
++        * wtf/BitVector.h:
++        (WTF::BitVector::iterator::isAtEnd):
++
++2017-04-04  Keith Miller  <keith_miller apple com>
++
++        WebAssembly: ModuleInformation should be a ref counted thing that can be shared across threads.
++        https://bugs.webkit.org/show_bug.cgi?id=170478
++
++        Reviewed by Saam Barati.
++
++        This adds a new String::fromUTF8 that converts a vector of characters to
++        a string.
++
++        Also, it cleans up some style.
++
++        * wtf/text/WTFString.h:
++        (WTF::String::fromUTF8):
++        * wtf/unicode/UTF8.cpp:
++        (WTF::Unicode::convertLatin1ToUTF8):
++
++2017-04-04  Filip Pizlo  <fpizlo apple com>
++
++        B3::fixSSA() needs a tune-up
++        https://bugs.webkit.org/show_bug.cgi?id=170485
++
++        Reviewed by Saam Barati.
++        
++        This makes IndexSparseSet capable of being used as a map if you instantiate it with
++        KeyValuePair<unsigned, ValueType>.
++
++        * wtf/HashTraits.h:
++        * wtf/IndexSparseSet.h:
++        (WTF::DefaultIndexSparseSetTraits::create):
++        (WTF::DefaultIndexSparseSetTraits::key):
++        (WTF::OverflowHandler>::IndexSparseSet):
++        (WTF::OverflowHandler>::add):
++        (WTF::OverflowHandler>::set):
++        (WTF::OverflowHandler>::remove):
++        (WTF::OverflowHandler>::clear):
++        (WTF::OverflowHandler>::size):
++        (WTF::OverflowHandler>::isEmpty):
++        (WTF::OverflowHandler>::contains):
++        (WTF::OverflowHandler>::sort):
++        (WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::add): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::remove): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::clear): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::size): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::isEmpty): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::contains): Deleted.
++        (WTF::IndexSparseSet<OverflowHandler>::sort): Deleted.
++        * wtf/Liveness.h:
++        (WTF::Liveness::LocalCalc::Iterable::iterator::iterator):
++        (WTF::Liveness::workset):
++
++2017-04-04  Filip Pizlo  <fpizlo apple com>
++
++        Don't need to Air::reportUsedRegisters for wasm at -O1
++        https://bugs.webkit.org/show_bug.cgi?id=170459
++
++        Reviewed by Saam Barati.
++        
++        Just moved the liveness computation into a method, which enabled me to do the profiling
++        that I used to write this patch.
++
++        * wtf/Liveness.h:
++        (WTF::Liveness::Liveness):
++        (WTF::Liveness::compute):
++
++2017-04-03  Filip Pizlo  <fpizlo apple com>
++
++        Air liveness should build constraints and solve them rather than repeatedly parsing IR
++        https://bugs.webkit.org/show_bug.cgi?id=170421
++
++        Reviewed by Saam Barati.
++
++        * wtf/Vector.h:
++        (WTF::minCapacity>::appendIfNotContains): Because sometimes Vector<> is the best kind of set.
++
++2017-04-03  Yusuke Suzuki  <utatane tea gmail com>
++
++        [WTF] Introduce WTF::RandomDevice which keeps /dev/urandom opened
++        https://bugs.webkit.org/show_bug.cgi?id=170095
++
++        Reviewed by Michael Catanzaro.
++
++        In this patch, we introduce RandomDevice, which keeps /dev/urandom opened
++        to avoid repeatedly open and close urandom file descriptor in Linux.
++
++        The purpose is similar to std::random_device, but WTF::RandomDevice explicitly
++        avoids using ARC4, which is recently attempted to be removed from the WebKit
++        tree[1].
++
++        [1]: https://trac.webkit.org/r214329
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/CMakeLists.txt:
++        * wtf/OSRandomSource.cpp:
++        (WTF::cryptographicallyRandomValuesFromOS):
++        (WTF::crashUnableToOpenURandom): Deleted.
++        (WTF::crashUnableToReadFromURandom): Deleted.
++        * wtf/RandomDevice.cpp: Copied from Source/WTF/wtf/OSRandomSource.cpp.
++        (WTF::crashUnableToOpenURandom):
++        (WTF::crashUnableToReadFromURandom):
++        (WTF::RandomDevice::RandomDevice):
++        (WTF::RandomDevice::~RandomDevice):
++        (WTF::RandomDevice::cryptographicallyRandomValues):
++        * wtf/RandomDevice.h: Added.
++
++2017-04-03  Filip Pizlo  <fpizlo apple com>
++
++        WTF::Liveness should have an API that focuses on actions at instruction boundaries
++        https://bugs.webkit.org/show_bug.cgi?id=170407
++
++        Reviewed by Keith Miller.
++        
++        Change the Liveness<> API to handle early and late things in one lump inside forEachUse
++        and forEachDef functions. This reduces the amount of different functions that Liveness<>
++        expects from its adaptor. This makes it easier to implement optimizations that cache the
++        use/def behavior of each instruction boundary.
++
++        * wtf/Liveness.h:
++        (WTF::Liveness::Liveness):
++        (WTF::Liveness::LocalCalc::execute):
++
++2017-04-01  Csaba Osztrogonác  <ossy webkit org>
++
++        Mac cmake buildfix after 214586.
++        https://bugs.webkit.org/show_bug.cgi?id=170381
++
++        Unreviewed.
++
++        * wtf/BlockPtr.h:
++
++2017-03-30  Filip Pizlo  <fpizlo apple com>
++
++        Air should support linear scan for optLevel<2
++        https://bugs.webkit.org/show_bug.cgi?id=170161
++
++        Reviewed by Saam Barati.
++        
++        This change introduces a new low-latency register allocator. It can allocate registers very
++        quickly by doing a relatively poor job. Implementing this algorithm required beefing up some of
++        our core algorithms.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/CMakeLists.txt:
++        * wtf/Deque.h: Make it possible to do some basic priority queueing with this data structure.
++        (WTF::inlineCapacity>::removeAllMatching):
++        (WTF::inlineCapacity>::appendAndBubble):
++        (WTF::inlineCapacity>::takeLast):
++        * wtf/IndexKeyType.h: Added. This makes it possible to use IndexMap and IndexSet with value or 
pointer types. Previously they just worked with pointer types.
++        (WTF::IndexKeyType::index):
++        * wtf/IndexMap.h: Adopt IndexKeyType.
++        (WTF::IndexMap::operator[]):
++        (WTF::IndexMap::append):
++        * wtf/IndexSet.h: Adopt IndexKeyType.
++        (WTF::IndexSet::add):
++        (WTF::IndexSet::addAll):
++        (WTF::IndexSet::remove):
++        (WTF::IndexSet::contains):
++        (WTF::IndexSet::Iterable::iterator::operator*):
++        * wtf/Range.h: Added. This used to be B3::HeapRange. This generalizes that data structure to any 
kind of range stuff.
++        (WTF::Range::Range):
++        (WTF::Range::top):
++        (WTF::Range::operator==):
++        (WTF::Range::operator!=):
++        (WTF::Range::operator bool):
++        (WTF::Range::operator|):
++        (WTF::Range::operator|=):
++        (WTF::Range::begin):
++        (WTF::Range::end):
++        (WTF::Range::overlaps):
++        (WTF::Range::dump):
++        * wtf/RangeSet.h:
++        (WTF::RangeSet::add):
++
++2017-03-25  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC] Move platformThreadSignal to WTF
++        https://bugs.webkit.org/show_bug.cgi?id=170097
++
++        Reviewed by Mark Lam.
++
++        * wtf/Threading.h:
++        * wtf/ThreadingPthreads.cpp:
++        (WTF::signalThread):
++
++2017-03-26  Filip Pizlo  <fpizlo apple com>
++
++        B3::fixSSA should do liveness pruning
++        https://bugs.webkit.org/show_bug.cgi?id=170111
++
++        Reviewed by Saam Barati.
++        
++        Move Air::Liveness<> to WTF::Liveness<>. This is pretty easy since Air::Liveness<> was
++        already fairly generic. It leverages the CFG concept so that it can understand many
++        different kinds of basic blocks. It doesn't try to understand the contents of basic
++        blocks; it just asks the adaptor for the block size and asks for the early/late
++        uses/defs of each thing in the block.
++        
++        This makes it easy to create a B3::VariableLiveness, which fixSSA then uses for
++        pruning. One of the new features is the Liveness::LiveAtHead nested class, which you
++        instantiate if you want to perform liveAtHead queries, which SSA construction wants to
++        do.
++        
++        This also fixes https://bugs.webkit.org/show_bug.cgi?id=170102#c12
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/CMakeLists.txt:
++        * wtf/Liveness.h: Added.
++        (WTF::Liveness::Liveness):
++        (WTF::Liveness::LocalCalc::LocalCalc):
++        (WTF::Liveness::LocalCalc::Iterable::Iterable):
++        (WTF::Liveness::LocalCalc::Iterable::iterator::iterator):
++        (WTF::Liveness::LocalCalc::Iterable::iterator::operator++):
++        (WTF::Liveness::LocalCalc::Iterable::iterator::operator*):
++        (WTF::Liveness::LocalCalc::Iterable::iterator::operator==):
++        (WTF::Liveness::LocalCalc::Iterable::iterator::operator!=):
++        (WTF::Liveness::LocalCalc::Iterable::begin):
++        (WTF::Liveness::LocalCalc::Iterable::end):
++        (WTF::Liveness::LocalCalc::Iterable::contains):
++        (WTF::Liveness::LocalCalc::live):
++        (WTF::Liveness::LocalCalc::isLive):
++        (WTF::Liveness::LocalCalc::execute):
++        (WTF::Liveness::rawLiveAtHead):
++        (WTF::Liveness::Iterable::Iterable):
++        (WTF::Liveness::Iterable::iterator::iterator):
++        (WTF::Liveness::Iterable::iterator::operator*):
++        (WTF::Liveness::Iterable::iterator::operator++):
++        (WTF::Liveness::Iterable::iterator::operator==):
++        (WTF::Liveness::Iterable::iterator::operator!=):
++        (WTF::Liveness::Iterable::begin):
++        (WTF::Liveness::Iterable::end):
++        (WTF::Liveness::Iterable::contains):
++        (WTF::Liveness::liveAtHead):
++        (WTF::Liveness::liveAtTail):
++        (WTF::Liveness::workset):
++        (WTF::Liveness::LiveAtHead::LiveAtHead):
++        (WTF::Liveness::LiveAtHead::isLiveAtHead):
++
++2017-03-25  Filip Pizlo  <fpizlo apple com>
++
++        Air::Liveness shouldn't need HashSets
++        https://bugs.webkit.org/show_bug.cgi?id=170102
++
++        Reviewed by Yusuke Suzuki.
++
++        * wtf/IndexSparseSet.h: Add some helpers for a HashSet-free liveness analysis.
++        (WTF::IndexSparseSet::values):
++        (WTF::IndexSparseSet<OverflowHandler>::sort):
++        * wtf/StdLibExtras.h:
++        (WTF::mergeDeduplicatedSorted): Rapidly merge two sorted lists that don't have duplicates to 
produce a new sorted list that doesn't have duplicates.
++        * wtf/Vector.h:
++        (WTF::minCapacity>::uncheckedAppend): Inline this!
++        (WTF::removeRepeatedElements): This is a version of std::unique() that works naturally for Vectors.
++
++2017-03-26  Filip Pizlo  <fpizlo apple com>
++
++        Air should use RegisterSet for RegLiveness
++        https://bugs.webkit.org/show_bug.cgi?id=170108
++
++        Reviewed by Yusuke Suzuki.
++
++        * wtf/Atomics.h:
++        (WTF::ensurePointer): This is a useful replacement for std::once, which requires less fencing.
++        * wtf/Bitmap.h: Add more utilities.
++        (WTF::Bitmap::iterator::iterator): An iterator for set bits.
++        (WTF::Bitmap::iterator::operator*):
++        (WTF::Bitmap::iterator::operator++):
++        (WTF::Bitmap::iterator::operator==):
++        (WTF::Bitmap::iterator::operator!=):
++        (WTF::Bitmap::begin):
++        (WTF::Bitmap::end):
++        (WTF::WordType>::subsumes): a.subsumes(b) if all of b's set bits are set in a.
++        (WTF::WordType>::findBit): find next set or clear bit.
++
++2017-03-24  JF Bastien  <jfbastien apple com>
++
++        WebAssembly: store state in TLS instead of on VM
++        https://bugs.webkit.org/show_bug.cgi?id=169611
++
++        Reviewed by Filip Pizlo.
++
++        * wtf/FastTLS.h: reserve one key for WebAssembly, delete a bunch
++        of dead code which clang couldn't compile (it's valid GCC assembly
++        which LLVM dislikes).
++
++2017-03-24  Ryan Haddad  <ryanhaddad apple com>
++
++        Unreviewed, rolling out r214351.
++
++        This change caused API test
++        WebKit1.DidCreateJavaScriptContextBackForwardCacheTest to
++        fail.
++
++        Reverted changeset:
++
++        "Make inactive web processes behave as though under memory
++        pressure."
++        https://bugs.webkit.org/show_bug.cgi?id=170042
++        http://trac.webkit.org/changeset/214351
++
++2017-03-24  Chris Dumez  <cdumez apple com>
++
++        Unreviewed, rolling out r214329.
++
++        Significantly regressed Speedometer
++
++        Reverted changeset:
++
++        "window.crypto.getRandomValues() uses the insecure RC4 RNG"
++        https://bugs.webkit.org/show_bug.cgi?id=169623
++        http://trac.webkit.org/changeset/214329
++
++2017-03-24  Andreas Kling  <akling apple com>
++
++        Make inactive web processes behave as though under memory pressure.
++        <https://webkit.org/b/170042>
++
++        Reviewed by Antti Koivisto.
++
++        Once a web process becomes inactive, let's try to reduce its impact
++        on memory usage by treating it as if it's under memory pressure until
++        it becomes active.
++
++        * wtf/MemoryPressureHandler.cpp:
++        (WTF::MemoryPressureHandler::setProcessState):
++        (WTF::MemoryPressureHandler::isUnderMemoryPressure):
++        * wtf/MemoryPressureHandler.h:
++        (WTF::MemoryPressureHandler::isUnderMemoryPressure): Deleted.
++
++2017-03-23  Michael Catanzaro  <mcatanzaro igalia com>
++
++        window.crypto.getRandomValues() uses the insecure RC4 RNG
++        https://bugs.webkit.org/show_bug.cgi?id=169623
++
++        Reviewed by Alex Christensen.
++
++        Remove the RC4 random generator in favor of using OS randomness for now. This is basically
++        a merge of https://codereview.chromium.org/1431233002 from Blink, original author "eroman".
++
++        * wtf/CryptographicallyRandomNumber.cpp:
++        (WTF::cryptographicallyRandomNumber):
++        (WTF::cryptographicallyRandomValues):
++        (): Deleted.
++
++2017-03-23  Tomas Popela  <tpopela redhat com>
++
++        Fix uninitialized public members in WTF
++        https://bugs.webkit.org/show_bug.cgi?id=169676
++
++        Reviewed by Michael Catanzaro.
++
++        Found by Coverity scan.
++
++        * wtf/Bag.h:
++        * wtf/HashTable.h:
++        * wtf/HashTraits.h:
++        * wtf/Insertion.h:
++        * wtf/OrderMaker.h:
++        * wtf/ParallelJobsGeneric.h:
++
++2017-03-22  Andreas Kling  <akling apple com>
++
++        Let MemoryPressureHandler track whether the process is active or inactive.
++        <https://webkit.org/b/169990>
++
++        Reviewed by Antti Koivisto.
++
++        An active process is a process that meets any of these criteria:
++
++            - Has had a visible Page in an active window in the last hour
++            - Is playing audio
++
++        This replaces the old mechanism where MemoryPressureHandler would invoke
++        a callback to know whether the process was eligible for a memory kill.
++        Instead we now plumb the relevant information down from WebCore and kill
++        based on this activity state.
++
++        * wtf/MemoryPressureHandler.cpp:
++        (WTF::MemoryPressureHandler::measurementTimerFired):
++        (WTF::MemoryPressureHandler::setProcessState):
++        * wtf/MemoryPressureHandler.h:
++        (WTF::MemoryPressureHandler::setMemoryKillCallback):
++        (WTF::MemoryPressureHandler::processState):
++        (WTF::MemoryPressureHandler::setProcessIsEligibleForMemoryKillCallback): Deleted.
++
++2017-03-20  Simon Fraser  <simon fraser apple com>
++
++        Add a system trace point for memory warning handling
++        https://bugs.webkit.org/show_bug.cgi?id=169893
++
++        Reviewed by Zalan Bujtas.
++
++        Make it possible to pass data to the Begin trace point.
++
++        * wtf/SystemTracing.h:
++        (WTF::TraceScope::TraceScope):
++
++2017-03-17  Said Abou-Hallawa  <sabouhallawa apple com>
++
++        Time channel attack on SVG Filters
++        https://bugs.webkit.org/show_bug.cgi?id=118689
++
++        Reviewed by Simon Fraser.
++
++        Performing arithmetic operations on subnormal floating-point numbers is
++        very expensive. Normalizing the floating-point number to the minimum normal
++        value should accelerate the calculations and there won't be a noticeable
++        difference in the result since all the subnormal values and the minimum
++        normal value are all very close to zero.
++
++        * wtf/MathExtras.h:
++        (normalizedFloat):
++
++2017-03-11  Filip Pizlo  <fpizlo apple com>
++
++        Air should be powerful enough to support Tmp-splitting
++        https://bugs.webkit.org/show_bug.cgi?id=169515
++
++        Reviewed by Saam Barati.
++        
++        Teach IndexMap how to handle types that don't have a default constructor. This makes it
++        easy to create a IndexMap<BasicBlock, InsertionSet>, which is a super powerful
++        construct.
++
++        * wtf/IndexMap.h:
++        (WTF::IndexMap::IndexMap):
++        (WTF::IndexMap::resize):
++        (WTF::IndexMap::clear):
++
++2017-03-16  Simon Fraser  <simon fraser apple com>
++
++        Improve the system tracing points
++        https://bugs.webkit.org/show_bug.cgi?id=169790
++
++        Reviewed by Zalan Bujtas.
++
++        Use a more cohesive set of system trace points that give a good overview of what
++        WebKit is doing. Added points for resource loading, render tree building, sync messages
++        to the web process, async image decode, WASM and fetching cookies.
++
++        * wtf/SystemTracing.h:
++
++2017-03-16  Carlos Garcia Campos  <cgarcia igalia com>
++
++        [UNIX] Implement currentSearchLocaleID() and currentTextBreakLocaleID()
++        https://bugs.webkit.org/show_bug.cgi?id=169745
++
++        Reviewed by Yusuke Suzuki.
++
++        Add a common implementation for Unix based ports using setlocale.
++
++        * wtf/PlatformGTK.cmake:
++        * wtf/PlatformJSCOnly.cmake:
++        * wtf/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Removed.
++        * wtf/text/unix/TextBreakIteratorInternalICUUnix.cpp: Renamed from 
Source/WTF/wtf/text/jsconly/TextBreakIteratorInternalICUJSCOnly.cpp.
++        (WTF::currentSearchLocaleID):
++        (WTF::currentTextBreakLocaleID):
++
++2017-03-16  Carlos Garcia Campos  <cgarcia igalia com>
++
++        [GLIB] MainThread implementation is not GTK+ specific
++        https://bugs.webkit.org/show_bug.cgi?id=169736
++
++        Reviewed by Yusuke Suzuki.
++
++        It's implemented in MainThreadGLib.cpp for glib based ports, so ifdefs in MainThread should not be
++        PLATFORM(GTK) but USE(GLIB).
++
++        * wtf/MainThread.cpp:
++        * wtf/MainThread.h:
++
++2017-03-15  Carlos Alberto Lopez Perez  <clopez igalia com>
++
++        [CMake][JSCOnly] Fix build with GLib event loop
++        https://bugs.webkit.org/show_bug.cgi?id=169730
++
++        Reviewed by Michael Catanzaro.
++
++        * wtf/MainThread.cpp:
++        * wtf/PlatformJSCOnly.cmake: WorkQueueGLib was removed in r199713.
++
++2017-03-15  Dean Jackson  <dino apple com>
++
++        Sort Xcode project files
++        https://bugs.webkit.org/show_bug.cgi?id=169669
++
++        Reviewed by Antoine Quint.
++
++        * WTF.xcodeproj/project.pbxproj:
++
++2017-03-14  Filip Pizlo  <fpizlo apple com>
++
++        Fix some typos in this benchmark.
++
++        Rubber stamped by Saam Barati.
++
++        * benchmarks/HashSetDFGReplay.cpp:
++        (main):
++
++2017-03-14  Filip Pizlo  <fpizlo apple com>
++
++        Record the HashSet/HashMap operations in DFG/FTL/B3 and replay them in a benchmark
++        https://bugs.webkit.org/show_bug.cgi?id=169590
++
++        Reviewed by Saam Barati.
++        
++        This adds LoggingHashSet and LoggingHashMap, which are drop-in replacements for HashSet and
++        HashMap that log everything that they do, so that you can replay it later.
++        
++        This also adds a benchmark (HashSetDFGReplay) based on doing a recording of some of the HashSets
++        in the DFG compiler.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * benchmarks/HashSetDFGReplay.cpp: Added.
++        (benchmark):
++        (main):
++        * wtf/CMakeLists.txt:
++        * wtf/GlobalVersion.cpp: Added.
++        (WTF::newGlobalVersion):
++        * wtf/GlobalVersion.h: Added.
++        * wtf/HashMap.h:
++        (WTF::X>::swap):
++        * wtf/HashSet.h:
++        (WTF::V>::addVoid):
++        * wtf/LoggingHashID.h: Added.
++        (WTF::LoggingHashID::LoggingHashID):
++        (WTF::LoggingHashID::dump):
++        * wtf/LoggingHashMap.h: Added.
++        * wtf/LoggingHashSet.h: Added.
++        * wtf/LoggingHashTraits.h: Added.
++        (WTF::LoggingHashKeyTraits::print):
++        (WTF::LoggingHashValueTraits::print):
++
++2017-03-13  Jer Noble  <jer noble apple com>
++
++        Make classes used by Media Stream encode/decode friendly
++        https://bugs.webkit.org/show_bug.cgi?id=169567
++
++        Reviewed by Eric Carlson.
++
++        * wtf/MediaTime.h:
++        (WTF::MediaTime::encode):
++        (WTF::MediaTime::decode):
++
++2017-03-14  Yusuke Suzuki  <utatane tea gmail com>
++
++        Add secondsAs<T> methods to Seconds to convert it to integers with clamp
++        https://bugs.webkit.org/show_bug.cgi?id=169537
++
++        Reviewed by Carlos Garcia Campos.
++
++        When using the usual static_cast, infinity becomes 0 accidentally.
++        It is not intended value when using Seconds for timeout value.
++        Instead, we use clampToAccepting64 to convert Seconds to
++        integer values to pass them to the system functions.
++
++        * wtf/MathExtras.h:
++        (clampToAccepting64):
++        * wtf/Seconds.h:
++        (WTF::Seconds::minutesAs):
++        (WTF::Seconds::secondsAs):
++        (WTF::Seconds::millisecondsAs):
++        (WTF::Seconds::microsecondsAs):
++        (WTF::Seconds::nanosecondsAs):
++        * wtf/cocoa/WorkQueueCocoa.cpp:
++        (WTF::WorkQueue::dispatchAfter):
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::RunLoop::dispatchAfter):
++        (WTF::RunLoop::TimerBase::updateReadyTime):
++
++2017-03-13  Yusuke Suzuki  <utatane tea gmail com>
++
++        [JSC][Linux] Implement VMTrap in Linux ports
++        https://bugs.webkit.org/show_bug.cgi?id=169436
++
++        Reviewed by Mark Lam.
++
++        Enable VMTrap mechanism for Linux and FreeBSD.
++
++        * wtf/Platform.h:
++
++2017-03-13  Yusuke Suzuki  <utatane tea gmail com>
++
++        [WTF] Clean up RunLoop and WorkQueue with Seconds and Function
++        https://bugs.webkit.org/show_bug.cgi?id=169537
++
++        Reviewed by Sam Weinig.
++
++        This patch modernizes RunLoop and WorkQueue.
++
++        1. Use Ref<> aggressively
++        2. Use Seconds instead of chrono times
++        3. Use Function<> instead of std::function
++
++        * wtf/MainThread.cpp:
++        (WTF::dispatchFunctionsFromMainThread):
++        * wtf/RunLoop.h:
++        * wtf/WorkQueue.h:
++        * wtf/cocoa/WorkQueueCocoa.cpp:
++        (WTF::WorkQueue::dispatch):
++        (WTF::WorkQueue::dispatchAfter):
++        (WTF::WorkQueue::concurrentApply):
++        * wtf/generic/MainThreadGeneric.cpp:
++        (WTF::scheduleDispatchFunctionsOnMainThread):
++        * wtf/generic/RunLoopGeneric.cpp:
++        (WTF::RunLoop::TimerBase::ScheduledTask::create):
++        (WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
++        (WTF::RunLoop::populateTasks):
++        (WTF::RunLoop::runImpl):
++        (WTF::RunLoop::schedule):
++        (WTF::RunLoop::scheduleAndWakeUp):
++        (WTF::RunLoop::dispatchAfter):
++        (WTF::RunLoop::TimerBase::start):
++        * wtf/generic/WorkQueueGeneric.cpp:
++        (WorkQueue::dispatch):
++        (WorkQueue::dispatchAfter):
++        * wtf/glib/RunLoopGLib.cpp:
++        (WTF::DispatchAfterContext::DispatchAfterContext):
++        (WTF::RunLoop::dispatchAfter):
++        (WTF::RunLoop::TimerBase::updateReadyTime):
++        (WTF::RunLoop::TimerBase::start):
++        * wtf/win/WorkQueueWin.cpp:
++        (WTF::WorkQueue::performWorkOnRegisteredWorkThread):
++        (WTF::WorkQueue::dispatch):
++        (WTF::WorkQueue::dispatchAfter):
++
++2017-03-13  Chris Dumez  <cdumez apple com>
++
++        [WK2] Only report background WebProcesses as unresponsive in the background after 90 seconds
++        https://bugs.webkit.org/show_bug.cgi?id=169425
++        <rdar://problem/30954003>
++
++        Reviewed by Andreas Kling.
++
++        * wtf/RunLoop.h:
++        (WTF::RunLoop::TimerBase::startRepeating):
++        (WTF::RunLoop::TimerBase::startOneShot):
++        Add overloads to RunLoop::Timer that take Seconds in parameter,
++        for convenience.
++
++        * wtf/Seconds.h:
++        (WTF::Seconds::fromHours):
++        (WTF::seconds_literals::operator _h):
++        Allow _h suffix for initializing Seconds type to hours.
++
++2017-03-11  Csaba Osztrogonác  <ossy webkit org>
++
++        REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
++        https://bugs.webkit.org/show_bug.cgi?id=169510
++
++        Unreviewed, disable LL_SC on Linux to unbreak this platform.
++
++        * wtf/Atomics.h:
++        * wtf/Platform.h:
++
++2017-03-10  Filip Pizlo  <fpizlo apple com>
++
++        The JITs should be able to emit fast TLS loads
++        https://bugs.webkit.org/show_bug.cgi?id=169483
++
++        Reviewed by Keith Miller.
++
++        Consolidated what we know about fast TLS in FastTLS.h.
++
++        * WTF.xcodeproj/project.pbxproj:
++        * wtf/CMakeLists.txt:
++        * wtf/FastTLS.h: Added.
++        (WTF::loadFastTLS):
++        (WTF::fastTLSOffsetForKey):
++        * wtf/Platform.h:
++        * wtf/WTFThreadData.cpp:
++        (WTF::WTFThreadData::createAndRegisterForGetspecificDirect):
++        * wtf/WTFThreadData.h:
++        (WTF::wtfThreadData):
++
++2017-03-10  Mark Lam  <mark lam apple com>
++
++        Turn ENABLE(MASM_PROBE) on by default for OS(DARWIN) release builds.
++        https://bugs.webkit.org/show_bug.cgi?id=169493
++
++        Reviewed by Saam Barati.
++
++        MASM_PROBE was already enabled for debug builds.  This change makes it so that we
++        don't have to rebuild the world every time we need to use it on a release build.
++
++        * wtf/Platform.h:
++
++2017-03-10  Csaba Osztrogonác  <ossy webkit org>
++
++        Unreviewed AArch64 Linux buildfix after r213645.
++        https://bugs.webkit.org/show_bug.cgi?id=169300
++
++        * wtf/Atomics.h: intptr_t and int64_t are typedefs for long int on Linux.
++        They are different types only on Darwin platforms.
++
++2017-03-09  Caio Lima  <ticaiolima gmail com>
++
++        [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
++        https://bugs.webkit.org/show_bug.cgi?id=167962
++
++        Reviewed by Keith Miller.
++
++        * wtf/HashSet.h:
++        (WTF::=):
++
++2017-03-09  Youenn Fablet  <youenn apple com>
++
++        Activate VideoToolbox when WebRTC is enabled on iOS
++        https://bugs.webkit.org/show_bug.cgi?id=169423
++
++        Reviewed by Jon Lee.
++
++        * wtf/Platform.h: Activate VIDEOTOOLBOX if WEBRTC is enabled.
++
++2017-03-09  Filip Pizlo  <fpizlo apple com>
++
++        std::isnan/isinf/isfinite should work with WTF time classes
++        https://bugs.webkit.org/show_bug.cgi?id=164991
++
++        Reviewed by Darin Adler.
++        
++        The consensus view (see comments in https://bugs.webkit.org/show_bug.cgi?id=152045) of how
++        to check if something is NaN is to use std::isnan(). To be able to do that for time
++        classes, they need to provide their own isnan() overhload. This also provides isinf()
++        overloads.
++
++        * wtf/MonotonicTime.h:
++        (std::isnan):
++        (std::isinf):
++        * wtf/Seconds.h:
++        (std::isnan):
++        (std::isinf):
++        * wtf/TimeWithDynamicClockType.h:
++        (std::isnan):
++        (std::isinf):
++        * wtf/WallTime.h:
++        (std::isnan):
++        (std::isinf):
++
++2017-03-09  Mark Lam  <mark lam apple com>
++
++        Use const AbstractLocker& (instead of const LockHolder&) in more places.
++        https://bugs.webkit.org/show_bug.cgi?id=169424
++
++        Reviewed by Filip Pizlo.
++
++        * wtf/RunLoop.h:
++        * wtf/generic/RunLoopGeneric.cpp:
++        (WTF::RunLoop::wakeUp):
++        (WTF::RunLoop::schedule):
++
++2017-03-09  Mark Lam  <mark lam apple com>
++
++        Make the VM Traps mechanism non-polling for the DFG and FTL.
++        https://bugs.webkit.org/show_bug.cgi?id=168920
++        <rdar://problem/30738588>
++
++        Reviewed by Filip Pizlo.
++
++        Make StackBounds more useful for checking if a pointer is within stack bounds.
++
++        * wtf/MetaAllocator.cpp:
++        (WTF::MetaAllocator::isInAllocatedMemory):
++        * wtf/MetaAllocator.h:
++        * wtf/Platform.h:
++        * wtf/StackBounds.h:
++        (WTF::StackBounds::emptyBounds):
++        (WTF::StackBounds::StackBounds):
++        (WTF::StackBounds::isEmpty):
++        (WTF::StackBounds::contains):
++
++2017-03-07  Filip Pizlo  <fpizlo apple com>
++
++        WTF should make it super easy to do ARM concurrency tricks
++        https://bugs.webkit.org/show_bug.cgi?id=169300
++
++        Reviewed by Mark Lam.
++        
++        This adds Atomic<>::loadLink and Atomic<>::storeCond, available only when HAVE(LL_SC).
++        
++        It abstracts loadLink/storeCond behind prepare/attempt. You can write prepare/attempt
++        loops whenever your loop fits into the least common denominator of LL/SC and CAS.
++        
++        This modifies Atomic<>::transaction to use prepare/attempt. So, if you write your loop
++        using Atomic<>::transaction, then you get LL/SC for free.
++
++        Depending on the kind of transaction you are doing, you may not want to perform an LL
++        until you have a chance to just load the current value. Atomic<>::transaction() assumes
++        that you do not care to have any ordering guarantees in that case. If you think that
++        the transaction has a good chance of aborting this way, you want
++        Atomic<>::transaction() to first do a plain load. But if you don't think that such an
++        abort is likely, then you want to go straight to the LL. The API supports this concept
++        via TransactionAbortLikelihood.
++        
++        Additionally, this redoes the depend/consume API to be dead simple. Dependency is
++        unsigned. You get a dependency on a loaded value by just saying
++        dependency(loadedValue). You consume the dependency by using it as a bonus index to
++        some pointer dereference. This is made easy with the consume<T*>(ptr, dependency)
++        helper. In those cases where you want to pass around both a computed value and a
++        dependency, there's DependencyWith<T>. But you won't need it in most cases. The loaded
++        value or any value computed from the loaded value is a fine input to dependency()!
++        
++        This change updates a bunch of hot paths to use the new APIs. Using transaction() gives
++        us optimal LL/SC loops for object marking and lock acquisition.
++        
++        This change also updates a bunch of hot paths to use dependency()/consume().
++        
++        This is a significant Octane/splay speed-up on ARM.
++
++        * wtf/Atomics.h:
++        (WTF::hasFence):
++        (WTF::Atomic::prepare):
++        (WTF::Atomic::attempt):
++        (WTF::Atomic::transaction):
++        (WTF::Atomic::transactionRelaxed):
++        (WTF::nullDependency):
++        (WTF::dependency):
++        (WTF::DependencyWith::DependencyWith):
++        (WTF::dependencyWith):
++        (WTF::consume):
++        (WTF::Atomic::tryTransactionRelaxed): Deleted.
++        (WTF::Atomic::tryTransaction): Deleted.
++        (WTF::zeroWithConsumeDependency): Deleted.
++        (WTF::consumeLoad): Deleted.
++        * wtf/Bitmap.h:
++        (WTF::WordType>::get):
++        (WTF::WordType>::concurrentTestAndSet):
++        (WTF::WordType>::concurrentTestAndClear):
++        * wtf/LockAlgorithm.h:
++        (WTF::LockAlgorithm::lockFast):
++        (WTF::LockAlgorithm::unlockFast):
++        (WTF::LockAlgorithm::unlockSlow):
++        * wtf/Platform.h:
++
++2017-03-08  Anders Carlsson  <andersca apple com>
++
++        Simplify the PaymentCoordinator interface
++        https://bugs.webkit.org/show_bug.cgi?id=169382
++        Part of rdar://problem/28880714.
++
++        Reviewed by Tim Horton.
++
++        * wtf/EnumTraits.h:
++        Fix a build warning.
++
++2017-03-06  Andreas Kling  <akling apple com>
++
++        [iOS] Report domains crashing under memory pressure via enhanced privacy logging.
++        <https://webkit.org/b/169133>
++        <rdar://problem/29964017>
++
++        Reviewed by Antti Koivisto.
++
++        Add a mechanism for getting a callback when the memory pressure status changes.
++
++        * wtf/MemoryPressureHandler.cpp:
++        (WTF::MemoryPressureHandler::measurementTimerFired):
++        (WTF::MemoryPressureHandler::beginSimulatedMemoryPressure):
++        (WTF::MemoryPressureHandler::endSimulatedMemoryPressure):
++        (WTF::MemoryPressureHandler::setUnderMemoryPressure):
++        (WTF::MemoryPressureHandler::memoryPressureStatusChanged):
++        * wtf/MemoryPressureHandler.h:
++        (WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback):
++        (WTF::MemoryPressureHandler::setUnderMemoryPressure): Deleted.
++
++2017-03-03  Jer Noble  <jer noble apple com>
++
++        [Win64] '__int128_t': undeclared identifier in MediaTime.cpp
++        https://bugs.webkit.org/show_bug.cgi?id=169123
++
++        Reviewed by Alex Christensen.
++
++        Don't perform the 128-bit optimized path on Windows, where the __int128_t intrinsic isn't available.
++
++        * wtf/MediaTime.cpp:
++        (WTF::MediaTime::setTimeScale):
++
++2017-03-03  Keith Miller  <keith_miller apple com>
++
++        WASM should support faster loads.
++        https://bugs.webkit.org/show_bug.cgi?id=162693
++
++        Reviewed by Saam Barati.
++
++        Add new forms of dataLog that take a boolean which describes if the log should happen. This makes 
cases where we have a static const bool for printing nicer since you can do:
++
++        dataLogIf(verbose, things, to, print);
++
++        instead of:
++
++        if (verbose)
++            dataLog(things, to, print);
++
++        Also, add a operator! to Ref that has the same semantics as C++ refs.
++
++        * wtf/DataLog.h:
++        (WTF::dataLogLn):
++        (WTF::dataLogIf):
++        (WTF::dataLogLnIf):
++        * wtf/Ref.h:
++        (WTF::Ref::operator!):
++
+ 2017-03-17  Said Abou-Hallawa  <sabouhallawa apple com>
+ 
+         Time channel attack on SVG Filters
+diff --git a/Source/WTF/wtf/CMakeLists.txt b/Source/WTF/wtf/CMakeLists.txt
+index 81af912..356c927 100644
+--- a/Source/WTF/wtf/CMakeLists.txt
++++ b/Source/WTF/wtf/CMakeLists.txt
+@@ -272,6 +272,12 @@ set(WTF_SOURCES
+ set(WTF_INCLUDE_DIRECTORIES
+     "${BMALLOC_DIR}"
+     "${WTF_DIR}"
++    "${CMAKE_BINARY_DIR}"
++    "${DERIVED_SOURCES_DIR}"
++    "${THIRDPARTY_DIR}"
++)
++
++set(WTF_PRIVATE_INCLUDE_DIRECTORIES
+     "${WTF_DIR}/wtf"
+     "${WTF_DIR}/wtf/dtoa"
+     "${WTF_DIR}/wtf/persistence"
+@@ -279,9 +285,6 @@ set(WTF_INCLUDE_DIRECTORIES
+     "${WTF_DIR}/wtf/text/icu"
+     "${WTF_DIR}/wtf/threads"
+     "${WTF_DIR}/wtf/unicode"
+-    "${THIRDPARTY_DIR}"
+-    "${CMAKE_BINARY_DIR}"
+-    "${DERIVED_SOURCES_DIR}"
+ )
+ 
+ set(WTF_LIBRARIES
+diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
+index 6d2ff05..a59e84b 100644
+--- a/Source/WebCore/ChangeLog
++++ b/Source/WebCore/ChangeLog
+@@ -1,4 +1,24 @@
+-2017-04-03  Chris Dumez  <cdumez apple com>
++2017-04-21  Konstantin Tokarev  <annulen yandex ru>
++
++        [cmake] WTF target should not have wtf and subdirectries in public interface
++        https://bugs.webkit.org/show_bug.cgi?id=171115
++
++        Reviewed by Michael Catanzaro.
++
++        In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of
++        targets as their public interface, so that linked targets can use them
++        implicitly without copying directory lists around. This matches existing
++        practice for all targets except WTF, headers from which are always included
++        with full path starting from "<wtf/...".
++
++        Since r209665 it became possible to include headers from wtf or its
++        subdirectories in CMake builds without using "<wtf/..." path. It should
++        not be allowed.
++
++        * platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Fix
++        incorrect include of WTF header.
++
++2017-04-21  Gwang Yoon Hwang  <yoon igalia com>
+ 
+         REGRESSION (r206744): CSS background-image in style attribute ignored when using createHTMLDocument 
method of DOM parsing
+         https://bugs.webkit.org/show_bug.cgi?id=170285
+diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp 
b/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
+index b638916..ecb31b4 100644
+--- a/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
++++ b/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
+@@ -22,9 +22,9 @@
+ 
+ #if USE(COORDINATED_GRAPHICS)
+ #include "GraphicsContext.h"
+-#include "MemoryPressureHandler.h"
+ #include "TiledBackingStoreClient.h"
+ #include <wtf/CheckedArithmetic.h>
++#include <wtf/MemoryPressureHandler.h>
+ 
+ namespace WebCore {
+ 
+diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake
+index 6e9afe0..9558d43 100644
+--- a/Source/cmake/WebKitMacros.cmake
++++ b/Source/cmake/WebKitMacros.cmake
+@@ -283,6 +283,7 @@ macro(WEBKIT_FRAMEWORK _target)
+         ${${_target}_SOURCES}
+     )
+     target_include_directories(${_target} PUBLIC "$<BUILD_INTERFACE:${${_target}_INCLUDE_DIRECTORIES}>")
++    target_include_directories(${_target} PRIVATE 
"$<BUILD_INTERFACE:${${_target}_PRIVATE_INCLUDE_DIRECTORIES}>")
+     target_link_libraries(${_target} ${${_target}_LIBRARIES})
+     set_target_properties(${_target} PROPERTIES COMPILE_DEFINITIONS "BUILDING_${_target}")
+ 
+-- 
+2.2.2
+
diff --git a/patches/WebKit-2.4.11-fixups.patch b/patches/WebKit-2.4.11-fixups.patch
new file mode 100644
index 0000000..a0277c4
--- /dev/null
+++ b/patches/WebKit-2.4.11-fixups.patch
@@ -0,0 +1,37 @@
+
+--- a/Source/JavaScriptCore/API/JSBase.h       Sat Apr  9 23:48:36 2016
++++ b/Source/JavaScriptCore/API/JSBase.h       Thu Apr 27 13:48:12 2017
+@@ -142,9 +142,9 @@
+ /* Enable the Objective-C API for platforms with a modern runtime. */
+ #if !defined(JSC_OBJC_API_ENABLED)
+ #ifndef JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
+-#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && 
((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 && !defined(__i386__)) 
|| (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)))
++#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && 
((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 && !defined(__i386__)) 
&& !PLATFORM(GTK) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)))
+ #else
+-#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && 
((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__)) 
|| (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)))
++#define JSC_OBJC_API_ENABLED (defined(__clang__) && defined(__APPLE__) && 
((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__)) 
&& !PLATFORM(GTK) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)))
+ #endif
+ #endif
+ 
+--- a/Source/JavaScriptCore/API/ObjCCallbackFunction.h Sat Apr  9 23:48:36 2016
++++ b/Source/JavaScriptCore/API/ObjCCallbackFunction.h Tue Apr 25 15:31:47 2017
+@@ -29,7 +29,7 @@
+ 
+ #if JSC_OBJC_API_ENABLED
+ 
+-#import <JavaScriptCore/JSCallbackFunction.h>
++#import "JSCallbackFunction.h"
+ 
+ #if defined(__OBJC__)
+ JSObjectRef objCCallbackFunctionForMethod(JSContext *, Class, Protocol *, BOOL isInstanceMethod, SEL, const 
char* types);
+
+--- a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp  Sat Apr  9 23:48:37 2016
++++ b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp  Thu Apr 27 10:01:54 2017
+@@ -40,6 +40,7 @@
+ #include "PaintInfo.h"
+ #include "PlatformContextCairo.h"
+ #include "RenderElement.h"
++#include "RenderBox.h"
+ #include "TextDirection.h"
+ #include "UserAgentStyleSheets.h"
+ #include "WidgetRenderingContext.h"
diff --git a/patches/Webkit-2.16-Fix-some-includes.patch b/patches/Webkit-2.16-Fix-some-includes.patch
new file mode 100644
index 0000000..5b75772
--- /dev/null
+++ b/patches/Webkit-2.16-Fix-some-includes.patch
@@ -0,0 +1,46 @@
+From ab145a5642e7725bd2e8313e96a8ff0fdc53a49c Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Sat, 22 Apr 2017 16:35:27 -0700
+Subject: [PATCH 3/3] [GTK] Fix some missing/misnamed includes.
+
+---
+ .../platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h   | 4 ++--
+ .../platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h   | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 
b/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
+index bf25111..06b0782 100644
+--- a/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
++++ b/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
+@@ -30,8 +30,8 @@
+ #include "GraphicsLayerTransform.h"
+ #include "Image.h"
+ #include "IntSize.h"
+-#include "TextureMapperAnimation.h"
+-#include "TextureMapperPlatformLayer.h"
++#include "../TextureMapperAnimation.h"
++#include "../TextureMapperPlatformLayer.h"
+ #include "TiledBackingStore.h"
+ #include "TiledBackingStoreClient.h"
+ #include "TransformationMatrix.h"
+diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h 
b/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h
+index c810530..3f09b58 100644
+--- a/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h
++++ b/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h
+@@ -36,11 +36,11 @@
+ #include "IntRect.h"
+ #include "IntSize.h"
+ #include "SurfaceUpdateInfo.h"
+-#include "TextureMapperAnimation.h"
++#include "../TextureMapperAnimation.h"
+ #include "TransformationMatrix.h"
+ 
+ #if USE(COORDINATED_GRAPHICS_THREADED)
+-#include "TextureMapperPlatformLayerProxy.h"
++#include "../TextureMapperPlatformLayerProxy.h"
+ #endif
+ 
+ namespace WebCore {
+-- 
+2.2.2
+
diff --git a/patches/Webkit-2.16-build-without-OpenGL.patch b/patches/Webkit-2.16-build-without-OpenGL.patch
new file mode 100644
index 0000000..c098567
--- /dev/null
+++ b/patches/Webkit-2.16-build-without-OpenGL.patch
@@ -0,0 +1,375 @@
+From 9e4d31faae8f3f23df718891b41dc4bd97eee0d6 Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Thu, 20 Apr 2017 16:40:16 -0700
+Subject: [PATCH 2/3] [GTK] Building WebKit2Gtk without OpenGL Fails.
+
+Rearranged WebCore/PlatformGTK.cmake so that the OpenGL-dependent
+targets are built only if OpenGL is enabled. Add
+USE_COORDINATED_GRAPHICS to unconditionally TRUE options in
+OptionsGTK.cmake. Adjusted two targets in TextureMapper.cmake to
+build only if USE_TEXTURE_MAPPER_GL is true because they depend on
+OpenGL contexts. Made some functions and includes conditional on
+OpenGL or subsidiary items.
+---
+ Source/WebCore/PlatformGTK.cmake                   | 78 ++++++++++++++--------
+ Source/WebCore/page/FrameView.cpp                  |  2 +-
+ .../page/scrolling/ScrollingCoordinator.cpp        |  2 +-
+ Source/WebCore/platform/TextureMapper.cmake        |  8 ++-
+ .../WebCore/platform/graphics/PlatformDisplay.cpp  |  3 +-
+ .../texmap/coordinated/TiledBackingStore.cpp       |  2 +-
+ Source/WebKit2/PlatformGTK.cmake                   | 13 ++++
+ .../UIProcess/API/gtk/WebKitWebsiteData.cpp        |  3 -
+ .../UIProcess/API/gtk/WebKitWebsiteDataManager.cpp |  2 -
+ .../WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp |  1 -
+ Source/cmake/OptionsGTK.cmake                      |  5 +-
+ 11 files changed, 76 insertions(+), 43 deletions(-)
+
+diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake
+index 6981e37..417249e 100644
+--- a/Source/WebCore/PlatformGTK.cmake
++++ b/Source/WebCore/PlatformGTK.cmake
+@@ -21,16 +21,11 @@ list(APPEND WebCore_INCLUDE_DIRECTORIES
+     "${WEBCORE_DIR}/platform/geoclue"
+     "${WEBCORE_DIR}/platform/gtk"
+     "${WEBCORE_DIR}/platform/graphics/cairo"
+-    "${WEBCORE_DIR}/platform/graphics/egl"
+-    "${WEBCORE_DIR}/platform/graphics/glx"
+     "${WEBCORE_DIR}/platform/graphics/gtk"
+     "${WEBCORE_DIR}/platform/graphics/freetype"
+     "${WEBCORE_DIR}/platform/graphics/harfbuzz/"
+     "${WEBCORE_DIR}/platform/graphics/harfbuzz/ng"
+-    "${WEBCORE_DIR}/platform/graphics/opengl"
+     "${WEBCORE_DIR}/platform/graphics/opentype"
+-    "${WEBCORE_DIR}/platform/graphics/wayland"
+-    "${WEBCORE_DIR}/platform/graphics/x11"
+     "${WEBCORE_DIR}/platform/mediastream/gtk"
+     "${WEBCORE_DIR}/platform/mock/mediasource"
+     "${WEBCORE_DIR}/platform/network/gtk"
+@@ -83,11 +78,9 @@ list(APPEND WebCore_SOURCES
+     platform/glib/MainThreadSharedTimerGLib.cpp
+     platform/glib/SharedBufferGlib.cpp
+ 
+-    platform/graphics/GLContext.cpp
+     platform/graphics/GraphicsContext3DPrivate.cpp
+ 
+     platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp
+-    platform/graphics/cairo/BackingStoreBackendCairoX11.cpp
+     platform/graphics/cairo/CairoUtilities.cpp
+     platform/graphics/cairo/FloatRectCairo.cpp
+     platform/graphics/cairo/FontCairo.cpp
+@@ -106,18 +99,11 @@ list(APPEND WebCore_SOURCES
+     platform/graphics/cairo/RefPtrCairo.cpp
+     platform/graphics/cairo/TransformationMatrixCairo.cpp
+ 
+-    platform/graphics/egl/GLContextEGL.cpp
+-    platform/graphics/egl/GLContextEGLWayland.cpp
+-    platform/graphics/egl/GLContextEGLX11.cpp
+-
+     platform/graphics/freetype/FontCacheFreeType.cpp
+     platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp
+     platform/graphics/freetype/FontPlatformDataFreeType.cpp
+     platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp
+     platform/graphics/freetype/SimpleFontDataFreeType.cpp
+-
+-    platform/graphics/glx/GLContextGLX.cpp
+-
+     platform/graphics/gstreamer/ImageGStreamerCairo.cpp
+ 
+     platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
+@@ -125,18 +111,8 @@ list(APPEND WebCore_SOURCES
+     platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
+     platform/graphics/harfbuzz/HarfBuzzShaper.cpp
+ 
+-    platform/graphics/opengl/Extensions3DOpenGLCommon.cpp
+-    platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp
+-    platform/graphics/opengl/TemporaryOpenGLSetting.cpp
+-
+     platform/graphics/opentype/OpenTypeVerticalData.cpp
+ 
+-    platform/graphics/wayland/PlatformDisplayWayland.cpp
+-
+-    platform/graphics/x11/PlatformDisplayX11.cpp
+-    platform/graphics/x11/XErrorTrapper.cpp
+-    platform/graphics/x11/XUniqueResource.cpp
+-
+     platform/gtk/DragDataGtk.cpp
+     platform/gtk/ErrorsGtk.cpp
+     platform/gtk/MIMETypeRegistryGtk.cpp
+@@ -258,11 +234,6 @@ list(APPEND WebCore_LIBRARIES
+     ${LIBXSLT_LIBRARIES}
+     ${HYPHEN_LIBRARIES}
+     ${SQLITE_LIBRARIES}
+-    ${X11_X11_LIB}
+-    ${X11_Xcomposite_LIB}
+-    ${X11_Xdamage_LIB}
+-    ${X11_Xrender_LIB}
+-    ${X11_Xt_LIB}
+     ${ZLIB_LIBRARIES}
+     WTF
+ )
+@@ -296,11 +267,24 @@ if (USE_OPENGL_ES_2)
+ endif ()
+ 
+ if (USE_OPENGL)
++    list(APPEND WebCore_INCLUDE_DIRECTORIES
++        "${WEBCORE_DIR}/platform/graphics/opengl"
++        "${WEBCORE_DIR}/platform/graphics/egl"
++        "${WEBCORE_DIR}/platform/graphics/glx"
++    )
+     list(APPEND WebCore_SOURCES
++        platform/graphics/GLContext.cpp
+         platform/graphics/OpenGLShims.cpp
+ 
++        platform/graphics/egl/GLContextEGL.cpp
++
++        platform/graphics/glx/GLContextGLX.cpp
++
+         platform/graphics/opengl/Extensions3DOpenGL.cpp
+         platform/graphics/opengl/GraphicsContext3DOpenGL.cpp
++        platform/graphics/opengl/Extensions3DOpenGLCommon.cpp
++        platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp
++        platform/graphics/opengl/TemporaryOpenGLSetting.cpp
+     )
+ endif ()
+ 
+@@ -330,13 +314,49 @@ if (ENABLE_PLUGIN_PROCESS_GTK2)
+     )
+ endif ()
+ 
++if (ENABLE_X11_TARGET)
++    list(APPEND WebCore_INCLUDE_DIRECTORIES
++      "${WEBCORE_DIR}/platform/graphics/x11"
++    )
++    list(APPEND WebCore_SOURCES
++      platform/graphics/x11/PlatformDisplayX11.cpp
++      platform/graphics/x11/XErrorTrapper.cpp
++      platform/graphics/x11/XUniqueResource.cpp
++      platform/graphics/cairo/BackingStoreBackendCairoX11.cpp
++    )
++    list(APPEND WebCore_LIBRARIES
++      ${X11_X11_LIB}
++      ${X11_Xcomposite_LIB}
++      ${X11_Xdamage_LIB}
++      ${X11_Xrender_LIB}
++      ${X11_Xt_LIB}
++    )
++    if (USE_OPENGL)
++        list(APPEND WebCore_SOURCES
++          platform/graphics/egl/GLContextEGLX11.cpp
++        )
++    endif ()
++endif()
++
++
+ if (ENABLE_WAYLAND_TARGET)
++    list(APPEND WebCore_INCLUDE_DIRECTORIES
++      "${WEBCORE_DIR}/platform/graphics/wayland"
++    )
++    list(APPEND WebCore_SOURCES
++      platform/graphics/wayland/PlatformDisplayWayland.cpp
++    )
+     list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES
+         ${WAYLAND_INCLUDE_DIRS}
+     )
+     list(APPEND WebCore_LIBRARIES
+         ${WAYLAND_LIBRARIES}
+     )
++  if (USE_OPENGL)
++    list(APPEND WebCore_SOURCES
++         platform/graphics/egl/GLContextEGLWayland.cpp
++    )
++  endif ()
+ endif ()
+ 
+ add_library(WebCorePlatformGTK ${WebCore_LIBRARY_TYPE} ${WebCorePlatformGTK_SOURCES})
+diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
+index 597c666..8e2d43a 100644
+--- a/Source/WebCore/page/FrameView.cpp
++++ b/Source/WebCore/page/FrameView.cpp
+@@ -103,7 +103,7 @@
+ #include <wtf/SystemTracing.h>
+ 
+ #if USE(COORDINATED_GRAPHICS)
+-#include "TiledBackingStore.h"
++#include <texmap/coordinated/TiledBackingStore.h>
+ #endif
+ 
+ #if ENABLE(CSS_SCROLL_SNAP)
+diff --git a/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 
b/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
+index ff34266..9f7e93b 100644
+--- a/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
++++ b/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
+@@ -46,7 +46,7 @@
+ #include <wtf/text/StringBuilder.h>
+ 
+ #if USE(COORDINATED_GRAPHICS)
+-#include "ScrollingCoordinatorCoordinatedGraphics.h"
++#include <coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h>
+ #endif
+ 
+ #if ENABLE(WEB_REPLAY)
+diff --git a/Source/WebCore/platform/TextureMapper.cmake b/Source/WebCore/platform/TextureMapper.cmake
+index 1091a46..4cfcf1e 100644
+--- a/Source/WebCore/platform/TextureMapper.cmake
++++ b/Source/WebCore/platform/TextureMapper.cmake
+@@ -9,7 +9,6 @@ list(APPEND WebCore_SOURCES
+     platform/graphics/texmap/TextureMapperAnimation.cpp
+     platform/graphics/texmap/TextureMapperBackingStore.cpp
+     platform/graphics/texmap/TextureMapperFPSCounter.cpp
+-    platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp
+     platform/graphics/texmap/TextureMapperLayer.cpp
+     platform/graphics/texmap/TextureMapperTile.cpp
+     platform/graphics/texmap/TextureMapperTiledBackingStore.cpp
+@@ -19,6 +18,7 @@ if (USE_TEXTURE_MAPPER_GL)
+     list(APPEND WebCore_SOURCES
+         platform/graphics/texmap/BitmapTextureGL.cpp
+         platform/graphics/texmap/ClipStack.cpp
++        platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp
+         platform/graphics/texmap/TextureMapperGL.cpp
+         platform/graphics/texmap/TextureMapperShaderProgram.cpp
+     )
+@@ -42,8 +42,12 @@ if (USE_COORDINATED_GRAPHICS)
+ endif ()
+ 
+ if (ENABLE_THREADED_COMPOSITOR)
++    if (USE_TEXTURE_MAPPER_GL)
++        list(APPEND WebCore_SOURCES
++            platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp
++        )
++    endif()
+     list(APPEND WebCore_SOURCES
+-        platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp
+         platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp
+     )
+ endif ()
+diff --git a/Source/WebCore/platform/graphics/PlatformDisplay.cpp 
b/Source/WebCore/platform/graphics/PlatformDisplay.cpp
+index e387bf9..d4c1bd9 100644
+--- a/Source/WebCore/platform/graphics/PlatformDisplay.cpp
++++ b/Source/WebCore/platform/graphics/PlatformDisplay.cpp
+@@ -25,8 +25,9 @@
+ 
+ #include "config.h"
+ #include "PlatformDisplay.h"
+-
++#if ENABLE(OPENGL)
+ #include "GLContext.h"
++#endif
+ #include <cstdlib>
+ #include <mutex>
+ 
+diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp 
b/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
+index ecb31b4..d88498c 100644
+--- a/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
++++ b/Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp
+@@ -24,7 +24,7 @@
+ #include "GraphicsContext.h"
+ #include "TiledBackingStoreClient.h"
+ #include <wtf/CheckedArithmetic.h>
+-#include <wtf/MemoryPressureHandler.h>
++#include "MemoryPressureHandler.h"
+ 
+ namespace WebCore {
+ 
+diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
+index 2c6bc5f..a73d5eb 100644
+--- a/Source/WebKit2/PlatformGTK.cmake
++++ b/Source/WebKit2/PlatformGTK.cmake
+@@ -59,6 +59,12 @@ list(APPEND WebKit2_SOURCES
+ 
+     Shared/Authentication/soup/AuthenticationManagerSoup.cpp
+ 
++    Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp
++    Shared/CoordinatedGraphics/SimpleViewportController.cpp
++
++    Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp
++    Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
++
+     Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
+ 
+     Shared/Plugins/unix/PluginSearchPath.cpp
+@@ -491,6 +497,13 @@ list(APPEND WebKit2_SOURCES
+     WebProcess/soup/WebProcessSoup.cpp
+ )
+ 
++if (ENABLE_OPENGL)
++   list(APPEND WebKit2_SOURCES
++       Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp
++       Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp
++  )
++endif()
++
+ list(APPEND WebKit2_DERIVED_SOURCES
+     ${DERIVED_SOURCES_WEBKIT2GTK_DIR}/InspectorGResourceBundle.c
+     ${DERIVED_SOURCES_WEBKIT2GTK_DIR}/WebKit2InspectorGResourceBundle.c
+diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteData.cpp 
b/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteData.cpp
+index 59dea58..6ffd597 100644
+--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteData.cpp
++++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteData.cpp
+@@ -73,7 +73,6 @@ static bool recordContainsSupportedDataTypes(const WebsiteDataRecord& record)
+         WebsiteDataType::LocalStorage,
+         WebsiteDataType::WebSQLDatabases,
+         WebsiteDataType::IndexedDBDatabases,
+-        WebsiteDataType::PlugInData,
+         WebsiteDataType::Cookies
+     };
+     return record.types.contains(typesSupported);
+@@ -96,8 +95,6 @@ static WebKitWebsiteDataTypes toWebKitWebsiteDataTypes(OptionSet<WebsiteDataType
+         returnValue |= WEBKIT_WEBSITE_DATA_WEBSQL_DATABASES;
+     if (types.contains(WebsiteDataType::IndexedDBDatabases))
+         returnValue |= WEBKIT_WEBSITE_DATA_INDEXEDDB_DATABASES;
+-    if (types.contains(WebsiteDataType::PlugInData))
+-        returnValue |= WEBKIT_WEBSITE_DATA_PLUGIN_DATA;
+     if (types.contains(WebsiteDataType::Cookies))
+         returnValue |= WEBKIT_WEBSITE_DATA_COOKIES;
+     return static_cast<WebKitWebsiteDataTypes>(returnValue);
+diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp 
b/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp
+index 5bc8775..510e30c 100644
+--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp
++++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp
+@@ -641,8 +641,6 @@ static OptionSet<WebsiteDataType> toWebsiteDataTypes(WebKitWebsiteDataTypes type
+         returnValue |= WebsiteDataType::WebSQLDatabases;
+     if (types & WEBKIT_WEBSITE_DATA_INDEXEDDB_DATABASES)
+         returnValue |= WebsiteDataType::IndexedDBDatabases;
+-    if (types & WEBKIT_WEBSITE_DATA_PLUGIN_DATA)
+-        returnValue |= WebsiteDataType::PlugInData;
+     if (types & WEBKIT_WEBSITE_DATA_COOKIES)
+         returnValue |= WebsiteDataType::Cookies;
+     return returnValue;
+diff --git a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp 
b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
+index a2da574..5fb5648 100644
+--- a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
++++ b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
+@@ -100,7 +100,6 @@ void DrawingAreaImpl::scroll(const IntRect& scrollRect, const IntSize& scrollDel
+ 
+     if (m_previousLayerTreeHost)
+         m_previousLayerTreeHost->scrollNonCompositedContents(scrollRect);
+-
+     if (!m_scrollRect.isEmpty() && scrollRect != m_scrollRect) {
+         unsigned scrollArea = scrollRect.width() * scrollRect.height();
+         unsigned currentScrollArea = m_scrollRect.width() * m_scrollRect.height();
+diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
+index 6efb76b..c0696b7 100644
+--- a/Source/cmake/OptionsGTK.cmake
++++ b/Source/cmake/OptionsGTK.cmake
+@@ -280,6 +280,7 @@ if (ENABLE_MEDIA_STREAM OR ENABLE_WEB_RTC)
+ endif ()
+ 
+ SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER TRUE)
++SET_AND_EXPOSE_TO_BUILD(USE_COORDINATED_GRAPHICS TRUE)
+ 
+ if (ENABLE_OPENGL)
+     # ENABLE_OPENGL is true if either USE_OPENGL or ENABLE_GLES2 is true.
+@@ -312,8 +313,8 @@ if (ENABLE_OPENGL)
+         SET_AND_EXPOSE_TO_BUILD(USE_GLX TRUE)
+     endif ()
+ 
+-    SET_AND_EXPOSE_TO_BUILD(USE_COORDINATED_GRAPHICS ${ENABLE_THREADED_COMPOSITOR})
+-    SET_AND_EXPOSE_TO_BUILD(USE_COORDINATED_GRAPHICS_THREADED ${ENABLE_THREADED_COMPOSITOR})
++    SET_AND_EXPOSE_TO_BUILD(USE_COORDINATED_GRAPHICS_THREADED TRUE)
++
+ endif ()
+ 
+ if (ENABLE_PLUGIN_PROCESS_GTK2)
+-- 
+2.2.2
+
diff --git a/patches/glibmm-Bug-781947-Build-fails-on-MacOS-because-glib-doesn-t.patch 
b/patches/glibmm-Bug-781947-Build-fails-on-MacOS-because-glib-doesn-t.patch
new file mode 100644
index 0000000..465d9f5
--- /dev/null
+++ b/patches/glibmm-Bug-781947-Build-fails-on-MacOS-because-glib-doesn-t.patch
@@ -0,0 +1,68 @@
+From 2298406004115614c30554cb189f5e9ce2919326 Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Sat, 29 Apr 2017 10:37:46 -0700
+Subject: [PATCH] Bug 781947 - Build fails on MacOS because glib doesn't have
+ gdesktopinfo.
+
+Disable building desktopapinfo.cpp with the same test used in glib.
+---
+ configure.ac        | 12 ++++++++++++
+ gio/src/filelist.am |  8 +++++++-
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 02352bd..e19f212 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,6 +55,18 @@ AS_CASE([$host_os], [mingw*], [glibmm_host_windows=yes], [glibmm_host_windows=no
+ AC_MSG_RESULT([$glibmm_host_windows])
+ AM_CONDITIONAL([HOST_WINDOWS_NATIVE], [test "x$glibmm_host_windows" = xyes])
+ 
++glib_have_cocoa=no
++AC_MSG_CHECKING([for Mac OS X Cocoa support])
++AC_TRY_CPP([
++#include <Cocoa/Cocoa.h>
++#ifdef GNUSTEP_BASE_VERSION
++#error "Detected GNUstep, not Cocoa"
++#endif
++], glib_have_cocoa=yes)
++
++AC_MSG_RESULT([$glib_have_cocoa])
++AM_CONDITIONAL(OS_COCOA, [test "$glib_have_cocoa" = "yes"])
++
+ # TODO: This makes no sense. --danielk
+ AS_IF([test "x$enable_static" = xyes],
+ [
+diff --git a/gio/src/filelist.am b/gio/src/filelist.am
+index 0095128..31339d3 100644
+--- a/gio/src/filelist.am
++++ b/gio/src/filelist.am
+@@ -136,7 +136,6 @@ giomm_files_any_hg =                       \
+       zlibcompressor.hg
+ 
+ giomm_files_posix_hg =                        \
+-      desktopappinfo.hg               \
+       unixconnection.hg               \
+       unixcredentialsmessage.hg       \
+       unixfdlist.hg                   \
+@@ -145,10 +144,17 @@ giomm_files_posix_hg =                   \
+       unixoutputstream.hg             \
+       unixsocketaddress.hg
+ 
++giomm_files_not_mac =                 \
++      desktopappinfo.hg
++
+ if HOST_WINDOWS_NATIVE
+ giomm_files_arch_hg =
+ else
++if OS_COCOA
+ giomm_files_arch_hg = $(giomm_files_posix_hg)
++else
++giomm_files_arch_hg = $(giomm_files_not_mac) $(giomm_files_posix_hg)
++endif
+ endif
+ giomm_files_used_hg = $(giomm_files_any_hg) $(giomm_files_arch_hg)
+ 
+-- 
+2.2.2
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]