The -X is added because this is how versioning in distribution works:

https://www.debian.org/doc/debian-policy/ch-controlfields.html#version

The reason for a separate build for draft APIs is that they can change
at any moment without any warning in an incompatible way and break
existing programs, so they are not suitable for distros and production
use.

On Wed, 26 Sep 2018 at 21:48, Stephan Opfer <op...@vs.uni-kassel.de> wrote:
>
> 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
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to