[oi-dev] zeromq versions

Jim Klimov jimklimov at cos.ru
Wed Mar 30 13:57:26 UTC 2016

30 марта 2016 г. 10:24:32 CEST, Alexander Pyhalov <alp at rsu.ru> пишет:
>I'm looking at zeromq changes (pull requests 1805, 1808 , 1809, 1814) 
>and don't understand several things.
>1) Why do we need 4 zeromq versions? What are their consumers?
>We currently provide zeromq 3.2. What software does require later 
>version? Why should we provide several versions if software is going to
>use only the latest? I mean, you need at most one new zeromq major 
>version, not 3.
>2) Why do we want to have mediated /usr/lib/libzmq.so ? It could have 
>some sense if software could link directly with desired libzmq (for 
>example, each libzmq lives in separate /usr/libzmqN directory.
>I think We could always deliver only symlink to the latest provided 
>zeromq version, use it to compile all OI-provided software and consider
>all other versions provided only for ABI-compatibility, like we do with
>In libpng scenario we would like to have zeromq meta-package, which 
>depends on ALL zeromq versions, otherwise we break ABI. Development 
>files are necessary only for the latest zeromq.

Unfortunately, zeromq family of projects is geared towards continuous delivery and cares little about compatibility: deployments are expected to 'git pull && make install'

For example, the project I'm working with uses the malamute broker built on top of libzmq and czmq. However, there is no "released" version of libzmq that supplies the needed routines for malamute - only the git head has teh codez. Even though both the git head and the 4.1.4 released tarball claim ABIv5 and we'd naively expect them to be compatible. Incompatible API and ABI --breakage-- changes were known in the recent and distant past of the project - which is still a good and performant MQ middleware library and ecosystem around it.

For these reasons, I wanted to provide all major versions - because it is not granted that some particular software (not limited to those with recipes in oi-userland) will build with a certain version of zeromq AND then with newer versions too. Conversely, the project web-site encourages existing apps to PORT from the older stable libzmq 3.* to the new stable 4.1.* - they too do not expect it to be a plug-and-play change.

I hope these are steps towards better applicability of OI in modern software ecosystem (e.g. more projects would be easier to build and port onto OI).

Typos courtesy of K-9 Mail on my Samsung Android

More information about the oi-dev mailing list