diff --git a/qfit/README.md b/qfit/README.md index 9d08656..d8eec47 100644 --- a/qfit/README.md +++ b/qfit/README.md @@ -21,6 +21,10 @@ handles: - MIQP solvers are only listed in upstream's conda `environment.yml`, not in `install_requires` → `cvxopt` and `cplex` are pip-installed explicitly. +- `logtools.py` imports `pkg_resources` at runtime but upstream never + declares setuptools (conda/virtualenv always shipped it, uv venvs + don't) — and setuptools ≥81 removed `pkg_resources` entirely → + `setuptools<81` is pip-installed explicitly. **CPLEX caveat**: the pip `cplex` wheel is the IBM Community Edition, limited to 1000 variables/constraints. Large residues/ligands may hit diff --git a/qfit/build b/qfit/build index 74616fe..22900c4 100755 --- a/qfit/build +++ b/qfit/build @@ -25,9 +25,12 @@ pbuild::install() { export CC=gcc export SETUPTOOLS_SCM_PRETEND_VERSION="${V_PKG}" # cplex is the IBM Community Edition pip wheel (problem-size limited); - # full CPLEX needs an academic license, see README + # full CPLEX needs an academic license, see README. + # setuptools<81: qfit's logtools.py imports pkg_resources at RUNTIME; uv venvs + # don't ship setuptools, and setuptools >=81 removed pkg_resources entirely + # (verified: the 84.0.0 wheel has zero pkg_resources files, 80.9.0 has them) "$UV" pip install --python "$PREFIX/venv/bin/python" \ - cvxopt cplex "$SRC_DIR" || \ + 'setuptools<81' cvxopt cplex "$SRC_DIR" || \ std::die 42 "qfit install failed - check build log above" [[ -x "$PREFIX/venv/bin/qfit_protein" ]] || std::die 42 "qfit_protein missing from venv" }