Ah thx, for that option. I was just wondering, why the hell ubuntu is adding -1 to their version. Its probably the same version as your stable versionin your repo, right?

The actual best solution in my opinion would be to have a libzmq3draft-dev and libzmq5draft in ubuntu as well...

So I did switch to the rolling one and it finally works. :D


On 26.09.2018 18:47, Luca Boccassi wrote:
Right, I thought you were using the rolling one, my bad.

In that case you can add the following to /etc/apt/preferences.d/zmq

Package: *
Pin: origin download.opensuse.org
Pin-Priority: 1000

Priority of 1000 means that it will install packages from that origin
even if they are technically downgrades.

On Wed, 2018-09-26 at 18:08 +0200, Stephan again wrote:
Well... thats not the case for "release-draft". There it is 4.2.5
and
ubuntu provides 4.2.5-1.

Doh!


On 26.09.2018 18:02, Luca Boccassi wrote:
The packages from OBS have a higher version so they already have
priority:

$ dpkg --compare-versions 4.2.5+git20180922 gt 4.2.5-1  && echo
true || echo false
true

So either you haven't ran apt upgrade, or you have manually pinned
it down, check with:

apt-cache policy libzmq5

On Wed, 2018-09-26 at 17:42 +0200, Stephan again wrote:
Update:

I investigated my .so files with "readelf -Ws" and "objdump -T"
and
both
say that there are no draft api symbols. Nevertheless, when I
download
the deb package from zeromq's repo and investigate the libraries
in
there with the same tools, it matches.

So regarding the dynamic library, there is definitely a wrong
version
installed. Leading to the question, why is that: "sudo apt-cache
showpkg
libzmq3-dev" says:

Package: libzmq3-dev
Versions:
4.2.5-1
(/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_bionic_uni
vers
e_binary-amd64_Packages)
(/var/lib/dpkg/status)
    Description Language:
                    File:
/var/lib/apt/lists/download.opensuse.org_repositories_network:_me
ssag
ing:_zeromq:_release-draft_xUbuntu%5f18.04_._Packages
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee
    Description Language:
                    File:
/var/lib/apt/lists/download.opensuse.org_repositories_network:_me
ssag
ing:_zeromq:_release-draft_xUbuntu%5f18.04_._Packages
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee
    Description Language:
                    File:
/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_bionic_univ
erse
_binary-amd64_Packages
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee
    Description Language:
                    File:
/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_bionic_univ
erse
_binary-i386_Packages
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee
    Description Language: en_GB
                    File:
/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_bionic_univ
erse
_i18n_Translation-en%5fGB
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee
    Description Language: en
                    File:
/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_bionic_univ
erse
_i18n_Translation-en
                     MD5: 7b2c1e47f6d305566aebc0e65e04f5ee

So in my opinion the zeromq repo should have priority over the
ubuntu
repo.

Further investigating. Help is welcome.

- Stephan


On 26.09.2018 17:21, Luca Boccassi wrote:
And so does the shared library:

$ objdump -T libzmq.so.5.1.5 | grep msg_group
0000000000075a60 g    DF .text  0000000000000005  Base
   zmq_msg_group

Make sure you have actually installed it from that repository
and
not
from Ubuntu's.

On Wed, 2018-09-26 at 17:10 +0200, Stephan again wrote:
And the static library installed from this repository seems
to
have
the
draft api included. Here is the test for that:

nm -gC /usr/lib/x86_64-linux-gnu/libzmq.a | grep
zmq_msg_group

nm: src_libzmq_la-devpoll.o: no symbols
nm: src_libzmq_la-gssapi_mechanism_base.o: no symbols
nm: src_libzmq_la-gssapi_client.o: no symbols
nm: src_libzmq_la-gssapi_server.o: no symbols
nm: src_libzmq_la-kqueue.o: no symbols
nm: src_libzmq_la-poll.o: no symbols
nm: src_libzmq_la-pollset.o: no symbols
nm: src_libzmq_la-precompiled.o: no symbols
nm: src_libzmq_la-select.o: no symbols
nm: src_libzmq_la-vmci.o: no symbols
nm: src_libzmq_la-vmci_address.o: no symbols
nm: src_libzmq_la-vmci_connecter.o: no symbols
nm: src_libzmq_la-vmci_listener.o: no symbols
0000000000000fb0 T zmq_msg_group(zmq_msg_t*) <- matched

Kind Regards

      Stephan


On 26.09.2018 17:05, Stephan again wrote:
I Installed it from:

http://download.opensuse.org/repositories/network:/messagin
g:/z
erom
q:/release-draft/xUbuntu_18.04/

Hoping that it was compiled accordingly...

This:

g++ Discovery.cpp /usr/lib/x86_64-linux-gnu/libzmq.a
-lpthread
-DZMQ_BUILD_DRAFT_API=1 -DENABLE_DRAFTS=On -o test

makes it even worth:

/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-
socket_base.o):
In
function `zmq::socket_base_t::connect(char const*)':
(.text+0x4b26): undefined reference to `pgm_freeaddrinfo'
/tmp/cc62suQj.o: In function `msg_send(zmq_msg_t*, void*,
char
const*,
char const*)':
Discovery.cpp:(.text+0x8e): undefined reference to
`zmq_msg_set_group'
/tmp/cc62suQj.o: In function `msg_recv_cmp(zmq_msg_t*,
void*,
char
const*, char const*)':
Discovery.cpp:(.text+0x148): undefined reference to
`zmq_msg_group'
/tmp/cc62suQj.o: In function `main':
Discovery.cpp:(.text+0x30e): undefined reference to
`zmq_leave'
Discovery.cpp:(.text+0x37f): undefined reference to
`zmq_join'
Discovery.cpp:(.text+0x3c3): undefined reference to
`zmq_join'
Discovery.cpp:(.text+0x407): undefined reference to
`zmq_join'
Discovery.cpp:(.text+0x57c): undefined reference to
`zmq_join'
Discovery.cpp:(.text+0x668): undefined reference to
`zmq_leave'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-
zmq_utils.o):
In
function `zmq_curve_keypair':
(.text+0x3e6): undefined reference to `crypto_box_keypair'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-
zmq_utils.o):
In
function `zmq_curve_public':
(.text+0x482): undefined reference to
`crypto_scalarmult_base'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-ip.o): In
function
`zmq::initialize_network()':
(.text+0x480): undefined reference to `pgm_init'
(.text+0x511): undefined reference to `pgm_error_free'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-ip.o): In
function
`zmq::shutdown_network()':
(.text+0x585): undefined reference to `pgm_shutdown'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-random.o):
In
function `zmq::random_open()':
(.text+0x95): undefined reference to `sodium_init'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-random.o):
In
function `zmq::random_close()':
(.text+0xc1): undefined reference to `randombytes_close'
/usr/lib/x86_64-linux-gnu/libzmq.a(src_libzmq_la-
pgm_socket.o):
In
function `zmq::pgm_socket_t::init_address(char const*,
pgm_addrinfo_t**, unsigned short*)':
(.text+0x17e): undefined reference to `pgm_getaddrinfo'
(.text+0x26f): undefined reference to `pgm_error_free'

....

Kind Regards

     Stephan



On 26.09.2018 16:55, Jake wrote:
ZeroMQ itself needs to be compiled with ENABLE_DRAFTS in
CMake.
You've added it to the compiler flags when building your
own
application.  Did you compile ZeroMQ yourself or are you
using a
distro-provided version?

For the static library, one way is to give the full path
to
the
.a
file instead of using -lzmq.  gcc default behavior
prefers
the
shared
object when both are present.

-Jake


On Wed, Sep 26, 2018 at 10:51 AM Stephan again
<op...@vs.uni-kassel.de <mailto:op...@vs.uni-kassel.de>>
wrote:

       Hi Bill,

       adding -DENABLE_DRAFTS=On does not help:

       g++ Discovery.cpp -lzmq -DZMQ_BUILD_DRAFT_API=1
       -DENABLE_DRAFTS=On -o test

       I also checked my installed libraries with "nm -gC
<library |
       grep zmq_msgs_group":

       /usr/lib/x86_64-linux-gnu/libzmq.a -> match
       /usr/lib/x86_64-linux-gnu/libzmq.so -> no match
       /usr/lib/x86_64-linux-gnu/libzmq.so.5 -> no match
       /usr/lib/x86_64-linux-gnu/libzmq.so.5.1.5 -> no
match

       I am not so into this dynamic and static library
stuff,
but
my
       build chain is linking agains
       "/usr/lib/x86_64-linux-gnu/libzmq.so". Is that the
problem?
How
       do I force it on command line to link against the
static
version.

       Kind Regards

         Stephan


       On 26.09.2018 16:08, Bill Torpey wrote:
       Hi Stephan:

       The RADIO/DISH sockets are considered DRAFT,
which is
probably
       why you’re getting these errors.

       There are a couple of possibilities:

       - You may be linking against a version of libzmq
that
doesn’t
       include the draft APIs.  In order to build with
draft
support,
       the build needs to specify "-DENABLE_DRAFTS=On”
on the
cmake
       command line.  Make sure your libzmq was built
with
support
for
       the draft APIs.


       - You also need to enable draft APIs in your
code,
similar
to
       following:

       #define ZMQ_BUILD_DRAFT_API
       #include <zmq.h>

       The #define makes the draft APIs visible to your
code.

       (Never mind — you’re already doing this on the
compile
command).

       Hope this helps.

       Bill

       On Sep 26, 2018, at 9:13 AM, Stephan again
       <op...@vs.uni-kassel.de <mailto:op...@vs.uni-ka
ssel.
de>>
wrote:

       Hi,

       I asked this question/issue one and a half year
ago
       (https://lists.zeromq.org/mailman/private/zerom
q-dev
/2017
-January/031309.html).
       The difference is that I now would like to use
zeromq
(draft
       api) version 4.2.5 under Ubuntu 18.04.

       My minimal (not) working example can be found
here:
       https://gist.github.com/StephanOpfer/5b9f3f76e6
61053
6078c
b9c16072aac9

       Compiling it with this command:

           g++ Discovery.cpp -lzmq
-DZMQ_BUILD_DRAFT_API=1
-o
test

       produces this:

           /tmp/ccUwelWs.o: In function
`msg_send(zmq_msg_t*,
void*,
       char const*, char const*)':
           Discovery.cpp:(.text+0x8e): undefined
reference
to
       `zmq_msg_set_group'
           /tmp/ccUwelWs.o: In function
`msg_recv_cmp(zmq_msg_t*,
       void*, char const*, char const*)':
           Discovery.cpp:(.text+0x148): undefined
reference
to
       `zmq_msg_group'
           /tmp/ccUwelWs.o: In function `main':
           Discovery.cpp:(.text+0x30e): undefined
reference
to
`zmq_leave'
           Discovery.cpp:(.text+0x37f): undefined
reference
to
`zmq_join'
           Discovery.cpp:(.text+0x3c3): undefined
reference
to
`zmq_join'
           Discovery.cpp:(.text+0x407): undefined
reference
to
`zmq_join'
           Discovery.cpp:(.text+0x57c): undefined
reference
to
`zmq_join'
           Discovery.cpp:(.text+0x668): undefined
reference
to
`zmq_leave'
           collect2: error: ld returned 1 exit status

       Any help is welcome. :)

       Kind Regards

         Stephan


       _______________________________________________
       zeromq-dev mailing list
       zeromq-dev@lists.zeromq.org <mailto:zeromq-dev@
lists
.zero
mq.org>
       https://lists.zeromq.org/mailman/listinfo/zerom
q-dev
       _______________________________________________
       zeromq-dev mailing list
       zeromq-dev@lists.zeromq.org <mailto:zeromq-dev@li
sts.z
eromq
.org>
       https://lists.zeromq.org/mailman/listinfo/zeromq-
dev
       _______________________________________________
       zeromq-dev mailing list
       zeromq-dev@lists.zeromq.org <mailto:zeromq-dev@list
s.zer
omq.o
rg>
       https://lists.zeromq.org/mailman/listinfo/zeromq-de
v



_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

--
Distributed Systems Research Group
Stephan Opfer  T. +49 561 804-6283  F. +49 561 804-6277
Univ. Kassel,  FB 16,  Wilhelmshöher Allee 73,  D-34121 Kassel
WWW: http://www.uni-kassel.de/go/vs_stephan-opfer/

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to