Files
bflatasticandClaude Opus 5.5 caeecf4b26 M14: Windows 7 build: patch windows-link for that build only, manual CI
- Drop the workspace [patch.crates-io] and restore windows-link's crates.io
  source and checksum in Cargo.lock, so every normal build keeps the
  checksum-verified crate. windows7.ps1 now applies vendor/windows-link with
  --config, checks that only windows-link's lock entry moved, builds and tests
  with --locked, checks the patched crate is the one in use, and restores
  Cargo.lock afterwards.
- windows7.yml runs on demand and weekly instead of on every PR, pins every
  action by commit SHA, and leaves the dependency check and host tests to the
  script (-Test) so the Cargo arguments live in one place.
- ROADMAP, README, NOTICE and docs: experimental, unsupported, not verified by
  maintainers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 05:37:06 +07:00

1.1 KiB

Windows 7 x64 import compatibility

Upstream: Microsoft windows-link 0.2.1, from crates.io, MIT OR Apache-2.0. Source: https://crates.io/crates/windows-link/0.2.1 The original license texts are retained here.

Only the non-x86 win7-target macro differs: CoTaskMemFree is imported from ole32.dll rather than combase.dll. windows-sys 0.61.2 otherwise causes native file dialogs to introduce a DLL absent on Windows 7. Ordinary targets retain upstream behavior. This is a binding correction, not a replacement allocator.

Microsoft documents Ole32.dll and Windows 2000 as the API's minimum: https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemfree

Only the experimental Windows 7 build uses this copy: packaging/windows/windows7.ps1 passes --config "patch.crates-io.windows-link.path='vendor/windows-link'". The workspace has no [patch], so every other build uses the crates.io crate, verified by the checksum in Cargo.lock.

The Windows 7 packaging check rejects combase.dll to guard this fix. Remove this patch when upstream bindings provide the same compatibility and recheck imports.