From 1b6bdba19e692b75b3917110f0e4eb701b4bdca2 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 7 Jul 2026 15:38:48 +0000 Subject: [PATCH] python3Packages.opensfm: cleanup --- .../python-modules/opensfm/default.nix | 154 ++++++++++-------- 1 file changed, 86 insertions(+), 68 deletions(-) diff --git a/pkgs/development/python-modules/opensfm/default.nix b/pkgs/development/python-modules/opensfm/default.nix index 8be40ab1731a..dfccd22f99ae 100644 --- a/pkgs/development/python-modules/opensfm/default.nix +++ b/pkgs/development/python-modules/opensfm/default.nix @@ -3,52 +3,64 @@ stdenv, buildPythonPackage, fetchFromGitHub, - runCommand, - srcOnly, - bashNonInteractive, - cmake, - ceres-solver, - suitesparse, - metis, - eigen, + + # build-system + ninja, + scikit-build-core, setuptools, - pkg-config, - pybind11, - numpy, - pyyaml, - flask, - fpdf2, - opencv-python, - lapack, - gtest, + + # nativeBuildInputs + cmake, + + # buildInputs + bashNonInteractive, + ceres-solver, + eigen, gflags, glog, - pytestCheckHook, - networkx, - pillow, + gtest, + lapack, + metis, + pybind11, + suitesparse, + + # dependencies + cloudpickle, exifread, + flask, + fpdf2, + joblib, + matplotlib, + networkx, + numpy, + opencv-python, + pillow, pyproj, python-dateutil, - joblib, - xmltodict, - cloudpickle, + pyyaml, scipy, - sphinx, - matplotlib, - scikit-build-core, - ninja, + xmltodict, + + # tests + pytestCheckHook, + + # passthru + runCommand, + srcOnly, + nix-update-script, }: buildPythonPackage (finalAttrs: { pname = "opensfm"; version = "0.5.1-unstable-2026-05-04"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "mapillary"; repo = "OpenSfM"; rev = "1dc5b95b5c8c4cadd653bdc9f6eb97c0ac1602ba"; - sha256 = "sha256-K3+H8QSzTxIGAtYDGqOuJFTVaqk+B/R/MDMepJ/bRxY="; + hash = "sha256-K3+H8QSzTxIGAtYDGqOuJFTVaqk+B/R/MDMepJ/bRxY="; }; patches = [ @@ -80,9 +92,9 @@ buildPythonPackage (finalAttrs: { dontUseCmakeConfigure = true; build-system = [ - setuptools - scikit-build-core ninja + scikit-build-core + setuptools ]; nativeBuildInputs = [ @@ -90,34 +102,34 @@ buildPythonPackage (finalAttrs: { ]; buildInputs = [ - ceres-solver - suitesparse - metis - eigen - lapack - gflags - gtest - glog - pybind11 bashNonInteractive # for patchShebangs + ceres-solver + eigen + gflags + glog + gtest + lapack + metis + pybind11 + suitesparse ]; dependencies = [ - numpy - scipy - pyyaml + cloudpickle + exifread flask fpdf2 - opencv-python - networkx - pillow + joblib matplotlib - exifread + networkx + numpy + opencv-python + pillow pyproj python-dateutil - joblib + pyyaml + scipy xmltodict - cloudpickle ]; nativeCheckInputs = [ @@ -146,26 +158,32 @@ buildPythonPackage (finalAttrs: { pythonImportsCheck = [ "opensfm" ]; - # https://opensfm.org/docs/using.html#quickstart - passthru.tests = lib.genAttrs' [ "berlin" "lund" ] ( - name: - lib.nameValuePair "integration-test-${name}" ( - runCommand "opensfm-integration-test-${name}" - { - nativeBuildInputs = [ finalAttrs.finalPackage ]; - } - '' - set -euo pipefail - opensfm --help - cp -r ${srcOnly finalAttrs.finalPackage}/data/${name} data - chmod -R +w data/ - bash -x $(command -v opensfm_run_all) data/ - if [[ -s data/camera_models.json && -s data/undistorted/reconstruction.json ]]; then - touch $out - fi - '' - ) - ); + passthru = { + # https://opensfm.org/docs/using.html#quickstart + tests = lib.genAttrs' [ "berlin" "lund" ] ( + name: + lib.nameValuePair "integration-test-${name}" ( + runCommand "opensfm-integration-test-${name}" + { + nativeBuildInputs = [ finalAttrs.finalPackage ]; + } + '' + set -euo pipefail + opensfm --help + cp -r ${srcOnly finalAttrs.finalPackage}/data/${name} data + chmod -R +w data/ + bash -x $(command -v opensfm_run_all) data/ + if [[ -s data/camera_models.json && -s data/undistorted/reconstruction.json ]]; then + touch $out + fi + '' + ) + ); + + updateScript = nix-update-script { + extraArgs = [ "--version=branch" ]; + }; + }; meta = { broken = stdenv.hostPlatform.isDarwin;