Source: zeromq3
Version: 4.2.1-2
Severity: serious

Hello,

zeromq3 in testing is currently built without PGM support:

$ apt show libzmq5
Package: libzmq5
Version: 4.2.1-2
Priority: optional
Section: libs
Source: zeromq3
Maintainer: Laszlo Boszormenyi (GCS) <g...@debian.org>
Installed-Size: 572 kB
Depends: libc6 (>= 2.14), libgcc1 (>= 1:3.0), libsodium18 (>= 0.6.0), 
libstdc++6 (>= 5.2)
Homepage: http://www.zeromq.org/
Tag: role::shared-lib
Download-Size: 189 kB
APT-Manual-Installed: no
APT-Sources: http://ftp.de.debian.org/debian stretch/main amd64 Packages
Description: lightweight messaging kernel (shared library)


And indeed, these test scripts fail:
  
http://code.saghul.net/index.php/2011/06/25/implementing-a-pubsub-based-application-with-python-and-zeromq/
$ ./zmq-sender
Traceback (most recent call last):
  File "./zmq-sender", line 8, in <module>
    socket.connect('epgm://239.192.1.1:5000')
  File "zmq/backend/cython/socket.pyx", line 528, in 
zmq.backend.cython.socket.Socket.connect (zmq/backend/cython/socket.c:5980)
  File "zmq/backend/cython/checkrc.pxd", line 25, in 
zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/socket.c:8400)
zmq.error.ZMQError: Protocol not supported


Looking at the build logs, it seems that upstream isn't supporting 
--with-system-pgm anymore:
https://buildd.debian.org/status/fetch.php?pkg=zeromq3&arch=i386&ver=4.2.1-2&stamp=1483291021&raw=0

  ./configure --build=i686-linux-gnu --prefix=/usr 
--includedir=\${prefix}/include --mandir=\${prefix}/share/man 
--infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var 
--disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu 
--libexecdir=\${prefix}/lib/i386-linux-gnu --disable-maintainer-mode 
--disable-dependency-tracking --with-system-pgm --with-libsodium
  configure: WARNING: unrecognized options: --disable-maintainer-mode, 
--with-system-pgm

Looking into configure.ac, it seems that it uses the system pgm library by
default; however, one needs to add --with-pgm to configure options, as it's
disabled by default:

  # build using pgm
  have_pgm_library="no"
  
  AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
      [build libzmq with PGM extension. Requires pkg-config [default=no]])],
      [with_pgm_ext=$withval],
      [with_pgm_ext=no])
  
  # conditionally require pgm package
  if test "x$with_pgm_ext" != "xno"; then
      PKG_CHECK_MODULES([pgm], [openpgm-5.2 >= 5.2], [ have_pgm_library="yes" ],
          [PKG_CHECK_MODULES([pgm], [openpgm-5.1 >= 5.1],
              [ have_pgm_library="yes" ])])
  fi
  
  if test "x$have_pgm_library" = "xyes"; then
      AC_DEFINE(ZMQ_HAVE_OPENPGM, [1], [Have OpenPGM extension])
      PKGCFG_LIBS_PRIVATE="$PKGCFG_LIBS_PRIVATE $pgm_LIBS"
  fi
  
  AM_CONDITIONAL(HAVE_PGM, test "x$have_pgm_library" = "xyes")

I tried replacing --with-system-pgm with --with-pgm in debian/rules and it
indeed builds a libzmq5 which links to OpenPGM and in which epgm sockets work.


Enrico

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to