Commit Graph
9 Commits
Author SHA1 Message Date
Abdessamad Derraz 392aacb207 fix: hash a large download through its own handle
On Windows the partial copy of a file of 16 MB or more is locked with msvcrt.locking, a LockFile region: the locking process cannot access that region through a second handle (Microsoft LockFile remarks). Hashing reopened the path, the read failed with a sharing violation, and every large file was reported as 'folder not writable' (issue 82). Both digests are now read in one pass through the handle that holds the lock. A read-only file already at the destination had the same misleading report: on Windows its attribute is now cleared before the verified copy replaces it, and a refusal that remains is named for what it is.
2026-10-21 03:46:14 +02:00
Abdessamad Derraz aea67e998f fix: claim a partial only under its own name
Opening and locking a partial download are two steps. Between them another run could finish, rename the same file into place and release its lock. The second run then locked the installed BIOS, read its full size as a finished partial and truncated it to download again. After the lock the partial's name must still point at the locked file, or the run downloads into a private copy.
2026-10-20 00:31:00 +02:00
Abdessamad Derraz 4231902a6c docs: write prose without dashes or semicolons
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.

validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
2026-10-19 06:47:31 +02:00
Abdessamad Derraz ef0023d78c fix: key the manifest hash cache by its check
The cache of manifest hashes was keyed by the database's id without
holding the database, so a freed database replaced at the same
address got another scan's verified hashes back. The key now carries
the sha1 that database expects for the path.
2026-10-18 04:13:32 +02:00
Abdessamad Derraz d165005a78 fix: lock the installer's partial downloads 2026-10-17 19:25:41 +02:00
Abdessamad Derraz 5cfaf97173 fix: replay system drops and keep file modes 2026-10-16 09:44:23 +02:00
Abdessamad Derraz 5fbb1286d0 fix: refuse a manifest hash the scan contradicts 2026-10-16 09:43:46 +02:00
Abdessamad Derraz 12f362dfb9 fix: never follow a link at a partial download 2026-10-15 22:31:04 +02:00
Abdessamad Derraz a3941e843c feat: show installer progress and resume downloads 2026-10-15 22:24:39 +02:00