wifi-densepose/v2
Uxsshann 9660b23746 Fix Windows OpenBLAS backend selection for ndarray-linalg
## Problem Summary
Windows native builds were failing while resolving the `ndarray-linalg` / OpenBLAS dependency chain because the workspace forced `openblas-static` everywhere. On Windows, that pulled `openblas-src` into a non-vcpkg build path that it does not support.

## Reproduction Conditions
- Windows 11
- Git Bash / MINGW64
- Rust/Cargo workspace build
- vcpkg and OpenBLAS installed locally
- Python 3.14
- Docker Desktop available
- RTX 3050 laptop GPU present
- Failure observed during `./install.sh`, Rust profile installation, and workspace compilation on the Windows native path

## Root Cause
The workspace previously pinned `ndarray-linalg` in the root Cargo manifest with `openblas-static` for all targets. That propagated into `lax -> openblas-src`, which then attempted an unsupported Windows build mode. The error surfaced as:

> `openblas-src v0.10.15: Non-vcpkg builds are not supported on Windows. You must use the 'system' feature.`

## Fix
This patch makes the backend choice explicit and target-specific:
- Windows uses `openblas-system`
- non-Windows targets keep `openblas-static`
- the default `ndarray-linalg` feature wiring in `wifi-densepose-signal` is made explicit with `dep:ndarray-linalg`

That preserves existing Linux/macOS behavior while making the Windows path use the system OpenBLAS/vcpkg-compatible route.

## Why `openblas-src` Failed on Windows
`openblas-src` does not support the non-vcpkg build path on Windows. When `ndarray-linalg` selected `openblas-static`, Cargo ultimately asked `openblas-src` to build or bundle OpenBLAS in a way that is unsupported on Windows. The `system` feature is the supported Windows path because it uses the system-provided OpenBLAS installation instead of the unsupported bundled/static path.

## Dependency / Backend Selection Changes
- Removed the workspace-wide `ndarray-linalg` backend pin from the root `Cargo.toml`
- Moved ownership of the `ndarray-linalg` dependency into `crates/wifi-densepose-signal/Cargo.toml`
- Selected `openblas-system` on Windows and `openblas-static` elsewhere
- Kept the signal crate’s default `eigenvalue` feature wired to the optional BLAS-backed dependency

## Validation
- `cargo check --workspace` completed successfully
- The workspace build now resolves `ndarray-linalg` without tripping the unsupported Windows OpenBLAS build path

## Expected Impact
- Windows users can build the workspace without hitting the `openblas-src` non-vcpkg failure
- Linux and macOS builds continue using the existing static/bundled behavior
- No runtime code, APIs, or signal-processing logic were changed

## Cargo.lock Considerations
- A local Cargo re-resolution was observed during validation
- No lockfile churn is included in this commit because the fix itself is manifest-only and the regenerated local lock delta was incidental to validation

## Changed Files
- `v2/Cargo.toml`
- `v2/crates/wifi-densepose-signal/Cargo.toml`
2026-05-27 09:47:18 +05:30
..
.cargo fix(security): audit — fix RUSTSEC vulns, clippy warnings, dead code (#769) 2026-05-23 05:36:13 -04:00
.claude-flow chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
crates Fix Windows OpenBLAS backend selection for ndarray-linalg 2026-05-27 09:47:18 +05:30
data chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
docs chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
examples chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
patches/ruvector-crv chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
Cargo.lock HOMECORE: native Rust/WASM/TS port of Home Assistant — ADRs 125-134 implementation (#800) 2026-05-25 22:47:48 -04:00
Cargo.toml fix: use system OpenBLAS on Windows 2026-05-27 09:45:39 +05:30
rust-toolchain.toml v2: pin Rust 1.89 and fix sensing-server UI path when run from v2 (#523) 2026-05-17 18:00:36 -04:00
ruvector.db ADR-125 APPLE-FABRIC: RuView <-> Apple Home native HAP bridge (e2e on real C6) (#797) 2026-05-25 17:36:40 -04:00