[pyclutter/wip/ebassi/introspection] Switch to introspection overrides



commit 2bc6460a4691e09eab098aa00e186204ec630f6c
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Sun Apr 12 14:48:28 2015 +0100

    Switch to introspection overrides
    
    Drop the compiled static module, which we cannot keep updated.
    
    Introspection does all the heavy lifting for us, these days, but we need
    to provide overrides for backward compatibility and for papering over
    the C API.

 ChangeLog.SVN                                      | 1769 ----
 Makefile.am                                        |   62 +-
 Makefile.tmpl                                      |    9 -
 NEWS                                               |    5 +
 autogen.sh                                         |  476 +-
 build/autotools/Makefile.am                        |    5 +-
 build/autotools/python.m4                          |  237 +
 build/gen-changelog.pl                             |  148 -
 build/get_overrides_dir.py                         |    9 -
 clutter/Makefile.am                                |  221 -
 clutter/__init__.py                                |  106 -
 clutter/clutter-1.2-types.defs                     |  130 -
 clutter/clutter-1.2.defs                           | 1901 ----
 clutter/clutter-1.4-types.defs                     |  173 -
 clutter/clutter-1.4.defs                           | 1641 ----
 clutter/clutter-action.override                    |   40 -
 clutter/clutter-actor.override                     |  905 --
 clutter/clutter-alpha.override                     |   87 -
 clutter/clutter-animation.override                 |  609 --
 clutter/clutter-animator.override                  |  221 -
 clutter/clutter-base-types.defs                    |  738 --
 clutter/clutter-base.defs                          | 9286 --------------------
 clutter/clutter-behaviour.override                 |  538 --
 clutter/clutter-box.override                       |   96 -
 clutter/clutter-boxed.override                     |  911 --
 clutter/clutter-cairotexture.override              |  183 -
 clutter/clutter-color.override                     |  344 -
 clutter/clutter-container.override                 |  661 --
 clutter/clutter-effect.override                    |   13 -
 clutter/clutter-event.override                     |  435 -
 clutter/clutter-interval.override                  |  482 -
 clutter/clutter-layout-manager.override            |  811 --
 clutter/clutter-model.override                     |  718 --
 clutter/clutter-path.override                      |  473 -
 clutter/clutter-script.override                    |  809 --
 clutter/clutter-text.override                      |  196 -
 clutter/clutter.override                           | 1166 ---
 clutter/clutterglx-base-types.defs                 |   11 -
 clutter/clutterglx-base.defs                       |   46 -
 clutter/clutterglx.override                        |   19 -
 clutter/clutterglxmodule.c                         |   27 -
 clutter/cluttermodule.c                            |  181 -
 clutter/clutterx11-base-types.defs                 |   11 -
 clutter/clutterx11-base.defs                       |  245 -
 clutter/clutterx11.override                        |   34 -
 clutter/clutterx11module.c                         |   27 -
 clutter/cogl-base-types.defs                       |  205 -
 clutter/cogl-base.defs                             | 3127 -------
 clutter/cogl-material.override                     |  544 --
 clutter/cogl-matrix.override                       |  303 -
 clutter/cogl-offscreen.override                    |   72 -
 clutter/cogl-shader.override                       |  230 -
 clutter/cogl-texture.override                      |  595 --
 clutter/cogl.override                              |  654 --
 clutter/deprecation.py                             |  112 -
 clutter/keysyms.py                                 | 1502 ----
 clutter/pyclutter-private.h                        |   32 -
 clutter/pyclutter.c                                |  318 -
 clutter/pyclutter.h                                |   44 -
 codegen/Makefile.am                                |   10 -
 codegen/argtypes.py                                | 1043 ---
 codegen/codegen.py                                 | 1740 ----
 codegen/createdefs.py                              |   17 -
 codegen/definitions.py                             |  575 --
 codegen/defsparser.py                              |  153 -
 codegen/h2def.py                                   |  634 --
 codegen/override.py                                |  285 -
 codegen/reversewrapper.py                          |  900 --
 codegen/scmexpr.py                                 |  143 -
 configure.ac                                       |  281 +-
 docs/Makefile.am                                   |  117 -
 docs/reference/clutter-classes.xml                 |   40 -
 docs/reference/clutter-clutteractor.xml            | 4590 ----------
 docs/reference/clutter-clutteractorbox.xml         |   76 -
 docs/reference/clutter-clutteralpha.xml            |  215 -
 docs/reference/clutter-clutterbackend.xml          |  188 -
 docs/reference/clutter-clutterbehaviour.xml        |  236 -
 docs/reference/clutter-clutterbehaviourdepth.xml   |  126 -
 docs/reference/clutter-clutterbehaviourellipse.xml |  454 -
 docs/reference/clutter-clutterbehaviouropacity.xml |  126 -
 docs/reference/clutter-clutterbehaviourpath.xml    |  190 -
 docs/reference/clutter-clutterbehaviourrotate.xml  |  278 -
 docs/reference/clutter-clutterbehaviourscale.xml   |  162 -
 docs/reference/clutter-clutterchildmeta.xml        |   72 -
 docs/reference/clutter-clutterclonetexture.xml     |  100 -
 docs/reference/clutter-cluttercolor.xml            |  429 -
 docs/reference/clutter-cluttercontainer.xml        |  292 -
 docs/reference/clutter-cluttereffecttemplate.xml   |  143 -
 docs/reference/clutter-clutterevent.xml            |  193 -
 docs/reference/clutter-cluttergeometry.xml         |   43 -
 docs/reference/clutter-cluttergroup.xml            |  174 -
 docs/reference/clutter-clutterknot.xml             |  101 -
 docs/reference/clutter-clutterlistmodel.xml        |   52 -
 docs/reference/clutter-cluttermedia.xml            |  254 -
 docs/reference/clutter-cluttermodel.xml            |  594 --
 docs/reference/clutter-cluttermodeliter.xml        |  278 -
 docs/reference/clutter-clutterrectangle.xml        |  180 -
 docs/reference/clutter-clutterscore.xml            |  299 -
 docs/reference/clutter-clutterscript.xml           |  321 -
 docs/reference/clutter-clutterscriptable.xml       |  140 -
 docs/reference/clutter-cluttershader.xml           |  261 -
 docs/reference/clutter-clutterstage.xml            |  539 --
 docs/reference/clutter-cluttertext.xml             |  456 -
 docs/reference/clutter-cluttertexture.xml          |  398 -
 docs/reference/clutter-cluttertimeline.xml         |  631 --
 docs/reference/clutter-cluttervertex.xml           |   43 -
 docs/reference/clutter-hierarchy.xml               |   41 -
 docs/reference/clutter-overview.xml                |   17 -
 docs/reference/clutter-ref.xml                     |   84 -
 docs/reference/entities.docbook.in                 |    1 -
 docs/update-bindings.txt                           |   31 -
 gi/Makefile.am                                     |    1 +
 gi/__init__.py                                     |    3 +
 {introspection => gi/overrides}/Clutter.py         |  184 +-
 gi/overrides/Makefile.am                           |    4 +
 gi/overrides/__init__.py                           |    4 +
 introspection/Makefile.am                          |    5 -
 pyclutter.doap                                     |   90 +-
 pyclutter.pc.in                                    |   15 -
 119 files changed, 442 insertions(+), 53563 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index bf5ed8d..b2ec139 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,63 +1,3 @@
 ACLOCAL_AMFLAGS = -I build/autotools
 
-SUBDIRS = build codegen clutter examples
-
-if ENABLE_DOCS
-SUBDIRS += docs
-endif
-
-if ENABLE_INTROSPECTION
-SUBDIRS += introspection
-endif
-
-pyclutter-1.0.pc: pyclutter.pc
-       @cp -f $< $(@F)
-
-pkgfiles = pyclutter-1.0.pc
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(pkgfiles)
-
-DISTCHECK_CONFIGURE_FLAGS = --enable-docs
-
-DIST_SUBDIRS = \
-       build \
-       codegen \
-       docs \
-       clutter \
-       examples
-
-EXTRA_DIST = py-compile Makefile.tmpl
-
-CLEANFILES = $(pkgfiles)
-
-# Extra clean files so that maintainer-clean removes *everything*
-MAINTAINERCLEANFILES = \
-       aclocal.m4 \
-       compile \
-       config.guess \
-       config.sub \
-        configure \
-       depcomp \
-       install-sh \
-       ltmain.sh \
-       Makefile.in \
-       missing \
-       config.h.in
-
-PREV_RELEASE=git-import
-
-dist-hook:
-       @if test -d "$(srcdir)/.git"; \
-       then \
-               to=""; \
-               from="$(PREV_RELEASE)"; \
-               echo Creating ChangeLog && \
-               ( cd "$(top_srcdir)" && \
-                 echo '# Generated by configure.  Do no edit.'; echo; \
-                 $(top_srcdir)/missing --run perl $(top_srcdir)/build/gen-changelog.pl $$from..$$to ) > 
ChangeLog.tmp \
-               && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
-               || ( rm -f ChangeLog.tmp ; \
-                    echo Failed to generate ChangeLog >&2 ); \
-       else \
-               echo A git checkout is required to generate a ChangeLog >&2; \
-       fi
+SUBDIRS = gi examples 
diff --git a/NEWS b/NEWS
index 3be1099..19d2786 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+Overview of changes between 1.0 and 2.0
+===========================================
+
+• Convert to a pure, introspection-based binding
+
 Overview of changes between 1.0.2 and 1.3.2
 ===========================================
 
diff --git a/autogen.sh b/autogen.sh
index 39465e6..1a1338f 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,470 +1,30 @@
 #!/bin/sh
 # Run this to generate all the initial makefiles, etc.
 
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
 
-REQUIRED_AUTOMAKE_VERSION=1.11
+olddir=`pwd`
 
-PKG_NAME="PyClutter"
+cd $srcdir
 
-#name of package
-PKG_NAME=${PKG_NAME:-Package}
-srcdir=${srcdir:-.}
-
-# default version requirements ...
-REQUIRED_AUTOCONF_VERSION=${REQUIRED_AUTOCONF_VERSION:-2.63}
-REQUIRED_AUTOMAKE_VERSION=${REQUIRED_AUTOMAKE_VERSION:-1.11}
-REQUIRED_LIBTOOL_VERSION=${REQUIRED_LIBTOOL_VERSION:-2.2.6}
-REQUIRED_GETTEXT_VERSION=${REQUIRED_GETTEXT_VERSION:-0.17}
-REQUIRED_GLIB_GETTEXT_VERSION=${REQUIRED_GLIB_GETTEXT_VERSION:-2.2.0}
-REQUIRED_INTLTOOL_VERSION=${REQUIRED_INTLTOOL_VERSION:-0.40}
-REQUIRED_PKG_CONFIG_VERSION=${REQUIRED_PKG_CONFIG_VERSION:-0.14.0}
-REQUIRED_GTK_DOC_VERSION=${REQUIRED_GTK_DOC_VERSION:-1.11}
-REQUIRED_DOC_COMMON_VERSION=${REQUIRED_DOC_COMMON_VERSION:-2.3.0}
-REQUIRED_GNOME_DOC_UTILS_VERSION=${REQUIRED_GNOME_DOC_UTILS_VERSION:-0.3.2}
-
-# a list of required m4 macros.  Package can set an initial value
-REQUIRED_M4MACROS=${REQUIRED_M4MACROS:-}
-FORBIDDEN_M4MACROS=${FORBIDDEN_M4MACROS:-}
-
-# Not all echo versions allow -n, so we check what is possible. This test is
-# based on the one in autoconf.
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ;;
-  *c*,*  ) ECHO_N=-n ;;
-  *)       ECHO_N= ;;
-esac
-
-# some terminal codes ...
-boldface="`tput bold 2>/dev/null`"
-normal="`tput sgr0 2>/dev/null`"
-printbold() {
-    echo $ECHO_N "$boldface"
-    echo "$@"
-    echo $ECHO_N "$normal"
-}    
-printerr() {
-    echo "$@" >&2
-}
-
-# Usage:
-#     compare_versions MIN_VERSION ACTUAL_VERSION
-# returns true if ACTUAL_VERSION >= MIN_VERSION
-compare_versions() {
-    ch_min_version=$1
-    ch_actual_version=$2
-    ch_status=0
-    IFS="${IFS=         }"; ch_save_IFS="$IFS"; IFS="."
-    set $ch_actual_version
-    for ch_min in $ch_min_version; do
-        ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
-        if [ -z "$ch_min" ]; then break; fi
-        if [ -z "$ch_cur" ]; then ch_status=1; break; fi
-        if [ $ch_cur -gt $ch_min ]; then break; fi
-        if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
-    done
-    IFS="$ch_save_IFS"
-    return $ch_status
-}
-
-# Usage:
-#     version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE
-# checks to see if the package is available
-version_check() {
-    vc_package=$1
-    vc_variable=$2
-    vc_checkprogs=$3
-    vc_min_version=$4
-    vc_source=$5
-    vc_status=1
-
-    vc_checkprog=`eval echo "\\$$vc_variable"`
-    if [ -n "$vc_checkprog" ]; then
-       printbold "using $vc_checkprog for $vc_package"
-       return 0
-    fi
-
-    if test "x$vc_package" = "xautomake" -a "x$vc_min_version" = "x1.4"; then
-       vc_comparator="="
-    else
-       vc_comparator=">="
-    fi
-    printbold "checking for $vc_package $vc_comparator $vc_min_version..."
-    for vc_checkprog in $vc_checkprogs; do
-       echo $ECHO_N "  testing $vc_checkprog... "
-       if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then
-           vc_actual_version=`$vc_checkprog --version | head -n 1 | \
-                               sed 's/^.*[     ]\([0-9.]*[a-z]*\).*$/\1/'`
-           if compare_versions $vc_min_version $vc_actual_version; then
-               echo "found $vc_actual_version"
-               # set variables
-               eval "$vc_variable=$vc_checkprog; \
-                       ${vc_variable}_VERSION=$vc_actual_version"
-               vc_status=0
-               break
-           else
-               echo "too old (found version $vc_actual_version)"
-           fi
-       else
-           echo "not found."
-       fi
-    done
-    if [ "$vc_status" != 0 ]; then
-       printerr "***Error***: You must have $vc_package $vc_comparator $vc_min_version installed"
-       printerr "  to build $PKG_NAME.  Download the appropriate package for"
-       printerr "  from your distribution or get the source tarball at"
-        printerr "    $vc_source"
-       printerr
-    fi
-    return $vc_status
-}
-
-# Usage:
-#     require_m4macro filename.m4
-# adds filename.m4 to the list of required macros
-require_m4macro() {
-    case "$REQUIRED_M4MACROS" in
-       $1\ * | *\ $1\ * | *\ $1) ;;
-       *) REQUIRED_M4MACROS="$REQUIRED_M4MACROS $1" ;;
-    esac
-}
-
-forbid_m4macro() {
-    case "$FORBIDDEN_M4MACROS" in
-       $1\ * | *\ $1\ * | *\ $1) ;;
-       *) FORBIDDEN_M4MACROS="$FORBIDDEN_M4MACROS $1" ;;
-    esac
-}
-
-# Usage:
-#     add_to_cm_macrodirs dirname
-# Adds the dir to $cm_macrodirs, if it's not there yet.
-add_to_cm_macrodirs() {
-    case $cm_macrodirs in
-    "$1 "* | *" $1 "* | *" $1") ;;
-    *) cm_macrodirs="$cm_macrodirs $1";;
-    esac
-}
-
-# Usage:
-#     check_m4macros
-# Checks that all the requested macro files are in the aclocal macro path
-# Uses REQUIRED_M4MACROS and ACLOCAL variables.
-check_m4macros() {
-    # construct list of macro directories
-    cm_macrodirs=`$ACLOCAL --print-ac-dir`
-    # aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.11
-    # but it contains only Automake's own macros, so we can ignore it.
-
-    # Read the dirlist file, supported by Automake >= 1.11.
-    if compare_versions 1.11 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then
-       cm_dirlist=`sed 's/[    ]*#.*//;/^$/d' $cm_macrodirs/dirlist`
-       if [ -n "$cm_dirlist" ] ; then
-           for cm_dir in $cm_dirlist; do
-               if [ -d $cm_dir ]; then
-                   add_to_cm_macrodirs $cm_dir
-               fi
-           done
-       fi
-    fi
-
-    # Parse $ACLOCAL_FLAGS
-    set - $ACLOCAL_FLAGS
-    while [ $# -gt 0 ]; do
-       if [ "$1" = "-I" ]; then
-           add_to_cm_macrodirs "$2"
-           shift
-       fi
-       shift
-    done
-
-    cm_status=0
-    if [ -n "$REQUIRED_M4MACROS" ]; then
-       printbold "Checking for required M4 macros..."
-       # check that each macro file is in one of the macro dirs
-       for cm_macro in $REQUIRED_M4MACROS; do
-           cm_macrofound=false
-           for cm_dir in $cm_macrodirs; do
-               if [ -f "$cm_dir/$cm_macro" ]; then
-                   cm_macrofound=true
-                   break
-               fi
-               # The macro dir in Cygwin environments may contain a file
-               # called dirlist containing other directories to look in.
-               if [ -f "$cm_dir/dirlist" ]; then
-                   for cm_otherdir in `cat $cm_dir/dirlist`; do
-                       if [ -f "$cm_otherdir/$cm_macro" ]; then
-                           cm_macrofound=true
-                           break
-                       fi
-                   done
-               fi
-           done
-           if $cm_macrofound; then
-               :
-           else
-               printerr "  $cm_macro not found"
-               cm_status=1
-           fi
-       done
-    fi
-    if [ -n "$FORBIDDEN_M4MACROS" ]; then
-       printbold "Checking for forbidden M4 macros..."
-       # check that each macro file is in one of the macro dirs
-       for cm_macro in $FORBIDDEN_M4MACROS; do
-           cm_macrofound=false
-           for cm_dir in $cm_macrodirs; do
-               if [ -f "$cm_dir/$cm_macro" ]; then
-                   cm_macrofound=true
-                   break
-               fi
-           done
-           if $cm_macrofound; then
-               printerr "  $cm_macro found (should be cleared from macros dir)"
-               cm_status=1
-           fi
-       done
-    fi
-    if [ "$cm_status" != 0 ]; then
-       printerr "***Error***: some autoconf macros required to build $PKG_NAME"
-       printerr "  were not found in your aclocal path, or some forbidden"
-       printerr "  macros were found.  Perhaps you need to adjust your"
-       printerr "  ACLOCAL_FLAGS?"
-       printerr
-    fi
-    return $cm_status
-}
-
-# try to catch the case where the macros2/ directory hasn't been cleared out.
-forbid_m4macro gnome-cxx-check.m4
-
-want_libtool=false
-want_gettext=false
-want_glib_gettext=false
-want_intltool=false
-want_pkg_config=false
-want_gtk_doc=false
-want_gnome_doc_utils=false
-
-configure_files="`find $srcdir -name '{arch}' -prune -o -name configure.ac -print -o -name configure.in 
-print`"
-for configure_ac in $configure_files; do
-    if grep "^A[CM]_PROG_LIBTOOL" $configure_ac >/dev/null ||
-       grep "^LT_INIT" $configure_ac >/dev/null; then
-       want_libtool=true
-    fi
-    if grep "^AM_GNU_GETTEXT" $configure_ac >/dev/null; then
-       want_gettext=true
-    fi
-    if grep "^AM_GLIB_GNU_GETTEXT" $configure_ac >/dev/null; then
-       want_glib_gettext=true
-    fi
-    if grep "^AC_PROG_INTLTOOL" $configure_ac >/dev/null ||
-       grep "^IT_PROG_INTLTOOL" $configure_ac >/dev/null; then
-       want_intltool=true
-    fi
-    if grep "^PKG_CHECK_MODULES" $configure_ac >/dev/null; then
-       want_pkg_config=true
-    fi
-    if grep "^GTK_DOC_CHECK" $configure_ac >/dev/null; then
-       want_gtk_doc=true
-    fi
-    if grep "^GNOME_DOC_INIT" $configure_ac >/dev/null; then
-        want_gnome_doc_utils=true
-    fi
-
-    # check to make sure gnome-common macros can be found ...
-    if grep "^GNOME_COMMON_INIT" $configure_ac >/dev/null ||
-       grep "^GNOME_DEBUG_CHECK" $configure_ac >/dev/null ||
-       grep "^GNOME_MAINTAINER_MODE_DEFINES" $configure_ac >/dev/null; then
-        require_m4macro gnome-common.m4
-    fi
-    if grep "^GNOME_COMPILE_WARNINGS" $configure_ac >/dev/null ||
-       grep "^GNOME_CXX_WARNINGS" $configure_ac >/dev/null; then
-        require_m4macro gnome-compiler-flags.m4
-    fi
-done
-
-DIE=0
-
-#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13
-WANT_AUTOCONF_2_5=1
-export WANT_AUTOCONF_2_5
-version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \
-    "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz"; || DIE=1
-AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/`
-
-case $REQUIRED_AUTOMAKE_VERSION in
-    1.11*) automake_progs="automake-1.11" ;;
-esac
-version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \
-    "http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz"; || DIE=1
-ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`
-
-if $want_libtool; then
-    version_check libtool LIBTOOLIZE libtoolize $REQUIRED_LIBTOOL_VERSION \
-        "http://ftp.gnu.org/pub/gnu/libtool/libtool-$REQUIRED_LIBTOOL_VERSION.tar.gz"; || DIE=1
-    require_m4macro libtool.m4
-fi
-
-if $want_gettext; then
-    version_check gettext GETTEXTIZE gettextize $REQUIRED_GETTEXT_VERSION \
-        "http://ftp.gnu.org/pub/gnu/gettext/gettext-$REQUIRED_GETTEXT_VERSION.tar.gz"; || DIE=1
-    require_m4macro gettext.m4
-fi
-
-if $want_glib_gettext; then
-    version_check glib-gettext GLIB_GETTEXTIZE glib-gettextize $REQUIRED_GLIB_GETTEXT_VERSION \
-        "ftp://ftp.gtk.org/pub/gtk/v2.2/glib-$REQUIRED_GLIB_GETTEXT_VERSION.tar.gz"; || DIE=1
-    require_m4macro glib-gettext.m4
-fi
-
-if $want_intltool; then
-    version_check intltool INTLTOOLIZE intltoolize $REQUIRED_INTLTOOL_VERSION \
-        "http://ftp.gnome.org/pub/GNOME/sources/intltool/"; || DIE=1
-    require_m4macro intltool.m4
-fi
-
-if $want_pkg_config; then
-    version_check pkg-config PKG_CONFIG pkg-config $REQUIRED_PKG_CONFIG_VERSION \
-        
"'http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-$REQUIRED_PKG_CONFIG_VERSION.tar.gz"; || 
DIE=1
-    require_m4macro pkg.m4
-fi
-
-if $want_gtk_doc; then
-    version_check gtk-doc GTKDOCIZE gtkdocize $REQUIRED_GTK_DOC_VERSION \
-        "http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"; || DIE=1
-    require_m4macro gtk-doc.m4
-fi
-
-if $want_gnome_doc_utils; then
-    version_check gnome-doc-utils GNOME_DOC_PREPARE gnome-doc-prepare $REQUIRED_GNOME_DOC_UTILS_VERSION \
-        "http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/"; || DIE=1
-fi
-
-if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
-    version_check gnome-common DOC_COMMON gnome-doc-common \
-        $REQUIRED_DOC_COMMON_VERSION " " || DIE=1
-fi
-
-check_m4macros || DIE=1
-
-if [ "$DIE" -eq 1 ]; then
-  exit 1
+AUTORECONF=`which autoreconf`
+if test -z $AUTORECONF; then
+        echo "*** No autoreconf found, please install it ***"
+        exit 1
 fi
 
-if [ "$#" = 0 ]; then
-  printerr "**Warning**: I am going to run \`configure' with no arguments."
-  printerr "If you wish to pass any to it, please specify them on the"
-  printerr \`$0\'" command line."
-  printerr
+# NOCONFIGURE is used by gnome-common
+if test -z "$NOCONFIGURE"; then
+        if test -z "$*"; then
+                echo "I am going to run ./configure with no arguments - if you wish "
+                echo "to pass any to it, please specify them on the $0 command line."
+        fi
 fi
 
-topdir=`pwd`
-for configure_ac in $configure_files; do 
-    dirname=`dirname $configure_ac`
-    basename=`basename $configure_ac`
-    if [ -f $dirname/NO-AUTO-GEN ]; then
-       echo skipping $dirname -- flagged as no auto-gen
-    elif [ ! -w $dirname ]; then
-        echo skipping $dirname -- directory is read only
-    else
-       printbold "Processing $configure_ac"
-       cd $dirname
-
-        # Note that the order these tools are called should match what
-        # autoconf's "autoupdate" package does.  See bug 138584 for
-        # details.
-
-        # programs that might install new macros get run before aclocal
-       if grep "^A[CM]_PROG_LIBTOOL" $basename >/dev/null ||
-          grep "^LT_INIT" $basename >/dev/null; then
-           printbold "Running $LIBTOOLIZE..."
-           $LIBTOOLIZE --force --copy || exit 1
-       fi
-
-       if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then
-           printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
-           echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
-       elif grep "^AM_GNU_GETTEXT" $basename >/dev/null; then
-          if grep "^AM_GNU_GETTEXT_VERSION" $basename > /dev/null; then
-               printbold "Running autopoint..."
-               autopoint --force || exit 1
-          else
-               printbold "Running $GETTEXTIZE... Ignore non-fatal messages."
-               echo "no" | $GETTEXTIZE --force --copy || exit 1
-          fi
-       fi
-
-       if grep "^AC_PROG_INTLTOOL" $basename >/dev/null ||
-           grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then
-           printbold "Running $INTLTOOLIZE..."
-           $INTLTOOLIZE --force --copy --automake || exit 1
-       fi
-       if grep "^GTK_DOC_CHECK" $basename >/dev/null; then
-           printbold "Running $GTKDOCIZE..."
-           $GTKDOCIZE --copy || exit 1
-       fi
-
-       if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
-           printbold "Running gnome-doc-common..."
-           gnome-doc-common --copy || exit 1
-       fi
-       if grep "^GNOME_DOC_INIT" $basename >/dev/null; then
-           printbold "Running $GNOME_DOC_PREPARE..."
-           $GNOME_DOC_PREPARE --force --copy || exit 1
-       fi
-
-        # Now run aclocal to pull in any additional macros needed
+rm -rf autom4te.cache
 
-       # if the AC_CONFIG_MACRO_DIR() macro is used, pass that
-       # directory to aclocal.
-       m4dir=`cat "$basename" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 
's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
-       if [ -n "$m4dir" ]; then
-           m4dir="-I $m4dir"
-       fi
-       printbold "Running $ACLOCAL..."
-       $ACLOCAL $m4dir $ACLOCAL_FLAGS || exit 1
+autoreconf --force --install --verbose || exit $?
 
-       if grep "GNOME_AUTOGEN_OBSOLETE" aclocal.m4 >/dev/null; then
-           printerr "*** obsolete gnome macros were used in $configure_ac"
-       fi
-
-       # Now that all the macros are sorted, run autoconf and autoheader ...
-       printbold "Running $AUTOCONF..."
-       $AUTOCONF || exit 1
-       if grep "^A[CM]_CONFIG_HEADER" $basename >/dev/null; then
-           printbold "Running $AUTOHEADER..."
-           $AUTOHEADER || exit 1
-           # this prevents automake from thinking config.h.in is out of
-           # date, since autoheader doesn't touch the file if it doesn't
-           # change.
-           test -f config.h.in && touch config.h.in
-       fi
-
-       # Finally, run automake to create the makefiles ...
-       printbold "Running $AUTOMAKE..."
-        cp -pf COPYING COPYING.autogen_bak
-        cp -pf INSTALL INSTALL.autogen_bak
-       if [ $REQUIRED_AUTOMAKE_VERSION != 1.4 ]; then
-           $AUTOMAKE --gnu --add-missing --force --copy || exit 1
-       else
-           $AUTOMAKE --gnu --add-missing --copy || exit 1
-       fi
-        cmp COPYING COPYING.autogen_bak || cp -pf COPYING.autogen_bak COPYING
-        cmp INSTALL INSTALL.autogen_bak || cp -pf INSTALL.autogen_bak INSTALL
-        rm -f COPYING.autogen_bak INSTALL.autogen_bak
-
-       cd "$topdir"
-    fi
-done
-
-conf_flags="--enable-maintainer-mode"
-
-if test x$NOCONFIGURE = x; then
-    printbold Running $srcdir/configure $conf_flags "$@" ...
-    $srcdir/configure $conf_flags "$@" \
-       && echo Now type \`make\' to compile $PKG_NAME || exit 1
-else
-    echo Skipping configure process.
-fi
+cd "$olddir"
+test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
diff --git a/build/autotools/Makefile.am b/build/autotools/Makefile.am
index 56d58b3..08ad3cf 100644
--- a/build/autotools/Makefile.am
+++ b/build/autotools/Makefile.am
@@ -1,4 +1 @@
-NULL =
-
-EXTRA_DIST = \
-       $(NULL)
+EXTRA_DIST = $(NULL)
diff --git a/build/autotools/python.m4 b/build/autotools/python.m4
new file mode 100644
index 0000000..cf9d5b1
--- /dev/null
+++ b/build/autotools/python.m4
@@ -0,0 +1,237 @@
+## this one is commonly used with AM_PATH_PYTHONDIR ...
+dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
+dnl Check if a module containing a given symbol is visible to python.
+AC_DEFUN([AM_CHECK_PYMOD],
+[AC_REQUIRE([AM_PATH_PYTHON])
+py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
+AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
+AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
+ifelse([$2],[], [prog="
+import sys
+try:
+        import $1
+except ImportError:
+        sys.exit(1)
+except:
+        sys.exit(0)
+sys.exit(0)"], [prog="
+import $1
+$1.$2"])
+if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
+  then
+    eval "py_cv_mod_$py_mod_var=yes"
+  else
+    eval "py_cv_mod_$py_mod_var=no"
+  fi
+])
+py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
+if test "x$py_val" != xno; then
+  AC_MSG_RESULT(yes)
+  ifelse([$3], [],, [$3
+])dnl
+else
+  AC_MSG_RESULT(no)
+  ifelse([$4], [],, [$4
+])dnl
+fi
+])
+
+dnl a macro to check for ability to create python extensions
+dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
+dnl function also defines PYTHON_INCLUDES
+AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_MSG_CHECKING(for headers required to compile python extensions)
+dnl deduce PYTHON_INCLUDES
+if test "x$PYTHON_INCLUDES" = x; then
+  PYTHON_CONFIG=`which $PYTHON`-config
+  if test -x "$PYTHON_CONFIG"; then
+    PYTHON_INCLUDES=`$PYTHON_CONFIG --includes 2>/dev/null`
+  else
+    PYTHON_INCLUDES=`$PYTHON -c "import distutils.sysconfig, sys; 
sys.stdout.write(distutils.sysconfig.get_python_inc(True))"`
+    PYTHON_INCLUDES="-I$PYTHON_INCLUDES"
+  fi
+fi
+AC_SUBST(PYTHON_INCLUDES)
+dnl check if the headers exist:
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
+AC_TRY_CPP([#include <Python.h>],dnl
+[AC_MSG_RESULT(found)
+$1],dnl
+[AC_MSG_RESULT(not found)
+$2])
+CPPFLAGS="$save_CPPFLAGS"
+])
+
+dnl a macro to check for ability to embed python
+dnl  AM_CHECK_PYTHON_LIBS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
+dnl function also defines PYTHON_LIBS
+AC_DEFUN([AM_CHECK_PYTHON_LIBS],
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_MSG_CHECKING(for libraries required to embed python)
+dnl deduce PYTHON_LIBS
+py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`
+if test "x$PYTHON_LIBS" = x; then
+  PYTHON_CONFIG=`which $PYTHON`-config
+  if test -x "$PYTHON_CONFIG"; then
+    PYTHON_LIBS=`$PYTHON_CONFIG --ldflags 2>/dev/null`
+  else
+    PYTHON_LIBS="-L${py_prefix}/lib -lpython${PYTHON_VERSION}"
+  fi
+fi
+if test "x$PYTHON_LIB_LOC" = x; then
+       PYTHON_LIB_LOC="${py_prefix}/lib"
+fi
+AC_SUBST(PYTHON_LIBS)
+AC_SUBST(PYTHON_LIB_LOC)
+dnl check if the headers exist:
+save_LIBS="$LIBS"
+LIBS="$LIBS $PYTHON_LIBS"
+AC_TRY_LINK_FUNC(Py_Initialize, dnl
+         [LIBS="$save_LIBS"; AC_MSG_RESULT(yes); $1], dnl
+         [LIBS="$save_LIBS"; AC_MSG_RESULT(no); $2])
+
+])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# JD_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([JD_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
+  dnl supported
+  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+                    [python3 python3.3 python3.2 python3.1 python2 python2.7 python])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+    fi
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+                             [AC_MSG_RESULT(yes)],
+                             [AC_MSG_ERROR(too old)])
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+       [am_cv_pathless_PYTHON],[
+       for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+         test "$am_cv_pathless_PYTHON" = none && break
+         AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+       done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+       PYTHON=:
+      else
+        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  if test "$PYTHON" = :; then
+  dnl Run any user-specified action, or abort.
+    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+  else
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.  distutils does not exist in
+  dnl Python 1.5, so we fall back to the hardcoded directory if it
+  dnl doesn't work.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; 
print(sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX'))" 2>/dev/null ||
+     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.  distutils does not exist in
+  dnl Python 1.5, so we fall back to the hardcoded directory if it
+  dnl doesn't work.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; 
print(sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX'))" 2>/dev/null ||
+     echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+  dnl Run any user-specified action.
+  $2
+  fi
+
+])
diff --git a/configure.ac b/configure.ac
index dd61a1d..1d5f5fd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,265 +4,110 @@ AC_PREREQ([2.63])
 # An odd micro number indicates in-progress development, (eg. from svn)
 # An even micro number indicates a released version.
 m4_define(pyclutter_version_major, 1)
-m4_define(pyclutter_version_minor, 3)
-m4_define(pyclutter_version_micro, 3)
+m4_define(pyclutter_version_minor, 99)
+m4_define(pyclutter_version_micro, 1)
 m4_define(pyclutter_version, pyclutter_version_major.pyclutter_version_minor.pyclutter_version_micro)
 
 m4_define(clutter_required_version,     1.0.0)
-m4_define(pycairo_required_version,     1.0.2) dnl or 1.1.7
-m4_define(pygobject_required_version,   2.21.3)
-m4_define(pygtk_required_version,       2.8.0)
+m4_define(py2cairo_required_version,    1.2.0)
+m4_define(py3cairo_required_version,    1.10.0)
+m4_define(pygobject_required_version,   3.0.0)
+m4_define(python_min_ver,               2.7)
+m4_define(python3_min_ver,              3.1)
 
 AC_INIT([pyclutter], [pyclutter_version],
-        [http://bugzilla.clutter-project.org/enter_bug.cgi?product=pyclutter],
+        [],
         [pyclutter],
         [http://www.clutter-project.org])
 
-AC_DEFINE(PYCLUTTER_MAJOR_VERSION, [pyclutter_version_major], [pyclutter major version])
-AC_SUBST(PYCLUTTER_MAJOR_VERSION, [pyclutter_version_major])
-AC_DEFINE(PYCLUTTER_MINOR_VERSION, [pyclutter_version_minor], [pyclutter minor version])
-AC_SUBST(PYCLUTTER_MINOR_VERSION, [pyclutter_version_minor])
-AC_DEFINE(PYCLUTTER_MICRO_VERSION, [pyclutter_version_micro], [pyclutter micro version])
-AC_SUBST(PYCLUTTER_MICRO_VERSION, [pyclutter_version_micro])
-AC_DEFINE(PYCLUTTER_VERSION, [pyclutter_version], [pyclutter version])
-AC_SUBST(PYCLUTTER_VERSION, [pyclutter_version])
-
-AC_CONFIG_SRCDIR([clutter/cluttermodule.c])
 AC_CONFIG_MACRO_DIR([build/autotools])
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 
-AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-bzip2])
+AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar subdir-objects])
 
 AM_SILENT_RULES([yes])
 
+AM_MAINTAINER_MODE([enable])
+
+LT_PREREQ([2.2.6])
+LT_INIT([dlopen win32-dll disable-static])
+
 dnl put the ACLOCAL flags in the makefile
 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
 
 AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 
-LT_PREREQ([2.2.6])
-LT_INIT([disable-static])
+# check that we have the minimum version of python necessary to build
+JD_PATH_PYTHON(python_min_ver)
 
-AC_LIBTOOL_WIN32_DLL
+# check if we are building for python 3
+AM_PYTHON_CHECK_VERSION([$PYTHON], [3.0], build_py3k=true, build_py3k=false)
 
-# uncomment in 0.7
-AM_PATH_PYTHON(2.6.0,,[AC_MSG_ERROR([could not find Python 2.6.0])])
-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR([could not find Python headers])])
+# if building for python 3 make sure we have the minimum version supported
+AS_IF([ test $build_py3k = true ],
+      [ AC_MSG_CHECKING([for $PYTHON >=] python3_min_ver) ],
+      [
+        AM_PYTHON_CHECK_VERSION([$PYTHON], python3_min_ver,
+                                [AC_MSG_RESULT(yes)],
+                                [AC_MSG_ERROR(too old)])
+      ])
 
-PLATFORM=`$PYTHON -c "from distutils import util; print util.get_platform()"`
+PLATFORM=`$PYTHON -c "import sys; from distutils import util; sys.stdout.write(util.get_platform())"`
 AC_SUBST(PLATFORM)
 
-dnl get rid of the -export-dynamic stuff from the configure flags ...
-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-
-# Checks for programs.
-AC_PROG_CC
-
-# Checks for header files.
-AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
+PYTHON_BASENAME=`basename $PYTHON`
+AC_SUBST([PYTHON_BASENAME])
 
 dnl check for pygobject
-PKG_CHECK_MODULES(PYGOBJECT, [pygobject-2.0 >= pygobject_required_version])
+PKG_CHECK_MODULES(PYGOBJECT, [pygobject-3.0 >= pygobject_required_version])
 AC_SUBST(PYGOBJECT_CFLAGS)
 AC_SUBST(PYGOBJECT_LIBS)
 
-PYGOBJECT_INCLUDEDIR=`$PKG_CONFIG --variable=pygtkincludedir pygobject-2.0`
-PYGOBJECT_DATADIR=`$PKG_CONFIG --variable=datadir pygobject-2.0`
-PYGOBJECT_DEFSDIR=`$PKG_CONFIG --variable defsdir pygobject-2.0`
-PYGOBJECT_VERSION=`$PKG_CONFIG --variable defsdir pygobject-2.0`
-AC_SUBST(PYGOBJECT_INCLUDEDIR)
-AC_SUBST(PYGOBJECT_DATADIR)
-AC_SUBST(PYGOBJECT_DEFSDIR)
-AC_SUBST(PYGOBJECT_CFLAGS)
-
 dnl check for pycairo
-PKG_CHECK_MODULES(PYCAIRO, [pycairo >= pycairo_required_version])
-AC_SUBST(PYCAIRO_CFLAGS)
-AC_SUBST(PYCAIRO_LIBS)
-
-dnl check for pygtk
-PKG_CHECK_MODULES(PYGTK, [pygtk-2.0 >= pygtk_required_version])
-AC_SUBST(PYGTK_CFLAGS)
-AC_SUBST(PYGTK_LIBS)
-
-AC_MSG_CHECKING([for pygtk defs])
-PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
-AC_SUBST(PYGTK_DEFSDIR)
-AC_MSG_RESULT($PYGTK_DEFSDIR)
-
-PYGOBJECT_CODEGEN_DEFINES=
-
-dnl check for clutter
-PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= clutter_required_version)
-AC_SUBST(CLUTTER_CFLAGS)
-AC_SUBST(CLUTTER_LIBS)
-AS_IF([test -n "$export_dynamic"],
+AS_IF([ test $build_py3k = true ],
       [
-        CLUTTER_LIBS=`echo $CLUTTER_LIBS | sed -e "s/$export_dynamic//"`
-      ])
-
-dnl check for clutter >= 1.4
-AC_MSG_CHECKING([for Clutter >= 1.4])
-PKG_CHECK_EXISTS([clutter-1.0 >= 1.4.0],
-                 [
-                   AC_MSG_RESULT([found])
-                   has_clutter_1_4=yes
-                 ],
-                 [
-                   AC_MSG_RESULT([not found])
-                   has_clutter_1_4=no
-                 ])
-
-AS_IF([test "x$has_clutter_1_4" = "xyes"],
+        PKG_CHECK_MODULES(PYCAIRO, py3cairo >= py3cairo_required_version)
+      ],
       [
-        AC_DEFINE([HAVE_CLUTTER_1_4],
-                  [1],
-                  [Define to 1 if Clutter >= 1.4])
-        PYGOBJECT_CODEGEN_DEFINES="$PYCLUTTER_CODEGEN_DEFINES -DHAVE_CLUTTER_1_4"
+        PKG_CHECK_MODULES(PYCAIRO, pycairo >= py2cairo_required_version)
       ])
 
-AM_CONDITIONAL([HAVE_CLUTTER_1_4], [test "x$has_clutter_1_4" = "xyes"])
-
-dnl check for clutter >= 1.2
-AC_MSG_CHECKING([for Clutter >= 1.2])
-PKG_CHECK_EXISTS([clutter-1.0 >= 1.2.0],
-                 [
-                   AC_MSG_RESULT([found])
-                   has_clutter_1_2=yes
-                 ],
-                 [
-                   AC_MSG_RESULT([not found])
-                   has_clutter_1_2=no
-                 ])
-
-AS_IF([test "x$has_clutter_1_2" = "xyes"],
-      [
-        AC_DEFINE([HAVE_CLUTTER_1_2],
-                  [1],
-                  [Define to 1 if Clutter >= 1.2])
-        PYGOBJECT_CODEGEN_DEFINES="$PYCLUTTER_CODEGEN_DEFINES -DHAVE_CLUTTER_1_2"
-      ])
-
-AM_CONDITIONAL([HAVE_CLUTTER_1_2], [test "x$has_clutter_1_2" = "xyes"])
-
-dnl Building X11 extension
-build_clutterx11=yes
-AC_ARG_WITH([clutterx11],
-            [AC_HELP_STRING([--with-clutterx11=@<:@yes/no@:>@],
-                            [Build clutter.x11 submodule])],
-            [build_clutterx11=$with_clutterx11])
-
-AS_IF([test "x$build_clutterx11" = "xyes"],
-      [
-        PKG_CHECK_MODULES([CLUTTERX11],
-                          [clutter-x11-1.0 >= clutter_required_version],
-                          [build_clutterx11=yes],
-                          [build_clutterx11=no])
-        AC_SUBST(CLUTTERX11_CFLAGS)
-        AC_SUBST(CLUTTERX11_LIBS)
-        AC_DEFINE([HAVE_CLUTTERX11], [1], [Define to 1 if clutter-x11 is available])
-
-        AS_IF([test -n "$export_dynamic"],
-              [
-                CLUTTERX11_LIBS=`echo $CLUTTERX11_LIBS | sed -e "s/$export_dynamic//"`
-              ]
-        )
-      ]
-)
-
-AM_CONDITIONAL([BUILD_CLUTTERX11], [test "x$build_clutterx11" = "xyes"])
-
-dnl Building GLX extension
-build_clutterglx=yes
-AC_ARG_WITH([clutterglx],
-            [AC_HELP_STRING([--with-clutterglx=@<:@yes/no@:>@],
-                            [Build clutter.glx submodule])],
-            [build_clutterglx=$with_clutterglx])
-
-AS_IF([test "x$build_clutterglx" = "xyes"],
-      [
-        AC_MSG_CHECKING([for Clutter GLX support])
-               clutter_backend=`$PKG_CONFIG --variable=backend clutter-x11-1.0`
-               AS_IF([test "x$clutter_backend" != "xglx"], [build_clutterglx=no])
-               AC_MSG_RESULT([$build_clutterglx])
-      ]
-)
-
-AM_CONDITIONAL([BUILD_CLUTTERGLX], [test "x$build_clutterglx" = "xyes"])
-
-
-dnl Building documentation
-m4_define([docs_default], [m4_if(m4_eval(pyclutter_version_minor % 2), [0], [yes], [no])])
-
-AC_ARG_ENABLE([docs],
-              [AC_HELP_STRING([--enable-docs], [Enable documentation building])],
-              [],
-              [enable_docs=docs_default])
-
-AS_IF([test "x$enable_docs" = "xyes"],
-      [
-        dnl Check for xsltproc
-        AC_PATH_PROG([XSLTPROC], [xsltproc], [], [enable_docs=no])
-
-        PYGOBJECT_PYGDOCS=`$PKG_CONFIG --variable=pygdocs pygobject-2.0`
-        PYGOBJECT_FIXXREF="$PYTHON `$PKG_CONFIG --variable=fixxref pygobject-2.0`"
-        AC_SUBST(PYGOBJECT_PYGDOCS)
-        AC_SUBST(PYGOBJECT_FIXXREF)
-      ]
-)
-
-AM_CONDITIONAL(ENABLE_DOCS, [test "x$enable_docs" = "xyes"])
-
-dnl add required cflags ...
-JH_ADD_CFLAG([-Wall])
-JH_ADD_CFLAG([-fno-strict-aliasing])
+dnl check for clutter
+PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= clutter_required_version)
 
-AC_SUBST([PYGOBJECT_CODEGEN_DEFINES])
+dnl and set the override directory
+AC_ARG_WITH([pygi_overrides_dir],
+            [AC_HELP_STRING([--with-pygi-overrides-dir], [Path to pygobject overrides directory])])
 
-dnl Introspection support
-AC_ARG_ENABLE([introspection],
-              [AC_HELP_STRING([--enable-introspection], [Enable introspection overrides])],
-              [],
-              [enable_introspection=yes])
-AS_IF([test "x$enable_introspection" = "xyes"],
+AC_MSG_CHECKING(for pygobject overrides directory)
+AS_IF([ test "x$with_pygi_overrides_dir" = x ],
       [
-        AC_MSG_CHECKING([for pygobject overrides dir])
-        overrides_dir=`$PYTHON build/get_overrides_dir.py`
-        PYGOBJECT_OVERRIDESDIR=$overrides_dir
-        AC_SUBST(PYGOBJECT_OVERRIDESDIR)
-        AC_MSG_RESULT($PYGOBJECT_OVERRIDESDIR)
-        AS_IF([test "x$PYGOBJECT_OVERRIDESDIR" = "x"],
-              [
-               enable_introspection=no
-              ])
-      ]
-)
-AM_CONDITIONAL(ENABLE_INTROSPECTION, [test "x$enable_introspection" = "xyes"])
+        overrides_dir="`$PYTHON -c 'import gi; print(gi._overridesdir)' 2>/dev/null`"
+        # fallback if the previous failed
+        AS_IF([ test "x$overrides_dir" = x ], [ overrides_dir="${pyexecdir}/gi/overrides" ])
+      ],
+      [ overrides_dir="$with_pygi_overrides_dir" ])
 
+PYGI_OVERRIDES_DIR="$overrides_dir"
+AC_SUBST(PYGI_OVERRIDES_DIR)
+AC_MSG_RESULT($PYGI_OVERRIDES_DIR)
 
 AC_CONFIG_FILES([
-        Makefile
-        build/Makefile
-        build/autotools/Makefile
-        codegen/Makefile
-        pyclutter.pc
-        docs/Makefile
-        docs/reference/entities.docbook
-        examples/Makefile
-        clutter/Makefile
-        introspection/Makefile
+    Makefile
+    build/Makefile
+    build/autotools/Makefile
+    gi/Makefile
+    gi/overrides/Makefile
+    examples/Makefile
 ])
 
 AC_OUTPUT
 
-echo "* PyClutter:
-    enable documentation: $enable_docs
-    enable introspection: $enable_introspection
-    build x11 submodule:  $build_clutterx11
-    build glx submodule:  $build_clutterglx
-"
+AC_MSG_RESULT([
+        pyclutter $VERSION
+
+        Python: $PYTHON
+        Building with Python 3: $build_py3k
+        PyGObject overrides directory: $overrides_dir
+])
diff --git a/gi/Makefile.am b/gi/Makefile.am
new file mode 100644
index 0000000..eeba093
--- /dev/null
+++ b/gi/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = overrides
diff --git a/gi/__init__.py b/gi/__init__.py
new file mode 100644
index 0000000..e35e122
--- /dev/null
+++ b/gi/__init__.py
@@ -0,0 +1,3 @@
+# support overrides in different directories than our gi module
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git a/introspection/Clutter.py b/gi/overrides/Clutter.py
similarity index 91%
rename from introspection/Clutter.py
rename to gi/overrides/Clutter.py
index 4190adb..aaf74a6 100644
--- a/introspection/Clutter.py
+++ b/gi/overrides/Clutter.py
@@ -1,9 +1,10 @@
 # -*- Mode: Python; py-indent-offset: 4 -*-
 # vim: tabstop=4 shiftwidth=4 expandtab
 #
-# Copyright (C) 2009 Johan Dahlin <johan gnome org>
-#               2010 Simon van der Linden <svdlinden src gnome org>
-#               2011 Bastian Winkler <buz netbuz org>
+# Copyright 2009 Johan Dahlin <johan gnome org>
+#           2010 Simon van der Linden <svdlinden src gnome org>
+#           2011 Bastian Winkler <buz netbuz org>
+#           2015 Emmanuele Bassi
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -20,16 +21,16 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
 # USA
 
-import sys
-from ..overrides import override
+from ..overrides import override, deprecated_init
 from ..importer import modules
-from gi.repository import GObject
-from contextlib import contextmanager
 
-Clutter = modules['Clutter']._introspection_module
+from gi import PyGIDeprecationWarning
+from gi.repository import GObject
 
-__all__ = []
+from contextlib import contextmanager
 
+import sys
+import warnings
 
 if sys.version_info >= (3, 0):
     _basestring = str
@@ -39,56 +40,53 @@ else:
     _callable = callable
 
 
-clutter_version = (Clutter.MAJOR_VERSION, Clutter.MINOR_VERSION,
-                   Clutter.MICRO_VERSION)
+Clutter = modules['Clutter']._introspection_module
+__all__ = []
+
+clutter_version = (Clutter.MAJOR_VERSION, Clutter.MINOR_VERSION, Clutter.MICRO_VERSION)
 __all__.append('clutter_version')
 
+def _extract_handler_and_args(obj_or_map, handler_name):
+    handler = None
+    if isinstance(obj_or_map, collections.Mapping):
+        handler = obj_or_map.get(handler_name, None)
+    else:
+        handler = getattr(obj_or_map, handler_name, None)
 
-def _gvalue_from_python(value_type, v):
-    # XXX: A similar function is also in Gtk.py, but IMHO this should
-    # live in a GObject.Value override. Either as a GValue classmethod
-    # or the GValue constructor.
-    value = GObject.Value()
-    value.init(value_type)
-    if value_type == GObject.TYPE_INT:
-        value.set_int(int(v))
-    elif value_type == GObject.TYPE_UINT:
-        value.set_uint(int(v))
-    elif value_type == GObject.TYPE_CHAR:
-        value.set_char(int(v))
-    elif value_type == GObject.TYPE_UCHAR:
-        value.set_uint(int(v))
-    elif value_type == GObject.TYPE_FLOAT:
-        value.set_float(float(v))
-    elif value_type == GObject.TYPE_DOUBLE:
-        value.set_double(float(v))
-    elif value_type == GObject.TYPE_LONG:
-        value.set_long(long(v))
-    elif value_type == GObject.TYPE_ULONG:
-        value.set_ulong(long(v))
-    elif value_type == GObject.TYPE_INT64:
-        value.set_int64(long(v))
-    elif value_type == GObject.TYPE_UINT64:
-        value.set_uint64(long(v))
-    elif value_type == GObject.TYPE_BOOLEAN:
-        value.set_boolean(bool(v))
-    elif value_type == GObject.TYPE_STRING:
-        if isinstance(v, str):
-            v = str(v)
-        elif sys.version_info < (3, 0):
-            if isinstance(v, unicode):
-                v = v.encode('UTF-8')
-            else:
-                raise ValueError("Expected string or unicode " \
-                        "but got %s%s" % (v, type(v)))
+    if handler is None:
+        raise AttributeError('Handler %s not found' % handler_name)
+
+    args = ()
+    if isinstance(handler, collections.Sequence):
+        if len(handler) == 0:
+            raise TypeError("Handler %s tuple can not be empty" % handler)
+        args = handler[1:]
+        handler = handler[0]
+
+    elif not _callable(handler):
+        raise TypeError('Handler %s is not a method, function or tuple' % handler)
+
+    return handler, args
+
+def _builder_connect_callback(builder, gobj, signal_name, handler_name, connect_obj, flags, obj_or_map):
+    handler, args = _extract_handler_and_args(obj_or_map, handler_name)
+
+    after = flags & GObject.ConnectFlags.AFTER
+    if connect_obj is not None:
+        if after:
+            gobj.connect_object_after(signal_name, handler, connect_obj, *args)
         else:
-            raise ValueError("Expected string or unicode " \
-                    "but got %s%s" % (v, type(v)))
-        value.set_string(str(v))
+            gobj.connect_object(signal_name, handler, connect_obj, *args)
     else:
-        return v
-    return value
+        if after:
+            gobj.connect_after(signal_name, handler, *args)
+        else:
+            gobj.connect(signal_name, handler, *args)
+
+class PyClutterDeprecationWarning(PyGIDeprecationWarning):
+    pass
 
+__all__.append('PyClutterDeprecationWarning')
 
 class Color(Clutter.Color):
     def __new__(cls, *args, **kwargs):
@@ -806,14 +804,9 @@ __all__.append('Rectangle')
 
 
 class Text(Clutter.Text, Actor):
-    def __init__(self, font_name=None, text=None, color=None, **kwargs):
-        if font_name is not None:
-            kwargs['font_name'] = font_name
-        if text is not None:
-            kwargs['text'] = text
-        if color is not None:
-            kwargs['color'] = color
-        Clutter.Text.__init__(self, **kwargs)
+    __init__ = deprecated_init(Clutter.Text.__init__,
+                               arg_names=('font_name', 'text', 'color'),
+                               category=PyClutterDeprecationWarning)
 
     def position_to_coords(self, position):
         success, x, y, lh = Clutter.Text.position_to_coords(self, position)
@@ -825,9 +818,9 @@ __all__.append('Text')
 
 
 class CairoTexture(Clutter.CairoTexture):
-    def __init__(self, surface_width=1, surface_height=1, **kwargs):
-        Clutter.CairoTexture.__init__(self, surface_width=surface_width,
-                                      surface_height=surface_height, **kwargs)
+    __init__ = deprecated_init(Clutter.CairoTexture.__init__,
+                               arg_names=('surface_width', 'surface_height'),
+                               category=PyClutterDeprecationWarning)
 
 CairoTexture = override(CairoTexture)
 __all__.append('CairoTexture')
@@ -879,8 +872,9 @@ __all__.append('FlowLayout')
 
 
 class Box(Clutter.Box, Actor):
-    def __init__(self, layout_manager=None, **kwargs):
-        Clutter.Box.__init__(self, layout_manager=layout_manager, **kwargs)
+    __init__ = deprecated_init(Clutter.Box.__init__,
+                               arg_names=('layout_manager'),
+                               category=PyClutterDeprecationWarning)
 
     def pack(self, actor, **kwargs):
         self.add_actor(actor)
@@ -912,23 +906,20 @@ __all__.append('Box')
 class Model(Clutter.Model):
     def insert(self, row, *args):
         if len(args) < 2 or len(args) % 2:
-            raise ValueError("Clutter.Model.insert needs at least one " +
-                    "column / value pair")
+            raise ValueError("Clutter.Model.insert needs at least one column / value pair")
         for column, value in zip(args[::2], args[1::2]):
             value = _gvalue_from_python(self.get_column_type(column), value)
             self.insert_value(row, column, value)
 
     def append(self, *args):
         if len(args) < 2 or len(args) % 2:
-            raise ValueError("Clutter.Model.append needs at least one " +
-                    "column / value pair")
+            raise ValueError("Clutter.Model.append needs at least one column / value pair")
         row = self.get_n_rows()
         self.insert(row, *args)
 
     def prepend(self, *args):
         if len(args) < 2 or len(args) % 2:
-            raise ValueError("Clutter.Model.prepend needs at least one " +
-                    "column / value pair")
+            raise ValueError("Clutter.Model.prepend needs at least one column / value pair")
         columns = []
         values = []
         for column, value in zip(args[::2], args[1::2]):
@@ -1104,35 +1095,18 @@ class Script(Clutter.Script):
         return ret
 
     def connect_signals(self, obj_or_map):
-        def _full_callback(builder, gobj, signal_name, handler_name,
-                connect_obj, flags, obj_or_map):
-            handler = None
-            if isinstance(obj_or_map, dict):
-                handler = obj_or_map.get(handler_name, None)
-            else:
-                handler = getattr(obj_or_map, handler_name, None)
+        """Connect signals specified by this builder to a name, handler mapping.
 
-            if handler is None:
-                raise AttributeError('Handler %s not found' % handler_name)
+        Connect signal, name, and handler sets specified in the builder with
+        the given mapping "obj_or_map". The handler/value aspect of the mapping
+        can also contain a tuple in the form of (handler [,arg1 [,argN]])
+        allowing for extra arguments to be passed to the handler. For example:
 
-            if not _callable(handler):
-                raise TypeError('Handler %s is not a method or function' %
-                        handler_name)
+        .. code-block:: python
 
-            after = flags or GObject.ConnectFlags.AFTER
-            if connect_obj is not None:
-                if after:
-                    gobj.connect_object_after(signal_name, handler,
-                            connect_obj)
-                else:
-                    gobj.connect_object(signal_name, handler, connect_obj)
-            else:
-                if after:
-                    gobj.connect_after(signal_name, handler)
-                else:
-                    gobj.connect(signal_name, handler)
-
-        self.connect_signals_full(_full_callback, obj_or_map)
+            builder.connect_signals({'on_clicked': (on_clicked, arg1, arg2)})
+        """
+        self.connect_signals_full(_builder_connect_callback, obj_or_map)
 
 Script = override(Script)
 __all__.append('Script')
@@ -1193,13 +1167,12 @@ class Interval(Clutter.Interval):
     def __init__(self, value_type, initial=None, final=None):
         Clutter.Interval.__init__(self, value_type=value_type)
         if initial is not None:
-            self.set_initial(initial)
+            self.set_initial_value(initial)
         if final is not None:
-            self.set_final(final)
+            self.set_final_value(final)
 
     def set_initial(self, value):
-        Clutter.Interval.set_initial(self,
-                _gvalue_from_python(self.props.value_type, value))
+        Clutter.Interval.set_initial_value(self, value)
 
     def get_initial(self):
         try:
@@ -1210,8 +1183,7 @@ class Interval(Clutter.Interval):
     initial = property(get_initial, set_initial)
 
     def set_final(self, value):
-        Clutter.Interval.set_final(self,
-                _gvalue_from_python(self.props.value_type, value))
+        Clutter.Interval.set_final_value(self, value)
 
     def get_final(self):
         try:
diff --git a/gi/overrides/Makefile.am b/gi/overrides/Makefile.am
new file mode 100644
index 0000000..0daa95b
--- /dev/null
+++ b/gi/overrides/Makefile.am
@@ -0,0 +1,4 @@
+pygioverridesdir = $(PYGI_OVERRIDES_DIR)
+pygioverrides_PYTHON = Clutter.py
+
+EXTRA_DIST = Clutter.py
diff --git a/gi/overrides/__init__.py b/gi/overrides/__init__.py
new file mode 100644
index 0000000..57abf1a
--- /dev/null
+++ b/gi/overrides/__init__.py
@@ -0,0 +1,4 @@
+from pkgutil import extend_path
+
+__path__ = extend_path(__path__, __name__)
+print(__path__, __name__)
diff --git a/pyclutter.doap b/pyclutter.doap
index 4fd6e11..aff87bd 100644
--- a/pyclutter.doap
+++ b/pyclutter.doap
@@ -1,35 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";
          xmlns:foaf="http://xmlns.com/foaf/0.1/";
-        xmlns="http://usefulinc.com/ns/doap#";>
+         xmlns:gnome="http://api.gnome.org/doap-extensions#";
+         xmlns="http://usefulinc.com/ns/doap#";>
 
   <name>PyClutter</name>
-  <created>2006-11-18</created>
-  <shortdesc xml:lang="en">PyClutter is a Python module binding Clutter</shortdesc>
-  <description xml:lang="en">
-       Clutter is an open source software library for creating fast, visually
-       rich and animated graphical user interfaces. PyClutter provides Python
-       bindings for this library.
-  </description>
+  <shortname>pyclutter</shortname>
+  <category rdf:resource="http://api.gnome.org/doap-extensions#core"; />
 
-  <homepage rdf:resource="http://labs.o-hand.com/clutter"; />
-  <download-page rdf:resource="http://clutter-project.org/sources"; />
+  <shortdesc xml:lang="en">Python bindings for Clutter</shortdesc>
+
+  <description xml:lang="en">PyClutter provides Python bindings for Clutter,
+  an open source software library for creating fast, portable, compelling and
+  dynamic graphical user interfaces. Clutter uses OpenGL (and optionally
+  OpenGL|ES for use on Mobile and embedded platforms) for rendering, but with
+  an API which hides the underlying GL complexity from the developer. The
+  Clutter API is intended to be easy to use, efficient and flexible.</description>
+
+  <homepage rdf:resource="http://www.clutter-project.org"; />
   <license rdf:resource="http://usefulinc.com/doap/licenses/lgpl"; />
-  <bug-database rdf:resource="http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter"/>
-  <os>linux</os>
-  <programming-language>C</programming-language>
-  <programming-language>Python</programming-language>
+  <bug-database rdf:resource="http://bugzilla.gnome.org/enter_bug.cgi?product=clutter"/>
+  <download-page rdf:resource="http://download.gnome.org/sources/pyclutter"; />
+  <mailing-list rdf:resource="mailto:clutter-list gnome org org" />
 
-  <category rdf:resource="http://labs.o-hand.com/doap/category/library"/>
-  <category rdf:resource="http://labs.o-hand.com/doap/category/graphics"/>
-  <category rdf:resource="http://labs.o-hand.com/doap/category/embedded"/>
-  <category rdf:resource="http://labs.o-hand.com/doap/category/bindings"/>
+  <programming-language>Python</programming-language>
 
   <maintainer>
     <foaf:Person>
       <foaf:name>Emmanuele Bassi</foaf:name>
+      <foaf:mbox rdf:resource="mailto:ebassi gnome org"/>
+      <gnome:userid>ebassi</gnome:userid>
     </foaf:Person>
   </maintainer>
 
+
   <maintainer>
     <foaf:Person>
       <foaf:name>Bastian Winkler</foaf:name>
@@ -37,50 +42,9 @@
   </maintainer>
 
   <repository>
-       <GitRepository>
-         <browse rdf:resource="http://git.clutter-project.org/?r=bindings/pyclutter"/>
-         <location rdf:resource="git://git.clutter-project.org/bindings/pyclutter"/>
-       </GitRepository>
+    <GitRepository>
+        <browse rdf:resource="http://git.gnome.org/browse/pyclutter/"/>
+      <location rdf:resource="git://git.gnome.org/pyclutter"/>
+    </GitRepository>
   </repository>
-
-  <release>
-    <Version>
-      <created>2007-01-18</created>
-      <revision>0.2.0</revision>
-      <file-release 
rdf:resource="http://www.clutter-project.org/sources/pyclutter/0.2/pyclutter-0.2.0.tar.gz"/>
-    </Version>
-  </release>
-
-  <release>
-    <Version>
-      <created>2007-08-07</created>
-      <revision>0.4.0</revision>
-      <file-release 
rdf:resource="http://www.clutter-project.org/sources/pyclutter/0.4/pyclutter-0.4.0.tar.gz"/>
-    </Version>
-  </release>
-
-  <release>
-    <Version>
-      <created>2008-02-19</created>
-      <revision>0.6.0</revision>
-      <file-release 
rdf:resource="http://www.clutter-project.org/sources/pyclutter/0.6/pyclutter-0.6.0.tar.gz"/>
-    </Version>
-  </release>
-
-  <release>
-    <Version>
-      <created>2008-08-15</created>
-      <revision>0.8.0</revision>
-      <file-release 
rdf:resource="http://www.clutter-project.org/sources/pyclutter/0.8/pyclutter-0.8.0.tar.gz"/>
-    </Version>
-  </release>
-
-  <release>
-    <Version>
-      <created>2009-08-28</created>
-      <revision>1.0.0</revision>
-      <file-release 
rdf:resource="http://www.clutter-project.org/sources/pyclutter/1.0/pyclutter-1.0.0.tar.gz"/>
-    </Version>
-  </release>
-
 </Project>


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