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

Add Apple Silicon build support for salmon #49457

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mjsteinbaugh
Copy link
Member

@mjsteinbaugh mjsteinbaugh commented Jul 22, 2024

Work on adding osx-arm64 build support for salmon.


Please read the guidelines for Bioconda recipes before opening a pull request (PR).

General instructions

  • If this PR adds or updates a recipe, use "Add" or "Update" appropriately as the first word in its title.
  • New recipes not directly relevant to the biological sciences need to be submitted to the conda-forge channel instead of Bioconda.
  • PRs require reviews prior to being merged. Once your PR is passing tests and ready to be merged, please issue the @BiocondaBot please add label command.
  • Please post questions on Gitter or ping @bioconda/core in a comment.

Instructions for avoiding API, ABI, and CLI breakage issues

Conda is able to record and lock (a.k.a. pin) dependency versions used at build time of other recipes.
This way, one can avoid that expectations of a downstream recipe with regards to API, ABI, or CLI are violated by later changes in the recipe.
If not already present in the meta.yaml, make sure to specify run_exports (see here for the rationale and comprehensive explanation).
Add a run_exports section like this:

build:
  run_exports:
    - ...

with ... being one of:

Case run_exports statement
semantic versioning {{ pin_subpackage("myrecipe", max_pin="x") }}
semantic versioning (0.x.x) {{ pin_subpackage("myrecipe", max_pin="x.x") }}
known breakage in minor versions {{ pin_subpackage("myrecipe", max_pin="x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
known breakage in patch versions {{ pin_subpackage("myrecipe", max_pin="x.x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
calendar versioning {{ pin_subpackage("myrecipe", max_pin=None) }}

while replacing "myrecipe" with either name if a name|lower variable is defined in your recipe or with the lowercase name of the package in quotes.

Bot commands for PR management

Please use the following BiocondaBot commands:

Everyone has access to the following BiocondaBot commands, which can be given in a comment:

@BiocondaBot please update Merge the master branch into a PR.
@BiocondaBot please add label Add the please review & merge label.
@BiocondaBot please fetch artifacts Post links to CI-built packages/containers.
You can use this to test packages locally.

Note that the @BiocondaBot please merge command is now depreciated. Please just squash and merge instead.

Also, the bot watches for comments from non-members that include @bioconda/<team> and will automatically re-post them to notify the addressed <team>.

@mjsteinbaugh
Copy link
Member Author

mjsteinbaugh commented Jul 22, 2024

Hitting build error related to staden on osx-arm64:

09:47:43 �[32mBIOCONDA INFO�[0m (ERR) Invalid configuration `arm64-apple-darwin20.0.0': machine `arm64-apple' not recognized�[0m
09:47:43 �[32mBIOCONDA INFO�[0m (ERR) configure: error: /bin/sh ./config.sub arm64-apple-darwin20.0.0 failed�[0m
09:47:43 �[32mBIOCONDA INFO�[0m (ERR) make[2]: *** [CMakeFiles/libstadenio.dir/build.make:92: libstadenio-prefix/src/libstadenio-stamp/libstadenio-configure] Error 1�[0m
09:47:43 �[32mBIOCONDA INFO�[0m (ERR) make[1]: *** [CMakeFiles/Makefile2:275: CMakeFiles/libstadenio.dir/all] Error 2�[0m
09:47:43 �[32mBIOCONDA INFO�[0m (ERR) make: *** [Makefile:166: all] Error 2�[0m

For reference, here are my install scripts that build staden and salmon on Apple Silicon:

Alternatively, can import staden_io_lib recipe and then set these CMake args: -DSTADEN_INCLUDE_DIR, -DSTADEN_LIBRARY, -DSTADEN_VERSION. If we switch to this approach, need to build staden for Apple Silicon first. Also note that staden_io_lib recipe is currently outdated and we should bump to 1.15.0 release.

@martin-g
Copy link
Contributor

Alternatively, can import staden_io_lib recipe and then set these CMake args: -DSTADEN_INCLUDE_DIR, -DSTADEN_LIBRARY, -DSTADEN_VERSION. If we switch to this approach, need to build staden for Apple Silicon first. Also note that staden_io_lib recipe is currently outdated and we should bump to 1.15.0 release.

👍🏻

@jmarshall
Copy link
Member

See #49490.

@mjsteinbaugh
Copy link
Member Author

mjsteinbaugh commented Jul 23, 2024

Based on #49490 mentioned by @jmarshall , I think the easiest way to update the recipe is to import staden_io_lib as a dependency and then link in CMake build. I can take a look later this week, but if somebody wants to try it out that'd be great!

@mencian mencian added the osx-arm64 Related to adding osx-arm64 support label Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
osx-arm64 Related to adding osx-arm64 support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants