To get this stuff working:

1. Set up a jhbuild desktop. Use the gnome-2.10.modules moduleset.

2. Update the important dependencies:
$ jhbuild buildone glib gtk+ pango atk gnome-python/pygtk \
  gnome-python/gnome-python epiphany epiphany-extensions
  (epiphany-extensions is only needed for the GUI at Tools -> Extensions)

3. Install pyphany
$ jhbuild buildone pyphany

4. Create an extension in your home directory, or copy an existing one. An
   extension requrires a .xml description file and a .py module file. (A
   directory with an __init__.py should work instead of the .py file.)

   By default, "make install" will install some extensions into
   /jhbuild/prefix/lib/epiphany-1.5/extensions, so you may skip this step
   (unless you want to create a new extension).

5. Set your PYTHONPATH to work within the jhbuild environment (this should be
   done automatically, eh?)
$ export PYTHONPATH=/jhbuild/prefix/lib/python2.3/site-packages/gtk-2.0
(replace /jhbuild/prefix with your jhbuild prefix, and replace
 python2.3 with python2.4 if necessary to match your Python version)

6. Start Epiphany
$ epiphany

7. Click on Tools -> Extensions, and enable your extension. If you enable the
   sample extension, you should see some "window_attach" and "tab_attach" stuff
   getting printed.

8. Close Epiphany, and pray it doesn't crash....

   The error "assertion `GTK_IS_CONTAINER (container)' failed" means that the
   window object hasn't been dereferenced properly.



Updating the epiphany.defs file
-------------------------------

Pygtk wraps most functions itself automatically, it uses the 
epiphany.defs file, this must be kept in-sync with the epiphany includes.
To update the file:

 - Install gnome-python so that you have the "h2def.py" script

 - Ensure that the installed epiphany include directory is uptodate
   (i.e. it doesn't contain any stale ephy header)

 - Run "python /path/to/h2def.py /path/to/include/epiphany-1.5/epiphany/* > epiphany.defs

 - You MUST now compare to see what has changed, e.g. the above command has the
   following problems:
	- It misses boxed types
	- It doesn't mark interfaces correctly
	- You need to ensure that no is-constructor-of lines have been lost

 - Basically, just do a cvs diff and fix things up as appropriate.

 - Finally ensure it compiles, but that's obvious, right? :-)

You could also make all the changes manually, but it's easier to use
the above process.
