conda-forge / coremltools-feedstock

A conda-smithy repository for coremltools.
BSD 3-Clause "New" or "Revised" License
3 stars 7 forks source link

ARM OSX Migrator #15

Open regro-cf-autotick-bot opened 3 years ago

regro-cf-autotick-bot commented 3 years ago

This feedstock is being rebuilt as part of the ARM OSX migration.

Feel free to merge the PR if CI is all green, but please don't close it without reaching out the the ARM OSX team first at @conda-forge/help-osx-arm64.

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (conda install -c conda-forge rever) and pip (pip install re-ver) installable. Finally, feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/733724255, please use this URL for debugging

conda-forge-linter commented 3 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

isuruf commented 3 years ago

@conda-forge-admin, rerender

xhochy commented 3 years ago

@conda-forge-admin, rerender

seibert commented 3 years ago

Howdy, one of the recipe maintainers here! Getting coremltools to cross-compile is next on my todo list, so I'm curious how I can help.

xhochy commented 3 years ago

The only issue here is that coremltools brings its own copy of protobuf with it. If we could link/build against the conda-forge provided one we probably would have a much easier setup here.

seibert commented 3 years ago

OK, I'll see what we can do there.

seibert commented 3 years ago

OK, I've investigated this further, and I'm not sure how to build coremltools in a cross-compilation environment without larger changes to its build process. coremltools currently uses a vendored protobuf in three ways during the build process:

  1. Calls protoc to generate .h and .cc files from .proto files to be linked into an extension library.
  2. Compiles and statically links a specific file from the protobuf source tree (protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc) into an extension library.
  3. Links a static libprotobuf into an extension library.

Use case 1 requires the osx-64 version of protobuf at build time, and use case 3 requires the osx-arm64 version of protobuf at link time. Will conda-build handle the situation where protobuf shows up in both the host and build requirements sections? Unfortunately, use case 2 requires a specific version of protobuf (3.3.0) which is not packaged for osx-arm64 yet.

@xhochy: Is there any procedure or policy that would allow manual builds of coremltools for osx-arm64 to be uploaded to conda-forge?

isuruf commented 3 years ago

Will conda-build handle the situation where protobuf shows up in both the host and build requirements sections?

yes