Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zmqpp library recipe #4487

Merged
merged 36 commits into from
Mar 18, 2021
Merged

zmqpp library recipe #4487

merged 36 commits into from
Mar 18, 2021

Conversation

ChGen
Copy link
Contributor

@ChGen ChGen commented Feb 5, 2021

Specify library name and version: zmqpp /4.2.0

  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@CLAassistant
Copy link

CLAassistant commented Feb 5, 2021

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@ChGen
Copy link
Contributor Author

ChGen commented Feb 5, 2021

How to disable old C++ ABI in Conan and allow only libstdc++11 API for Linux?

@conan-center-bot

This comment has been minimized.

@ChGen
Copy link
Contributor Author

ChGen commented Feb 8, 2021

As I understand, new C++ ABI couldn't be forced from recipe, could it?
Locally I can check build by using command conan create . 4.2.0@ -s compiler.libcxx=libstdc++11
But I read available documentation and don't see any way to check package with conan-center-bot in libstdc++11 mode.

@conan-center-bot

This comment has been minimized.

@SSE4
Copy link
Contributor

SSE4 commented Feb 8, 2021

As I understand, new C++ ABI couldn't be forced from recipe, could it?
Locally I can check build by using command conan create . 4.2.0@ -s compiler.libcxx=libstdc++11
But I read available documentation and don't see any way to check package with conan-center-bot in libstdc++11 mode.

in general, settings shouldn't be forced by the individual recipes. it would be surprising for consumers who requested one libcxx to get binaries actually compiled with another libcxx.
instead, ConanInvalidConfiguration should be raised for unsupported settings combinations.

recipes/zmqpp/all/conanfile.py Outdated Show resolved Hide resolved
@conan-center-bot
Copy link
Collaborator

Failure in build 6 (875e098823ca47e28a7920a37ff7470021703a40):

  • zmqpp/4.2.0@:
    CI failed to create some packages (All logs)

    Logs for packageID c390158bd1bfbea02fcb7c0ae2f9c9afe37cd8d0:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=apple-clang
    compiler.libcxx=libc++
    compiler.version=11.0
    os=Macos
    os_build=Macos
    [options]
    zmqpp:shared=False
    
          zmq::curve_server_t::curve_server_t(zmq::session_base_t*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, zmq::options_t const&, bool) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::curve_server_t(zmq::session_base_t*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, zmq::options_t const&, bool) in libzmq.a(curve_server.cpp.o)
      "_crypto_box_open", referenced from:
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_box_open_afternm", referenced from:
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
      "_crypto_box_open_easy_afternm", referenced from:
          zmq::curve_encoding_t::decode(zmq::msg_t*, int*) in libzmq.a(curve_mechanism_base.cpp.o)
      "_crypto_scalarmult_base", referenced from:
          _zmq_curve_public in libzmq.a(zmq_utils.cpp.o)
      "_crypto_secretbox", referenced from:
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_secretbox_open", referenced from:
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes", referenced from:
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes_close", referenced from:
          zmq::random_close() in libzmq.a(random.cpp.o)
      "_sodium_allocarray", referenced from:
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_free", referenced from:
          zmq::curve_client_t::produce_initiate(zmq::msg_t*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_init", referenced from:
          zmq::random_open() in libzmq.a(random.cpp.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make: *** [libzmqpp.dylib] Error 1
    zmqpp/4.2.0: WARN: Build folder is dirty, removing it: /Users/jenkins/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/build/c390158bd1bfbea02fcb7c0ae2f9c9afe37cd8d0
    zmqpp/4.2.0: ERROR: Package 'c390158bd1bfbea02fcb7c0ae2f9c9afe37cd8d0' build failed
    zmqpp/4.2.0: WARN: Build folder /Users/jenkins/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/build/c390158bd1bfbea02fcb7c0ae2f9c9afe37cd8d0
    ERROR: zmqpp/4.2.0: Error in build() method, line 73
    	atools.make(vars=buildVars)
    	ConanException: Error 2 while executing make -j8
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@conan-center-bot
Copy link
Collaborator

Failure in build 7 (89bcb097e78ebdd3d930a47a15b7bfa0d99a5ae3):

  • zmqpp/4.2.0@:
    CI failed to create some packages (All logs)

    Logs for packageID fc0a156b1e22c196266033dfa5cde31e6175a665:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=clang
    compiler.libcxx=libstdc++
    compiler.version=3.9
    os=Linux
    os_build=Linux
    [options]
    zmqpp:shared=False
    
    -- Detecting CXX compile features - done
    -- Conan: called by CMake conan helper
    -- Conan: Adjusting output directories
    -- Conan: Using cmake global configuration
    -- Conan: Adjusting default RPATHs Conan policies
    -- Conan: Adjusting language standard
    -- Conan: Checking correct version: 3.9
    -- Conan: C++ stdlib: libstdc++
    -- Conan: Using autogenerated Findzmqpp.cmake
    -- Found zmqpp: 4.2.0 (found version "4.2.0") 
    -- Library zmqpp found /home/conan/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/package/fc0a156b1e22c196266033dfa5cde31e6175a665/lib/libzmqpp.a
    -- Found: /home/conan/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/package/fc0a156b1e22c196266033dfa5cde31e6175a665/lib/libzmqpp.a
    -- Conan: Using autogenerated FindZeroMQ.cmake
    -- Found ZeroMQ: 4.3.3 (found version "4.3.3") 
    -- Library zmq found /home/conan/w/BuildSingleReference/.conan/data/zeromq/4.3.3/_/_/package/e3df0ac74a79f7378e05a8f98ea7ec4d22fa591f/lib/libzmq.a
    -- Found: /home/conan/w/BuildSingleReference/.conan/data/zeromq/4.3.3/_/_/package/e3df0ac74a79f7378e05a8f98ea7ec4d22fa591f/lib/libzmq.a
    -- Conan: Using autogenerated Findlibsodium.cmake
    -- Found libsodium: 1.0.18 (found version "1.0.18") 
    -- Library sodium found /home/conan/w/BuildSingleReference/.conan/data/libsodium/1.0.18/_/_/package/57d5cd6246fd0d62b3377330930a1f382110efca/lib/libsodium.a
    -- Found: /home/conan/w/BuildSingleReference/.conan/data/libsodium/1.0.18/_/_/package/57d5cd6246fd0d62b3377330930a1f382110efca/lib/libsodium.a
    -- Library zmq found /home/conan/w/BuildSingleReference/.conan/data/zeromq/4.3.3/_/_/package/e3df0ac74a79f7378e05a8f98ea7ec4d22fa591f/lib/libzmq.a
    -- Found: /home/conan/w/BuildSingleReference/.conan/data/zeromq/4.3.3/_/_/package/e3df0ac74a79f7378e05a8f98ea7ec4d22fa591f/lib/libzmq.a
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/conan/w/BuildSingleReference/conan-center-index/recipes/zmqpp/all/test_package/build/7dcd6b84354139a27f14baa3a5b25d7756055c09
    
    ----Running------
    > cmake --build '/home/conan/w/BuildSingleReference/conan-center-index/recipes/zmqpp/all/test_package/build/7dcd6b84354139a27f14baa3a5b25d7756055c09' '--' '-j3'
    -----------------
    Scanning dependencies of target test_package
    [ 50%] Building CXX object CMakeFiles/test_package.dir/test_package.cpp.o
    [100%] Linking CXX executable bin/test_package
    CMakeFiles/test_package.dir/build.make:102: recipe for target 'bin/test_package' failed
    CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/test_package.dir/all' failed
    Makefile:102: recipe for target 'all' failed
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    
    
    CMakeFiles/test_package.dir/test_package.cpp.o: In function `main':
    /home/conan/w/BuildSingleReference/conan-center-index/recipes/zmqpp/all/test_package/test_package.cpp:(.text+0xd): undefined reference to `zmqpp::version()'
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [bin/test_package] Error 1
    make[1]: *** [CMakeFiles/test_package.dir/all] Error 2
    make: *** [all] Error 2
    ERROR: zmqpp/4.2.0 (test package): Error in build() method, line 12
    	cmake.build()
    	ConanException: Error 2 while executing cmake --build '/home/conan/w/BuildSingleReference/conan-center-index/recipes/zmqpp/all/test_package/build/7dcd6b84354139a27f14baa3a5b25d7756055c09' '--' '-j3'
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@conan-center-bot
Copy link
Collaborator

Failure in build 8 (5fe52eb93f3fd94c8f19fc1e0c4b75bf32cab5d4):

  • zmqpp/4.2.0@:
    CI failed to create some packages (All logs)

    Logs for packageID e6cdc8e44269ec9a652c527837fe06dcdb923f36:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=8
    os=Linux
    os_build=Linux
    [options]
    zmqpp:shared=True
    
    mkdir -p build/max-/usr/bin/g++/obj/zmqpp/
    /usr/bin/g++   -MMD -std=c++11 -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2021-02-08 14:55"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src  -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-/usr/bin/g++/obj/zmqpp/proxy_steerable.o src/zmqpp/proxy_steerable.cpp
    mkdir -p build/max-/usr/bin/g++/obj/zmqpp/
    /usr/bin/g++   -MMD -std=c++11 -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2021-02-08 14:55"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src  -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-/usr/bin/g++/obj/zmqpp/zap_request.o src/zmqpp/zap_request.cpp
    mkdir -p build/max-/usr/bin/g++/obj/zmqpp/
    /usr/bin/g++   -MMD -std=c++11 -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2021-02-08 14:55"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src  -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-/usr/bin/g++/obj/zmqpp/poller.o src/zmqpp/poller.cpp
    mkdir -p build/max-/usr/bin/g++/obj/zmqpp/
    /usr/bin/g++   -MMD -std=c++11 -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2021-02-08 14:55"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src  -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-/usr/bin/g++/obj/zmqpp/context.o src/zmqpp/context.cpp
    mkdir -p build/max-/usr/bin/g++/obj/zmqpp/
    /usr/bin/g++   -MMD -std=c++11 -pipe -Wall -fPIC -DBUILD_ENV=max -DBUILD_DATESTAMP='"2021-02-08 14:55"' -DBUILD_LIBRARY_NAME='"zmqpp"' -DBUILD_CLIENT_NAME='"zmqpp"' -I./src  -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNDEBUG -c -o build/max-/usr/bin/g++/obj/zmqpp/proxy.o src/zmqpp/proxy.cpp
    /usr/bin/g++  -shared -rdynamic  -Wl,-soname -Wl,libzmqpp.so.4 -o ./build/max-/usr/bin/g++/libzmqpp.so.4 build/max-/usr/bin/g++/obj/zmqpp/message.o build/max-/usr/bin/g++/obj/zmqpp/z85.o build/max-/usr/bin/g++/obj/zmqpp/socket.o build/max-/usr/bin/g++/obj/zmqpp/frame.o build/max-/usr/bin/g++/obj/zmqpp/reactor.o build/max-/usr/bin/g++/obj/zmqpp/signal.o build/max-/usr/bin/g++/obj/zmqpp/actor.o build/max-/usr/bin/g++/obj/zmqpp/auth.o build/max-/usr/bin/g++/obj/zmqpp/loop.o build/max-/usr/bin/g++/obj/zmqpp/zmqpp.o build/max-/usr/bin/g++/obj/zmqpp/curve.o build/max-/usr/bin/g++/obj/zmqpp/proxy_steerable.o build/max-/usr/bin/g++/obj/zmqpp/zap_request.o build/max-/usr/bin/g++/obj/zmqpp/poller.o build/max-/usr/bin/g++/obj/zmqpp/context.o build/max-/usr/bin/g++/obj/zmqpp/proxy.o  -lzmq
    ar crf ./build/max-/usr/bin/g++/libzmqpp.a build/max-/usr/bin/g++/obj/zmqpp/message.o build/max-/usr/bin/g++/obj/zmqpp/z85.o build/max-/usr/bin/g++/obj/zmqpp/socket.o build/max-/usr/bin/g++/obj/zmqpp/frame.o build/max-/usr/bin/g++/obj/zmqpp/reactor.o build/max-/usr/bin/g++/obj/zmqpp/signal.o build/max-/usr/bin/g++/obj/zmqpp/actor.o build/max-/usr/bin/g++/obj/zmqpp/auth.o build/max-/usr/bin/g++/obj/zmqpp/loop.o build/max-/usr/bin/g++/obj/zmqpp/zmqpp.o build/max-/usr/bin/g++/obj/zmqpp/curve.o build/max-/usr/bin/g++/obj/zmqpp/proxy_steerable.o build/max-/usr/bin/g++/obj/zmqpp/zap_request.o build/max-/usr/bin/g++/obj/zmqpp/poller.o build/max-/usr/bin/g++/obj/zmqpp/context.o build/max-/usr/bin/g++/obj/zmqpp/proxy.o
    use make check to test the build
    zmqpp/4.2.0: Package 'e6cdc8e44269ec9a652c527837fe06dcdb923f36' built
    zmqpp/4.2.0: Build folder /home/conan/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/build/e6cdc8e44269ec9a652c527837fe06dcdb923f36
    zmqpp/4.2.0: Generated conaninfo.txt
    zmqpp/4.2.0: Generated conanbuildinfo.txt
    zmqpp/4.2.0: Generating the package
    zmqpp/4.2.0: Package folder /home/conan/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/package/e6cdc8e44269ec9a652c527837fe06dcdb923f36
    zmqpp/4.2.0: Calling package()
    [HOOK - conan-center.py] post_package(): [PACKAGE LICENSE (KB-H012)] OK
    [HOOK - conan-center.py] post_package(): [DEFAULT PACKAGE LAYOUT (KB-H013)] OK
    [HOOK - conan-center.py] post_package(): [MATCHING CONFIGURATION (KB-H014)] OK
    [HOOK - conan-center.py] post_package(): [PC-FILES (KB-H020)] OK
    [HOOK - conan-center.py] post_package(): [CMAKE-MODULES-CONFIG-FILES (KB-H016)] OK
    [HOOK - conan-center.py] post_package(): [PDB FILES NOT ALLOWED (KB-H017)] OK
    [HOOK - conan-center.py] post_package(): [LIBTOOL FILES PRESENCE (KB-H018)] OK
    [HOOK - conan-center.py] post_package(): [MS RUNTIME FILES (KB-H021)] OK
    src/zmqpp/socket.cpp: In member function ‘bool zmqpp::socket::send(const string&, bool)’:
    src/zmqpp/socket.cpp:122:68: warning: ‘bool zmqpp::socket::send(const string&, int)’ is deprecated [-Wdeprecated-declarations]
      return send(str, (dont_block) ? socket::dont_wait : socket::normal);
                                                                        ^
    In file included from src/zmqpp/socket.cpp:24:
    src/zmqpp/socket.hpp:292:7: note: declared here
      bool send(std::string const& string, int const flags);
           ^~~~
    src/zmqpp/socket.cpp: In member function ‘bool zmqpp::socket::receive(std::__cxx11::string&, bool)’:
    src/zmqpp/socket.cpp:128:71: warning: ‘bool zmqpp::socket::receive(std::__cxx11::string&, int)’ is deprecated [-Wdeprecated-declarations]
      return receive(str, (dont_block) ? socket::dont_wait : socket::normal);
                                                                           ^
    In file included from src/zmqpp/socket.cpp:24:
    src/zmqpp/socket.hpp:307:7: note: declared here
      bool receive(std::string& string, int const flags);
           ^~~~~~~
    In file included from src/zmqpp/curve.cpp:17:
    /home/conan/w/BuildSingleReference/.conan/data/zeromq/4.3.3/_/_/package/3ec760452c3215c0c190ae6253221bda520639d3/include/zmq_utils.h:46:84: note: #pragma message: Warning: zmq_utils.h is deprecated. All its functionality is provided by zmq.h.
       "Warning: zmq_utils.h is deprecated. All its functionality is provided by zmq.h.")
                                                                                        ^
    [HOOK - conan-center.py] post_package(): ERROR: [SHARED ARTIFACTS (KB-H015)] Package with 'shared' option did not contains any shared artifact (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H015) 
    ERROR: [HOOK - conan-center.py] post_package(): Some checks failed running the hook, check the output
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@conan-center-bot
Copy link
Collaborator

Failure in build 9 (798fc6a623d657a2ae7ae79088283cbc733b8a75):

  • zmqpp/4.2.0@:
    CI failed to create some packages (All logs)

    Logs for packageID b3cb9c0d0fdf8052d9d43e4c5fd95ceb6742c958:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=apple-clang
    compiler.libcxx=libc++
    compiler.version=9.1
    os=Macos
    os_build=Macos
    [options]
    zmqpp:shared=True
    
          zmq::curve_server_t::curve_server_t(zmq::session_base_t*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, zmq::options_t const&, bool) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::curve_server_t(zmq::session_base_t*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, zmq::options_t const&, bool) in libzmq.a(curve_server.cpp.o)
      "_crypto_box_open", referenced from:
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_box_open_afternm", referenced from:
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
      "_crypto_box_open_easy_afternm", referenced from:
          zmq::curve_encoding_t::decode(zmq::msg_t*, int*) in libzmq.a(curve_mechanism_base.cpp.o)
      "_crypto_scalarmult_base", referenced from:
          _zmq_curve_public in libzmq.a(zmq_utils.cpp.o)
      "_crypto_secretbox", referenced from:
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_secretbox_open", referenced from:
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes", referenced from:
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes_close", referenced from:
          zmq::random_close() in libzmq.a(random.cpp.o)
      "_sodium_allocarray", referenced from:
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_free", referenced from:
          zmq::curve_client_t::produce_initiate(zmq::msg_t*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_init", referenced from:
          zmq::random_open() in libzmq.a(random.cpp.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make: *** [libzmqpp.dylib] Error 1
    zmqpp/4.2.0: WARN: Build folder is dirty, removing it: /Users/jenkins/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/build/b3cb9c0d0fdf8052d9d43e4c5fd95ceb6742c958
    zmqpp/4.2.0: ERROR: Package 'b3cb9c0d0fdf8052d9d43e4c5fd95ceb6742c958' build failed
    zmqpp/4.2.0: WARN: Build folder /Users/jenkins/w/BuildSingleReference/.conan/data/zmqpp/4.2.0/_/_/build/b3cb9c0d0fdf8052d9d43e4c5fd95ceb6742c958
    ERROR: zmqpp/4.2.0: Error in build() method, line 77
    	atools.make(vars=buildVars)
    	ConanException: Error 2 while executing make -j8
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@conan-center-bot
Copy link
Collaborator

Failure in build 24 (e948a775f77fa6af1105c11bd17e43398154e138):

  • zmqpp/4.2.0@:
    CI failed to create some packages (All logs)

    Logs for packageID 6784c65a60abc49d7586627ac096ba693016612a:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Release
    compiler=apple-clang
    compiler.libcxx=libc++
    compiler.version=11.0
    os=Macos
    os_build=Macos
    [options]
    zmqpp:shared=True
    
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_box_open_afternm", referenced from:
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
      "_crypto_box_open_easy_afternm", referenced from:
          zmq::curve_encoding_t::decode(zmq::msg_t*, int*) in libzmq.a(curve_mechanism_base.cpp.o)
      "_crypto_scalarmult_base", referenced from:
          _zmq_curve_public in libzmq.a(zmq_utils.cpp.o)
      "_crypto_secretbox", referenced from:
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_crypto_secretbox_open", referenced from:
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes", referenced from:
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
      "_randombytes_close", referenced from:
          zmq::random_close() in libzmq.a(random.cpp.o)
      "_sodium_allocarray", referenced from:
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_hello(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          zmq::curve_server_t::process_initiate(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_free", referenced from:
          zmq::curve_client_t::produce_initiate(zmq::msg_t*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_t::process_ready(unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::vector(unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_hello(void*, unsigned char const*, unsigned long long, unsigned char const*, unsigned char const*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::process_welcome(unsigned char const*, unsigned long, unsigned char const*, unsigned char const*, unsigned char*, unsigned char*, unsigned char*) in libzmq.a(curve_client.cpp.o)
          zmq::curve_client_tools_t::produce_initiate(void*, unsigned long, unsigned long long, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned long) in libzmq.a(curve_client.cpp.o)
          zmq::curve_server_t::produce_welcome(zmq::msg_t*) in libzmq.a(curve_server.cpp.o)
          ...
      "_sodium_init", referenced from:
          zmq::random_open() in libzmq.a(random.cpp.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [lib/libzmqpp.dylib] Error 1
    make[1]: *** [source_subfolder/CMakeFiles/zmqpp.dir/all] Error 2
    make: *** [all] Error 2
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component zeromq::zeromq libdir "lib" does not contain any declared library
    zmqpp/4.2.0: WARN: Build folder is dirty, removing it: /Users/jenkins/w/BuildSingleReference@3/.conan/data/zmqpp/4.2.0/_/_/build/6784c65a60abc49d7586627ac096ba693016612a
    zmqpp/4.2.0: ERROR: Package '6784c65a60abc49d7586627ac096ba693016612a' build failed
    zmqpp/4.2.0: WARN: Build folder /Users/jenkins/w/BuildSingleReference@3/.conan/data/zmqpp/4.2.0/_/_/build/6784c65a60abc49d7586627ac096ba693016612a
    ERROR: zmqpp/4.2.0: Error in build() method, line 59
    	self.cmake.build()
    	ConanException: Error 2 while executing cmake --build '/Users/jenkins/w/BuildSingleReference@3/.conan/data/zmqpp/4.2.0/_/_/build/6784c65a60abc49d7586627ac096ba693016612a/build_subfolder' '--' '-j8'
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@ChGen
Copy link
Contributor Author

ChGen commented Mar 11, 2021

Without second patch it builds for Linux, but not for macOS. Also specifying ZMQPP_LIBZMQ_NAME_STATIC and ZMQPP_LIBZMQ_NAME_SHARED in conanfile.py is unnecessary for Linux. And specifying it breaks Linux build. I'd have to patch further, - the usage of find_library(ZEROMQ_LIBRARY_* in zmqpp CMakeLists.txt file. It means that another second patch will be required anyway.
Maybe we can stick with the second patch which already works for both Linux and macOS platforms?

@prince-chrismc
Copy link
Contributor

Without second patch it builds for Linux, but not for macOS. Also specifying ZMQPP_LIBZMQ_NAME_STATIC and ZMQPP_LIBZMQ_NAME_SHARED in conanfile.py is unnecessary for Linux. And specifying it breaks Linux build. I'd have to patch further, - the usage of find_library(ZEROMQ_LIBRARY_* in zmqpp CMakeLists.txt file. It means that another second patch will be required anyway.
Maybe we can stick with the second patch which already works for both Linux and macOS platforms?

I am very grateful for you taking the time to look into the comments

We can very much continue

prince-chrismc
prince-chrismc previously approved these changes Mar 11, 2021
@ChGen
Copy link
Contributor Author

ChGen commented Mar 11, 2021

Ok, thanks! Should I revert branch to last green revision to proceed?

@prince-chrismc
Copy link
Contributor

Please!

@conan-center-bot
Copy link
Collaborator

All green in build 25 (87e03fdf6c99bf97457da8db9e4d410141eea0be):

  • zmqpp/4.2.0@:
    All packages built successfully! (All logs)

@ChGen
Copy link
Contributor Author

ChGen commented Mar 12, 2021

So, I reverted to last green commit which works for both supported platforms. Do you have any other suggestions?

prince-chrismc
prince-chrismc previously approved these changes Mar 12, 2021
Copy link
Contributor

@prince-chrismc prince-chrismc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! There's one minor comment but not worth triggering a new build

SSE4
SSE4 previously approved these changes Mar 13, 2021
del self.options.fPIC

def requirements(self):
self.requires("libsodium/1.0.18")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this lib is in requirements? Doesn't seem to be a direct dependency.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think there was some issues with macOS build some time ago, but I'll try without it.

Comment on lines +46 to +47
if self.settings.compiler == "Visual Studio":
raise ConanInvalidConfiguration("Visual Studio compiler is not supported")
Copy link
Contributor

@SpaceIm SpaceIm Mar 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure? zmqpp explicitly doesn't support Visual Studio, or the build is just broken for some triplets?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build is broken for MSVS. After some hacks applied to build configuration, it starts compilation step, but compilation errors appear. So I disabled MSVS support for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that zmqpp 4.2.0 may support some (old?) versions of MSVS, but it would still require some tweaks/patches in Conan recipe to support that.

Copy link
Contributor

@SpaceIm SpaceIm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty sure that conan create -kb is broken without this modification.
Moreover, cmake.verbose shouldn't be True

Comment on lines 49 to 64
def build(self):
self._patch_sources()
self.cmake = CMake(self)
self.cmake.verbose = True
self.cmake.definitions["ZMQPP_BUILD_SHARED"] = self.options.shared
self.cmake.definitions["ZMQPP_BUILD_STATIC"] = not self.options.shared
self.cmake.definitions["ZMQPP_BUILD_EXAMPLES"] = False
self.cmake.definitions["ZMQPP_BUILD_CLIENT"] = False
self.cmake.definitions["ZMQPP_BUILD_TESTS"] = False
self.cmake.configure(build_folder=self._build_subfolder)
self.cmake.build()

def package(self):
self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
self.cmake.configure()
self.cmake.install()
Copy link
Contributor

@SpaceIm SpaceIm Mar 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def build(self):
self._patch_sources()
self.cmake = CMake(self)
self.cmake.verbose = True
self.cmake.definitions["ZMQPP_BUILD_SHARED"] = self.options.shared
self.cmake.definitions["ZMQPP_BUILD_STATIC"] = not self.options.shared
self.cmake.definitions["ZMQPP_BUILD_EXAMPLES"] = False
self.cmake.definitions["ZMQPP_BUILD_CLIENT"] = False
self.cmake.definitions["ZMQPP_BUILD_TESTS"] = False
self.cmake.configure(build_folder=self._build_subfolder)
self.cmake.build()
def package(self):
self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
self.cmake.configure()
self.cmake.install()
def _configure_cmake(self):
if self._cmake:
return self._cmake
self._cmake = CMake(self)
self._cmake.definitions["ZMQPP_BUILD_SHARED"] = self.options.shared
self._cmake.definitions["ZMQPP_BUILD_STATIC"] = not self.options.shared
self._cmake.definitions["ZMQPP_BUILD_EXAMPLES"] = False
self._cmake.definitions["ZMQPP_BUILD_CLIENT"] = False
self._cmake.definitions["ZMQPP_BUILD_TESTS"] = False
self._cmake.configure(build_folder=self._build_subfolder)
return self._cmake
def build(self):
self._patch_sources()
cmake = self._configure_cmake()
cmake.build()
def package(self):
self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
cmake = self._configure_cmake()
cmake.install()

options = {"shared": [True, False], "fPIC": [True, False]}
default_options = {"shared": False, "fPIC": True}
exports_sources = "CMakeLists.txt", "patches/**"
generators = ["cmake", "cmake_find_package"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
generators = ["cmake", "cmake_find_package"]
generators = ["cmake", "cmake_find_package"]
_cmake = None

Comment on lines 67 to 74
self.cpp_info.names["cmake_find_package"] = "zmqpp"
self.cpp_info.names["cmake_find_package_multi"] = "zmqpp"
self.cpp_info.names["pkg_config"] = "libzmqpp"
libzmq_target = "libzmqpp" if self.options.shared else "libzmqpp-static"
self.cpp_info.components[libzmq_target].names["cmake_find_package"] = libzmq_target
self.cpp_info.components[libzmq_target].names["cmake_find_package_multi"] = libzmq_target
self.cpp_info.components[libzmq_target].libs = tools.collect_libs(self)
self.cpp_info.components[libzmq_target].requires = ["libsodium::libsodium", "zeromq::zeromq"]
Copy link
Contributor

@SpaceIm SpaceIm Mar 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.cpp_info.names["cmake_find_package"] = "zmqpp"
self.cpp_info.names["cmake_find_package_multi"] = "zmqpp"
self.cpp_info.names["pkg_config"] = "libzmqpp"
libzmq_target = "libzmqpp" if self.options.shared else "libzmqpp-static"
self.cpp_info.components[libzmq_target].names["cmake_find_package"] = libzmq_target
self.cpp_info.components[libzmq_target].names["cmake_find_package_multi"] = libzmq_target
self.cpp_info.components[libzmq_target].libs = tools.collect_libs(self)
self.cpp_info.components[libzmq_target].requires = ["libsodium::libsodium", "zeromq::zeromq"]
self.cpp_info.names["pkg_config"] = "libzmqpp"
self.cpp_info.libs = tools.collect_libs(self)

This lib doesn't provide an official CMake config file, or I missed something. Please don't suggest that it does.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@SpaceIm SpaceIm Mar 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, it's completly unrelated

@ChGen ChGen dismissed stale reviews from SSE4 and prince-chrismc via da8ee6c March 15, 2021 11:29
@conan-center-bot
Copy link
Collaborator

All green in build 26 (da8ee6c23ee260fb2317c7fde6698f0710f65d66):

  • zmqpp/4.2.0@:
    All packages built successfully! (All logs)

prince-chrismc referenced this pull request in prince-chrismc/conan-center-index-pending-review Mar 16, 2021
prince-chrismc referenced this pull request in prince-chrismc/conan-center-index-pending-review Mar 16, 2021
@conan-center-bot conan-center-bot merged commit a03ace7 into conan-io:master Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants