I think we need to add --disable-gil support to buildrelease.bat for official free-threaded Python releases (3.14+)

I’m trying to build Python 3.14.0rc2 on Windows, but I found that Tools\msi\buildreleas.bat doesn’t add support for the --disable-gil parameter

Background

With PEP 779 introducing official support for free-threaded Python in Python 3.14 (moving from experimental status in 3.13), I’ve observed that:

  • :white_check_mark: PCbuild\build.bat supports --disable-gil
  • :white_check_mark: Tools\msi\build.bat supports --disable-gil
  • :cross_mark: Tools\msi\buildrelease.bat does not support --disable-gil

More importantly, even if I force the a parameter to be passed to build.bat like this:

@echo call "%PCBUILD%build.bat" -e -p %BUILD_PLAT% -t %TARGET% %PGOOPTS% %CERTOPTS% --disable-gil
@call "%PCBUILD%build.bat" -e -p %BUILD_PLAT% -t %TARGET% %PGOOPTS% %CERTOPTS% --disable-gil

A packaging error will still occur.

It’s means that the wix configuration files are completely unable to handle versions with the “t” suffix, like python3t_d.dll

“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\core\core_d.wixproj”(Rebuild 目标) (3) ->
(Link 目标) ->
  J:\cpython\Tools\msi\core\core_files.wxs(23): error LGHT0103: The system cannot find the file 'python3_d.dll'. [J:\cpython\Tools\msi\core\core_d.wixproj]
  J:\cpython\Tools\msi\core\core_files.wxs(26): error LGHT0103: The system cannot find the file 'python314_d.dll'. [J:\cpython\Tools\msi\core\core_d.wixproj]
  J:\cpython\Tools\msi\core\core_files.wxs(27): error LGHT0103: The system cannot find the file 'python314_d.pdb'. [J:\cpython\Tools\msi\core\core_d.wixproj]


“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\dev\dev_d.wixproj”(Rebuild 目标) (6) ->
  J:\cpython\Tools\msi\dev\dev_files.wxs(25): error LGHT0103: The system cannot find the file 'python3_d.lib'. [J:\cpython\Tools\msi\dev\dev_d.wixproj]
  J:\cpython\Tools\msi\dev\dev_files.wxs(28): error LGHT0103: The system cannot find the file 'python314_d.lib'. [J:\cpython\Tools\msi\dev\dev_d.wixproj]


“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\exe\exe_d.wixproj”(Rebuild 目标) (9) ->
  J:\cpython\Tools\msi\exe\exe_files.wxs(57): error LGHT0103: The system cannot find the file 'python_d.exe'. [J:\cpython\Tools\msi\exe\exe_d.wixproj]
  J:\cpython\Tools\msi\exe\exe_files.wxs(60): error LGHT0103: The system cannot find the file 'python_d.pdb'. [J:\cpython\Tools\msi\exe\exe_d.wixproj]
  J:\cpython\Tools\msi\exe\exe_files.wxs(63): error LGHT0103: The system cannot find the file 'pythonw_d.exe'. [J:\cpython\Tools\msi\exe\exe_d.wixproj]
  J:\cpython\Tools\msi\exe\exe_files.wxs(66): error LGHT0103: The system cannot find the file 'pythonw_d.pdb'. [J:\cpython\Tools\msi\exe\exe_d.wixproj]


“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\lib\lib_d.wixproj”(Rebuild 目标) (12) ->
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file 'pyexpat_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file 'pyexpat_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file 'select_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file 'select_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file 'unicodedata_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file 'unicodedata_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file 'winsound_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file 'winsound_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_bz2_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_bz2_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_elementtree_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_elementtree_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_socket_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_socket_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_ssl_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_ssl_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_ctypes_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_ctypes_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_hashlib_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_hashlib_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_multiprocessing_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_multiprocessing_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_lzma_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_lzma_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_decimal_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_decimal_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_overlapped_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_overlapped_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_sqlite3_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_sqlite3_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_asyncio_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_asyncio_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_queue_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_queue_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_remote_debugging_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_remote_debugging_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_uuid_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_uuid_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_wmi_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_wmi_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_zoneinfo_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_zoneinfo_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(88): error LGHT0103: The system cannot find the file '_zstd_d.pyd'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(91): error LGHT0103: The system cannot find the file '_zstd_d.pdb'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(103): error LGHT0103: The system cannot find the file 'venvlauncher_d.exe'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]
  J:\cpython\Tools\msi\lib\lib_files.wxs(106): error LGHT0103: The system cannot find the file 'venvwlauncher_d.exe'. [J:\cpython\Tools\msi\lib\lib_d.wixproj]


“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\tcltk\tcltk_d.wixproj”(Rebuild 目标) (18) ->
  J:\cpython\Tools\msi\tcltk\tcltk_files.wxs(36): error LGHT0103: The system cannot find the file '_tkinter_d.pyd'. [J:\cpython\Tools\msi\tcltk\tcltk_d.wixproj]
  J:\cpython\Tools\msi\tcltk\tcltk_files.wxs(39): error LGHT0103: The system cannot find the file '_tkinter_d.lib'. [J:\cpython\Tools\msi\tcltk\tcltk_d.wixproj]
  J:\cpython\Tools\msi\tcltk\tcltk_files.wxs(42): error LGHT0103: The system cannot find the file '_tkinter_d.pdb'. [J:\cpython\Tools\msi\tcltk\tcltk_d.wixproj]


“J:\cpython\Tools\msi\bundle\releaselocal.wixproj”(Rebuild 目标) (1) ->
“J:\cpython\Tools\msi\test\test_d.wixproj”(Rebuild 目标) (21) ->
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testcapi_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testcapi_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testlimitedcapi_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testlimitedcapi_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_ctypes_test_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_ctypes_test_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testbuffer_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testbuffer_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testimportmultiple_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testimportmultiple_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testmultiphase_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testmultiphase_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testsinglephase_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testsinglephase_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testconsole_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testconsole_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testinternalcapi_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testinternalcapi_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testclinic_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testclinic_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(33): error LGHT0103: The system cannot find the file '_testclinic_limited_d.pyd'. [J:\cpython\Tools\msi\test\test_d.wixproj]
  J:\cpython\Tools\msi\test\test_files.wxs(36): error LGHT0103: The system cannot find the file '_testclinic_limited_d.pdb'. [J:\cpython\Tools\msi\test\test_d.wixproj]
1 Like

Can you file this on the issue tracker?

3 Likes

Here’s a patch I used to get buildrelease.bat to include the free-threaded binaries for one of my projects: PythonWin7/patches/enable-win7-install-10.patch at master · adang1345/PythonWin7 · GitHub . In particular, note the changes to Tools/msi/buildrelease.bat, Tools/msi/bundle/packagegroups/freethreaded.wxs, and Tools/nuget/make_pkg.proj. (The other changes are specific to my project and not related to the free-threaded binaries.)

Thanks for the suggestion! I was hoping to get some discussion going first, but you’re right - this should be on the issue tracker. Just filed it:

1 Like