Spike: Decide whether blas and lapack should be built or added from system repositories
Overview
The blas
and lapack
libraries are requirements for numpy
. To satisfy these requirements, we could either:
- Add
blas
andlapack
to our system dependencies similar to how we requireperl
andopenssh
today. - Build
blas
andlapack
as software definitions in Omnibus GitLab
Technical considerations
- The
lapack
andblas
libraries require additionalgcc
components because they build withfortran
. If we decide to build the libraries ourselves, we will need to add a runtime dependency tolibfortran
in Omnibus. - If we add the
lapack
andblas
libraries from the system, then we depend on the upstream Linux distributions to keep them in their repositories with the appropriate versions and symbols.
The goal for the spike is to weigh out the pros and cons and decide which path to take for Omnibus GitLab. We should also take into consideration whether we need to be concerned about the implications on building spamcheck
for Cloud Native GitLab as we continue to simplify and unify the build processes.
The discussion should focus on the immediate need, but if the discussion on which path to choose becomes lively, then another spike should be opened to follow up and keep this task efficient.
Deliverables
- Update Add blas and lapack to Omnibus GitLab (#8413) • Unassigned with clear deliverables based on the outcome of this spike.
- Create issue in Omnibus GitLab Builder repository to update the build container images with clear deliverables based on the outcome of this spike.
- Optional: Open follow up spike to discuss current trajectory of including system libraries versus building libraries if the discussion in this spike warrants it.
Edited by Ryan Egesdahl