Need a Cleaner Messaging System – Trying ZeroMQ

ZeroMQ

I was looking at several different reliable multicast systems today and came across one that appears to be promising. It's called ZeroMQ, and I'm not sure if it's going to work out, but I wanted to give it a try as it is planning to be used by another group in The Shop, and they have really gotten deep into the guts of the code. So it's probably going to be OK. I just won't know until I really get into it.

The first thing I need to do is to build it, and I might as well build an RPM for it for CentOS 5. There's no such RPM in existence, and yet they provide a nice zeromq.spec file for building an RPM, so I decided to go with that.

For the most part, it works OK... but there's a problem that is a killer if you don't get past it. It won't even compile with OpenPGM activated (--with-pgm). The solution was on the mailing list, and there was no easy way for me to put the fix into the zeromq.spec file, so I had to un-tar the ZeroMQ tarball, edit the src/Makefile.in file and then tar it back up and then build the RPM.

The critical line is:

  1. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DCONFIG_HAVE_HPET \
  2. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \
  3. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DGETTEXT_PACKAGE='"pgm"' \

to:

  1. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DCONFIG_HAVE_HPET \
  2. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DPGM_GNUC_INTERNAL= \
  3. @BUILD_PGM_TRUE@@ON_MINGW_FALSE@ -DGETTEXT_PACKAGE='"pgm"' \

and then the rpmbuild -bb zeromq.spec will work just fine.

I'm interested to see if I can get reliable multicast working with this guy.