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

Hide ZMQ entirely #32

Closed
SylvainCorlay opened this issue Nov 10, 2023 · 3 comments
Closed

Hide ZMQ entirely #32

SylvainCorlay opened this issue Nov 10, 2023 · 3 comments

Comments

@SylvainCorlay
Copy link
Member

In discussions with @JohanMabille and @romainfrancois today, we realised it may be a good idea to remove any reference to zeromq in the public headers of xeus-zmq, so that downstream does bot need to link (directly) link with zeromq.

Doing this would probably require:

  1. hiding zmq using the pimpl patterns to hide the zmq types from the public headers.
  2. providing a function to instantiate the context from the xserver implementation.

For (1), this would break ABI (so minor version bump at least), and since we are removing public APIs it would be major version bump of xeus-zmq.

Then, in xeus kernels' cmake files, we could switch to PRIVATE in the call to target_link_libraries(... xeus-zmq).

@bldrvnlw
Copy link

On a related point - when building xeus-zmq on Linux with static dependencies the assumption is that libsodium is required (see CMakeLists.txt line if (XEUS_ZMQ_STATIC_DEPENDENCIES AND NOT MSVC AND NOT APPLE).

However it is possible to build libzmq without sodium using the flag WITH_LIBSODIUM OFF. AFAIK for a purely local application this is a valid option. So I'd really like to have a flag to inhibit sodium xeus-zmq use in this case.

I'm not familiar with all the technical details here so if I'm missing something I apologize in advance for the noise.

@JohanMabille
Copy link
Member

@bldrvnlw thanks for the pointer. We can definitely provide a flag for disabling libsodium in static builds of xeus-zmq; however, we won't be able to test it as we fetch ZeroMQ from conda-forge, and it is built with libsodium.

@JohanMabille
Copy link
Member

Closing as this (i.e. hidding ZMQ) has been implemented. A new issue has been opened to track the libsodium inhibition request.

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

3 participants