Archived

This forum has been archived. Please start a new discussion on GitHub.

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

  • benoit
    benoit Rennes, France

    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.

  • HI @benoit! Can you please provide an update on the plans for providing the Linux native wheels? (Sorry, but I tried to comment on the other thread but can't seem to get a comment box.)

  • benoit
    benoit Rennes, France

    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.

  • ckasten1
    edited June 2018

    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