[DRE-commits] [ruby-gnome2] 10/31: New upstream version 3.0.4

Daisuke Higuchi dai at moszumanska.debian.org
Mon Oct 10 13:40:18 UTC 2016


This is an automated email from the git hooks/post-receive script.

dai pushed a commit to branch exp/debian
in repository ruby-gnome2.

commit b7d053464af3106f4a016961f874e2966e184e2f
Author: HIGUCHI Daisuke (VDR dai) <dai at debian.org>
Date:   Sun Oct 9 21:56:30 2016 +0900

    New upstream version 3.0.4
---
 Gemfile                                            |   2 +-
 NEWS                                               | 107 +++++++++++++++++
 atk/ext/atk/extconf.rb                             |   1 +
 atk/lib/atk.rb                                     |  34 ++++++
 atk/test/test-version.rb                           |  47 ++++++++
 build/build-windows.sh                             |   1 +
 cairo-gobject/Rakefile                             |   1 -
 cairo-gobject/ext/cairo-gobject/extconf.rb         |   1 +
 clutter-gstreamer/Rakefile                         |   5 +-
 clutter-gstreamer/lib/clutter-gst.rb               |   7 ++
 .../clutter-gst/version.rb}                        |  23 +++-
 ...0-remove-introspection-compiler-dependency.diff |  12 ++
 .../sample/{ => 2.0}/media-actions-pause.png       | Bin
 .../sample/{ => 2.0}/media-actions-start.png       | Bin
 clutter-gstreamer/sample/{ => 2.0}/vid-panel.png   | Bin
 clutter-gstreamer/sample/{ => 2.0}/video-player.rb |   2 +
 .../sample/{ => 2.0}/video-sink-navigation.rb      |   2 +
 clutter-gstreamer/sample/{ => 2.0}/video-sink.rb   |   2 +
 .../test/clutter-gstreamer-test-utils.rb           |  17 ++-
 clutter-gstreamer/test/test-clutter-gst-version.rb |  47 ++++++++
 .../test/test-clutter-gst-video-sink.rb            |   9 ++
 clutter-gtk/Rakefile                               |   1 -
 clutter/Rakefile                                   |   1 -
 gdk3/lib/gdk3/loader.rb                            |  58 ++++-----
 gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb             |   1 +
 gdk_pixbuf2/lib/gdk_pixbuf2.rb                     |  38 +++++-
 .../test/gdk_pixbuf2-test-utils.rb                 |   9 +-
 .../test/run-test.rb                               |  46 +++----
 gdk_pixbuf2/test/test-version.rb                   |  47 ++++++++
 gio2/ext/gio2/extconf.rb                           |   1 +
 glib2/ext/glib2/extconf.rb                         |   1 +
 glib2/ext/glib2/rbglib.h                           |   2 +-
 glib2/lib/gnome2/rake/windows-binary-build-task.rb |  22 +++-
 glib2/lib/mkmf-gnome2.rb                           |   4 +
 gobject-introspection/Rakefile                     |  33 ------
 .../ext/gobject-introspection/extconf.rb           |   1 +
 gstreamer/Rakefile                                 |   7 ++
 gstreamer/ext/gstreamer/extconf.rb                 |   1 +
 ...2-remove-introspection-compiler-dependency.diff |  36 ++++++
 ...2-remove-introspection-compiler-dependency.diff | 132 +++++++++++++++++++++
 ...2-remove-introspection-compiler-dependency.diff |  60 ++++++++++
 gtk2/ext/gtk2/extconf.rb                           |   1 +
 gtk3/ext/gtk3/extconf.rb                           |   1 +
 gtk3/sample/tutorial/README.md                     |  82 +++++++++++++
 gtk3/test/gtk-test-utils.rb                        |   8 ++
 gtk3/test/test-gtk-color-chooser-dialog.rb         |   2 +-
 gtk3/test/test-gtk-font-chooser-dialog.rb          |   2 +-
 pango/ext/pango/extconf.rb                         |   1 +
 poppler/ext/poppler/extconf.rb                     |   1 +
 rsvg2/ext/rsvg2/extconf.rb                         |   1 +
 webkit-gtk/Rakefile                                |   1 -
 webkit-gtk2/Rakefile                               |   1 -
 webkit2-gtk/Rakefile                               |  12 +-
 .../patches/webkitgtk-2.9.92-try-buildable.diff    |  54 +++++++++
 54 files changed, 870 insertions(+), 118 deletions(-)

diff --git a/Gemfile b/Gemfile
index d61b49e..c26c22a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -19,7 +19,7 @@ source "https://rubygems.org/"
 gem "rake"
 gem "pkg-config"
 gem "cairo"
-gem "test-unit-notify"
+gem "test-unit"
 
 local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
 if File.exists?(local_gemfile)
diff --git a/NEWS b/NEWS
index 13464bd..6859b46 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,113 @@
 
 = NEWS
 
+== Ruby-GNOME2 3.0.4: 2015-09-21
+
+It is a build fix release for 32bit Windows.
+
+=== Changes
+
+==== All
+
+  * Improvements
+    * Supported auto native package installation on Arch Linux.
+      [GitHub#553][GitHub#563] [Patch by lilole]
+
+==== Ruby/GObjctIntrospection
+
+  * Fixes
+    * 32bit Windows: Fixed strut field accessors access wrong address.
+
+==== Ruby/ATK
+
+  * Improvements
+    * Added (({Atk::Version.or_later?}))
+      [GitHub#552] [Patch by cedlemo]
+
+==== Ruby/GdkPixbuf2
+
+  * Improvements
+    * Added (({Gdk::Pixbuf::Version.or_later?})).
+      [GitHub#561] [Patch by cedlemo]
+
+==== Ruby/GDK3
+
+  * Improvements
+    * Supported GTK+ 3.17.9.
+      [GitHub#558] [Reported by Mamoru TASAKA]
+
+==== Ruby/GTK3
+
+  * Improvements
+    * Updated examples.
+      [GitHub#550] [Patch by cedlemo]
+
+==== Ruby/ClutterGstreamer
+
+  * Improvements
+    * Added (({ClutterGst.load_version})).
+    * Added (({ClutterGst.load_version=})).
+    * Added (({ClutterGst::Version.or_later?})).
+      [GitHub#556] [Patch by cedlemo]
+
+=== Thanks
+
+  * cedlemo
+  * lilole
+  * Mamoru TASAKA
+
+== Ruby-GNOME2 3.0.3: 2015-09-16
+
+It is a compatibility improvement release of 3.0.2.
+
+=== Changes
+
+==== All
+
+  * Improvements
+    * Removed test-unit-notify gem from development dependencies.
+      [GitHub#547] [Patch by cedlemo]
+
+==== Ruby/GObjectIntrospection
+
+  * Improvements
+    * Supported (({GObjectIntrospection::Repository.prepend_search_path})).
+    * Supported (({GObjectIntrospection::Repository.search_path})).
+    * Windows: Supported requiring library after one
+      (({GObjectIntrospection::Loader#load})).
+      [GitHub#546] [Reported by Abby Archer]
+
+
+==== Ruby/GTK3
+
+  * Improvements
+    * Supported (({Gtk::IconSize.lookup})).
+      [GitHub#544] [Reported by Masafumi Yokoyama]
+    * Supported size name as argument of (({Gtk::Widget#render_icon_pixbuf})).
+      [GitHub#544] [Reported by Masafumi Yokoyama]
+    * Supported (({Gio::Icon})) in (({Gtk::IconTheme#lookup_icon})).
+      [GitHub#544] [Reported by Masafumi Yokoyama]
+    * Supported (({Gtk::TreeModel#iter_parent})).
+    * Supported (({Gtk::TreeIter#parent})).
+    * Updated examples.
+      [GitHub#548] [Patch by cedlemo]
+
+  * Fixes
+    * Fixed a bug that (({Gtk::Widget.bind_template_child})) is
+      required. [GitHub#549] [Reported by cedlemo]
+    * Fixed a bug that default (({x_option})) and (({y_option}))
+      values of (({Gtk::Table#attach})) is wrong.
+      [GitHub#546] [Reported by Abby Archer]
+    * Windows: Fixed a bug that Ruby/RSVG2 isn't required
+      automatically.
+      [GitHub#546] [Reported by Abby Archer]
+
+=== Thanks
+
+  * Masafumi Yokoyama
+  * cedlemo
+  * Abby Archer
+
 == Ruby-GNOME2 3.0.2: 2015-09-13
 
 It is a compatibility improvement release of 3.0.1.
diff --git a/atk/ext/atk/extconf.rb b/atk/ext/atk/extconf.rb
index c194286..aef1a80 100644
--- a/atk/ext/atk/extconf.rb
+++ b/atk/ext/atk/extconf.rb
@@ -47,6 +47,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 1, 12, 0],
                                    :debian => "libatk1.0-dev",
                                    :redhat => "atk-devel",
+                                   :arch => "atk",
                                    :homebrew => "atk",
                                    :macports => "atk")
   exit(false)
diff --git a/atk/lib/atk.rb b/atk/lib/atk.rb
index d03b24f..8758f8d 100644
--- a/atk/lib/atk.rb
+++ b/atk/lib/atk.rb
@@ -1,3 +1,19 @@
+# Copyright (C) 2015  Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
 require 'glib2'
 
 base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
@@ -19,3 +35,21 @@ if vendor_dir.exist?
   rescue LoadError
   end
 end
+
+module Atk
+  module Version
+    MAJOR, MINOR, MICRO = Atk::BUILD_VERSION
+    STRING = Atk::BUILD_VERSION.join(".")
+    class << self
+      def or_later?(major, minor, micro=nil)
+        micro ||= 0
+        version = [
+          MAJOR,
+          MINOR,
+          MICRO,
+        ]
+        (version <=> [major, minor, micro]) >= 0
+      end
+    end
+  end
+end
diff --git a/atk/test/test-version.rb b/atk/test/test-version.rb
new file mode 100644
index 0000000..0b4e2ce
--- /dev/null
+++ b/atk/test/test-version.rb
@@ -0,0 +1,47 @@
+# Copyright (C) 2015  Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+class TestAtkVersion < Test::Unit::TestCase
+  include AtkTestUtils
+
+  test "STRING" do
+    major = Atk::Version::MAJOR
+    minor = Atk::Version::MINOR
+    micro = Atk::Version::MICRO
+    assert_equal([major, minor, micro].join("."),
+                 Atk::Version::STRING)
+  end
+
+  sub_test_case("#or_later?") do
+    test "same" do
+      assert_true(Atk::Version.or_later?(Atk::Version::MAJOR,
+                                             Atk::Version::MINOR,
+                                             Atk::Version::MICRO))
+    end
+
+    test "later" do
+      assert_true(Atk::Version.or_later?(Atk::Version::MAJOR,
+                                         Atk::Version::MINOR - 1,
+                                         Atk::Version::MICRO))
+    end
+
+    test "earlier" do
+      assert_false(Atk::Version.or_later?(Atk::Version::MAJOR,
+                                          Atk::Version::MINOR + 1,
+                                          Atk::Version::MICRO))
+    end
+  end
+end
diff --git a/build/build-windows.sh b/build/build-windows.sh
index d6ffc02..375e684 100755
--- a/build/build-windows.sh
+++ b/build/build-windows.sh
@@ -72,6 +72,7 @@ if [ ! -f ~/setup.timestamp ]; then
     until [ -f ~/.wine/system.reg ]; do
       sleep 1
     done
+    sleep 1
     wine_home="z:/home/vagrant"
     wine_rcairo="${wine_home}/rcairo.${DIRECTORY_SUFFIX}"
     wine_ruby_gnome2="${wine_home}/ruby-gnome2.${DIRECTORY_SUFFIX}"
diff --git a/cairo-gobject/Rakefile b/cairo-gobject/Rakefile
index 0925356..d4b1091 100644
--- a/cairo-gobject/Rakefile
+++ b/cairo-gobject/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/CairoGObject is a Ruby binding of cairo-gobject."
   package.description = "Ruby/CairoGObject is a Ruby binding of cairo-gobject."
   package.dependency.gem.runtime = ["cairo", "glib2"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = ["cairo", "glib2"]
diff --git a/cairo-gobject/ext/cairo-gobject/extconf.rb b/cairo-gobject/ext/cairo-gobject/extconf.rb
index 72084ba..411ca63 100755
--- a/cairo-gobject/ext/cairo-gobject/extconf.rb
+++ b/cairo-gobject/ext/cairo-gobject/extconf.rb
@@ -63,6 +63,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package(package_id,
                                    :debian => "libcairo2-dev",
                                    :fedora => "cairo-gobject-devel",
+                                   :arch => "cairo",
                                    :homebrew => "cairo")
   exit(false)
 end
diff --git a/clutter-gstreamer/Rakefile b/clutter-gstreamer/Rakefile
index 13baad2..4a675d7 100644
--- a/clutter-gstreamer/Rakefile
+++ b/clutter-gstreamer/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/ClutterGStreamer is a Ruby binding of Clutter-GStreamer."
   package.description = "Ruby/ClutterGStreamer is a Ruby binding of Clutter-GStreamer."
   package.dependency.gem.runtime = ["gdk_pixbuf2", "clutter", "gstreamer"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = [
@@ -53,6 +52,10 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
         :configure_args => [
           "--enable-introspection",
         ],
+        :patches => [
+          "clutter-gst-3.0.10-remove-introspection-compiler-dependency.diff",
+        ],
+        :need_autoreconf => true,
         :built_file => "bin/libclutter-gst-3.0-0.dll",
       },
     }
diff --git a/clutter-gstreamer/lib/clutter-gst.rb b/clutter-gstreamer/lib/clutter-gst.rb
index 34fad8f..c5c5324 100644
--- a/clutter-gstreamer/lib/clutter-gst.rb
+++ b/clutter-gstreamer/lib/clutter-gst.rb
@@ -30,6 +30,8 @@ module ClutterGst
   GLib::Log.set_log_domain(LOG_DOMAIN)
 
   class << self
+    attr_accessor :load_version
+
     def const_missing(name)
       init
       if const_defined?(name)
@@ -46,11 +48,15 @@ module ClutterGst
       end
       Gst.init if Gst.respond_to?(:init)
       Clutter.init if Clutter.respond_to?(:init)
+
       loader = Loader.new(self, argv)
+      loader.version = load_version
       loader.load
     end
   end
 
+  self.load_version = nil
+
   class Loader < GObjectIntrospection::Loader
     NAMESPACE = "ClutterGst"
 
@@ -80,6 +86,7 @@ module ClutterGst
     end
 
     def post_load(repository, namespace)
+      require "clutter-gst/version"
     end
 
     def initialize_post(object)
diff --git a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb b/clutter-gstreamer/lib/clutter-gst/version.rb
similarity index 65%
copy from clutter-gstreamer/test/test-clutter-gst-video-sink.rb
copy to clutter-gstreamer/lib/clutter-gst/version.rb
index 9f4ab24..8c53f94 100644
--- a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb
+++ b/clutter-gstreamer/lib/clutter-gst/version.rb
@@ -14,12 +14,23 @@
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
-class ClutterGstVideoSinkTest < Test::Unit::TestCase
-  include ClutterGStreamerTestUtils
+module ClutterGst
+  module Version
+    MAJOR = ClutterGst::MAJOR_VERSION
+    MINOR = ClutterGst::MINOR_VERSION
+    MICRO = ClutterGst::MICRO_VERSION
+    STRING = ClutterGst::VERSION_S
 
-  def test_texture
-    texture = Clutter::Texture.new
-    sink = ClutterGst::VideoSink.new(texture)
-    assert_equal(texture, sink.texture)
+    class << self
+      def or_later?(major, minor, micro=nil)
+        micro ||= 0
+        version = [
+          MAJOR,
+          MINOR,
+          MICRO,
+        ]
+        (version <=> [major, minor, micro]) >= 0
+      end
+    end
   end
 end
diff --git a/clutter-gstreamer/patches/clutter-gst-3.0.10-remove-introspection-compiler-dependency.diff b/clutter-gstreamer/patches/clutter-gst-3.0.10-remove-introspection-compiler-dependency.diff
new file mode 100644
index 0000000..f48f69d
--- /dev/null
+++ b/clutter-gstreamer/patches/clutter-gst-3.0.10-remove-introspection-compiler-dependency.diff
@@ -0,0 +1,12 @@
+diff -ru clutter-gst-3.0.10.orig/clutter-gst/Makefile.am clutter-gst-3.0.10/clutter-gst/Makefile.am
+--- clutter-gst-3.0.10.orig/clutter-gst/Makefile.am	2015-07-10 19:21:22.000000000 +0900
++++ clutter-gst-3.0.10/clutter-gst/Makefile.am	2015-09-21 16:09:34.421323846 +0900
+@@ -185,7 +185,7 @@
+ typelibsdir = $(libdir)/girepository-1.0/
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(QUIET_GEN)$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=. \
diff --git a/clutter-gstreamer/sample/media-actions-pause.png b/clutter-gstreamer/sample/2.0/media-actions-pause.png
similarity index 100%
rename from clutter-gstreamer/sample/media-actions-pause.png
rename to clutter-gstreamer/sample/2.0/media-actions-pause.png
diff --git a/clutter-gstreamer/sample/media-actions-start.png b/clutter-gstreamer/sample/2.0/media-actions-start.png
similarity index 100%
rename from clutter-gstreamer/sample/media-actions-start.png
rename to clutter-gstreamer/sample/2.0/media-actions-start.png
diff --git a/clutter-gstreamer/sample/vid-panel.png b/clutter-gstreamer/sample/2.0/vid-panel.png
similarity index 100%
rename from clutter-gstreamer/sample/vid-panel.png
rename to clutter-gstreamer/sample/2.0/vid-panel.png
diff --git a/clutter-gstreamer/sample/video-player.rb b/clutter-gstreamer/sample/2.0/video-player.rb
similarity index 99%
rename from clutter-gstreamer/sample/video-player.rb
rename to clutter-gstreamer/sample/2.0/video-player.rb
index fee05e7..a7cd1f5 100755
--- a/clutter-gstreamer/sample/video-player.rb
+++ b/clutter-gstreamer/sample/2.0/video-player.rb
@@ -31,6 +31,8 @@ require "optparse"
 
 require "clutter-gst"
 
+ClutterGst.load_version = "2.0"
+
 SEEK_H = 14
 SEEK_W = 440
 
diff --git a/clutter-gstreamer/sample/video-sink-navigation.rb b/clutter-gstreamer/sample/2.0/video-sink-navigation.rb
similarity index 98%
rename from clutter-gstreamer/sample/video-sink-navigation.rb
rename to clutter-gstreamer/sample/2.0/video-sink-navigation.rb
index fa25ca4..d31719c 100755
--- a/clutter-gstreamer/sample/video-sink-navigation.rb
+++ b/clutter-gstreamer/sample/2.0/video-sink-navigation.rb
@@ -28,6 +28,8 @@
 
 require "clutter-gst"
 
+ClutterGst.load_version = "2.0"
+
 stage = Clutter::Stage.new
 stage.user_resizable = true
 stage.signal_connect("destroy") do
diff --git a/clutter-gstreamer/sample/video-sink.rb b/clutter-gstreamer/sample/2.0/video-sink.rb
similarity index 98%
rename from clutter-gstreamer/sample/video-sink.rb
rename to clutter-gstreamer/sample/2.0/video-sink.rb
index 8a5c5f3..40db9d9 100755
--- a/clutter-gstreamer/sample/video-sink.rb
+++ b/clutter-gstreamer/sample/2.0/video-sink.rb
@@ -28,6 +28,8 @@
 
 require "clutter-gst"
 
+ClutterGst.load_version = "2.0"
+
 stage = Clutter::Stage.new
 stage.signal_connect("destroy") do
   Clutter.main_quit
diff --git a/clutter-gstreamer/test/clutter-gstreamer-test-utils.rb b/clutter-gstreamer/test/clutter-gstreamer-test-utils.rb
index 417a5de..bf38806 100644
--- a/clutter-gstreamer/test/clutter-gstreamer-test-utils.rb
+++ b/clutter-gstreamer/test/clutter-gstreamer-test-utils.rb
@@ -17,20 +17,17 @@
 require "test-unit"
 
 module ClutterGStreamerTestUtils
-  def later_version?(major, minor, micro=nil)
+  def only_clutter_gstreamer_version(major, minor, micro=nil)
     micro ||= 0
-    clutter_gstreamer_version = [
-      ClutterGst::MAJOR_VERSION,
-      ClutterGst::MINOR_VERSION,
-      ClutterGst::MICRO_VERSION,
-    ]
-    (clutter_gstreamer_version <=> [major, minor, micro]) >= 0
+    unless ClutterGst::Version.or_later?(major, minor, micro)
+      omit("Require Clutter-GStreamer >= #{major}.#{minor}.#{micro}")
+    end
   end
 
-  def only_clutter_gstreamer_version(major, minor, micro=nil)
+  def only_older_clutter_gstreamer_version(major, minor, micro=nil)
     micro ||= 0
-    unless later_version?(major, minor, micro)
-      omit("Require Clutter-GStreamer >= #{major}.#{minor}.#{micro}")
+    if ClutterGst::Version.or_later?(major, minor, micro)
+      omit("Require Clutter-GStreamer < #{major}.#{minor}.#{micro}")
     end
   end
 
diff --git a/clutter-gstreamer/test/test-clutter-gst-version.rb b/clutter-gstreamer/test/test-clutter-gst-version.rb
new file mode 100644
index 0000000..f7248f5
--- /dev/null
+++ b/clutter-gstreamer/test/test-clutter-gst-version.rb
@@ -0,0 +1,47 @@
+# Copyright (C) 2015  Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+class TestClutterGstVersion < Test::Unit::TestCase
+  include ClutterGStreamerTestUtils
+
+  test "STRING" do
+    major = ClutterGst::Version::MAJOR
+    minor = ClutterGst::Version::MINOR
+    micro = ClutterGst::Version::MICRO
+    assert_equal([major, minor, micro].join("."),
+                 ClutterGst::Version::STRING)
+  end
+
+  sub_test_case("#or_later?") do
+    test "same" do
+      assert_true(ClutterGst::Version.or_later?(ClutterGst::Version::MAJOR,
+                                                ClutterGst::Version::MINOR,
+                                                ClutterGst::Version::MICRO))
+    end
+
+    test "later" do
+      assert_true(ClutterGst::Version.or_later?(ClutterGst::Version::MAJOR,
+                                                ClutterGst::Version::MINOR - 1,
+                                                ClutterGst::Version::MICRO))
+    end
+
+    test "earlier" do
+      assert_false(ClutterGst::Version.or_later?(ClutterGst::Version::MAJOR,
+                                                 ClutterGst::Version::MINOR + 1,
+                                                 ClutterGst::Version::MICRO))
+    end
+  end
+end
diff --git a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb b/clutter-gstreamer/test/test-clutter-gst-video-sink.rb
index 9f4ab24..4389d77 100644
--- a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb
+++ b/clutter-gstreamer/test/test-clutter-gst-video-sink.rb
@@ -18,8 +18,17 @@ class ClutterGstVideoSinkTest < Test::Unit::TestCase
   include ClutterGStreamerTestUtils
 
   def test_texture
+    only_older_clutter_gstreamer_version(3, 0)
     texture = Clutter::Texture.new
     sink = ClutterGst::VideoSink.new(texture)
     assert_equal(texture, sink.texture)
   end
+
+  test "#ready?" do
+    only_clutter_gstreamer_version(3, 0)
+    sink = ClutterGst::VideoSink.new
+    assert do
+      not sink.ready?
+    end
+  end
 end
diff --git a/clutter-gtk/Rakefile b/clutter-gtk/Rakefile
index 4d80fe2..2e78ed1 100644
--- a/clutter-gtk/Rakefile
+++ b/clutter-gtk/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/ClutterGTK is a Ruby binding of Clutter-GTK."
   package.description = "Ruby/ClutterGTK is a Ruby binding of Clutter-GTK."
   package.dependency.gem.runtime = ["clutter", "gtk3"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = [
diff --git a/clutter/Rakefile b/clutter/Rakefile
index 3791c69..9b9c14f 100644
--- a/clutter/Rakefile
+++ b/clutter/Rakefile
@@ -27,7 +27,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
     "gobject-introspection",
     "pango"
   ]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = [
diff --git a/gdk3/lib/gdk3/loader.rb b/gdk3/lib/gdk3/loader.rb
index 43f5d57..8d5469f 100644
--- a/gdk3/lib/gdk3/loader.rb
+++ b/gdk3/lib/gdk3/loader.rb
@@ -34,7 +34,6 @@ module Gdk
       setup_pending_rectangle_functions
       define_keyval_module
       define_selection_module
-      load_cairo_rectangle_int
     end
 
     def define_keyval_module
@@ -47,27 +46,6 @@ module Gdk
       @base_module.const_set("Selection", @selection_module)
     end
 
-    def load_cairo_rectangle_int
-      info = find_cairo_rectangle_int_info
-      klass = self.class.define_class(info.gtype,
-                                      "Rectangle",
-                                      @base_module,
-                                      :size => info.size)
-      @rectangle_class = klass
-      load_fields(info, klass)
-      load_methods(info, klass)
-    end
-
-    def find_cairo_rectangle_int_info
-      repository = GObjectIntrospection::Repository.default
-      repository.each("cairo") do |info|
-        if info.name == "RectangleInt"
-          return info
-        end
-      end
-      nil
-    end
-
     def post_load(repository, namespace)
       apply_pending_constants
       apply_pending_rectangle_functions
@@ -102,17 +80,43 @@ module Gdk
 
     def apply_pending_rectangle_functions
       get_type_info = @pending_rectangle_get_type_function
-      gtype = get_type_info.invoke({:arguments => []})
-      self.class.register_boxed_class_converter(gtype) do |rectangle|
-        @rectangle_class
+      if get_type_info
+        rectangle_class = load_cairo_rectangle_int
+        gtype = get_type_info.invoke({:arguments => []})
+        self.class.register_boxed_class_converter(gtype) do |rectangle|
+          rectangle_class
+        end
+      else
+        rectangle_class = @base_module.const_get(:Rectangle)
       end
 
       @pending_rectangle_functions.each do |info|
-        name = info.name
-        define_method(info, @rectangle_class, name.gsub(/\Arectangle_/, ""))
+        name = rubyish_method_name(info, :prefix => "rectangle_")
+        define_method(info, rectangle_class, name)
       end
     end
 
+    def load_cairo_rectangle_int
+      info = find_cairo_rectangle_int_info
+      klass = self.class.define_class(info.gtype,
+                                      "Rectangle",
+                                      @base_module,
+                                      :size => info.size)
+      load_fields(info, klass)
+      load_methods(info, klass)
+      klass
+    end
+
+    def find_cairo_rectangle_int_info
+      repository = GObjectIntrospection::Repository.default
+      repository.each("cairo") do |info|
+        if info.name == "RectangleInt"
+          return info
+        end
+      end
+      nil
+    end
+
     def require_libraries
       require "gdk3/atom"
       require "gdk3/color"
diff --git a/gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb b/gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb
index 55f3853..4907c00 100644
--- a/gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb
+++ b/gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb
@@ -45,6 +45,7 @@ unless required_pkg_config_package(package_id,
                                    :debian => "libgdk-pixbuf2.0-dev",
                                    :redhat => "gtk2-devel",
                                    :fedora => "gdk-pixbuf2-devel",
+                                   :arch => "gdk-pixbuf2",
                                    :homebrew => "gdk-pixbuf",
                                    :macports => "gdk-pixbuf2")
   exit(false)
diff --git a/gdk_pixbuf2/lib/gdk_pixbuf2.rb b/gdk_pixbuf2/lib/gdk_pixbuf2.rb
index 15284ca..401fdf4 100644
--- a/gdk_pixbuf2/lib/gdk_pixbuf2.rb
+++ b/gdk_pixbuf2/lib/gdk_pixbuf2.rb
@@ -1,4 +1,20 @@
-require 'glib2'
+# Copyright (C) 2002-2015  Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+require "glib2"
 
 base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
 vendor_dir = base_dir + "vendor" + "local"
@@ -39,6 +55,7 @@ module Gdk
       loader
     end
   end
+
   class Pixbuf
     LOG_DOMAIN = "GdkPixbuf"
 
@@ -51,6 +68,25 @@ module Gdk
         end
       end
     end
+
+    module Version
+      MAJOR = Gdk::Pixbuf::MAJOR
+      MINOR = Gdk::Pixbuf::MINOR
+      MICRO = Gdk::Pixbuf::MICRO
+      STRING = "#{MAJOR}.#{MINOR}.#{MICRO}"
+
+      class << self
+        def or_later?(major, minor, micro=nil)
+          micro ||= 0
+          version = [
+            MAJOR,
+            MINOR,
+            MICRO,
+          ]
+          (version <=> [major, minor, micro]) >= 0
+        end
+      end
+    end
   end
 end
 
diff --git a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb b/gdk_pixbuf2/test/gdk_pixbuf2-test-utils.rb
similarity index 76%
copy from clutter-gstreamer/test/test-clutter-gst-video-sink.rb
copy to gdk_pixbuf2/test/gdk_pixbuf2-test-utils.rb
index 9f4ab24..fdb6ee3 100644
--- a/clutter-gstreamer/test/test-clutter-gst-video-sink.rb
+++ b/gdk_pixbuf2/test/gdk_pixbuf2-test-utils.rb
@@ -14,12 +14,7 @@
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
-class ClutterGstVideoSinkTest < Test::Unit::TestCase
-  include ClutterGStreamerTestUtils
+require "test-unit"
 
-  def test_texture
-    texture = Clutter::Texture.new
-    sink = ClutterGst::VideoSink.new(texture)
-    assert_equal(texture, sink.texture)
-  end
+module GdkPixbufTestUtils
 end
diff --git a/gtk3/test/test-gtk-color-chooser-dialog.rb b/gdk_pixbuf2/test/run-test.rb
old mode 100644
new mode 100755
similarity index 50%
copy from gtk3/test/test-gtk-color-chooser-dialog.rb
copy to gdk_pixbuf2/test/run-test.rb
index 62d62ef..0c5bacd
--- a/gtk3/test/test-gtk-color-chooser-dialog.rb
+++ b/gdk_pixbuf2/test/run-test.rb
@@ -1,3 +1,5 @@
+#!/usr/bin/env ruby
+#
 # Copyright (C) 2015  Ruby-GNOME2 Project Team
 #
 # This library is free software; you can redistribute it and/or
@@ -14,28 +16,30 @@
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
-class TestGtkColorChooserDialog < Test::Unit::TestCase
-  include GtkTestUtils
-
-  sub_test_case ".new" do
-    test "no argument" do
-      dialog = Gtk::ColorChooserDialog.new
-      if csd_supported?
-        assert_equal("", dialog.title)
-      else
-        assert_nil(dialog.title)
-      end
-    end
+ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
+ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
 
-    test "title" do
-      dialog = Gtk::ColorChooserDialog.new(:title => "title")
-      assert_equal("title", dialog.title)
-    end
+glib_base = File.join(ruby_gnome2_base, "glib2")
+gdk_pixbuf2_base = File.join(ruby_gnome2_base, "gdk_pixbuf2")
 
-    test "parent" do
-      parent = Gtk::Window.new
-      dialog = Gtk::ColorChooserDialog.new(:parent => parent)
-      assert_equal(parent, dialog.transient_for)
-    end
+modules = [
+  [glib_base, "glib2"],
+  [gdk_pixbuf2_base, "gdk_pixbuf2"]
+]
+modules.each do |target, module_name|
+  if system("which make > /dev/null")
+    `make -C #{target.dump} > /dev/null` or exit(false)
   end
+  $LOAD_PATH.unshift(File.join(target, "ext", module_name))
+  $LOAD_PATH.unshift(File.join(target, "lib"))
 end
+
+$LOAD_PATH.unshift(File.join(glib_base, "test"))
+require "glib-test-init"
+
+$LOAD_PATH.unshift(File.join(gdk_pixbuf2_base, "test"))
+require "gdk_pixbuf2-test-utils"
+
+require "gdk_pixbuf2"
+
+exit Test::Unit::AutoRunner.run(true)
diff --git a/gdk_pixbuf2/test/test-version.rb b/gdk_pixbuf2/test/test-version.rb
new file mode 100644
index 0000000..509d259
--- /dev/null
+++ b/gdk_pixbuf2/test/test-version.rb
@@ -0,0 +1,47 @@
+# Copyright (C) 2015  Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+class TestGdkPixbufVersion < Test::Unit::TestCase
+  include GdkPixbufTestUtils
+
+  test "STRING" do
+    major = Gdk::Pixbuf::Version::MAJOR
+    minor = Gdk::Pixbuf::Version::MINOR
+    micro = Gdk::Pixbuf::Version::MICRO
+    assert_equal([major, minor, micro].join("."),
+                 Gdk::Pixbuf::Version::STRING)
+  end
+
+  sub_test_case("#or_later?") do
+    test "same" do
+      assert_true(Gdk::Pixbuf::Version.or_later?(Gdk::Pixbuf::Version::MAJOR,
+                                                 Gdk::Pixbuf::Version::MINOR,
+                                                 Gdk::Pixbuf::Version::MICRO))
+    end
+
+    test "later" do
+      assert_true(Gdk::Pixbuf::Version.or_later?(Gdk::Pixbuf::Version::MAJOR,
+                                                 Gdk::Pixbuf::Version::MINOR - 1,
+                                                 Gdk::Pixbuf::Version::MICRO))
+    end
+
+    test "earlier" do
+      assert_false(Gdk::Pixbuf::Version.or_later?(Gdk::Pixbuf::Version::MAJOR,
+                                                  Gdk::Pixbuf::Version::MINOR + 1,
+                                                  Gdk::Pixbuf::Version::MICRO))
+    end
+  end
+end
diff --git a/gio2/ext/gio2/extconf.rb b/gio2/ext/gio2/extconf.rb
index 0f5bebc..f6e7a0e 100755
--- a/gio2/ext/gio2/extconf.rb
+++ b/gio2/ext/gio2/extconf.rb
@@ -54,6 +54,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package(package_id,
                                    :debian => "libglib2.0-dev",
                                    :redhat => "glib2-devel",
+                                   :arch => "glib2",
                                    :homebrew => "glib",
                                    :macports => "glib2")
   exit(false)
diff --git a/glib2/ext/glib2/extconf.rb b/glib2/ext/glib2/extconf.rb
index 55bbb58..44497ee 100644
--- a/glib2/ext/glib2/extconf.rb
+++ b/glib2/ext/glib2/extconf.rb
@@ -19,6 +19,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 2, 12, 0],
                                    :debian => "libglib2.0-dev",
                                    :redhat => "glib2-devel",
+                                   :arch => "glib2",
                                    :homebrew => "glib",
                                    :macports => "glib2")
   exit(false)
diff --git a/glib2/ext/glib2/rbglib.h b/glib2/ext/glib2/rbglib.h
index 70c4a97..f386860 100644
--- a/glib2/ext/glib2/rbglib.h
+++ b/glib2/ext/glib2/rbglib.h
@@ -36,7 +36,7 @@ extern "C" {
 
 #define RBGLIB_MAJOR_VERSION 3
 #define RBGLIB_MINOR_VERSION 0
-#define RBGLIB_MICRO_VERSION 3
+#define RBGLIB_MICRO_VERSION 4
 
 #ifndef RSTRING_PTR
 #  define RSTRING_PTR(s) (RSTRING(s)->ptr)
diff --git a/glib2/lib/gnome2/rake/windows-binary-build-task.rb b/glib2/lib/gnome2/rake/windows-binary-build-task.rb
index a084df6..66a7ff5 100644
--- a/glib2/lib/gnome2/rake/windows-binary-build-task.rb
+++ b/glib2/lib/gnome2/rake/windows-binary-build-task.rb
@@ -287,13 +287,33 @@ class GNOME2WindowsBinaryBuildTask
       return
     end
 
+    g_ir_scanner = "#{@package.project_root_dir}/gobject-introspection/"
+    g_ir_scanner << "#{@package.native.relative_binary_dir}/bin/g-ir-scanner"
+    introspection_scanner = "INTROSPECTION_SCANNER=#{g_ir_scanner}"
+    common_make_args << introspection_scanner
+
+
     dependencies = [
       "gobject-introspection",
       @package.name,
     ]
     dependencies += @package.windows.gobject_introspection_dependencies
+
+    compute_base_dir = lambda do |package|
+      "#{@package.project_root_dir}/#{package}/vendor/local"
+    end
+
+    gi_base_dir = compute_base_dir.call("gobject-introspection")
+    introspection_compiler = "INTROSPECTION_COMPILER="
+    introspection_compiler << "#{gi_base_dir}/bin/g-ir-compiler.exe"
+    dependencies.each do |package|
+      gir_dir = "#{compute_base_dir.call(package)}/share/gir-1.0"
+      introspection_compiler << " --includedir=#{gir_dir}"
+    end
+    common_make_args << introspection_compiler
+
     data_dirs = dependencies.collect do |package|
-      "#{@package.project_root_dir}/#{package}/vendor/local/share"
+      "#{compute_base_dir.call(package)}/share"
     end
     common_make_args << "XDG_DATA_DIRS=#{data_dirs.join(File::PATH_SEPARATOR)}"
   end
diff --git a/glib2/lib/mkmf-gnome2.rb b/glib2/lib/mkmf-gnome2.rb
index aeb6d5e..3139908 100644
--- a/glib2/lib/mkmf-gnome2.rb
+++ b/glib2/lib/mkmf-gnome2.rb
@@ -503,6 +503,8 @@ def package_platform
     :redhat
   elsif File.exist?("/etc/SuSE-release")
     :suse
+  elsif find_executable("pacman")
+    :arch
   elsif find_executable("brew")
     :homebrew
   elsif find_executable("port")
@@ -540,6 +542,8 @@ def install_missing_native_package(native_package_info)
     install_command = "yum install -y #{package_command_line}"
   when :suse
     install_command = "zypper --non-interactive install #{package_command_line}"
+  when :arch
+    install_command = "pacman -S --noconfirm #{package_command_line}"
   when :homebrew
     need_super_user_priviledge = false
     install_command = "brew install #{package_command_line}"
diff --git a/gobject-introspection/Rakefile b/gobject-introspection/Rakefile
index d040b82..892896d 100644
--- a/gobject-introspection/Rakefile
+++ b/gobject-introspection/Rakefile
@@ -94,36 +94,3 @@ namespace :native do
     task :after => "native:gobject-introspection:cross"
   end
 end
-
-namespace :windows do
-  namespace :"gobject-introspection" do
-    pkg_config_dir = package_task.windows.absolute_binary_dir + "lib/pkgconfig"
-    pc_path = pkg_config_dir + "gobject-introspection-1.0.pc"
-    patched_path = pkg_config_dir + "patched"
-    file patched_path.to_s do
-      original_pc = pc_path.read
-      new_pc = ""
-      new_pc << "native_prefix=#{package_task.native.absolute_binary_dir}\n"
-      new_pc << "native_bindir=${native_prefix}/bin\n"
-      original_pc.each_line do |line|
-        case line
-        when /\Ag_ir_(scanner|compiler)=/
-          new_pc << line.gsub(/\${bindir}/, "${native_bindir}").gsub(/\.exe/, "")
-        else
-          new_pc << line
-        end
-      end
-      pc_path.open("w") do |pc_file|
-        pc_file.write(new_pc)
-      end
-      touch(patched_path)
-    end
-
-    desc "Use native tools"
-    task :cross => patched_path.to_s
-  end
-
-  namespace :builder do
-    task :after => "windows:gobject-introspection:cross"
-  end
-end
diff --git a/gobject-introspection/ext/gobject-introspection/extconf.rb b/gobject-introspection/ext/gobject-introspection/extconf.rb
index 2da022b..763ca35 100755
--- a/gobject-introspection/ext/gobject-introspection/extconf.rb
+++ b/gobject-introspection/ext/gobject-introspection/extconf.rb
@@ -60,6 +60,7 @@ unless required_pkg_config_package(package_id,
                                    :debian => "libgirepository1.0-dev",
                                    :redhat => "gobject-introspection-devel",
                                    :homebrew => "gobject-introspection",
+                                   :arch => "gobject-introspection",
                                    :macports => "gobject-introspection")
   exit(false)
 end
diff --git a/gstreamer/Rakefile b/gstreamer/Rakefile
index 250b98e..5e6dc10 100644
--- a/gstreamer/Rakefile
+++ b/gstreamer/Rakefile
@@ -154,6 +154,10 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
           "--enable-introspection",
         ],
         :build_concurrently => false,
+        :patches => [
+          "gstreamer-1.5.2-remove-introspection-compiler-dependency.diff",
+        ],
+        :need_autoreconf => true,
         :built_file => "bin/libgstreamer-1.0-0.dll",
       },
     },
@@ -171,7 +175,9 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
         :patches => [
           "gst-plugins-base-1.5.2-use-portable-64bit-data-print-modifier.diff",
           "gst-plugins-base-1.5.2-use-portable-cast.diff",
+          "gst-plugins-base-1.5.2-remove-introspection-compiler-dependency.diff",
         ],
+        :need_autoreconf => true,
         :built_file => "lib/gstreamer-1.0/libgstgio.dll",
       },
     },
@@ -203,6 +209,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
         :patches => [
           "gst-plugins-bad-1.5.2-use-only-I.diff",
           "gst-plugins-bad-1.5.2-use-portable-cast.diff",
+          "gst-plugins-bad-1.5.2-remove-introspection-compiler-dependency.diff",
         ],
         :built_file => "lib/gstreamer-1.0/libgstmxf.dll",
       },
diff --git a/gstreamer/ext/gstreamer/extconf.rb b/gstreamer/ext/gstreamer/extconf.rb
index b2f1172..a55726d 100644
--- a/gstreamer/ext/gstreamer/extconf.rb
+++ b/gstreamer/ext/gstreamer/extconf.rb
@@ -46,6 +46,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package(package_id,
                                    :debian => "libgstreamer1.0-dev",
                                    :redhat => "gstreamer1-devel",
+                                   :arch => "gstreamer",
                                    :homebrew => "gstreamer",
                                    :macports => "gstreamer")
   exit(false)
diff --git a/gstreamer/patches/gst-plugins-bad-1.5.2-remove-introspection-compiler-dependency.diff b/gstreamer/patches/gst-plugins-bad-1.5.2-remove-introspection-compiler-dependency.diff
new file mode 100644
index 0000000..a73d54d
--- /dev/null
+++ b/gstreamer/patches/gst-plugins-bad-1.5.2-remove-introspection-compiler-dependency.diff
@@ -0,0 +1,36 @@
+diff -ru gst-plugins-bad-1.5.2.orig/gst-libs/gst/gl/Makefile.am gst-plugins-bad-1.5.2/gst-libs/gst/gl/Makefile.am
+--- gst-plugins-bad-1.5.2.orig/gst-libs/gst/gl/Makefile.am	2015-06-22 17:19:18.000000000 +0900
++++ gst-plugins-bad-1.5.2/gst-libs/gst/gl/Makefile.am	2015-09-21 15:14:55.847844366 +0900
+@@ -165,7 +165,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-bad-1.5.2.orig/gst-libs/gst/insertbin/Makefile.am gst-plugins-bad-1.5.2/gst-libs/gst/insertbin/Makefile.am
+--- gst-plugins-bad-1.5.2.orig/gst-libs/gst/insertbin/Makefile.am	2015-04-27 16:59:55.000000000 +0900
++++ gst-plugins-bad-1.5.2/gst-libs/gst/insertbin/Makefile.am	2015-09-21 15:14:55.847844366 +0900
+@@ -62,7 +62,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-bad-1.5.2.orig/gst-libs/gst/mpegts/Makefile.am gst-plugins-bad-1.5.2/gst-libs/gst/mpegts/Makefile.am
+--- gst-plugins-bad-1.5.2.orig/gst-libs/gst/mpegts/Makefile.am	2015-04-27 16:59:55.000000000 +0900
++++ gst-plugins-bad-1.5.2/gst-libs/gst/mpegts/Makefile.am	2015-09-21 15:14:55.847844366 +0900
+@@ -97,7 +97,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
diff --git a/gstreamer/patches/gst-plugins-base-1.5.2-remove-introspection-compiler-dependency.diff b/gstreamer/patches/gst-plugins-base-1.5.2-remove-introspection-compiler-dependency.diff
new file mode 100644
index 0000000..4d8aba2
--- /dev/null
+++ b/gstreamer/patches/gst-plugins-base-1.5.2-remove-introspection-compiler-dependency.diff
@@ -0,0 +1,132 @@
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/allocators/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/allocators/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/allocators/Makefile.am	2015-04-27 17:00:36.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/allocators/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -53,7 +53,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/app/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/app/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/app/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/app/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -70,7 +70,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/audio/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/audio/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/audio/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/audio/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -124,7 +124,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/fft/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/fft/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/fft/Makefile.am	2015-04-27 17:00:36.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/fft/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -80,7 +80,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/pbutils/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/pbutils/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/pbutils/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/pbutils/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -114,7 +114,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/riff/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/riff/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/riff/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/riff/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -66,7 +66,7 @@
+ #
+ #typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ #
+-#%.typelib: %.gir $(INTROSPECTION_COMPILER)
++#%.typelib: %.gir
+ #	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ #		$(INTROSPECTION_COMPILER) \
+ #		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/rtp/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/rtp/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/rtp/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/rtp/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -82,7 +82,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/rtsp/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/rtsp/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/rtsp/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/rtsp/Makefile.am	2015-09-21 14:56:41.571230796 +0900
+@@ -90,7 +90,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/sdp/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/sdp/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/sdp/Makefile.am	2015-04-27 17:00:36.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/sdp/Makefile.am	2015-09-21 14:56:41.575230697 +0900
+@@ -47,7 +47,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/tag/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/tag/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/tag/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/tag/Makefile.am	2015-09-21 14:56:41.575230697 +0900
+@@ -62,7 +62,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+diff -ru gst-plugins-base-1.5.2.orig/gst-libs/gst/video/Makefile.am gst-plugins-base-1.5.2/gst-libs/gst/video/Makefile.am
+--- gst-plugins-base-1.5.2.orig/gst-libs/gst/video/Makefile.am	2015-06-22 17:15:57.000000000 +0900
++++ gst-plugins-base-1.5.2/gst-libs/gst/video/Makefile.am	2015-09-21 14:56:41.575230697 +0900
+@@ -131,7 +131,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
diff --git a/gstreamer/patches/gstreamer-1.5.2-remove-introspection-compiler-dependency.diff b/gstreamer/patches/gstreamer-1.5.2-remove-introspection-compiler-dependency.diff
new file mode 100644
index 0000000..851aabf
--- /dev/null
+++ b/gstreamer/patches/gstreamer-1.5.2-remove-introspection-compiler-dependency.diff
@@ -0,0 +1,60 @@
+diff -ru gstreamer-1.5.2.orig/gst/Makefile.am gstreamer-1.5.2/gst/Makefile.am
+--- gstreamer-1.5.2.orig/gst/Makefile.am	2015-06-22 17:13:25.000000000 +0900
++++ gstreamer-1.5.2/gst/Makefile.am	2015-09-21 14:56:32.995446061 +0900
+@@ -309,7 +309,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff -ru gstreamer-1.5.2.orig/libs/gst/base/Makefile.am gstreamer-1.5.2/libs/gst/base/Makefile.am
+--- gstreamer-1.5.2.orig/libs/gst/base/Makefile.am	2015-06-22 17:13:25.000000000 +0900
++++ gstreamer-1.5.2/libs/gst/base/Makefile.am	2015-09-21 14:56:32.995446061 +0900
+@@ -96,7 +96,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff -ru gstreamer-1.5.2.orig/libs/gst/check/Makefile.am gstreamer-1.5.2/libs/gst/check/Makefile.am
+--- gstreamer-1.5.2.orig/libs/gst/check/Makefile.am	2015-06-22 17:13:25.000000000 +0900
++++ gstreamer-1.5.2/libs/gst/check/Makefile.am	2015-09-21 14:56:32.999445960 +0900
+@@ -171,7 +171,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff -ru gstreamer-1.5.2.orig/libs/gst/controller/Makefile.am gstreamer-1.5.2/libs/gst/controller/Makefile.am
+--- gstreamer-1.5.2.orig/libs/gst/controller/Makefile.am	2015-06-22 17:13:25.000000000 +0900
++++ gstreamer-1.5.2/libs/gst/controller/Makefile.am	2015-09-21 14:56:32.999445960 +0900
+@@ -68,7 +68,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff -ru gstreamer-1.5.2.orig/libs/gst/net/Makefile.am gstreamer-1.5.2/libs/gst/net/Makefile.am
+--- gstreamer-1.5.2.orig/libs/gst/net/Makefile.am	2015-06-22 17:13:25.000000000 +0900
++++ gstreamer-1.5.2/libs/gst/net/Makefile.am	2015-09-21 14:56:32.999445960 +0900
+@@ -89,7 +89,7 @@
+ 
+ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 
+-%.typelib: %.gir $(INTROSPECTION_COMPILER)
++%.typelib: %.gir
+ 	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gtk2/ext/gtk2/extconf.rb b/gtk2/ext/gtk2/extconf.rb
index e3f47c6..9eb3405 100644
--- a/gtk2/ext/gtk2/extconf.rb
+++ b/gtk2/ext/gtk2/extconf.rb
@@ -51,6 +51,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 2, 10, 0],
                                    :debian => "libgtk2.0-dev",
                                    :redhat => "gtk2-devel",
+                                   :arch => "gtk2",
                                    :homebrew => "gtk+",
                                    :macports => "gtk2")
   exit(false)
diff --git a/gtk3/ext/gtk3/extconf.rb b/gtk3/ext/gtk3/extconf.rb
index 934bfdf..12b74a2 100755
--- a/gtk3/ext/gtk3/extconf.rb
+++ b/gtk3/ext/gtk3/extconf.rb
@@ -66,6 +66,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package(package_id,
                                    :debian => "libgtk-3-dev",
                                    :redhat => "gtk3-devel",
+                                   :arch => "gtk3",
                                    :homebrew => "gtk+3",
                                    :macports => "gtk3")
   exit(false)
diff --git a/gtk3/sample/tutorial/README.md b/gtk3/sample/tutorial/README.md
index 996d6da..14e3b7f 100644
--- a/gtk3/sample/tutorial/README.md
+++ b/gtk3/sample/tutorial/README.md
@@ -435,6 +435,88 @@ https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.7
 
 *    exampleapp3/exampleapp.rb
 
+In this step, we make our application show the content of all the files that it is given on the commandline.
+To this end, we need to easily access widgets from the template. So we use the method `Gtk::Widget.bind_template_child` like in the code below:
+
+```ruby
+class ExampleAppWindow < Gtk::ApplicationWindow
+  type_register
+  class << self
+    def init
+      set_template(:resource => "/org/gtk/exampleapp/window.ui")
+      bind_template_child("stack")
+    end
+  end
+```
+Most of this piece of code have been seen previously, a window widget interface is defined with a template. But the usage of `bind_template_child("stack")` will add a method, to each ExampleAppWindow instance, which name will be `ExampleAppWindow#stack` and that will return the corresponding child widget in the template.
+
+The initial implementation of `Gtk::Widget.bind_template_child` have been done in this [pull request](https://github.com/ruby-gnome2/ruby-gnome2/pull/445)
+
+This new way to access the stack widget is used in the following code. We have previously handled the *open* signal in our application like this:
+
+```ruby
+class ExampleAppWindow < Gtk::ApplicationWindow
+  def open(file)
+    
+  end
+end
+
+class ExampleApp < Gtk::Application
+  def initialize
+    # ...
+
+    signal_connect "open" do |application, files, hin|
+      windows = application.windows
+      win = nil
+      unless windows.empty?
+        win = windows.first
+      else
+        win = ExampleAppWindow.new(application)
+      end
+
+      files.each { |file| win.open(file) }
+        
+      win.present
+    end
+  end
+end
+```
+
+The `open` method of the main window is called with for each file. Now we manage those files like this:
+
+```ruby
+def open(file)
+  basename = file.basename
+  scrolled = Gtk::ScrolledWindow.new
+  scrolled.show
+  scrolled.set_hexpand(true)
+  scrolled.set_vexpand(true)
+  view = Gtk::TextView.new
+  view.set_editable(false)
+  view.set_cursor_visible(false)
+  view.show
+  scrolled.add(view)
+  stack.add_titled(scrolled, basename, basename)
+  stream = file.read
+  view.buffer.text = stream.read
+end
+```
+Each file is opened and loaded in a `Gtk::TextView` with 
+
+```ruby
+  stream = file.read
+  view.buffer.text = stream.read
+```
+
+We get the basename, of the file in argument, that will be used as title for each tab of the stack widget: 
+
+```
+stack.add_titled(scrolled, basename, basename)
+```
+
+In this line, given that `self` is `ExampleAppWindow` the usage of `stack` is a call to the method we have created previously. So here we add a tab with a `Gtk::ScrolledWindow` in the `Gtk::Stack` widget of our template and we display the file content.
+
+
 ### An application menu
 https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.8
 
diff --git a/gtk3/test/gtk-test-utils.rb b/gtk3/test/gtk-test-utils.rb
index 548c4dc..b0f171a 100644
--- a/gtk3/test/gtk-test-utils.rb
+++ b/gtk3/test/gtk-test-utils.rb
@@ -51,6 +51,14 @@ module GtkTestUtils
     end
   end
 
+  def window_have_default_title?
+    # Maybe 03213b9509fc1df16c66194ea168aed6c15110e9 in GTK+
+    return false if Gtk::Version.or_later?(3, 17, 0)
+    return true if csd_supported?
+
+    false
+  end
+
   def fixture_path(*components)
     File.join(File.dirname(__FILE__), "fixture", *components)
   end
diff --git a/gtk3/test/test-gtk-color-chooser-dialog.rb b/gtk3/test/test-gtk-color-chooser-dialog.rb
index 62d62ef..5363683 100644
--- a/gtk3/test/test-gtk-color-chooser-dialog.rb
+++ b/gtk3/test/test-gtk-color-chooser-dialog.rb
@@ -20,7 +20,7 @@ class TestGtkColorChooserDialog < Test::Unit::TestCase
   sub_test_case ".new" do
     test "no argument" do
       dialog = Gtk::ColorChooserDialog.new
-      if csd_supported?
+      if window_have_default_title?
         assert_equal("", dialog.title)
       else
         assert_nil(dialog.title)
diff --git a/gtk3/test/test-gtk-font-chooser-dialog.rb b/gtk3/test/test-gtk-font-chooser-dialog.rb
index acc8b9e..3b8a212 100644
--- a/gtk3/test/test-gtk-font-chooser-dialog.rb
+++ b/gtk3/test/test-gtk-font-chooser-dialog.rb
@@ -20,7 +20,7 @@ class TestGtkFontChooserDialog < Test::Unit::TestCase
   sub_test_case ".new" do
     test "no argument" do
       dialog = Gtk::FontChooserDialog.new
-      if csd_supported?
+      if window_have_default_title?
         assert_equal("", dialog.title)
       else
         assert_nil(dialog.title)
diff --git a/pango/ext/pango/extconf.rb b/pango/ext/pango/extconf.rb
index ea7cd89..ee5c720 100644
--- a/pango/ext/pango/extconf.rb
+++ b/pango/ext/pango/extconf.rb
@@ -51,6 +51,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 1, 14, 0],
                                    :debian => "libpango1.0-dev",
                                    :redhat => "pango-devel",
+                                   :arch => "pango",
                                    :homebrew => "pango",
                                    :macports => "pango")
   exit(false)
diff --git a/poppler/ext/poppler/extconf.rb b/poppler/ext/poppler/extconf.rb
index 9308fc3..3f57388 100644
--- a/poppler/ext/poppler/extconf.rb
+++ b/poppler/ext/poppler/extconf.rb
@@ -48,6 +48,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 0, 12, 0],
                                    :debian => "libpoppler-glib-dev",
                                    :redhat => "poppler-glib-devel",
+                                   :arch => "poppler",
                                    :homebrew => "poppler",
                                    :macports => "poppler")
   exit(false)
diff --git a/rsvg2/ext/rsvg2/extconf.rb b/rsvg2/ext/rsvg2/extconf.rb
index 662d7cc..30fce33 100644
--- a/rsvg2/ext/rsvg2/extconf.rb
+++ b/rsvg2/ext/rsvg2/extconf.rb
@@ -48,6 +48,7 @@ setup_windows(module_name, base_dir)
 unless required_pkg_config_package([package_id, 2, 16, 1],
                                    :debian => "librsvg2-dev",
                                    :redhat => "librsvg2-devel",
+                                   :arch => "librsvg",
                                    :homebrew => "librsvg",
                                    :macports => "librsvg")
   exit(false)
diff --git a/webkit-gtk/Rakefile b/webkit-gtk/Rakefile
index 635561b..7362695 100644
--- a/webkit-gtk/Rakefile
+++ b/webkit-gtk/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/WebKitGTK is a Ruby binding of WebKitGTK+."
   package.description = "Ruby/WebKitGTK is a Ruby binding of WebKitGTK+."
   package.dependency.gem.runtime = ["gobject-introspection", "gtk3"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = [
diff --git a/webkit-gtk2/Rakefile b/webkit-gtk2/Rakefile
index f787ce5..590127f 100644
--- a/webkit-gtk2/Rakefile
+++ b/webkit-gtk2/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/WebKitGtk2 is a Ruby binding of WebKitGTK+ for Gtk 2.0 Toolkit"
   package.description = "Ruby/WebKitGtk2 is a Ruby binding of WebKitGTK+ for Gtk 2.0 Toolkit"
   package.dependency.gem.runtime = ["gobject-introspection", "gtk2"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = ["glib2", "gobject-introspection"]
diff --git a/webkit2-gtk/Rakefile b/webkit2-gtk/Rakefile
index 67213c3..d5c6b0a 100644
--- a/webkit2-gtk/Rakefile
+++ b/webkit2-gtk/Rakefile
@@ -23,7 +23,6 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
   package.summary = "Ruby/WebKit2GTK is a Ruby binding of WebKit2GTK+."
   package.description = "Ruby/WebKit2GTK is a Ruby binding of WebKit2GTK+."
   package.dependency.gem.runtime = ["gobject-introspection", "gtk3"]
-  package.dependency.gem.development = ["test-unit-notify"]
   package.windows.packages = []
   package.windows.dependencies = []
   package.windows.build_dependencies = [
@@ -87,7 +86,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
       :name => "webkitgtk",
       :download_base_url => "http://webkitgtk.org/releases",
       :label => "WebKitGTK+",
-      :version => "2.8.5",
+      :version => "2.9.92",
       :compression_method => "xz",
       :windows => {
         :cmake_args => [
@@ -104,8 +103,17 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
           "-DSQLITE_LIBRARIES=#{gstreamer_absolute_binary_dir}/lib",
           "-DENABLE_PLUGIN_PROCESS_GTK2=OFF",
           "-DENABLE_X11_TARGET=OFF",
+          "-DENABLE_GTKDOC=OFF",
+          "-DENABLE_CREDENTIAL_STORAGE=OFF",
+          "-DENABLE_GEOLOCATION=OFF",
+          "-DENABLE_OPENGL=OFF",
+          "-DENABLE_SPELLCHECK=OFF",
+          "-DUSE_LIBNOTIFY=OFF",
+          "-DUSE_LIBHYPHEN=OFF",
+          "-DENABLE_API_TESTS=OFF",
         ],
         :patches => [
+          "webkitgtk-2.9.92-try-buildable.diff",
         ],
       },
     },
diff --git a/webkit2-gtk/patches/webkitgtk-2.9.92-try-buildable.diff b/webkit2-gtk/patches/webkitgtk-2.9.92-try-buildable.diff
new file mode 100644
index 0000000..91e29b1
--- /dev/null
+++ b/webkit2-gtk/patches/webkitgtk-2.9.92-try-buildable.diff
@@ -0,0 +1,54 @@
+diff -ru webkitgtk-2.9.92.orig/Source/CMakeLists.txt webkitgtk-2.9.92/Source/CMakeLists.txt
+--- webkitgtk-2.9.92.orig/Source/CMakeLists.txt	2015-09-16 17:32:43.000000000 +0900
++++ webkitgtk-2.9.92/Source/CMakeLists.txt	2015-09-21 17:34:48.449232820 +0900
+@@ -33,7 +33,9 @@
+ # -----------------------------------------------------------------------------
+ # Set compiler flags for all targets
+ # -----------------------------------------------------------------------------
+-WEBKIT_SET_EXTRA_COMPILER_FLAGS(bmalloc ${ADDITIONAL_COMPILER_FLAGS})
++if (NOT WIN32)
++    WEBKIT_SET_EXTRA_COMPILER_FLAGS(bmalloc ${ADDITIONAL_COMPILER_FLAGS})
++endif ()
+ WEBKIT_SET_EXTRA_COMPILER_FLAGS(WTF ${ADDITIONAL_COMPILER_FLAGS})
+ WEBKIT_SET_EXTRA_COMPILER_FLAGS(JavaScriptCore ${ADDITIONAL_COMPILER_FLAGS})
+ WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebCoreTestSupport ${ADDITIONAL_COMPILER_FLAGS})
+diff -ru webkitgtk-2.9.92.orig/Source/WTF/wtf/Atomics.h webkitgtk-2.9.92/Source/WTF/wtf/Atomics.h
+--- webkitgtk-2.9.92.orig/Source/WTF/wtf/Atomics.h	2015-09-14 16:08:10.000000000 +0900
++++ webkitgtk-2.9.92/Source/WTF/wtf/Atomics.h	2015-09-21 17:55:24.010646484 +0900
+@@ -335,7 +335,7 @@
+         : "memory"
+         );
+     return result;
+-#elif OS(WINDOWS) && CPU(X86)
++#elif OS(WINDOWS) && CPU(X86) && 0
+     // FIXME: We need a 64-bit ASM implementation, but this cannot be inline due to
+     // Microsoft's decision to exclude it from the compiler.
+     bool result = false;
+diff -ru webkitgtk-2.9.92.orig/Source/WTF/wtf/Platform.h webkitgtk-2.9.92/Source/WTF/wtf/Platform.h
+--- webkitgtk-2.9.92.orig/Source/WTF/wtf/Platform.h	2015-09-16 17:32:43.000000000 +0900
++++ webkitgtk-2.9.92/Source/WTF/wtf/Platform.h	2015-09-21 17:49:55.178787573 +0900
+@@ -648,7 +648,7 @@
+ #define HAVE_ALIGNED_MALLOC 1
+ #define HAVE_ISDEBUGGERPRESENT 1
+ 
+-#include <WTF/WTFHeaderDetection.h>
++/* #include <WTF/WTFHeaderDetection.h> */
+ 
+ #endif
+ 
+diff -ru webkitgtk-2.9.92.orig/Tools/CMakeLists.txt webkitgtk-2.9.92/Tools/CMakeLists.txt
+--- webkitgtk-2.9.92.orig/Tools/CMakeLists.txt	2015-09-16 17:32:43.000000000 +0900
++++ webkitgtk-2.9.92/Tools/CMakeLists.txt	2015-09-21 17:44:51.938292338 +0900
+@@ -28,9 +28,9 @@
+ endif ()
+ 
+ if (WIN32)
+-    add_subdirectory(DumpRenderTree)
+-    add_subdirectory(TestWebKitAPI)
+-    add_subdirectory(WinLauncher)
++  # add_subdirectory(DumpRenderTree)
++    # add_subdirectory(TestWebKitAPI)
++    # add_subdirectory(WinLauncher)
+ endif ()
+ 
+ if (ENABLE_WEBKIT2 AND ENABLE_API_TESTS)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-gnome2.git



More information about the Pkg-ruby-extras-commits mailing list