Archived
Provision of Python wheels for zeroc-ice on Linux
On Windows, prebuilt wheels are available, making it possible to install IcePy easily with pip, which is absolutely fantastic and a great improvement upon previous Ice releases for Windows.
I'm writing to ask if you have considered also providing similar pre-built wheels for the various Linux platforms you also support, such as CentOS7 and Ubuntu 16.04. The reason for doing so would be to make provisioning of a new system faster, because compilation is not required, and also to avoid installing a compiler and development tools on machines which will only be used for deployment.
Currently, we have manually created our own wheel for CentOS 7 here: https://github.com/openmicroscopy/zeroc-ice-py-centos7/releases but it's something which other Ice users might appreciate having provided by default as part of the standard Ice distribution package set, so that it's possible to "pip install zeroc-ice" on any of the supported platforms and have it immediately installed without the need for building from source.
Thanks for your consideration.
Kind regards,
Roger
Comments
-
Hi Roger,
This is something we'll consider looking into after the 3.7.0 release. See also my answer on this thread.
Cheers,
Benoit.0 -
Hi,
Sorry, we didn't make any progress on this yet. Could you specify for which Linux distribution and python version you would need binary wheels?
Note that we already provide Ice for Python RPM and DEB packages for our supported Linux platforms. Did you consider using these packages instead?
One of the issue with building a binary wheel is that Ice requires OpenSSL. OpenSSL isn't part of the libraries of the
manylinux
platform specification (see PEP-513 and PEP-571) . While it should be possible to bundle a specific OpenSSL version with the wheel, it's not ideal as potential security fixes to OpenSSL won't be available unless we release a new wheel and users update the installed Ice wheel as well.Cheers,
Benoit.0 -
Hi, @benoit . Sorry for the delayed response. The linux distributions I would need are the LTS Ubuntu versions (14.04, 16.04, 18.04).
I'm not surprised if it's not easy to do. There's atleast one example I'm aware of where many dependency libraries were built along with it, in addition to the main package's cypthon extensions itself. For example: https://pypi.org/project/confluent-kafka/0.11.4/#files
which has these bundled-in dependencies:# pip show -f confluent_kafka | grep '\.so' confluent_kafka/.libs/libcrypto-0bb2f16a.so.1.0.0 confluent_kafka/.libs/librdkafka-6f63ed6f.so.1 confluent_kafka/.libs/libssl-3fdf0a9a.so.1.0.0 confluent_kafka/.libs/libz-a147dcb0.so.1.2.3 confluent_kafka/cimpl.so
0