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

unable to build on mac m1 max #1907

Closed
eastonsuo opened this issue Nov 6, 2023 · 11 comments
Closed

unable to build on mac m1 max #1907

eastonsuo opened this issue Nov 6, 2023 · 11 comments

Comments

@eastonsuo
Copy link

Please use this template for reporting suspected bugs or requests for help.

Issue description

when build with no=binary and with bundled
run
ZMQ_PREFIX=bundled pip install --no-binary pyzmq pyzmq

shows error:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:372:5: error: static assertion failed due to requirement 'is_same<zmq::secure_allocator_t<unsigned char>, std::allocator<unsigned char>>::value': [allocator.requirements] states that rebinding an allocator to the same type should result in the original allocator

Environment

  • libzmq version (commit hash if unreleased): :pyzmq-25.1.1.tar.gz
  • OS: macOS
@bluca bluca transferred this issue from zeromq/libzmq Nov 6, 2023
@minrk
Copy link
Member

minrk commented Nov 6, 2023

The workaround is to install zeromq prior to installing pyzmq, e.g. via brew install zeromq.

This is really a libzmq issue. libzmq 4.3.4 cannot be built without libsodium on current macOS with default parameters, and fails with this error. I'm not sure what compiler flags, if any, can fix it. That's a question for libzmq folks.

The full error, building zeromq 4.3.4 (entirely without pyzmq):

export CXXFLAGS=-Wno-deprecated-declarations # avoids warnings turned into errors
./configure --without-libsodium
make V=1

gives:

Making all in doc
make[1]: Nothing to be done for `all'.
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src           -D_DARWIN_C_SOURCE -D_REENTRANT -D_THREAD_SAFE  -fvisibility=hidden     -Werror -Wall -Wno-long-long -Wno-deprecated-declarations -Wno-atomic-alignment -Wno-tautological-constant-compare -MT src/libzmq_la-ctx.lo -MD -MP -MF src/.deps/libzmq_la-ctx.Tpo -c -o src/libzmq_la-ctx.lo `test -f 'src/ctx.cpp' || echo './'`src/ctx.cpp
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src -D_DARWIN_C_SOURCE -D_REENTRANT -D_THREAD_SAFE -fvisibility=hidden -Werror -Wall -Wno-long-long -Wno-deprecated-declarations -Wno-atomic-alignment -Wno-tautological-constant-compare -MT src/libzmq_la-ctx.lo -MD -MP -MF src/.deps/libzmq_la-ctx.Tpo -c src/ctx.cpp  -fno-common -DPIC -o src/.libs/libzmq_la-ctx.o
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src -D_DARWIN_C_SOURCE -D_REENTRANT -D_THREAD_SAFE -fvisibility=hidden -Werror -Wall -Wno-long-long -Wno-deprecated-declarations -Wno-atomic-alignment -Wno-tautological-constant-compare -MT src/libzmq_la-ctx.lo -MD -MP -MF src/.deps/libzmq_la-ctx.Tpo -c src/ctx.cpp -o src/libzmq_la-ctx.o >/dev/null 2>&1
mv -f src/.deps/libzmq_la-ctx.Tpo src/.deps/libzmq_la-ctx.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src           -D_DARWIN_C_SOURCE -D_REENTRANT -D_THREAD_SAFE  -fvisibility=hidden     -Werror -Wall -Wno-long-long -Wno-deprecated-declarations -Wno-atomic-alignment -Wno-tautological-constant-compare -MT src/libzmq_la-curve_client.lo -MD -MP -MF src/.deps/libzmq_la-curve_client.Tpo -c -o src/libzmq_la-curve_client.lo `test -f 'src/curve_client.cpp' || echo './'`src/curve_client.cpp
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I./src -D_DARWIN_C_SOURCE -D_REENTRANT -D_THREAD_SAFE -fvisibility=hidden -Werror -Wall -Wno-long-long -Wno-deprecated-declarations -Wno-atomic-alignment -Wno-tautological-constant-compare -MT src/libzmq_la-curve_client.lo -MD -MP -MF src/.deps/libzmq_la-curve_client.Tpo -c src/curve_client.cpp  -fno-common -DPIC -o src/.libs/libzmq_la-curve_client.o
In file included from src/curve_client.cpp:35:
In file included from ./src/msg.hpp:40:
In file included from ./src/metadata.hpp:33:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/map:2356:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/functional:515:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/boyer_moore_searcher.h:26:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:372:5: error: static assertion failed due to requirement 'is_same<zmq::secure_allocator_t<unsigned char>, std::allocator<unsigned char>>::value': [allocator.requirements] states that rebinding an allocator to the same type should result in the original allocator
    static_assert(is_same<allocator_type, __rebind_alloc<__alloc_traits, value_type> >::value,
    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:64:60: note: in instantiation of template class 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' requested here
        std::vector<uint8_t, secure_allocator_t<uint8_t> > hello_plaintext (
                                                           ^
./src/curve_client_tools.hpp:110:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
        std::vector<uint8_t, secure_allocator_t<uint8_t> > welcome_plaintext (
                                                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
class _LIBCPP_TEMPLATE_VIS vector
                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'int' to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
In file included from src/curve_client.cpp:38:
In file included from ./src/curve_client.hpp:37:
./src/curve_client_tools.hpp:121:53: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        int rc = crypto_box_open (&welcome_plaintext[0], welcome_box,
                                   ~~~~~~~~~~~~~~~~~^~
./src/curve_client_tools.hpp:129:47: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (cn_server_, &welcome_plaintext[crypto_box_ZEROBYTES], 32);
                             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:130:47: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (cn_cookie_, &welcome_plaintext[crypto_box_ZEROBYTES + 32],
                             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:154:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
        std::vector<uint8_t, secure_allocator_t<uint8_t> > vouch_plaintext (
                                                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
class _LIBCPP_TEMPLATE_VIS vector
                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'int' to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
In file included from src/curve_client.cpp:38:
In file included from ./src/curve_client.hpp:37:
./src/curve_client_tools.hpp:159:36: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
        std::fill (vouch_plaintext.begin (),
                   ~~~~~~~~~~~~~~~ ^
./src/curve_client_tools.hpp:160:36: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
                   vouch_plaintext.begin () + crypto_box_ZEROBYTES, 0);
                   ~~~~~~~~~~~~~~~ ^
./src/curve_client_tools.hpp:161:33: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (&vouch_plaintext[crypto_box_ZEROBYTES], cn_public_, 32);
                 ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:162:33: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (&vouch_plaintext[crypto_box_ZEROBYTES + 32], server_key_, 32);
                 ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:169:50: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
          crypto_box (vouch_box, &vouch_plaintext[0], vouch_plaintext.size (),
                                  ~~~~~~~~~~~~~~~^~
./src/curve_client_tools.hpp:169:71: error: no member named 'size' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
          crypto_box (vouch_box, &vouch_plaintext[0], vouch_plaintext.size (),
                                                      ~~~~~~~~~~~~~~~ ^
./src/curve_client_tools.hpp:177:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
        std::vector<uint8_t, secure_allocator_t<uint8_t> > initiate_plaintext (
                                                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'size_t' (aka 'unsigned long') to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
class _LIBCPP_TEMPLATE_VIS vector
                           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'size_t' (aka 'unsigned long') to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
In file included from src/curve_client.cpp:38:
In file included from ./src/curve_client.hpp:37:
./src/curve_client_tools.hpp:181:39: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
        std::fill (initiate_plaintext.begin (),
                   ~~~~~~~~~~~~~~~~~~ ^
./src/curve_client_tools.hpp:182:39: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
                   initiate_plaintext.begin () + crypto_box_ZEROBYTES, 0);
                   ~~~~~~~~~~~~~~~~~~ ^
./src/curve_client_tools.hpp:183:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (&initiate_plaintext[crypto_box_ZEROBYTES], public_key_, 32);
                 ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:184:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 32], vouch_nonce + 8,
                 ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:186:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
        memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 48],
                 ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./src/curve_client_tools.hpp:189:40: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
            memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 48 + 80],
                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[1]: *** [src/libzmq_la-curve_client.lo] Error 1
make: *** [all-recursive] Error 1

I think libzmq 4.3.5 won't have this issue simply because the affected feature has been removed. This, in turn, is part of what's blocking pyzmq's upgrade to 4.3.5, since it's a major breaking change in pyzmq distributions to lose CURVE support. So I have to figure out how to bundle libsodium and replace the abandoned Windows builds of libzmq, which don't exist for 4.3.5 before pyzmq can update the bundled libzmq. So I think this will be closed by #1903.

@eastonsuo
Copy link
Author

if I use brew install zeromq first ,will ZMQ_PREFIX=bundled works if I want to build an extension?

@minrk
Copy link
Member

minrk commented Nov 6, 2023

Ah, no, it should link to the installed libzmq (omit ZMQ_PREFIX=bundled, or it will ignore the installed libzmq). But that's usually ought to be a good thing. If you want to repack it for redistribution, use delocate, which will bring the linked libzmq into the wheel. This will ~always produce better results than the bundled libzmq, which is used only as a fallback when the a desirable 'real' build of libzmq is unavailable.

@tacaswell
Copy link
Contributor

I am also seeing this error on fedora 38

✘ 11:27:28 [yennefer] $ g++ -std=c++17 -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_EPOLL=1 -DZMQ_IOTHREADS_USE_EPOLL=1 -DZMQ_POLL_BA
SED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/home/tcaswell/.virtualenvs/bleeding/include -I/home/tcaswell/.pybuild/bleeding/include/python3.11 -c bundled/zeromq/src/curve_client.cpp -
o build/temp.linux-x86_64-cpython-311/bundled/zeromq/src/curve_client.o
In file included from /usr/include/c++/13/ext/alloc_traits.h:34,
                 from /usr/include/c++/13/bits/stl_tree.h:67,
                 from /usr/include/c++/13/map:62,
                 from bundled/zeromq/src/metadata.hpp:33,
                 from bundled/zeromq/src/msg.hpp:40,
                 from bundled/zeromq/src/curve_client.cpp:35:
/usr/include/c++/13/bits/alloc_traits.h: In instantiation of ‘struct std::__allocator_traits_base::__rebind<zmq::secure_allocator_t<unsigned char>, unsigned char, void>’:
/usr/include/c++/13/bits/alloc_traits.h:94:11:   required by substitution of ‘template<class _Alloc, class _Up> using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t<unsigned char>; _Up = unsigned char]’
/usr/include/c++/13/bits/alloc_traits.h:228:8:   required by substitution of ‘template<class _Alloc> template<class _Tp> using std::allocator_traits< <template-parameter-1-1> >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t<unsigned char>]’
/usr/include/c++/13/ext/alloc_traits.h:126:65:   required from ‘struct __gnu_cxx::__alloc_traits<zmq::secure_allocator_t<unsigned char>, unsigned char>::rebind<unsigned char>’
/usr/include/c++/13/bits/stl_vector.h:88:21:   required from ‘struct std::_Vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >’
/usr/include/c++/13/bits/stl_vector.h:425:11:   required from ‘class std::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >’
bundled/zeromq/src/curve_client_tools.hpp:64:76:   required from here
/usr/include/c++/13/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A
   70 |                         _Tp>::value,
      |                               ^~~~~
/usr/include/c++/13/bits/alloc_traits.h:70:31: note: ‘std::integral_constant<bool, false>::value’ evaluates to false

Confirm that installing zeromq-devel avoids the problem.

$ gcc --version
gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4)
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


@iamshreeram
Copy link

@minrk , Im trying to install pyzmq==25.1.1 from pypy's pip; Seeing similar error while building -

Building wheels for collected packages: markupsafe, pyzmq, pyyaml
  Building wheel for markupsafe (setup.py) ... done
  Created wheel for markupsafe: filename=MarkupSafe-2.1.3-py3-none-any.whl size=9757 sha256=31792d60bed54440b681565f3e13d5855d414d548d08842bf9002db50a3b92c3
  Stored in directory: /Users/ram/Library/Caches/pip/wheels/59/24/cf/b50b90b1cc2b8e08bf70c3e78590844039a1266fb95dcd9a6f
  Building wheel for pyzmq (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pyzmq (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [251 lines of output]
      running bdist_wheel
      running build
      running build_py
      copying zmq/_typing.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/error.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/_future.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/asyncio.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/constants.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/decorators.py -> build/lib.macosx-10.9-arm64-pypy310/zmq
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/green
      copying zmq/green/device.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green
      copying zmq/green/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green
      copying zmq/green/core.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green
      copying zmq/green/poll.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/green/eventloop
      copying zmq/green/eventloop/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green/eventloop
      copying zmq/green/eventloop/ioloop.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green/eventloop
      copying zmq/green/eventloop/zmqstream.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/green/eventloop
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/version.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/attrsettr.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/stopwatch.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/context.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/frame.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/tracker.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/poll.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/sugar/socket.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/thread.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/certs.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/asyncio.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/ioloop.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      copying zmq/auth/base.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/auth
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_ioloop.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_version.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_monitor.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_security.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/conftest.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_decorators.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_etc.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_pubsub.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_auth.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_includes.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_mypy.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_future.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_zmqstream.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_message.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_cffi_backend.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_imports.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_socket.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_draft.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_asyncio.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_log.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_ssh.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_cython.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_retry_eintr.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_z85.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_error.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_reqrep.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_ext.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_multipart.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_context.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_proxy_steerable.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_device.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_pair.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_constants.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_monqueue.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_poll.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/tests/test_win32_shim.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/strtypes.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/monitor.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/win32.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/interop.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/jsonapi.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/z85.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/garbage.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/backend
      copying zmq/backend/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend
      copying zmq/backend/select.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/_poll.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/error.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/message.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/context.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/utils.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/socket.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cffi/devices.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/ssh
      copying zmq/ssh/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/ssh
      copying zmq/ssh/tunnel.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/ssh
      copying zmq/ssh/forward.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/ssh
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      copying zmq/eventloop/_deprecated.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      copying zmq/eventloop/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      copying zmq/eventloop/ioloop.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      copying zmq/eventloop/future.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      copying zmq/eventloop/zmqstream.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/eventloop
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/log
      copying zmq/log/handlers.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/log
      copying zmq/log/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/log
      copying zmq/log/__main__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/log
      creating build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/monitoredqueue.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/__init__.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/monitoredqueuedevice.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/proxydevice.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/basedevice.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/devices/proxysteerabledevice.py -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      copying zmq/__init__.pyi -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/py.typed -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/__init__.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq
      copying zmq/sugar/__init__.pyi -> build/lib.macosx-10.9-arm64-pypy310/zmq/sugar
      copying zmq/tests/cython_ext.pyx -> build/lib.macosx-10.9-arm64-pypy310/zmq/tests
      copying zmq/utils/buffers.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/getpid_compat.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/pyversion_compat.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/zmq_compat.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/mutex.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/ipcmaxlen.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/config.json -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/utils/compiler.json -> build/lib.macosx-10.9-arm64-pypy310/zmq/utils
      copying zmq/backend/__init__.pyi -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend
      copying zmq/backend/cffi/_cdefs.h -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cffi
      copying zmq/backend/cython/message.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/libzmq.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/checkrc.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/__init__.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/context.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/socket.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/backend/cython/constant_enums.pxi -> build/lib.macosx-10.9-arm64-pypy310/zmq/backend/cython
      copying zmq/devices/monitoredqueue.pxd -> build/lib.macosx-10.9-arm64-pypy310/zmq/devices
      running build_ext
      running configure
      Using bundled libzmq
      already have bundled/zeromq
      already have platform.hpp
      generating cffi module 'build/temp.macosx-10.9-arm64-pypy310/zmq.backend.cffi._cffi.c'
      building 'zmq.libzmq' extension
      creating build/temp.macosx-10.9-arm64-pypy310/buildutils
      creating build/temp.macosx-10.9-arm64-pypy310/bundled
      creating build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq
      creating build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c buildutils/initlibzmq.cpp -o build/temp.macosx-10.9-arm64-pypy310/buildutils/initlibzmq.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/address.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/address.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/channel.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/channel.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/client.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/client.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/clock.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/clock.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/ctx.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/ctx.o
      g++ -pthread -arch arm64 -std=c++11 -pthread -arch arm64 -DNDEBUG -O2 -I/usr/local/opt/openjdk@11/include -fPIC -DZMQ_HAVE_CURVE=1 -DZMQ_USE_TWEETNACL=1 -DZMQ_USE_KQUEUE=1 -DZMQ_IOTHREADS_USE_KQUEUE=1 -DZMQ_POLL_BASED_ON_POLL=1 -Ibundled/zeromq/include -Ibundled -I/Users/ram/ram/apps/pypy/pypy3.10-v7.3.13-macos_arm64/include/pypy3.10 -c bundled/zeromq/src/curve_client.cpp -o build/temp.macosx-10.9-arm64-pypy310/bundled/zeromq/src/curve_client.o
      In file included from bundled/zeromq/src/curve_client.cpp:35:
      In file included from bundled/zeromq/src/msg.hpp:40:
      In file included from bundled/zeromq/src/metadata.hpp:33:
      In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/map:2356:
      In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/functional:515:
      In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/boyer_moore_searcher.h:26:
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:372:5: error: static assertion failed due to requirement 'is_same<zmq::secure_allocator_t<unsigned char>, std::allocator<unsigned char>>::value': [allocator.requirements] states that rebinding an allocator to the same type should result in the original allocator
          static_assert(is_same<allocator_type, __rebind_alloc<__alloc_traits, value_type> >::value,
          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:64:60: note: in instantiation of template class 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' requested here
              std::vector<uint8_t, secure_allocator_t<uint8_t> > hello_plaintext (
                                                                 ^
      bundled/zeromq/src/curve_client_tools.hpp:110:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
              std::vector<uint8_t, secure_allocator_t<uint8_t> > welcome_plaintext (
                                                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      class _LIBCPP_TEMPLATE_VIS vector
                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'int' to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
      In file included from bundled/zeromq/src/curve_client.cpp:38:
      In file included from bundled/zeromq/src/curve_client.hpp:37:
      bundled/zeromq/src/curve_client_tools.hpp:121:53: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              int rc = crypto_box_open (&welcome_plaintext[0], welcome_box,
                                         ~~~~~~~~~~~~~~~~~^~
      bundled/zeromq/src/curve_client_tools.hpp:129:47: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (cn_server_, &welcome_plaintext[crypto_box_ZEROBYTES], 32);
                                   ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:130:47: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (cn_cookie_, &welcome_plaintext[crypto_box_ZEROBYTES + 32],
                                   ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:154:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
              std::vector<uint8_t, secure_allocator_t<uint8_t> > vouch_plaintext (
                                                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      class _LIBCPP_TEMPLATE_VIS vector
                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'int' to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
      In file included from bundled/zeromq/src/curve_client.cpp:38:
      In file included from bundled/zeromq/src/curve_client.hpp:37:
      bundled/zeromq/src/curve_client_tools.hpp:159:36: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
              std::fill (vouch_plaintext.begin (),
                         ~~~~~~~~~~~~~~~ ^
      bundled/zeromq/src/curve_client_tools.hpp:160:36: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
                         vouch_plaintext.begin () + crypto_box_ZEROBYTES, 0);
                         ~~~~~~~~~~~~~~~ ^
      bundled/zeromq/src/curve_client_tools.hpp:161:33: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (&vouch_plaintext[crypto_box_ZEROBYTES], cn_public_, 32);
                       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:162:33: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (&vouch_plaintext[crypto_box_ZEROBYTES + 32], server_key_, 32);
                       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:169:50: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
                crypto_box (vouch_box, &vouch_plaintext[0], vouch_plaintext.size (),
                                        ~~~~~~~~~~~~~~~^~
      bundled/zeromq/src/curve_client_tools.hpp:169:71: error: no member named 'size' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
                crypto_box (vouch_box, &vouch_plaintext[0], vouch_plaintext.size (),
                                                            ~~~~~~~~~~~~~~~ ^
      bundled/zeromq/src/curve_client_tools.hpp:177:60: error: no matching constructor for initialization of 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>')
              std::vector<uint8_t, secure_allocator_t<uint8_t> > initiate_plaintext (
                                                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'size_t' (aka 'unsigned long') to 'const std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      class _LIBCPP_TEMPLATE_VIS vector
                                 ^
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'size_t' (aka 'unsigned long') to 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>' for 1st argument
      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:348:28: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 1 was provided
      In file included from bundled/zeromq/src/curve_client.cpp:38:
      In file included from bundled/zeromq/src/curve_client.hpp:37:
      bundled/zeromq/src/curve_client_tools.hpp:181:39: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
              std::fill (initiate_plaintext.begin (),
                         ~~~~~~~~~~~~~~~~~~ ^
      bundled/zeromq/src/curve_client_tools.hpp:182:39: error: no member named 'begin' in 'std::vector<unsigned char, zmq::secure_allocator_t<unsigned char>>'
                         initiate_plaintext.begin () + crypto_box_ZEROBYTES, 0);
                         ~~~~~~~~~~~~~~~~~~ ^
      bundled/zeromq/src/curve_client_tools.hpp:183:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (&initiate_plaintext[crypto_box_ZEROBYTES], public_key_, 32);
                       ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:184:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 32], vouch_nonce + 8,
                       ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:186:36: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
              memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 48],
                       ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      bundled/zeromq/src/curve_client_tools.hpp:189:40: error: type 'std::vector<uint8_t, secure_allocator_t<uint8_t>>' (aka 'vector<unsigned char, secure_allocator_t<unsigned char>>') does not provide a subscript operator
                  memcpy (&initiate_plaintext[crypto_box_ZEROBYTES + 48 + 80],
                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      fatal error: too many errors emitted, stopping now [-ferror-limit=]
      20 errors generated.
      error: command '/usr/bin/g++' failed with exit code 1
      ************************************************
      ************************************************
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyzmq
  Building wheel for pyyaml (pyproject.toml) ... done
  Created wheel for pyyaml: filename=PyYAML-6.0.1-pp310-pypy310_pp73-macosx_10_9_arm64.whl size=45374 sha256=4e9c05038e4ddb37153a43ba238a25e90b5679668c46f60d4140a6590bfa6b72
  Stored in directory: /Users/ram/Library/Caches/pip/wheels/e9/a3/45/ef86dd76c0fbc91ac46889a39d4710498896fe799f860db9ad
Successfully built markupsafe pyyaml
Failed to build pyzmq
ERROR: Could not build wheels for pyzmq, which is required to install pyproject.toml-based projects

@minrk
Copy link
Member

minrk commented Dec 1, 2023

I dread it a bit, but I feel like this and the removal of tweetnacl from libzmq is going to force me to rewrite bundling to include 'proper' installation of libzmq and libsodium and building via something like scikit-build or meson. I think that will be better in the long run, but figuring out the linking on Windows is going to take a lot of trial and error, and certainly reintroduce lots of build failures fixed over the years on less common platforms.

If anyone with C++ knowledge knows what's changed with recent compilers to introduce these failures and what flags and/or patches will keep us limping along while I figure that out, it would be much appreciated and take a lot of pressure off.

@minrk
Copy link
Member

minrk commented Dec 1, 2023

upstream fix appears to be zeromq/libzmq#4480 I'll see if I can apply a patch to the bundled sources

@minrk
Copy link
Member

minrk commented Dec 1, 2023

If anyone affected can test with the sdists from this run and confirm that it fixes the issue, I can merge #1913 and make a 25.1.2 with it.

@iamshreeram
Copy link

@minrk , Perfect; Im able to build the wheel with latest sdist. thanks!

@minrk
Copy link
Member

minrk commented Dec 1, 2023

@iamshreeram thanks! I'll get on making 25.1.2 ASAP, should be Monday at the latest.

@minrk
Copy link
Member

minrk commented Jan 4, 2024

this should be fixed with last month's 25.1.2

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

No branches or pull requests

4 participants