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:

```bash
sudo apt-get install libgirepository1.0-dev
```

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

```bash
./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:

```python
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.
