Errors while building pybroccoli?

Hi,
I just checked out the python bindings for broccoli and tried building it against Bro 1.3.2 using the suggested "python setup.py install". I am using python 2.4.3 and gcc 4.1.2 on CentOS 5

Unfortunately the build just results in a few screens of compilation errors and warnings. Looking at the Makefile, I decided to try regenerating the swing bindings and running setup.pu again. This cut down the number of errors to only a single screenful. Here's what I'm getting:
[sychan@panopticon python]$ python setup.py install
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.4
copying broccoli.py -> build/lib.linux-i686-2.4
running build_ext
building '_broccoli_intern' extension
creating build/temp.linux-i686-2.4
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.4 -c broccoli_intern_wrap.c -o build/temp.linux-i686-2.4/broccoli_intern_wrap.o
broccoli_intern_wrap.c:2504: warning: useless storage class specifier in empty declaration
broccoli_intern_wrap.c: In function ‘valToPyObj’:
broccoli_intern_wrap.c:2595: warning: pointer targets in passing argument 1 of ‘PyString_FromStringAndSize’ differ in signedness
broccoli_intern_wrap.c: In function ‘pyObjToVal’:
broccoli_intern_wrap.c:2681: warning: pointer targets in assignment differ in signedness
broccoli_intern_wrap.c: At top level:
broccoli_intern_wrap.c:2762: error: expected declaration specifiers or ‘...’ before ‘BroEvMeta’
broccoli_intern_wrap.c: In function ‘event_callback’:
broccoli_intern_wrap.c:2767: error: ‘meta’ undeclared (first use in this function)
broccoli_intern_wrap.c:2767: error: (Each undeclared identifier is reported only once
broccoli_intern_wrap.c:2767: error: for each function it appears in.)
broccoli_intern_wrap.c: In function ‘_wrap_bro_event_add_val’:
broccoli_intern_wrap.c:4716: warning: assignment discards qualifiers from pointer target type
broccoli_intern_wrap.c: In function ‘_wrap_bro_event_set_val’:
broccoli_intern_wrap.c:4786: warning: assignment discards qualifiers from pointer target type
broccoli_intern_wrap.c: In function ‘_wrap_bro_event_registry_add_compact’:
broccoli_intern_wrap.c:4988: warning: assignment from incompatible pointer type
broccoli_intern_wrap.c: In function ‘_wrap_bro_record_add_val’:
broccoli_intern_wrap.c:5849: warning: assignment discards qualifiers from pointer target type
broccoli_intern_wrap.c: In function ‘_wrap_bro_record_set_nth_val’:
broccoli_intern_wrap.c:6004: warning: assignment discards qualifiers from pointer target type
broccoli_intern_wrap.c: In function ‘_wrap_bro_record_set_named_val’:
broccoli_intern_wrap.c:6075: warning: assignment discards qualifiers from pointer target type
error: command 'gcc' failed with exit status 1
[sychan@panopticon python]$

The first error "broccoli_intern_wrap.c:2762: error: expected declaration specifiers or ‘...’ before ‘BroEvMeta’" references this:
// C-level event handler for events. We register all events with this callback,
// passing the target Python function in via data.
void event_callback(BroConn *bc, void *data, BroEvMeta *meta)
{
...

I don't see any declaration for the BroEvMeta type anywhere. There's a reference to this type in http://svn.icir.org/bro/trunk/bro/aux/broccoli/test/broping.c in the bro_pong_compact() declaration:

static void bro_pong_compact(BroConn *conn, void *data, BroEvMeta *meta)

However signature in my version of the broping is:
static void bro_pong_compact(BroConn *conn, void *data, int num_args, BroEvArg *args)

I'm guessing that things have changed since the 1.3.2 release and that the python bindings are against the current code base. Is that true?
Do I need to download the latest bro source tree via subversion to use the pythong bindings?

Steve

Yes, that's the problem here. There was an API change in Broccoli
that in turn required the Python bindings to be adapted, which is
why you're seeing these mismatches.

If you don't want to upgrade Broccoli, you could check out an older
revision of the Python bindings from my branch. The relevant change
was in revision 5937 so if you, say, checkout revision 5936 it
should work (and there haven't been any other changes since this to
the bindings).

Robin