To enable HarfBuzz bindings for Python among other languages, make sure
you have latest version of gobject-introspection available.  On Ubuntu,
you can install that this way:

  sudo apt-get install libgirepository1.0-dev

And then run autogen.sh (if building from git), and then:

  ./configure --with-gobject --enable-introspection

Make sure that gobject-introspection is enabled then in the final report.

Compile and install.

Make sure you have the installation lib dir in LD_LIBRARY_PATH, as needed
for the linker to find the library.

Then make sure you also have GI_TYPELIB_PATH pointing to the resulting
$prefix/lib/girepository-* directory.

Make sure you have pygobject installed.  Then check that the following
import works in your Python interpretter:

  from gi.repository import HarfBuzz

If it does, you are ready to call HarfBuzz from Python!  Congratulations.
See src/sample.py.

The Python API will change.  Let us know on the mailing list if you are
using it, and send lots of feedback.
