Skip to content

[Bug] pip install tiledbsoma fails on ARM Linux with CMake 4 #3890

@ryan-williams

Description

@ryan-williams

Describe the bug

See #3867 (comment):

  • On ARM Linux, pip install tiledbsoma performs a source build (because we don't publish ARM Linux wheels).
  • vcpkg fails to find binaries for ARM Linux (why?), also source-builds.
    • Possible lead: vcpkg fails to build on ARM Linux unless you explicitly set VCPKG_FORCE_SYSTEM_BINARIES=1 (source, linked from nixpkgs#335868).
  • vcpkg source build builds cmrc 2.0.1 (Sept '18) instead of 952ffdd (pinned in portfile.cmake and vcpkg.json, and contains a corrected CMakeRC.cmake#L37), for some reason.

To Reproduce

See failed GHA from #3867.

Example Dockerfile
# Debian 12 image with GCC 13
ARG gcc=13
FROM gcc:$gcc-bookworm

ENV DEBIAN_FRONTEND=noninteractive VCPKG_FORCE_SYSTEM_BINARIES=1
RUN apt update -y \
 && apt install -y cmake curl g++ git make ninja-build pkg-config tar unzip zip \
 && apt install -y python3 python-is-python3 python3-pip python3-venv \
 && python -m venv .venv
ENV PATH=/.venv/bin:$PATH

# tiledbsoma>=1.16 requires GCC 13
ARG v=''
RUN if [ -z $v ]; then pip install tiledbsoma; else pip install tiledbsoma==$v; fi
ENTRYPOINT [ "python", "-c", "import tiledbsoma; tiledbsoma.show_package_versions()" ]

Versions

  • TileDB-SOMA version: 1.16.1
  • Language and language version: Python 3.12 (but believe it applies to all)
  • OS: ARM Linux

Workarounds

#3891 added both of these, and got python-dockers.yml working:

  • Pinning cmake<4 in pyproject.toml build-system.requires will help, but requires a release to unbreak pip install tiledbsoma on ARM Linux.
  • A pip "constraints" file can be used to force setuptools to use cmake<4, in the meantime.

Longer-term fixes

  • Publish TileDB-SOMA ARM Linux wheels (#3909)
  • Debug why vcpkg is using cmrc 2.0.1 instead of 952ffdd
  • Debug why we're not getting vcpkg ARM Linux binaries (cc @@teo-tsirpanis)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions