Skip to content

Resolve frozen Enchant data and curl_cffi native libraries - #15

Open
ctoth wants to merge 1 commit into
masterfrom
fix/enchant-frozen-prefix
Open

ctoth wants to merge 1 commit into
masterfrom
fix/enchant-frozen-prefix

Conversation

@ctoth

@ctoth ctoth commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

QSeek's frozen dependency audit exposed two native-loader gaps. Enchant's DLLs and dictionaries are already collected under data/mingw64, but its ZIP-backed module cannot discover that prefix. curl_cffi's compiled wrapper imports a vendor libcurl DLL from the wheel's sibling curl_cffi.libs directory, which was omitted from the artifact.

Use the shared builder's existing py2exe hooks: set the executable-relative Enchant prefix when its payload exists and neither user override is selected; add actual curl_cffi vendor DLLs through finder.add_dll, as existing NumPy/Matplotlib wheel hooks do. Older package layouts and system/explicit Enchant choices remain unchanged. No product-local hooks, dependency pins, certificate changes or skipped checks.

Validation: hosted Python 3.8 and 3.14 CI both pass all 97 tests, configured type/compatibility checks and wheel/sdist builds. The new tests execute Enchant bootcode for both architectures and cover user overrides, missing payload, older layouts, vendor DLL selection and hook registration. Full four-file review gate is complete.

Root independently reproduced the artifact Enchant import failure, then found 22 dictionaries with only a process-local prefix; the actual wrapper's PE imports identify the omitted libcurl DLL. Rebuilt native QSeek startup remains to be verified after integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant