Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Problems with zeromq 3.2.2
@ 2013-03-18 11:01 Simon Dawson
  2013-03-18 12:13 ` Alexander Lukichev
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Dawson @ 2013-03-18 11:01 UTC (permalink / raw)
  To: buildroot

The zeromq package was recently bumped from version 2.2.0 to
version 3.2.2. Unfortunately, zeromq 3.x.x is not backward-compatible
with client code developed to use version 2.2.x. For example, it
appears that the C++ binding has been removed, and is now available as
a separate project.

For my particular use case, I need the C++ binding, and would prefer to
remain using the 2.2.x branch.

I'm wondering if we should have separate packages in Buildroot for
zeromq versions 2.2.x and "latest supported". Does anybody have any
objections? I suppose the alternative is to try to understand the
complex system of zeromq sub-projects, in order to re-instate the C++
binding which has been lost in the seemingly-innocuous version bump.

Simon.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-18 11:01 [Buildroot] Problems with zeromq 3.2.2 Simon Dawson
@ 2013-03-18 12:13 ` Alexander Lukichev
  2013-03-18 12:54   ` Alexander Lukichev
                     ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Alexander Lukichev @ 2013-03-18 12:13 UTC (permalink / raw)
  To: buildroot

Hi, Simon!

2013/3/18 Simon Dawson <spdawson@gmail.com>
> The zeromq package was recently bumped from version 2.2.0 to
> version 3.2.2. Unfortunately, zeromq 3.x.x is not backward-compatible
> with client code developed to use version 2.2.x.

  I should probably be blamed for this and I am sorry the version bump
breaks your code (most probably, other people's too)!

  The ZeroMQ has moved from version 2.x to 3.2 almost a year ago and
they tried hard not to break things. There is a migration guide for existing
2.x-based code here http://www.zeromq.org/docs:3-1-upgrade It provides
a header that helps preserve compatibility with both zmq-2.x and zmq-3.2.
For example, CZMQ high-level wrapper (http://czmq.zeromq.org/) uses it
to work with both versions of the library.

> For example, it appears that the C++ binding has been removed, and is
> now available as a separate project.

  As I understand, the guide only will not help much in your case because
you use C++ bindings. That was bundled with zmq-2.x but as the library
itself is written in C language and the number of other language bindings
has grown significantly (see the list here
http://www.zeromq.org/bindings:_start ), C++ bindings were made into a
separate project, just like other languages.

> I'm wondering if we should have separate packages in Buildroot for
> zeromq versions 2.2.x and "latest supported". Does anybody have any
> objections? I suppose the alternative is to try to understand the
> complex system of zeromq sub-projects, in order to re-instate the C++
> binding which has been lost in the seemingly-innocuous version bump.

  Maybe it would make sense to make an option to build and install bindings
for C++ when a user selected ZeroMQ in configuration? What do you think?
Bindings for other languages (Python? Perl?) may be installed in a similar
fashion. This makes it more flexible for the user.

--
Best regards,
  Alexander Lukichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130318/7a4d53da/attachment.html>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-18 12:13 ` Alexander Lukichev
@ 2013-03-18 12:54   ` Alexander Lukichev
  2013-03-18 14:41   ` Alexander Lukichev
  2013-03-18 14:59   ` Thomas Petazzoni
  2 siblings, 0 replies; 7+ messages in thread
From: Alexander Lukichev @ 2013-03-18 12:54 UTC (permalink / raw)
  To: buildroot

Hi, Simon!

2013/3/18 Alexander Lukichev <alexander.lukichev@gmail.com>
> you use C++ bindings. That was bundled with zmq-2.x but as the
> library itself is written in C language
Ooops. I mean, the library API is expressed in C (the source
is in C++).

--
Best regards,
  Alexander Lukichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130318/198bdd60/attachment.html>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-18 12:13 ` Alexander Lukichev
  2013-03-18 12:54   ` Alexander Lukichev
@ 2013-03-18 14:41   ` Alexander Lukichev
  2013-03-18 14:59   ` Thomas Petazzoni
  2 siblings, 0 replies; 7+ messages in thread
From: Alexander Lukichev @ 2013-03-18 14:41 UTC (permalink / raw)
  To: buildroot

Hi, Simon!

I am hasty, as always. Let me make another correction :)

2013/3/18 Alexander Lukichev <alexander.lukichev@gmail.com>

>you use C++ bindings. That was bundled with zmq-2.x but as the
> library itself is written in C language and the number of other
> language bindings has grown significantly (see the list here
>http://www.zeromq.org/bindings:_start ), C++ bindings were made
> into a separate project, just like other languages.

There appears to be another reason for this: the zmq.hpp header
code that was bundled with the zeromq package fell into some
lack of maintenance. It was split off into separate project so that
other people could improve it. See e.g. this thread
http://lists.zeromq.org/pipermail/zeromq-dev/2011-September/013226.html

There is a more high-level bindings for C++:

https://github.com/benjamg/zmqpp

There is also one for integration with Qt:

https://github.com/jonnydee/nzmqt

(actually, there is another one but it seems to be too old and
unmaintained), if you are interested. This one I've tested and am
using (modified) in a project right now.

--
Best regards,
  Alexander Lukichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130318/35c64a14/attachment-0001.html>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-18 12:13 ` Alexander Lukichev
  2013-03-18 12:54   ` Alexander Lukichev
  2013-03-18 14:41   ` Alexander Lukichev
@ 2013-03-18 14:59   ` Thomas Petazzoni
  2013-03-19  5:29     ` Alexander Lukichev
  2 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2013-03-18 14:59 UTC (permalink / raw)
  To: buildroot

Dear Alexander Lukichev,

On Mon, 18 Mar 2013 14:13:48 +0200, Alexander Lukichev wrote:

>   As I understand, the guide only will not help much in your case
> because you use C++ bindings. That was bundled with zmq-2.x but as
> the library itself is written in C language and the number of other
> language bindings has grown significantly (see the list here
> http://www.zeromq.org/bindings:_start ), C++ bindings were made into a
> separate project, just like other languages.

Why don't we simply create a package for the separate project that
provides the C++ bindings? Do these offer an API that is compatible
with the C++ API that was provided by zmq 2.x?

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-18 14:59   ` Thomas Petazzoni
@ 2013-03-19  5:29     ` Alexander Lukichev
  2013-03-19  5:33       ` Alexander Lukichev
  0 siblings, 1 reply; 7+ messages in thread
From: Alexander Lukichev @ 2013-03-19  5:29 UTC (permalink / raw)
  To: buildroot

Hi, Thomas, Simon, All!

2013/3/18 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

> Why don't we simply create a package for the separate project
> that provides the C++ bindings? Do these offer an API that is
> compatible with the C++ API that was provided by zmq 2.x?

Looks like it. It is the same <zmq.hpp> as in zmq 2.x but slightly
updated, see https://github.com/zeromq/cppzmq/commits/master

I am not able to test how well it aligns with the existing zmq 2.x-based
C++ code, though. I'll try to make a patch that installs that if the user
selected zeromq and "C++ bindings" for it, and send it here for
comments.

Does "C++ bindings" really need to be a separate buildroot
"package"? It is just one header, dependent on zeromq package,
only fetched now from a separate location.

--
Best regards,
  Alexander Lukichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130319/f14c668b/attachment.html>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] Problems with zeromq 3.2.2
  2013-03-19  5:29     ` Alexander Lukichev
@ 2013-03-19  5:33       ` Alexander Lukichev
  0 siblings, 0 replies; 7+ messages in thread
From: Alexander Lukichev @ 2013-03-19  5:33 UTC (permalink / raw)
  To: buildroot

Hello, all!

2013/3/19 Alexander Lukichev <alexander.lukichev@gmail.com>
> I'll try to make a patch that installs that if the user
> selected zeromq and "C++ bindings" for it, and send it here
> for comments.

Sorry, I write before I read. A patch was already sent here. I'll try
to flood less in the future.

--
Best regards,
  Alexander Lukichev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130319/6b70c8f8/attachment.html>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-03-19  5:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-18 11:01 [Buildroot] Problems with zeromq 3.2.2 Simon Dawson
2013-03-18 12:13 ` Alexander Lukichev
2013-03-18 12:54   ` Alexander Lukichev
2013-03-18 14:41   ` Alexander Lukichev
2013-03-18 14:59   ` Thomas Petazzoni
2013-03-19  5:29     ` Alexander Lukichev
2013-03-19  5:33       ` Alexander Lukichev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox