-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Hi @chennes,
I was able to successfully build FreeCAD-ARM64 using the latest LibPack, incorporating changes from the most recent commit:- b05bd7d.
However, I encountered an issue while building the LibPack. The create_libpack.py script fails during the installation of Python pip packages— watchfiles
package. According to config.json, the LibPack currently uses watchfiles==1.0.5, which requires the Rust toolchain to build the wheel. This dependency causes the metadata generation step to fail on Windows ARM64, as shown in the error logs:
Collecting watchfiles==1.0.5
Using cached watchfiles-1.0.5.tar.gz (94 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Installing backend dependencies: started
Installing backend dependencies: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error
Preparing metadata (pyproject.toml) did not run successfully.
exit code: 1
[4 lines of output]
Python reports SOABI: cp313-win_arm64
Unsupported platform: win_arm64
Checking for Rust toolchain....
Rust not found, installing into a temporary directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
Encountered error while generating package metadata.
See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Attempting to manually install watchfiles==1.0.5 results in the same error.
pip install watchfiles==1.0.5
Collecting watchfiles==1.0.5
Using cached watchfiles-1.0.5.tar.gz (94 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [4 lines of output]
Python reports SOABI: cp313-win_arm64
Unsupported platform: win_arm64
Checking for Rust toolchain....
Rust not found, installing into a temporary directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details
On the other hand, installing watchfiles==1.1.0 works successfully on Windows ARM64:
pip install --no-cache-dir watchfiles==1.1.0
Collecting watchfiles==1.1.0
Downloading watchfiles-1.1.0-cp313-cp313-win_arm64.whl.metadata (5.0 kB)
Requirement already satisfied: anyio>=3.0.0 in c:\program files\python313-arm64\lib\site-packages (from watchfiles==1.1.0) (4.9.0)
Requirement already satisfied: idna>=2.8 in c:\program files\python313-arm64\lib\site-packages (from anyio>=3.0.0->watchfiles==1.1.0) (3.10)
Requirement already satisfied: sniffio>=1.1 in c:\program files\python313-arm64\lib\site-packages (from anyio>=3.0.0->watchfiles==1.1.0) (1.3.1)
Downloading watchfiles-1.1.0-cp313-cp313-win_arm64.whl (283 kB)
Installing collected packages: watchfiles
Successfully installed watchfiles-1.1.0
To resolve this issue, I suggest one of the following approaches:
- Upgrade watchfiles from version 1.0.5 to 1.1.0 in the LibPack configuration.
- Update the Windows ARM64 fallback wheel package from v2025.3.31 to v2025.7.7, which includes watchfiles==1.1.0. https://github.com/cgohlke/win_arm64-wheels/releases/tag/v2025.7.7 contains watchfiles version 1.1.0.
After upgrading watchfiles to version 1.1.0, I was able to successfully build both LibPack and FreeCAD on Windows ARM64 without any issues. The build process completed smoothly, and no further errors were encountered.
Please let me know if you'd like me to draft a PR or assist further with testing.