Opened 8 years ago

Closed 5 years ago

#36554 closed defect (fixed)

zmq +pgm fails to build on 10.8.2

Reported by: kyle.tarplee@… Owned by: merijn (Merijn Verstraaten)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: anddam (Andrea D'Amore), posita (Matt Bogosian (formerly @mbogosian)), cooljeanius (Eric Gallager), michaelld (Michael Dickens)
Port: zmq

Description (last modified by mf2k (Frank Schima))

XCode 4.5.1 it configures but does not build. The log is attached.

The errors look like

:info:build In file included from list.c:22:
:info:build In file included from ./include/impl/framework.h:66:
:info:build In file included from ./include/impl/notify.h:46:
:info:build In file included from ./include/impl/sockaddr.h:38:
:info:build ./include/pgm/in.h:33:8: error: redefinition of 'group_req'
:info:build struct group_req
:info:build        ^
:info:build /usr/include/netinet/in.h:536:8: note: previous definition is here
:info:build struct group_req {
:info:build        ^
:info:build In file included from list.c:22:

Attachments (2)

main.log (56.4 KB) - added by kyle.tarplee@… 8 years ago.
main-pgm-no-longer-found.log (20.2 KB) - added by posita (Matt Bogosian (formerly @mbogosian)) 5 years ago.

Download all attachments as: .zip

Change History (22)

Changed 8 years ago by kyle.tarplee@…

Attachment: main.log added

comment:1 Changed 8 years ago by kyle.tarplee@…

Looks like the version of pgm that comes with zmq 2.2 is bad. You need to replace it like so:

We need a Portfile that does something like this:

wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar -xvf zeromq-2.2.0.tar.gz 
cd zeromq-2.2.0/
cd foreign/openpgm/
wget http://openpgm.googlecode.com/files/libpgm-5.2.121~dfsg.tar.gz
cd ../..
./configure --with-pgm=libpgm-5.2.121~dfsg
make -j8
sudo make install
Last edited 8 years ago by kyle.tarplee@… (previous) (diff)

comment:2 Changed 8 years ago by mf2k (Frank Schima)

Description: modified (diff)
Keywords: zmq removed

comment:3 Changed 8 years ago by kyle.tarplee@…

It also fails with zmq 3.2 with the same error. The error is in PGM so that makes sense. I have tested the above fix to upgrade pgm to 5.2.121 with zmq 3.2 and it works.

comment:4 Changed 8 years ago by ryandesign (Ryan Schmidt)

It looks like zmq has the ability to use an external installation of pgm. So maybe we should make a port for pgm, and then make the zmq port(s) use that.

comment:5 Changed 8 years ago by ryandesign (Ryan Schmidt)

Cc: and.damore@… added
Owner: changed from macports-tickets@… to merijn@…

comment:6 Changed 8 years ago by kyle.tarplee@…

That is the way Debian does it. They have a zmq package that depends on a PGM package. PGM is actually a nice library that people might want to use by itself.

comment:7 Changed 8 years ago by kyle.tarplee@…

I have tried to use zmq with PGM and it is rather buggy on the mac. I have two ZMQ tickets related to this: LIBZMQ-454, LIBZMQ455. Looks like they will fix the PGM support soon. I think it is still a good idea to have a separate PGM port.

comment:8 in reply to:  7 Changed 8 years ago by merijn (Merijn Verstraaten)

Replying to kyle.tarplee@…:

I have tried to use zmq with PGM and it is rather buggy on the mac. I have two ZMQ tickets related to this: LIBZMQ-454, LIBZMQ455. Looks like they will fix the PGM support soon. I think it is still a good idea to have a separate PGM port.

I had noticed PGM support using the PGM shipped with ZMQ was buggy, but due to the fact I saw multiple tickets for it on the ZMQ tracker I was planning to wait until they update PGM. I don't personally use PGM, so I'm a poor candidate for maintaining a port for it, but if you (or someone else) is willing to get a PGM port working I wouldn't mind making sure ZMQ compiles with it.

comment:9 Changed 6 years ago by ryandesign (Ryan Schmidt)

Cc: mtb19@… added

Has duplicate #43548.

I see zmq 4.0.4 is out; we should check if that helps.

comment:10 Changed 6 years ago by cooljeanius (Eric Gallager)

on 10.6 there is a different issue with zmq's +pgm variant: the build process keeps hanging on a libtool lock, saying: "glibtool: link: Waiting for libpgm_noinst.a.lock to be removed" forever...

comment:11 Changed 6 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:12 Changed 6 years ago by posita (Matt Bogosian (formerly @mbogosian))

on 10.6 there is a different issue with zmq's +pgm variant: the build process keeps hanging on a libtool lock, saying: "glibtool: link: Waiting for libpgm_noinst.a.lock to be removed" forever...

I found these:

If I add configure.compiler macports-gcc-4.x to the Portfile, I still get the same error, so it looks like a libtool issue, not a compiler issue.

Last edited 6 years ago by posita (Matt Bogosian (formerly @mbogosian)) (previous) (diff)

comment:13 Changed 6 years ago by posita (Matt Bogosian (formerly @mbogosian))

Update: It looks like the MacPorts' libtool is the offender. If I comment out the line:

#build.args          LIBTOOL=${prefix}/bin/glibtool

Then zmq-devel@4.0.5 +pgm will build without complaint.

Last edited 6 years ago by posita (Matt Bogosian (formerly @mbogosian)) (previous) (diff)

comment:14 Changed 6 years ago by posita (Matt Bogosian (formerly @mbogosian))

What I would suggest is if that build.args line is really necessary for previous versions, move it into the 3.2.x and 2.2.x subsections. That should allow folks to at least build 4.0.x (and hopefully 4.1.x once it's released).

Further, I would migrate (default) dependencies to zmq-devel where possible. For example, in python/py-zmq/Portfile, I would change:

depends_lib-append     path:lib/libzmq.dylib:zmq

To:

depends_lib-append     path:lib/libzmq.dylib:zmq-devel

Similar adjustments might be appropriate in:

  • databases/groonga/Portfile
  • devel/cppzmq/Portfile
  • devel/czmq/Portfile
  • perl/p5-zeromq/Portfile
  • www/mongrel2/Portfile

I think that's a comprehensive list as of this post.

Last edited 6 years ago by posita (Matt Bogosian (formerly @mbogosian)) (previous) (diff)

Changed 5 years ago by posita (Matt Bogosian (formerly @mbogosian))

comment:15 Changed 5 years ago by posita (Matt Bogosian (formerly @mbogosian))

While I don't think the earlier problem has gone away, it seems to be masked by a more recent issue, namely a missing openpgm (see the main-pgm-no-longer-found.log attachment).

comment:16 Changed 5 years ago by posita (Matt Bogosian (formerly @mbogosian))

Possible dup: #47810.

comment:17 Changed 5 years ago by michaelld (Michael Dickens)

zmq and zmq-devel are currently at version 4.1.3. Is this still an issue really? I don't see it on my 10.8, 10.9, or 10.10 boot disks. Please do the following for more/better testing:

sudo port clean zmq zmq-devel
sudo port selfupdate

then try upgrading or installing zmq or zmq-devel and see if that works. There is not +pgm variant as far as I can tell; maybe that's a dependency variant?

comment:18 Changed 5 years ago by michaelld (Michael Dickens)

Cc: michaelld@… added

Cc Me!

comment:19 Changed 5 years ago by posita (Matt Bogosian (formerly @mbogosian))

zmq and zmq-devel are currently at version 4.1.3. Is this still an issue really?

It looks like zmq-devel has been replaced by zmq, which now builds fine, but no longer provides the +pgm variant (as you noted).

There is not +pgm variant as far as I can tell; maybe that's a dependency variant?

There used to be. It provides multicast support to ZeroMQ (via OpenPGM), but it requires --with-pgm to be used with configure (see <http://zeromq.org/area:faq> and <http://zeromq.org/area:download#toc11>. If the +pgm variant has recently gone away, then it sounds like support for multicast is being abandoned for the MacPorts build of ZeroMQ?

Perhaps that is a separate issue? If so, it sounds like both this and #47810 can be closed.

comment:20 Changed 5 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

Because zmq and zmq-devel no longer contain +pgm, I'm closing this ticket as "fixed" because the offending code was disabled. If some day a developer wants to add this variant, s/he will likely need to address this ticket.

Note: See TracTickets for help on using tickets.