diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index acf21ca62..8cfbdb1d7 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,36 +8,66 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_build_typedebugchannel_targetsconda-forge_python_debug: - CONFIG: linux_64_build_typedebugchannel_targetsconda-forge_python_debug + linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: + CONFIG: linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_64_build_typedebugchannel_tar_hcab9fe8502 - linux_64_build_typereleasechannel_targetsconda-forge_main: - CONFIG: linux_64_build_typereleasechannel_targetsconda-forge_main + SHORT_CONFIG: linux_64_build_typedebugchannel_tar_h10d856d4b5 + linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: + CONFIG: linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_64_build_typereleasechannel_t_h0a44af7c38 - linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debug: - CONFIG: linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debug + SHORT_CONFIG: linux_64_build_typedebugchannel_tar_hf83d9e2d40 + linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: + CONFIG: linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_aarch64_build_typedebugchanne_h4e1127e844 - linux_aarch64_build_typereleasechannel_targetsconda-forge_main: - CONFIG: linux_aarch64_build_typereleasechannel_targetsconda-forge_main + SHORT_CONFIG: linux_64_build_typereleasechannel_t_h01f3c15664 + linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: + CONFIG: linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_aarch64_build_typereleasechan_hcde066807d - linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debug: - CONFIG: linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debug + SHORT_CONFIG: linux_64_build_typereleasechannel_t_hf5ff4d161a + linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: + CONFIG: linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_ppc64le_build_typedebugchanne_he8193b4f7f - linux_ppc64le_build_typereleasechannel_targetsconda-forge_main: - CONFIG: linux_ppc64le_build_typereleasechannel_targetsconda-forge_main + SHORT_CONFIG: linux_aarch64_build_typedebugchanne_hd2db0a21ac + linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: + CONFIG: linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_ppc64le_build_typereleasechan_h12bca821c7 + SHORT_CONFIG: linux_aarch64_build_typedebugchanne_h51de969340 + linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: + CONFIG: linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_aarch64_build_typereleasechan_hccc48f4a35 + linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: + CONFIG: linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_aarch64_build_typereleasechan_h78d2c7f561 + linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: + CONFIG: linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_ppc64le_build_typedebugchanne_hac8bb296cb + linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: + CONFIG: linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_ppc64le_build_typedebugchanne_hb74ed675c1 + linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: + CONFIG: linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_ppc64le_build_typereleasechan_h5454d1d581 + linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: + CONFIG: linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_ppc64le_build_typereleasechan_hed84b2c374 timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 76221e897..53557e11a 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,22 +8,38 @@ jobs: vmImage: macOS-12 strategy: matrix: - osx_64_build_typedebugchannel_targetsconda-forge_python_debug: - CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_debug + osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: + CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_64_build_typedebugchannel_targe_h343640355d - osx_64_build_typereleasechannel_targetsconda-forge_main: - CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_main + SHORT_CONFIG: osx_64_build_typedebugchannel_targe_h5e47894640 + osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: + CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_64_build_typereleasechannel_tar_h217401936b - osx_arm64_build_typedebugchannel_targetsconda-forge_python_debug: - CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_debug + SHORT_CONFIG: osx_64_build_typedebugchannel_targe_h116d33564c + osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: + CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_arm64_build_typedebugchannel_ta_h18126b8f59 - osx_arm64_build_typereleasechannel_targetsconda-forge_main: - CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_main + SHORT_CONFIG: osx_64_build_typereleasechannel_tar_h425d4db04a + osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: + CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_arm64_build_typereleasechannel__hbf952199ba + SHORT_CONFIG: osx_64_build_typereleasechannel_tar_haa8f77b834 + osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: + CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_build_typedebugchannel_ta_h4a1f0d054b + osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: + CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_build_typedebugchannel_ta_h49dbe0c1f7 + osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: + CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_build_typereleasechannel__h0d9a29af97 + osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: + CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_build_typereleasechannel__h92a1d5a633 timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index ae079344d..42c8bb4c5 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,10 +8,14 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_: - CONFIG: win_64_ + win_64_freethreadingno: + CONFIG: win_64_freethreadingno UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: win_64_ + SHORT_CONFIG: win_64_freethreadingno + win_64_freethreadingyes: + CONFIG: win_64_freethreadingyes + UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: win_64_freethreadingyes timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ diff --git a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml rename to .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index 3b3d4b763..0e59bcc0d 100644 --- a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml +++ b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge python_debug cxx_compiler: @@ -24,6 +24,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml new file mode 100644 index 000000000..4ce6895f1 --- /dev/null +++ b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -0,0 +1,61 @@ +build_type: +- debug +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge python_debug +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_main.yaml b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_main.yaml rename to .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index 446438692..976f7378e 100644 --- a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_main.yaml +++ b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -24,6 +24,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml new file mode 100644 index 000000000..21f44cb1b --- /dev/null +++ b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -0,0 +1,61 @@ +build_type: +- release +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debug.yaml b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debug.yaml rename to .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index 8959a1173..a838d66f5 100644 --- a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debug.yaml +++ b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -17,7 +17,7 @@ cdt_arch: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge python_debug cxx_compiler: @@ -28,6 +28,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -41,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml new file mode 100644 index 000000000..6c2d40250 --- /dev/null +++ b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -0,0 +1,65 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +build_type: +- debug +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge python_debug +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-aarch64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_main.yaml b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_main.yaml rename to .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index 256d6c49c..8d84461fd 100644 --- a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_main.yaml +++ b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -17,7 +17,7 @@ cdt_arch: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -28,6 +28,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -41,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml new file mode 100644 index 000000000..9974fe562 --- /dev/null +++ b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -0,0 +1,65 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +build_type: +- release +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-aarch64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debug.yaml b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debug.yaml rename to .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index 16804e7b3..39ca0a5b1 100644 --- a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debug.yaml +++ b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge python_debug cxx_compiler: @@ -24,6 +24,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml new file mode 100644 index 000000000..92b13440d --- /dev/null +++ b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -0,0 +1,59 @@ +build_type: +- debug +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge python_debug +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-ppc64le +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_main.yaml b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml similarity index 90% rename from .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_main.yaml rename to .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index d955476dc..a56edc858 100644 --- a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_main.yaml +++ b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -24,6 +24,8 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' libuuid: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml new file mode 100644 index 000000000..a0bc0da50 --- /dev/null +++ b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -0,0 +1,59 @@ +build_type: +- release +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +libuuid: +- '2' +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- linux-ppc64le +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name +zlib: +- '1' diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml rename to .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index ab3f07f75..34fac3d79 100644 --- a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debug.yaml +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -15,7 +15,7 @@ c_stdlib: c_stdlib_version: - '10.13' channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge python_debug cxx_compiler: @@ -24,6 +24,8 @@ cxx_compiler_version: - '16' expat: - '2' +freethreading: +- 'no' libffi: - '3.4' macos_machine: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml new file mode 100644 index 000000000..c9b4e5896 --- /dev/null +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -0,0 +1,59 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '11.0' +build_type: +- debug +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge python_debug +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +macos_machine: +- x86_64-apple-darwin13.4.0 +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- osx-64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +zlib: +- '1' diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_main.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml similarity index 90% rename from .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_main.yaml rename to .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index 614f0f48a..5f3d95150 100644 --- a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_main.yaml +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -15,7 +15,7 @@ c_stdlib: c_stdlib_version: - '10.13' channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -24,6 +24,8 @@ cxx_compiler_version: - '16' expat: - '2' +freethreading: +- 'no' libffi: - '3.4' macos_machine: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml new file mode 100644 index 000000000..f617ec7f0 --- /dev/null +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -0,0 +1,59 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '11.0' +build_type: +- release +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +macos_machine: +- x86_64-apple-darwin13.4.0 +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- osx-64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +zlib: +- '1' diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debug.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debug.yaml rename to .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index 6bc8d62b7..f3120928e 100644 --- a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debug.yaml +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -15,7 +15,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge python_debug cxx_compiler: @@ -24,6 +24,8 @@ cxx_compiler_version: - '16' expat: - '2' +freethreading: +- 'no' libffi: - '3.4' macos_machine: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml new file mode 100644 index 000000000..103426e53 --- /dev/null +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -0,0 +1,59 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +build_type: +- debug +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge python_debug +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +macos_machine: +- arm64-apple-darwin20.0.0 +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- osx-arm64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +zlib: +- '1' diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_main.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml similarity index 90% rename from .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_main.yaml rename to .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index 3796ea1ef..c3b2eb070 100644 --- a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_main.yaml +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -15,7 +15,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -24,6 +24,8 @@ cxx_compiler_version: - '16' expat: - '2' +freethreading: +- 'no' libffi: - '3.4' macos_machine: @@ -37,7 +39,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' readline: - '8' sqlite: diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml new file mode 100644 index 000000000..8b2463ee3 --- /dev/null +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -0,0 +1,59 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +build_type: +- release +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +macos_machine: +- arm64-apple-darwin20.0.0 +ncurses: +- '6' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +readline: +- '8' +sqlite: +- '3' +target_platform: +- osx-arm64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +- - c_compiler_version + - cxx_compiler_version +zlib: +- '1' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_freethreadingno.yaml similarity index 83% rename from .ci_support/win_64_.yaml rename to .ci_support/win_64_freethreadingno.yaml index ea1efabe6..b688167b4 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_freethreadingno.yaml @@ -7,13 +7,15 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge +- conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: - vs2019 expat: - '2' +freethreading: +- 'no' libffi: - '3.4' openssl: @@ -23,7 +25,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.12' +- '3.13' sqlite: - '3' target_platform: diff --git a/.ci_support/win_64_freethreadingyes.yaml b/.ci_support/win_64_freethreadingyes.yaml new file mode 100644 index 000000000..448c687b4 --- /dev/null +++ b/.ci_support/win_64_freethreadingyes.yaml @@ -0,0 +1,41 @@ +build_type: +- release +bzip2: +- '1' +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge/label/python_rc,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +expat: +- '2' +freethreading: +- 'yes' +libffi: +- '3.4' +openssl: +- '3' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- '3.13' +sqlite: +- '3' +target_platform: +- win-64 +tk: +- '8.6' +xz: +- '5' +zip_keys: +- - build_type + - channel_targets +zlib: +- '1' diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 92fb27fc6..5b95939c8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @chrisburr @isuruf @jakirkham @katietz @mbargull @mingwandroid @msarahan @ocefpaf @pelson @scopatz @xhochy \ No newline at end of file +* @chrisburr @isuruf @jakirkham @katietz @mbargull @msarahan @ocefpaf @pelson @scopatz @xhochy \ No newline at end of file diff --git a/README.md b/README.md index 1562065d5..e8b8effaa 100644 --- a/README.md +++ b/README.md @@ -39,80 +39,157 @@ Current build status - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -128,6 +205,8 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | +| [![Conda Recipe](https://img.shields.io/badge/recipe-cpython-green.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-cpython--jit-green.svg)](https://anaconda.org/conda-forge/cpython-jit) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/cpython-jit.svg)](https://anaconda.org/conda-forge/cpython-jit) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/cpython-jit.svg)](https://anaconda.org/conda-forge/cpython-jit) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/cpython-jit.svg)](https://anaconda.org/conda-forge/cpython-jit) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libpython--static-green.svg)](https://anaconda.org/conda-forge/libpython-static) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libpython-static.svg)](https://anaconda.org/conda-forge/libpython-static) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libpython-static.svg)](https://anaconda.org/conda-forge/libpython-static) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libpython-static.svg)](https://anaconda.org/conda-forge/libpython-static) | | [![Conda Recipe](https://img.shields.io/badge/recipe-python-green.svg)](https://anaconda.org/conda-forge/python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/python.svg)](https://anaconda.org/conda-forge/python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/python.svg)](https://anaconda.org/conda-forge/python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/python.svg)](https://anaconda.org/conda-forge/python) | @@ -141,41 +220,41 @@ conda config --add channels conda-forge/label/python_debug conda config --set channel_priority strict ``` -Once the `conda-forge/label/python_debug` channel has been enabled, `libpython-static, python` can be installed with `conda`: +Once the `conda-forge/label/python_debug` channel has been enabled, `cpython, cpython-jit, libpython-static, python` can be installed with `conda`: ``` -conda install libpython-static python +conda install cpython cpython-jit libpython-static python ``` or with `mamba`: ``` -mamba install libpython-static python +mamba install cpython cpython-jit libpython-static python ``` -It is possible to list all of the versions of `libpython-static` available on your platform with `conda`: +It is possible to list all of the versions of `cpython` available on your platform with `conda`: ``` -conda search libpython-static --channel conda-forge/label/python_debug +conda search cpython --channel conda-forge/label/python_debug ``` or with `mamba`: ``` -mamba search libpython-static --channel conda-forge/label/python_debug +mamba search cpython --channel conda-forge/label/python_debug ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libpython-static --channel conda-forge/label/python_debug +mamba repoquery search cpython --channel conda-forge/label/python_debug -# List packages depending on `libpython-static`: -mamba repoquery whoneeds libpython-static --channel conda-forge/label/python_debug +# List packages depending on `cpython`: +mamba repoquery whoneeds cpython --channel conda-forge/label/python_debug -# List dependencies of `libpython-static`: -mamba repoquery depends libpython-static --channel conda-forge/label/python_debug +# List dependencies of `cpython`: +mamba repoquery depends cpython --channel conda-forge/label/python_debug ``` @@ -250,7 +329,6 @@ Feedstock Maintainers * [@jakirkham](https://github.com/jakirkham/) * [@katietz](https://github.com/katietz/) * [@mbargull](https://github.com/mbargull/) -* [@mingwandroid](https://github.com/mingwandroid/) * [@msarahan](https://github.com/msarahan/) * [@ocefpaf](https://github.com/ocefpaf/) * [@pelson](https://github.com/pelson/) diff --git a/recipe/brand_python.py b/recipe/brand_python.py index ef2738af9..9ce579ccf 100644 --- a/recipe/brand_python.py +++ b/recipe/brand_python.py @@ -15,7 +15,7 @@ def patch_platform(msg): with open(platform_file, 'w') as fh: for line in lines_it: fh.write(line) - if line.lstrip().startswith('sys_version_parser'): + if line.lstrip().startswith('cpython_sys_version_parser'): next_line = next(lines_it) fh.write(" r'([\w.+]+)\s*" + '(?:' + re.escape(' ' + msg) + ')?' + "\s*'\n") diff --git a/recipe/build-locally.py b/recipe/build-locally.py deleted file mode 100644 index 8f7ecca4f..000000000 --- a/recipe/build-locally.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python3 -# -# This file has been generated by conda-smithy in order to build the recipe -# locally. -# -import os -import glob -import subprocess -from argparse import ArgumentParser - - -def setup_environment(ns): - os.environ["CONFIG"] = ns.config - os.environ["UPLOAD_PACKAGES"] = "False" - - -def run_docker_build(ns): - script = ".scripts/run_docker_build.sh" - subprocess.check_call([script]) - - -def verify_config(ns): - valid_configs = { - os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") - } - print(f"valid configs are {valid_configs}") - if ns.config in valid_configs: - print("Using " + ns.config + " configuration") - return - elif len(valid_configs) == 1: - ns.config = valid_configs.pop() - print("Found " + ns.config + " configuration") - elif ns.config is None: - print("config not selected, please choose from the following:\n") - selections = list(enumerate(sorted(valid_configs), 1)) - for i, c in selections: - print(f"{i}. {c}") - s = input("\n> ") - idx = int(s) - 1 - ns.config = selections[idx][1] - print(f"selected {ns.config}") - else: - raise ValueError("config " + ns.config + " is not valid") - # Remove the following, as implemented - if not ns.config.startswith("linux"): - raise ValueError( - f"only Linux configs currently supported, got {ns.config}" - ) - - -def main(args=None): - p = ArgumentParser("build-locally") - p.add_argument("config", default=None, nargs="?") - - ns = p.parse_args(args=args) - verify_config(ns) - setup_environment(ns) - - run_docker_build(ns) - - -if __name__ == "__main__": - main() diff --git a/recipe/build_base.bat b/recipe/build_base.bat index fdfed954e..1ae6bc4c8 100644 --- a/recipe/build_base.bat +++ b/recipe/build_base.bat @@ -20,6 +20,10 @@ for /F "tokens=1,2 delims=." %%i in ("%PKG_VERSION%") do ( set "VERNODOTS=%%i%%j" ) +for /F "tokens=1,2 delims=." %%i in ("%PKG_VERSION%") do ( + set "VER=%%i.%%j" +) + :: Make sure the "python" value in conda_build_config.yaml is up to date. for /F "tokens=1,2 delims=." %%i in ("%PKG_VERSION%") do ( if NOT "%PY_VER%"=="%%i.%%j" exit 1 @@ -44,6 +48,16 @@ if "%DEBUG_C%"=="yes" ( set PGO=--pgo ) +if "%PY_FREETHREADING%" == "yes" ( + set "FREETHREADING=--disable-gil" + set "THREAD=t" + set "EXE_T=%VER%t" +) else ( + set "FREETHREADING=" + set "THREAD=" + set "EXE_T=" +) + :: AP doesn't support PGO atm? set PGO= @@ -51,13 +65,13 @@ cd PCbuild :: Twice because: :: error : importlib_zipimport.h updated. You will need to rebuild pythoncore to see the changes. -call build.bat %PGO% %CONFIG% -m -e -v -p %PLATFORM% -call build.bat %PGO% %CONFIG% -m -e -v -p %PLATFORM% +call build.bat %PGO% %CONFIG% %FREETHREADING% --experimental-jit-off -m -e -v -p %PLATFORM% +call build.bat %PGO% %CONFIG% %FREETHREADING% --experimental-jit-off -m -e -v -p %PLATFORM% if errorlevel 1 exit 1 cd .. :: Populate the root package directory -for %%x in (python%VERNODOTS%%_D%.dll python3%_D%.dll python%_D%.exe pythonw%_D%.exe) do ( +for %%x in (python%VERNODOTS%%THREAD%%_D%.dll python3%THREAD%%_D%.dll python%EXE_T%%_D%.exe pythonw%EXE_T%%_D%.exe) do ( if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\%%x ( copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\%%x %PREFIX% ) else ( @@ -73,6 +87,8 @@ for %%x in (python%_D%.pdb python%VERNODOTS%%_D%.pdb pythonw%_D%.pdb) do ( ) ) +@echo on + copy %SRC_DIR%\LICENSE %PREFIX%\LICENSE_PYTHON.txt if errorlevel 1 exit 1 @@ -86,7 +102,6 @@ if errorlevel 1 exit 1 copy /Y %SRC_DIR%\PC\icons\pyc.ico %PREFIX%\DLLs\ if errorlevel 1 exit 1 - :: Populate the Tools directory mkdir %PREFIX%\Tools xcopy /s /y /i %SRC_DIR%\Tools\i18n %PREFIX%\Tools\i18n @@ -96,13 +111,9 @@ if errorlevel 1 exit 1 del %PREFIX%\Tools\scripts\README if errorlevel 1 exit 1 -del %PREFIX%\Tools\scripts\dutree.doc -if errorlevel 1 exit 1 del %PREFIX%\Tools\scripts\idle3 if errorlevel 1 exit 1 -move /y %PREFIX%\Tools\scripts\2to3 %PREFIX%\Tools\scripts\2to3.py -if errorlevel 1 exit 1 move /y %PREFIX%\Tools\scripts\pydoc3 %PREFIX%\Tools\scripts\pydoc3.py if errorlevel 1 exit 1 @@ -110,8 +121,9 @@ if errorlevel 1 exit 1 xcopy /s /y %SRC_DIR%\Include %PREFIX%\include\ if errorlevel 1 exit 1 -copy /Y %SRC_DIR%\PC\pyconfig.h %PREFIX%\include\ -if errorlevel 1 exit 1 +@rem Safe to omit this? Is this maybe somewhere else? +@rem copy /Y %SRC_DIR%\PC\pyconfig.h %PREFIX%\include\ +@rem if errorlevel 1 exit 1 :: Populate the Scripts directory if not exist %SCRIPTS% (mkdir %SCRIPTS%) @@ -122,9 +134,6 @@ for %%x in (idle pydoc) do ( if errorlevel 1 exit 1 ) -copy /Y %SRC_DIR%\Tools\scripts\2to3 %SCRIPTS% -if errorlevel 1 exit 1 - :: Populate the libs directory if not exist %PREFIX%\libs mkdir %PREFIX%\libs if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\python%VERNODOTS%%_D%.lib copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\python%VERNODOTS%%_D%.lib %PREFIX%\libs\ @@ -141,16 +150,21 @@ xcopy /s /y %SRC_DIR%\Lib %PREFIX%\Lib\ if errorlevel 1 exit 1 :: Copy venv[w]launcher scripts to venv\srcipts\nt -if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%_D%.exe ( - copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%_D%.exe %PREFIX%\Lib\venv\scripts\nt\python.exe +:: See https://github.com/python/cpython/blob/b4a316087c32d83e375087fd35fc511bc430ee8b/Lib/venv/__init__.py#L334-L376 +if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%THREAD%%_D%.exe ( + @rem We did copy pythonw.exe until 3.12 but starting with 3.13 we seem to need the latter. Should we omit the first? + copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%THREAD%%_D%.exe %PREFIX%\Lib\venv\scripts\nt\python.exe + copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%THREAD%%_D%.exe %PREFIX%\Lib\venv\scripts\nt\venvlauncher%THREAD%%_D%.exe ) else ( - echo "WARNING :: %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%_D%.exe does not exist" + echo "WARNING :: %SRC_DIR%\PCbuild\%BUILD_PATH%\venvlauncher%THREAD%%_D%.exe does not exist" ) -if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%_D%.exe ( - copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%_D%.exe %PREFIX%\Lib\venv\scripts\nt\pythonw.exe +if exist %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%THREAD%%_D%.exe ( + @rem We did copy pythonw.exe until 3.12 but starting with 3.13 we seem to need the latter. Should we omit the first? + copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%THREAD%%_D%.exe %PREFIX%\Lib\venv\scripts\nt\pythonw.exe + copy /Y %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%THREAD%%_D%.exe %PREFIX%\Lib\venv\scripts\nt\venvwlauncher%THREAD%%_D%.exe ) else ( - echo "WARNING :: %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%_D%.exe does not exist" + echo "WARNING :: %SRC_DIR%\PCbuild\%BUILD_PATH%\venvwlauncher%THREAD%%_D%.exe does not exist" ) @@ -176,6 +190,7 @@ if errorlevel 1 exit 1 :: We need our Python to be found! if "%_D%" neq "" copy %PREFIX%\python%_D%.exe %PREFIX%\python.exe +if "%EXE_T%" neq "" copy %PREFIX%\python%EXE_T%.exe %PREFIX%\python.exe %PREFIX%\python.exe -Wi %PREFIX%\Lib\compileall.py -f -q -x "bad_coding|badsyntax|py2_" %PREFIX%\Lib if errorlevel 1 exit 1 diff --git a/recipe/build_base.sh b/recipe/build_base.sh index 3c09c2917..7008e2762 100644 --- a/recipe/build_base.sh +++ b/recipe/build_base.sh @@ -4,6 +4,13 @@ set -ex # Get an updated config.sub and config.guess cp $BUILD_PREFIX/share/libtool/build-aux/config.* . +if [[ ! -d ${BUILD_PREFIX}/python-bin ]]; then + # Need an up-to-date python to build python. + # python 3.10 in miniforge is too old. + CONDA_SUBDIR=$build_platform conda create -p ${BUILD_PREFIX}/python-bin python -c conda-forge --yes --quiet + export PATH=${BUILD_PREFIX}/python-bin/bin:${PATH} +fi + # The LTO/PGO information was sourced from @pitrou and the Debian rules file in: # http://http.debian.net/debian/pool/main/p/python3.6/python3.6_3.6.2-2.debian.tar.xz # https://packages.debian.org/source/sid/python3.6 @@ -24,14 +31,6 @@ _buildd_shared=build-shared _ENABLE_SHARED=--enable-shared # We *still* build a shared lib here for non-static embedded use cases _DISABLE_SHARED=--disable-shared -# Hack to allow easily comparing static vs shared interpreter performance -# .. hack because we just build it shared in both the build-static and -# build-shared directories. -# Yes this hack is a bit confusing, sorry about that. -if [[ ${PY_INTERP_LINKAGE_NATURE} == shared ]]; then - _DISABLE_SHARED=--enable-shared - _ENABLE_SHARED=--enable-shared -fi # For debugging builds, set this to no to disable profile-guided optimization if [[ ${PY_INTERP_DEBUG} == yes ]]; then @@ -64,8 +63,16 @@ else DBG= fi -ABIFLAGS=${DBG} -VERABI=${VER}${DBG} +if [[ ${PY_FREETHREADING} == yes ]]; then + # This Python will not be usable with non-free threading Python modules. + THREAD=t +else + THREAD= +fi + +ABIFLAGS=${DBG}${THREAD} +VERABI=${VER}${THREAD}${DBG} +VERABI_NO_DBG=${VER}${THREAD} # Make sure the "python" value in conda_build_config.yaml is up to date. test "${PY_VER}" = "${VER}" @@ -76,7 +83,7 @@ test "${PY_VER}" = "${VER}" unset _PYTHON_SYSCONFIGDATA_NAME unset _CONDA_PYTHON_SYSCONFIGDATA_NAME -# Prevent lib/python${VER}/_sysconfigdata_*.py from ending up with full paths to these things +# Prevent lib/python${VERABI_NO_DBG}/_sysconfigdata_*.py from ending up with full paths to these things # in _build_env because _build_env will not get found during prefix replacement, only _h_env_placeh ... AR=$(basename "${AR}") @@ -264,6 +271,16 @@ _common_configure_args+=(--with-tcltk-includes="-I${PREFIX}/include") _common_configure_args+=("--with-tcltk-libs=-L${PREFIX}/lib -ltcl8.6 -ltk8.6") _common_configure_args+=(--with-platlibdir=lib) +if [[ "${PY_INTERP_DEBUG}" == "yes" || "${target_platform}" != *"-64" ]]; then + _common_configure_args+=(--enable-experimental-jit=no) +else + _common_configure_args+=(--enable-experimental-jit=yes-off) +fi + +if [[ ${PY_FREETHREADING} == yes ]]; then + _common_configure_args+=(--disable-gil) +fi + # Add more optimization flags for the static Python interpreter: declare -a PROFILE_TASK=() if [[ ${_OPTIMIZED} == yes ]]; then @@ -356,7 +373,7 @@ fi # build a static library with PIC objects and without LTO/PGO make -j${CPU_COUNT} -C ${_buildd_shared} \ EXTRA_CFLAGS="${EXTRA_CFLAGS}" \ - LIBRARY=libpython${VERABI}-pic.a libpython${VERABI}-pic.a + LIBRARY=libpython${VERABI_NO_DBG}-pic.a libpython${VERABI_NO_DBG}-pic.a make -C ${_buildd_static} install @@ -388,15 +405,15 @@ fi SYSCONFIG=$(find ${_buildd_static}/$(cat ${_buildd_static}/pybuilddir.txt) -name "_sysconfigdata*.py" -print0) cat ${SYSCONFIG} | ${SYS_PYTHON} "${RECIPE_DIR}"/replace-word-pairs.py \ "${_FLAGS_REPLACE[@]}" \ - > ${PREFIX}/lib/python${VER}/$(basename ${SYSCONFIG}) -MAKEFILE=$(find ${PREFIX}/lib/python${VER}/ -path "*config-*/Makefile" -print0) + > ${PREFIX}/lib/python${VERABI_NO_DBG}/$(basename ${SYSCONFIG}) +MAKEFILE=$(find ${PREFIX}/lib/python${VERABI_NO_DBG}/ -path "*config-*/Makefile" -print0) cp ${MAKEFILE} /tmp/Makefile-$$ cat /tmp/Makefile-$$ | ${SYS_PYTHON} "${RECIPE_DIR}"/replace-word-pairs.py \ "${_FLAGS_REPLACE[@]}" \ > ${MAKEFILE} # Check to see that our differences took. -# echo diff -urN ${SYSCONFIG} ${PREFIX}/lib/python${VER}/$(basename ${SYSCONFIG}) -# diff -urN ${SYSCONFIG} ${PREFIX}/lib/python${VER}/$(basename ${SYSCONFIG}) +# echo diff -urN ${SYSCONFIG} ${PREFIX}/lib/python${VERABI_NO_DBG}/$(basename ${SYSCONFIG}) +# diff -urN ${SYSCONFIG} ${PREFIX}/lib/python${VERABI_NO_DBG}/$(basename ${SYSCONFIG}) # Python installs python${VER}m and python${VER}, one as a hardlink to the other. conda-build breaks these # by copying. Since the executable may be static it may be very large so change one to be a symlink @@ -413,7 +430,7 @@ ln -s ${PREFIX}/bin/python${VER} ${PREFIX}/bin/python3.1 # Remove test data to save space # Though keep `support` as some things use that. # TODO :: Make a subpackage for this once we implement multi-level testing. -pushd ${PREFIX}/lib/python${VER} +pushd ${PREFIX}/lib/python${VERABI_NO_DBG} mkdir test_keep mv test/__init__.py test/support test/test_support* test/test_script_helper* test_keep/ rm -rf test */test @@ -426,7 +443,7 @@ pushd ${PREFIX} chmod +w lib/libpython${VERABI}.a ${STRIP} -S lib/libpython${VERABI}.a fi - CONFIG_LIBPYTHON=$(find lib/python${VER}/config-${VERABI}* -name "libpython${VERABI}.a") + CONFIG_LIBPYTHON=$(find lib/python${VERABI_NO_DBG}/config-${VERABI}* -name "libpython${VERABI}.a") if [[ -f lib/libpython${VERABI}.a ]] && [[ -f ${CONFIG_LIBPYTHON} ]]; then chmod +w ${CONFIG_LIBPYTHON} rm ${CONFIG_LIBPYTHON} @@ -452,7 +469,7 @@ esac # Copy sysconfig that gets recorded to a non-default name # using the new compilers with python will require setting _PYTHON_SYSCONFIGDATA_NAME # to the name of this file (minus the .py extension) -pushd "${PREFIX}"/lib/python${VER} +pushd "${PREFIX}"/lib/python${VERABI_NO_DBG} # On Python 3.5 _sysconfigdata.py was getting copied in here and compiled for some reason. # This breaks our attempt to find the right one as recorded_name. find lib-dynload -name "_sysconfigdata*.py*" -exec rm {} \; @@ -488,7 +505,7 @@ pushd "${PREFIX}"/lib/python${VER} sed -i.bak "s@$OLD_HOST-@@g" sysconfigfile if [[ "$target_platform" == linux* ]]; then # For linux, make sure the system gcc uses our linker - sed -i.bak "s@-pthread@-pthread -B $PREFIX/compiler_compat@g" sysconfigfile + sed -i.bak "s@-pthread@-pthread -B $PREFIX/shared/python_compiler_compat@g" sysconfigfile fi # Don't set -march and -mtune for system gcc sed -i.bak "s@-march=[^( |\\\"|\\\')]*@@g" sysconfigfile @@ -513,10 +530,10 @@ pushd "${PREFIX}"/lib/python${VER} popd if [[ ${HOST} =~ .*linux.* ]]; then - mkdir -p ${PREFIX}/compiler_compat - ln -s ${PREFIX}/bin/${HOST}-ld ${PREFIX}/compiler_compat/ld - echo "Files in this folder are to enhance backwards compatibility of anaconda software with older compilers." > ${PREFIX}/compiler_compat/README - echo "See: https://github.com/conda/conda/issues/6030 for more information." >> ${PREFIX}/compiler_compat/README + mkdir -p ${PREFIX}/shared/python_compiler_compat + ln -s ${PREFIX}/bin/${HOST}-ld ${PREFIX}/shared/python_compiler_compat/ld + echo "Files in this folder are to enhance backwards compatibility of anaconda software with older compilers." > ${PREFIX}/shared/python_compiler_compat/README + echo "See: https://github.com/conda/conda/issues/6030 for more information." >> ${PREFIX}/shared/python_compiler_compat/README fi python -c "import compileall,os;compileall.compile_dir(os.environ['PREFIX'])" @@ -525,7 +542,7 @@ rm ${PREFIX}/lib/libpython${VERABI}.a if [[ ${PY_INTERP_DEBUG} == yes ]]; then rm ${PREFIX}/bin/python${VER} ln -s ${PREFIX}/bin/python${VERABI} ${PREFIX}/bin/python${VER} - ln -s ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT} ${PREFIX}/lib/libpython${VER}${SHLIB_EXT} + ln -s ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT} ${PREFIX}/lib/libpython${VERABI_NO_DBG}${SHLIB_EXT} ln -s ${PREFIX}/include/python${VERABI} ${PREFIX}/include/python${VER} fi @@ -533,6 +550,5 @@ if [[ "$target_platform" == linux-* ]]; then rm ${PREFIX}/include/uuid.h fi -# Workaround for old conda versions which fail to install noarch packages for Python 3.10+ -# https://github.com/conda/conda/issues/10969 -ln -s "${PREFIX}/lib/python${VER}" "${PREFIX}/lib/python3.1" +# See ${RECIPE_DIR}/sitecustomize.py +cp "${RECIPE_DIR}/sitecustomize.py" "${PREFIX}/lib/python${VERABI_NO_DBG}/sitecustomize.py" diff --git a/recipe/build_static.sh b/recipe/build_static.sh index 2e2fac46b..f77243733 100644 --- a/recipe/build_static.sh +++ b/recipe/build_static.sh @@ -8,18 +8,26 @@ if [[ ${PY_INTERP_DEBUG} == yes ]]; then else DBG= fi -VER=${PKG_VERSION%.*} -VERABI=${VER}${DBG} +if [[ ${PY_FREETHREADING} == yes ]]; then + # This Python will not be usable with non-free threading Python modules. + THREAD=t +else + THREAD= +fi +VER=${PKG_VERSION%.*} +ABIFLAGS=${DBG}${THREAD} +VERABI=${VER}${THREAD}${DBG} +VERABI_NO_DBG=${VER}${THREAD} cp -pf ${_buildd_static}/libpython${VERABI}.a ${PREFIX}/lib/libpython${VERABI}.a if [[ ${HOST} =~ .*linux.* ]]; then - pushd ${PREFIX}/lib/python${VER}/config-${VERABI}-${HOST/-conda/} + pushd ${PREFIX}/lib/python${VERABI_NO_DBG}/config-${VERABI}-${HOST/-conda/} elif [[ ${HOST} =~ .*darwin.* ]]; then - pushd ${PREFIX}/lib/python${VER}/config-${VERABI}-darwin + pushd ${PREFIX}/lib/python${VERABI_NO_DBG}/config-${VERABI}-darwin fi ln -s ../../libpython${VERABI}.a libpython${VERABI}.a popd # If the LTO info in the normal lib is problematic (using different compilers for example # we also provide a 'nolto' version). -cp -pf ${_buildd_shared}/libpython${VERABI}-pic.a ${PREFIX}/lib/libpython${VERABI}.nolto.a +cp -pf ${_buildd_shared}/libpython${VERABI_NO_DBG}-pic.a ${PREFIX}/lib/libpython${VERABI_NO_DBG}.nolto.a diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index fe08aa1c9..174cfb632 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -1,5 +1,5 @@ python: - - 3.12 + - 3.13 python_impl: - cpython numpy: @@ -9,9 +9,14 @@ MACOSX_SDK_VERSION: # [osx and x86_64] build_type: - release - debug # [not win] +channel_sources: + - conda-forge/label/python_rc,conda-forge channel_targets: - conda-forge main - conda-forge python_debug # [not win] +freethreading: + - yes + - no zip_keys: - build_type - channel_targets diff --git a/recipe/install_jit_activation.bat b/recipe/install_jit_activation.bat new file mode 100644 index 000000000..71ecf061f --- /dev/null +++ b/recipe/install_jit_activation.bat @@ -0,0 +1,16 @@ +@echo on + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +if not exist %PREFIX%\etc\conda\activate.d mkdir %PREFIX%\etc\conda\activate.d +copy %RECIPE_DIR%\scripts\activate.bat %PREFIX%\etc\conda\activate.d\%PKG_NAME%_activate.bat +if errorlevel 1 exit 1 +:: We also copy .sh scripts to be able to use them with POSIX CLI on Windows. +copy %RECIPE_DIR%\scripts\activate.sh %PREFIX%\etc\conda\activate.d\%PKG_NAME%_activate.sh +if errorlevel 1 exit 1 + +if not exist %PREFIX%\etc\conda\deactivate.d mkdir %PREFIX%\etc\conda\deactivate.d +copy %RECIPE_DIR%\scripts\deactivate.bat %PREFIX%\etc\conda\deactivate.d\%PKG_NAME%_deactivate.bat +if errorlevel 1 exit 1 +copy %RECIPE_DIR%\scripts\deactivate.sh %PREFIX%\etc\conda\deactivate.d\%PKG_NAME%_deactivate.sh +if errorlevel 1 exit 1 diff --git a/recipe/install_jit_activation.sh b/recipe/install_jit_activation.sh new file mode 100644 index 000000000..1de6ae066 --- /dev/null +++ b/recipe/install_jit_activation.sh @@ -0,0 +1,7 @@ +# Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. +# This will allow them to be run on environment activation. +for CHANGE in "activate" "deactivate" +do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/scripts/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" +done diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 641867322..9d09a6530 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.12.5" %} -{% set dev = "" %} +{% set version = "3.13.0" %} +{% set dev = "rc1" %} {% set dev_ = "" %} {% set ver2 = '.'.join(version.split('.')[0:2]) %} {% set ver2nd = ''.join(version.split('.')[0:2]) %} @@ -11,22 +11,18 @@ # Sanitize build system env. var tweak parameters # (passed to the build scripts via script_env). -{% set from_source_control = os.environ.get('CONDA_BUILD_FROM_SOURCE_CONTROL', '') %} -{% if from_source_control == '' or from_source_control == 'no' %} - {% set from_source_control = 'no' %} -{% else %} - {% set from_source_control = 'yes' %} -{% endif %} -{% set linkage_nature = os.environ.get('PY_INTERP_LINKAGE_NATURE', '') %} -{% if linkage_nature != '' %} - {% set linkage_nature = "_" ~ linkage_nature %} +{% if freethreading is not defined %} + {% set freethreading = "yes" %} {% endif %} -{% if linkage_nature == 'shared' %} - {% set linkage_nature_env = 'shared' %} + +{% set abi_tag = "cp" + ver2nd %} +# freethreading, set using conda_build_config.yaml +{% if freethreading == "yes" %} + {% set abi_tag = abi_tag + "t" %} {% else %} - {% set linkage_nature_env = 'static' %} + {% set build_number = build_number + 100 %} {% endif %} -{% set dbg_abi = "" %} + {% if build_type == "debug" %} {% set py_interp_debug = "yes" %} {% set debug = "_debug" %} @@ -40,14 +36,9 @@ package: version: {{ version }}{{ dev }} source: -{% if from_source_control == 'yes' %} - - git_url: https://github.com/python/CPython.git - git_tag: v{{ version }}{{ dev }} -{% else %} - url: https://www.python.org/ftp/python/{{ version }}/Python-{{ version }}{{ dev }}.tar.xz # md5 from: https://www.python.org/downloads/release/python-{{ ver3nd }}{{ dev }}/ - md5: 02c7d269e077f4034963bba6befdc715 -{% endif %} + md5: 9213ecfedc510ac2a14c0eeea96baf02 patches: - patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch - patches/0002-Win32-Do-not-download-externals.patch @@ -72,20 +63,16 @@ source: - patches/0019-Remove-unused-readelf.patch - patches/0020-Don-t-checksharedmods-if-cross-compiling.patch - patches/0021-Override-configure-LIBFFI.patch - - patches/0022-Allow-linking-ncursesw-panelw-on-macOS-if-available.patch + - patches/0022-Unvendor-libmpdec.patch build: number: {{ build_number }} requirements: build: -{% if from_source_control == 'yes' %} - - git -{% else %} - patch # [not win] - m2-patch # [win] - m2-gcc-libs # [win] -{% endif %} outputs: - name: python @@ -116,21 +103,22 @@ outputs: skip: true # [win and int(float(vc)) < 14] skip_compile_pyc: - '*.py' # [build_platform != target_platform] - string: {{ dev_ }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ linkage_nature }}{{ debug }}_cpython # ["conda-forge" in (channel_targets or "")] - string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ linkage_nature }}{{ debug }} # ["conda-forge" not in (channel_targets or "")] -{% if 'conda-forge' in channel_targets %} + string: {{ dev_ }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ debug }}_{{ abi_tag }} run_exports: noarch: - python weak: - - python_abi {{ ver2 }}.* *_cp{{ ver2nd }} + - python_abi {{ ver2 }}.* *_{{ abi_tag }} {% if py_interp_debug == "yes" %} - - python {{ ver2 }}.* *_debug_cpython + - python {{ ver2 }}.* *_debug_{{ abi_tag }} {% endif %} + track_features: +{% if freethreading == "yes" %} + - py_freethreading {% endif %} script_env: - - PY_INTERP_LINKAGE_NATURE={{ linkage_nature_env }} - PY_INTERP_DEBUG={{ py_interp_debug }} + - PY_FREETHREADING={{ freethreading }} # Putting these here means they get emitted to build_env_setup.{sh,bat} meaning we can launch IDEs # after sourcing or calling that script without examine the contents of conda_build.{sh,bat} for # important env. vars. @@ -157,9 +145,11 @@ outputs: # configure script looks for llvm-ar for lto - llvm-tools # [osx] - ld_impl_{{ target_platform }} # [linux] -{% if 'conda-forge' in channel_targets %} - binutils_impl_{{ target_platform }} # [linux] -{% endif %} + - clang-18 # [not win] + - llvm-tools-18 # [not win] + - clang 18.* # [win] + - llvm-tools 18.* # [win] - bzip2 # [build_platform != target_platform] - sqlite # [build_platform != target_platform] - xz # [build_platform != target_platform] @@ -169,7 +159,6 @@ outputs: - tk # [build_platform != target_platform] - ncurses # [unix and build_platform != target_platform] - libffi # [build_platform != target_platform] - - libnsl # [linux and build_platform != target_platform] - libuuid # [linux and build_platform != target_platform] - libxcrypt # [linux and build_platform != target_platform] - expat # [build_platform != target_platform] @@ -184,9 +173,8 @@ outputs: - ncurses # [unix] - libffi - ld_impl_{{ target_platform }} >=2.36.1 # [linux] - - libnsl # [linux] - libuuid # [linux] - - libxcrypt # [linux] + - libmpdec-devel - expat run: - ld_impl_{{ target_platform }} >=2.36.1 # [linux] @@ -194,10 +182,7 @@ outputs: {% if dev != '' %} - _python_rc {% endif %} -{% if 'conda-forge' in channel_targets %} - run_constrained: - - python_abi {{ ver2 }}.* *_cp{{ ver2nd }} -{% endif %} + - python_abi {{ ver2 }}.* *_{{ abi_tag }} test: downstreams: - cython @@ -219,7 +204,6 @@ outputs: - set # [win] - python -V - python3 -V # [not win] - - 2to3 -h - pydoc -h - python3-config --help # [not win] - set "PIP_NO_BUILD_ISOLATION=False" # [win] @@ -244,33 +228,30 @@ outputs: # https://github.com/conda-forge/python-feedstock/issues/384 - if exist %PREFIX%\\Scripts\\pydoc exit 1 # [win] - if exist %PREFIX%\\Scripts\\idle exit 1 # [win] - - if exist %PREFIX%\\Scripts\\2to3 exit 1 # [win] - if not exist %PREFIX%\\Scripts\\pydoc-script.py exit 1 # [win] - if not exist %PREFIX%\\Scripts\\idle-script.py exit 1 # [win] - - if not exist %PREFIX%\\Scripts\\2to3-script.py exit 1 # [win] - if not exist %PREFIX%\\Scripts\\idle.exe exit 1 # [win] - - if not exist %PREFIX%\\Scripts\\2to3.exe exit 1 # [win] - if not exist %PREFIX%\\Scripts\\pydoc.exe exit 1 # [win] - pushd tests - pushd prefix-replacement # [unix] - bash build-and-test.sh # [unix] - popd # [unix] - pushd cmake - - cmake -GNinja -DPY_VER={{ version }} - # --trace --debug-output --debug-trycompile . +{% if freethreading == "yes" %} + - cmake -GNinja -DPY_VER={{ version }} --debug-find --trace --debug-output --debug-trycompile . || true # [unix] + - cmake -GNinja -DPY_VER={{ version }} --debug-find --trace --debug-output --debug-trycompile . || type nul>nul # [win] +{% else %} + - cmake -GNinja -DPY_VER={{ version }} --debug-find --trace --debug-output --debug-trycompile . +{% endif %} - popd - popd - python run_test.py - test ! -f default.profraw # [osx] - # Test workaround for https://github.com/conda/conda/issues/10969 - - test -d "$PREFIX/lib/python3.1/site-packages" # [unix] - python3.1 --version # [unix] # Test for segfault on osx-64 with libffi=3.4, see https://bugs.python.org/issue44556 - python -c "from ctypes import CFUNCTYPE; CFUNCTYPE(None)(id)" # Test for wide character supported via ncursesw - TERM=xterm >/dev/null python -c "import curses; scr = curses.initscr(); curses.unget_wch('x'); assert 'x' == scr.get_wch()" # [unix] - # crypt module will be removed in 3.13 => this failing is a reminder to remove the libxcrypt dependency - - python -c "import crypt" # [unix] - name: libpython-static script: build_static.sh # [unix] @@ -282,16 +263,13 @@ outputs: - python_abi script_env: - PY_INTERP_DEBUG={{ py_interp_debug }} - string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ linkage_nature }}{{ debug }}_cpython # ["conda-forge" in (channel_targets or "")] - string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ linkage_nature }}{{ debug }} # ["conda-forge" not in (channel_targets or "")] + - PY_FREETHREADING={{ freethreading }} + string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ debug }}_{{ abi_tag }} requirements: build: - {{ compiler('c') }} - {{ stdlib('c') }} - {{ compiler('cxx') }} -{% if from_source_control == 'yes' %} - - git -{% endif %} host: - {{ pin_subpackage('python', exact=True) }} run: @@ -302,19 +280,59 @@ outputs: requires: - {{ compiler('c') }} commands: - - VER=${PKG_VERSION%.*} # [not win] + - VER=${PKG_VERSION%.*} # [not win] + - VERABI=${VER} # [not win] +{% if freethreading == "yes" %} + - VERABI=${VERABI}t # [not win] +{% endif %} + - VERABI_NO_DBG=${VERABI} # [not win] {% if py_interp_debug == "yes" %} - - VERABI=${VER}d # [not win] -{% else %} - - VERABI=${VER} # [not win] + - VERABI=${VERABI}d # [not win] {% endif %} - test -f ${PREFIX}/lib/libpython${VERABI}.a # [unix] - - test -f ${PREFIX}/lib/libpython${VERABI}.nolto.a # [unix] - - test -f ${PREFIX}/lib/python${VER}/config-${VERABI}-darwin/libpython${VERABI}.a # [osx] + - test -f ${PREFIX}/lib/libpython${VERABI_NO_DBG}.nolto.a # [unix] + - test -f ${PREFIX}/lib/python${VERABI_NO_DBG}/config-${VERABI}-darwin/libpython${VERABI}.a # [osx] - pushd tests/prefix-replacement # [unix] - bash build-and-test.sh # [unix] - popd # [unix] + - name: cpython + build: + noarch: generic + requirements: + - python {{ version }}.* + - python_abi * *_{{ abi_tag }} + + - name: python-freethreading + build: + noarch: generic +{% if freethreading != "yes" %} + skip: True +{% endif %} + requirements: + - cpython {{ version }}.* + - python_abi * *_{{ abi_tag }} + + - name: cpython-gil + build: + noarch: generic +{% if freethreading == "yes" %} + skip: True +{% endif %} + requirements: + - cpython {{ version }}.* + - python_abi * *_{{ abi_tag }} + + - name: python-jit + script: install_jit_activation.sh # [not win] + script: install_jit_activation.bat # [win] + build: + noarch: generic + requirements: + - cpython {{ version }}.* + - __unix # [unix] + - __win # [win] + about: home: https://www.python.org/ license: Python-2.0 @@ -327,6 +345,27 @@ about: fewer lines of code than would be possible in languages such as C++ or Java. The language provides constructs intended to enable clear programs on both a small and large scale. + + We provide some meta packages for convenience. + To get a CPython flavour, use + + conda install cpython + + To get the freethreading build (i.e. without the Global Interpreter Lock - GIL) + + conda install python-freethreading + + To get the default build (i.e. with the GIL) + + conda install python-gil + + To enable the use of the experimental JIT compiler in CPython + + conda install python-jit + + or set the environment variable PYTHON_JIT=1. Note that the JIT support + is available for x86_64 builds only. + doc_url: https://www.python.org/doc/versions/ doc_source_url: https://github.com/python/pythondotorg/blob/master/docs/source/index.rst dev_url: https://docs.python.org/devguide/ @@ -338,7 +377,6 @@ extra: - isuruf - jakirkham - mbargull - - mingwandroid - msarahan - pelson - ocefpaf diff --git a/recipe/patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch b/recipe/patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch index b0aefe51d..4cdae8ba5 100644 --- a/recipe/patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch +++ b/recipe/patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch @@ -1,4 +1,4 @@ -From 4f915b76bf52d9a4a355e0047b0ac8d66a8ec336 Mon Sep 17 00:00:00 2001 +From 7178343ae96f9cfebfb5eef9b46a6a955173394c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:53:55 +0100 Subject: [PATCH 01/22] Win32: Change FD_SETSIZE from 512 to 2048 @@ -9,10 +9,10 @@ https://github.com/ContinuumIO/anaconda-issues/issues/1241 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c -index 97f1db20f6..166222bafb 100644 +index 5bd9b7732a..504f79e899 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c -@@ -46,7 +46,7 @@ +@@ -45,7 +45,7 @@ FD_SETSIZE higher before this; e.g., via compiler /D switch. */ #if defined(MS_WINDOWS) && !defined(FD_SETSIZE) diff --git a/recipe/patches/0002-Win32-Do-not-download-externals.patch b/recipe/patches/0002-Win32-Do-not-download-externals.patch index e9ca11c7a..a121a568e 100644 --- a/recipe/patches/0002-Win32-Do-not-download-externals.patch +++ b/recipe/patches/0002-Win32-Do-not-download-externals.patch @@ -1,22 +1,29 @@ -From 89ac50838fc3c43b63342d7b9c434fe68e11d678 Mon Sep 17 00:00:00 2001 +From e3cf4b7cc0c94751c96e9366ee755e4fc46152ee Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 7 Sep 2017 11:35:47 +0100 Subject: [PATCH 02/22] Win32: Do not download externals --- - PCbuild/build.bat | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + PCbuild/build.bat | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PCbuild/build.bat b/PCbuild/build.bat -index d333ceabd2..11e3d16a4f 100644 +index 6c76f09a07..3dc802b8ce 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat -@@ -97,7 +97,7 @@ if "%IncludeCTypes%"=="" set IncludeCTypes=true +@@ -102,7 +102,7 @@ if "%~1"=="--no-ctypes" (set IncludeCTypes=false) & shift & goto CheckOpts + if "%~1"=="--no-ssl" (set IncludeSSL=false) & shift & goto CheckOpts + if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts + +-if "%IncludeExternals%"=="" set IncludeExternals=true ++@rem if "%IncludeExternals%"=="" set IncludeExternals=true + if "%IncludeCTypes%"=="" set IncludeCTypes=true if "%IncludeSSL%"=="" set IncludeSSL=true if "%IncludeTkinter%"=="" set IncludeTkinter=true - --if "%IncludeExternals%"=="true" call "%dir%get_externals.bat" -+rem if "%IncludeExternals%"=="true" call "%dir%get_externals.bat" - - if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" ( - if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" NEQ "AMD64" ( +@@ -196,4 +196,4 @@ rem Display the current build version information + call "%dir%find_msbuild.bat" %MSBUILD% + if ERRORLEVEL 1 (echo Cannot locate MSBuild.exe on PATH or as MSBUILD variable & exit /b 2) + %MSBUILD% "%dir%pythoncore.vcxproj" /t:ShowVersionInfo /v:m /nologo %1 %2 %3 %4 %5 %6 %7 %8 %9 +-if ERRORLEVEL 1 exit /b 3 +\ No newline at end of file ++if ERRORLEVEL 1 exit /b 3 diff --git a/recipe/patches/0003-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch b/recipe/patches/0003-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch index 89ad52dab..d2dbeabf9 100644 --- a/recipe/patches/0003-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch +++ b/recipe/patches/0003-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch @@ -1,4 +1,4 @@ -From 1add97729db66a572b0ad8f26186071c6d1b19fd Mon Sep 17 00:00:00 2001 +From 736883361dfffbe7330c221cb259c20c0f28b65a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 5 Dec 2017 22:47:59 +0000 Subject: [PATCH 03/22] Fix find_library so that it looks in sys.prefix/lib @@ -25,11 +25,11 @@ index 583c47daff..ab9b01c87e 100644 yield os.path.join(executable_path, name[len('@executable_path/'):]) diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index c550883e7c..78b0b014f0 100644 +index 117bf06cb0..2e9fa474ac 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -70,7 +70,8 @@ def find_library(name): - elif os.name == "posix" and sys.platform == "darwin": + elif os.name == "posix" and sys.platform in {"darwin", "ios", "tvos", "watchos"}: from ctypes.macholib.dyld import dyld_find as _dyld_find def find_library(name): - possible = ['lib%s.dylib' % name, @@ -38,7 +38,7 @@ index c550883e7c..78b0b014f0 100644 '%s.dylib' % name, '%s.framework/%s' % (name, name)] for name in possible: -@@ -327,10 +328,30 @@ def _findLib_ld(name): +@@ -336,10 +337,30 @@ def _findLib_ld(name): pass # result will be None return result diff --git a/recipe/patches/0004-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch b/recipe/patches/0004-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch index 98b125fa7..bb06aa770 100644 --- a/recipe/patches/0004-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch +++ b/recipe/patches/0004-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch @@ -1,4 +1,4 @@ -From 4c0b20c3cebfcb8eaa0406c7b626322d01087492 Mon Sep 17 00:00:00 2001 +From 6fb5ee0171f592da6888e71fe0a05581fffaae43 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Oct 2018 18:48:30 +0100 Subject: [PATCH 04/22] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS @@ -11,10 +11,10 @@ Co-authored-by: Isuru Fernando 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/getpath.c b/Modules/getpath.c -index 0a31000075..b0efef2f53 100644 +index d0128b20fa..e7cfeba25e 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c -@@ -899,6 +899,7 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config) +@@ -945,6 +945,7 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config) !env_to_dict(dict, "ENV_PATH", 0) || !env_to_dict(dict, "ENV_PYTHONHOME", 0) || !env_to_dict(dict, "ENV_PYTHONEXECUTABLE", 0) || @@ -23,10 +23,10 @@ index 0a31000075..b0efef2f53 100644 !progname_to_dict(dict, "real_executable") || !library_to_dict(dict, "library") || diff --git a/Modules/getpath.py b/Modules/getpath.py -index 9913fcba49..15a06c7e44 100644 +index 1f1bfcb4f6..344900c05e 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py -@@ -51,6 +51,7 @@ +@@ -52,6 +52,7 @@ # ENV_PYTHONHOME -- [in] getenv(...) # ENV_PYTHONEXECUTABLE -- [in] getenv(...) # ENV___PYVENV_LAUNCHER__ -- [in] getenv(...) @@ -34,7 +34,7 @@ index 9913fcba49..15a06c7e44 100644 # ** Values calculated at runtime ** # config -- [in/out] dict of the PyConfig structure -@@ -673,7 +674,7 @@ def search_up(prefix, *landmarks, test=isfile): +@@ -681,7 +682,7 @@ def search_up(prefix, *landmarks, test=isfile): else: pythonpath.append(joinpath(prefix, ZIP_LANDMARK)) diff --git a/recipe/patches/0005-Unvendor-openssl.patch b/recipe/patches/0005-Unvendor-openssl.patch index 11c730271..f5b299c5f 100644 --- a/recipe/patches/0005-Unvendor-openssl.patch +++ b/recipe/patches/0005-Unvendor-openssl.patch @@ -1,4 +1,4 @@ -From 91c6890e658e06e72213b8699e9c7e15ab42de55 Mon Sep 17 00:00:00 2001 +From 9b09680cddf6efce8bc7f4ca62b7f31cd5b5eb62 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sat, 24 Nov 2018 20:38:02 -0600 Subject: [PATCH 05/22] Unvendor openssl @@ -6,16 +6,16 @@ Subject: [PATCH 05/22] Unvendor openssl Co-authored-by: Isuru Fernando --- PCbuild/_ssl.vcxproj | 3 -- - PCbuild/_ssl.vcxproj.filters | 3 -- + PCbuild/_ssl.vcxproj.filters | 5 +--- PCbuild/openssl.props | 14 ++------- - PCbuild/openssl.vcxproj | 56 ------------------------------------ + PCbuild/openssl.vcxproj | 58 +----------------------------------- PCbuild/python.props | 11 +------ PCbuild/python.vcxproj | 3 ++ - PCbuild/pythonw.vcxproj | 3 ++ - 7 files changed, 9 insertions(+), 84 deletions(-) + PCbuild/pythonw.vcxproj | 5 +++- + 7 files changed, 12 insertions(+), 87 deletions(-) diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj -index 226ff506f8..e2fac911e1 100644 +index d4e1affab0..ce21f992ff 100644 --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj @@ -99,9 +99,6 @@ @@ -29,10 +29,10 @@ index 226ff506f8..e2fac911e1 100644 diff --git a/PCbuild/_ssl.vcxproj.filters b/PCbuild/_ssl.vcxproj.filters -index 716a69a41a..8aef9e03fc 100644 +index 716a69a41a..7e8e5800a0 100644 --- a/PCbuild/_ssl.vcxproj.filters +++ b/PCbuild/_ssl.vcxproj.filters -@@ -12,9 +12,6 @@ +@@ -12,13 +12,10 @@ Source Files @@ -42,6 +42,12 @@ index 716a69a41a..8aef9e03fc 100644 + Resource Files + + +- +\ No newline at end of file ++ diff --git a/PCbuild/openssl.props b/PCbuild/openssl.props index 5fd708b211..044cefd95e 100644 --- a/PCbuild/openssl.props @@ -75,7 +81,7 @@ index 5fd708b211..044cefd95e 100644 - diff --git a/PCbuild/openssl.vcxproj b/PCbuild/openssl.vcxproj -index 0da6f67495..17eee400eb 100644 +index 0da6f67495..b79f35b2c7 100644 --- a/PCbuild/openssl.vcxproj +++ b/PCbuild/openssl.vcxproj @@ -60,64 +60,8 @@ @@ -143,8 +149,15 @@ index 0da6f67495..17eee400eb 100644 +@@ -136,4 +80,4 @@ nmake + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/python.props b/PCbuild/python.props -index d799948fa3..cf0913f331 100644 +index 86fe8531d7..0ec0914fac 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -61,6 +61,7 @@ @@ -155,7 +168,7 @@ index d799948fa3..cf0913f331 100644 $([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`)) $(ExternalsDir)\ -@@ -68,17 +69,7 @@ +@@ -68,18 +69,8 @@ @@ -165,6 +178,7 @@ index d799948fa3..cf0913f331 100644 - $(ExternalsDir)libffi-3.4.4\ - $(libffiDir)$(ArchName)\ - $(libffiOutDir)include + $(ExternalsDir)\mpdecimal-4.0.0\ - $(ExternalsDir)openssl-3.0.13\ - $(ExternalsDir)openssl-bin-3.0.13\$(ArchName)\ - $(opensslOutDir)include @@ -174,10 +188,10 @@ index d799948fa3..cf0913f331 100644 diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj -index 846c87fd1a..8021002c16 100644 +index 4a99ffc677..b11fb61796 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj -@@ -107,6 +107,9 @@ +@@ -110,6 +110,9 @@ @@ -188,10 +202,10 @@ index 846c87fd1a..8021002c16 100644 diff --git a/PCbuild/pythonw.vcxproj b/PCbuild/pythonw.vcxproj -index f485352f64..38a2547089 100644 +index d08c210ef8..58a9e852be 100644 --- a/PCbuild/pythonw.vcxproj +++ b/PCbuild/pythonw.vcxproj -@@ -99,6 +99,9 @@ +@@ -102,6 +102,9 @@ @@ -201,3 +215,10 @@ index f485352f64..38a2547089 100644 +@@ -112,4 +115,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/recipe/patches/0006-Unvendor-sqlite3.patch b/recipe/patches/0006-Unvendor-sqlite3.patch index 13ca0de77..d23d1c497 100644 --- a/recipe/patches/0006-Unvendor-sqlite3.patch +++ b/recipe/patches/0006-Unvendor-sqlite3.patch @@ -1,4 +1,4 @@ -From 0a0c280aec453af0a3904a696dfc71175e6dc246 Mon Sep 17 00:00:00 2001 +From 0c234591237306b0d24320fcddcb35275f0866f9 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Tue, 5 Oct 2021 12:42:06 -0700 Subject: [PATCH 06/22] Unvendor sqlite3 @@ -10,7 +10,7 @@ Subject: [PATCH 06/22] Unvendor sqlite3 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj -index 57c7413671..4735477f00 100644 +index 9ae0a0fc3a..f482734ba1 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -93,9 +93,12 @@ @@ -43,20 +43,20 @@ index 57c7413671..4735477f00 100644 \ No newline at end of file + diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln -index bdddec60da..ab43b610a9 100644 +index d10e1c46a9..7516820de8 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln -@@ -99,8 +99,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcxproj" +@@ -71,8 +71,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtre EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcxproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}" + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcxproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcxproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}" +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcxproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" -EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcxproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}" + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcxproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" diff --git a/PCbuild/sqlite3.vcxproj b/PCbuild/sqlite3.vcxproj -index c502d51833..c1ff0c9a08 100644 +index 6bcc4e913c..9fe4bb740a 100644 --- a/PCbuild/sqlite3.vcxproj +++ b/PCbuild/sqlite3.vcxproj @@ -88,12 +88,12 @@ diff --git a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch index 2df358864..b56f8cd45 100644 --- a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch +++ b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch @@ -1,4 +1,4 @@ -From 46d9b400457bec18d25f3977758daa76d53acbf4 Mon Sep 17 00:00:00 2001 +From 549322421754214dfdbc456a51c77d6f64947d16 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 24 Dec 2019 18:37:17 +0100 Subject: [PATCH 07/22] Add CondaEcosystemModifyDllSearchPath() @@ -33,10 +33,10 @@ Co-authored-by: Isuru Fernando 1 file changed, 96 insertions(+) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c -index 2c36527a87..84cbae8248 100644 +index 13bd62da4d..d68bd42a9f 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c -@@ -51,6 +51,10 @@ +@@ -60,6 +60,10 @@ #ifdef MS_WINDOWS # undef BYTE @@ -46,8 +46,8 @@ index 2c36527a87..84cbae8248 100644 +# include #endif - #define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str)) -@@ -98,6 +102,94 @@ __attribute__ ((section (".PyRuntime"))) + #define PUTS(fd, str) (void)_Py_write_noraise(fd, str, (int)strlen(str)) +@@ -106,6 +110,94 @@ __attribute__ ((section (".PyRuntime"))) = _PyRuntimeState_INIT(_PyRuntime); _Py_COMP_DIAG_POP @@ -142,7 +142,7 @@ index 2c36527a87..84cbae8248 100644 static int runtime_initialized = 0; PyStatus -@@ -114,6 +206,10 @@ _PyRuntime_Initialize(void) +@@ -122,6 +214,10 @@ _PyRuntime_Initialize(void) } runtime_initialized = 1; diff --git a/recipe/patches/0008-Doing-d1trimfile.patch b/recipe/patches/0008-Doing-d1trimfile.patch index 8b012444c..040d4fd35 100644 --- a/recipe/patches/0008-Doing-d1trimfile.patch +++ b/recipe/patches/0008-Doing-d1trimfile.patch @@ -1,55 +1,54 @@ -From 679e1d26a2d1883952ef98d191cc08242adcab12 Mon Sep 17 00:00:00 2001 +From dd7a7668da8a8a9e9ccc4d8062fb74be19763400 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 31 Dec 2019 21:47:47 +0100 Subject: [PATCH 08/22] Doing d1trimfile --- PCbuild/_asyncio.vcxproj | 20 ++++++++++++++++++++ - PCbuild/_bz2.vcxproj | 4 ++++ + PCbuild/_bz2.vcxproj | 6 +++++- PCbuild/_ctypes.vcxproj | 4 ++++ - PCbuild/_ctypes_test.vcxproj | 20 ++++++++++++++++++++ + PCbuild/_ctypes_test.vcxproj | 22 +++++++++++++++++++++- PCbuild/_decimal.vcxproj | 4 ++++ PCbuild/_elementtree.vcxproj | 6 +++++- PCbuild/_freeze_module.vcxproj | 4 ++++ PCbuild/_hashlib.vcxproj | 12 ++++++++++++ PCbuild/_lzma.vcxproj | 4 ++++ - PCbuild/_msi.vcxproj | 12 ++++++++++++ - PCbuild/_multiprocessing.vcxproj | 12 ++++++++++++ - PCbuild/_overlapped.vcxproj | 12 ++++++++++++ + PCbuild/_multiprocessing.vcxproj | 14 +++++++++++++- + PCbuild/_overlapped.vcxproj | 14 +++++++++++++- PCbuild/_queue.vcxproj | 20 ++++++++++++++++++++ - PCbuild/_socket.vcxproj | 12 ++++++++++++ + PCbuild/_socket.vcxproj | 14 +++++++++++++- PCbuild/_sqlite3.vcxproj | 4 ++++ PCbuild/_ssl.vcxproj | 12 ++++++++++++ - PCbuild/_testbuffer.vcxproj | 20 ++++++++++++++++++++ + PCbuild/_testbuffer.vcxproj | 22 +++++++++++++++++++++- PCbuild/_testcapi.vcxproj | 20 ++++++++++++++++++++ - PCbuild/_testconsole.vcxproj | 4 ++++ - PCbuild/_testembed.vcxproj | 4 ++++ + PCbuild/_testconsole.vcxproj | 6 +++++- + PCbuild/_testembed.vcxproj | 6 +++++- PCbuild/_testimportmultiple.vcxproj | 20 ++++++++++++++++++++ PCbuild/_testinternalcapi.vcxproj | 20 ++++++++++++++++++++ - PCbuild/_testmultiphase.vcxproj | 4 ++++ - PCbuild/_tkinter.vcxproj | 4 ++++ + PCbuild/_testmultiphase.vcxproj | 6 +++++- + PCbuild/_tkinter.vcxproj | 6 +++++- PCbuild/liblzma.vcxproj | 4 ++++ PCbuild/pyexpat.vcxproj | 4 ++++ PCbuild/pylauncher.vcxproj | 4 ++++ - PCbuild/pyshellext.vcxproj | 4 ++++ + PCbuild/pyshellext.vcxproj | 6 +++++- PCbuild/python.vcxproj | 4 ++++ - PCbuild/python3dll.vcxproj | 4 ++++ + PCbuild/python3dll.vcxproj | 6 +++++- PCbuild/python_uwp.vcxproj | 2 +- PCbuild/pythoncore.vcxproj | 2 +- PCbuild/pythonw.vcxproj | 12 ++++++++++++ PCbuild/pythonw_uwp.vcxproj | 2 +- - PCbuild/pywlauncher.vcxproj | 4 ++++ - PCbuild/select.vcxproj | 12 ++++++++++++ - PCbuild/unicodedata.vcxproj | 20 ++++++++++++++++++++ + PCbuild/pywlauncher.vcxproj | 6 +++++- + PCbuild/select.vcxproj | 14 +++++++++++++- + PCbuild/unicodedata.vcxproj | 22 +++++++++++++++++++++- PCbuild/venvlauncher.vcxproj | 4 ++++ PCbuild/venvwlauncher.vcxproj | 4 ++++ - PCbuild/winsound.vcxproj | 12 ++++++++++++ + PCbuild/winsound.vcxproj | 14 +++++++++++++- PCbuild/xxlimited.vcxproj | 6 ++++++ PCbuild/xxlimited_35.vcxproj | 6 ++++++ - 42 files changed, 364 insertions(+), 4 deletions(-) + 41 files changed, 368 insertions(+), 20 deletions(-) diff --git a/PCbuild/_asyncio.vcxproj b/PCbuild/_asyncio.vcxproj -index ed1e1bc0a4..47d322be5f 100644 +index 76b0ffd660..1402860e19 100644 --- a/PCbuild/_asyncio.vcxproj +++ b/PCbuild/_asyncio.vcxproj @@ -91,6 +91,26 @@ @@ -80,7 +79,7 @@ index ed1e1bc0a4..47d322be5f 100644 diff --git a/PCbuild/_bz2.vcxproj b/PCbuild/_bz2.vcxproj -index 3fe95fbf83..0402f7a9aa 100644 +index e0dc6ec187..30ad0dc486 100644 --- a/PCbuild/_bz2.vcxproj +++ b/PCbuild/_bz2.vcxproj @@ -97,6 +97,10 @@ @@ -94,8 +93,15 @@ index 3fe95fbf83..0402f7a9aa 100644 +@@ -125,4 +129,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_ctypes.vcxproj b/PCbuild/_ctypes.vcxproj -index 253da31e9c..9e85bd9723 100644 +index 63d5fa49cd..6329f3d960 100644 --- a/PCbuild/_ctypes.vcxproj +++ b/PCbuild/_ctypes.vcxproj @@ -95,6 +95,10 @@ @@ -110,7 +116,7 @@ index 253da31e9c..9e85bd9723 100644 /EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE %(AdditionalOptions) diff --git a/PCbuild/_ctypes_test.vcxproj b/PCbuild/_ctypes_test.vcxproj -index 8a01e743a4..1ad658d5f9 100644 +index 97354739c0..b200d59290 100644 --- a/PCbuild/_ctypes_test.vcxproj +++ b/PCbuild/_ctypes_test.vcxproj @@ -92,6 +92,26 @@ @@ -140,14 +146,21 @@ index 8a01e743a4..1ad658d5f9 100644 +@@ -109,4 +129,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj -index 0916f1a2d3..17a4cbfcd7 100644 +index ee7421484b..e9d60b4db1 100644 --- a/PCbuild/_decimal.vcxproj +++ b/PCbuild/_decimal.vcxproj @@ -99,6 +99,10 @@ CONFIG_64;ANSI;%(PreprocessorDefinitions) CONFIG_64;MASM;%(PreprocessorDefinitions) - ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories) + ..\Modules\_decimal;..\Modules\_decimal\windows;$(mpdecimalDir)\libmpdec;%(AdditionalIncludeDirectories) + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% @@ -156,7 +169,7 @@ index 0916f1a2d3..17a4cbfcd7 100644 diff --git a/PCbuild/_elementtree.vcxproj b/PCbuild/_elementtree.vcxproj -index 8da5244bac..20cc09d63f 100644 +index 8c9c0e42f7..94da21f642 100644 --- a/PCbuild/_elementtree.vcxproj +++ b/PCbuild/_elementtree.vcxproj @@ -94,7 +94,11 @@ @@ -173,11 +186,11 @@ index 8da5244bac..20cc09d63f 100644 diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj -index 3df0a07204..26982e0ceb 100644 +index e5e18de60e..f9757290b2 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj -@@ -91,6 +91,10 @@ - Py_NO_ENABLE_SHARED;Py_BUILD_CORE;_CONSOLE;%(PreprocessorDefinitions) +@@ -92,6 +92,10 @@ + $(IntDir);%(AdditionalIncludeDirectories) Disabled false + /d1trimfile:%SRC_DIR% @@ -188,7 +201,7 @@ index 3df0a07204..26982e0ceb 100644 Console diff --git a/PCbuild/_hashlib.vcxproj b/PCbuild/_hashlib.vcxproj -index 6dad8183c5..6d3d37fdf9 100644 +index 2cd205224b..1ff3a9cdec 100644 --- a/PCbuild/_hashlib.vcxproj +++ b/PCbuild/_hashlib.vcxproj @@ -96,6 +96,18 @@ @@ -211,7 +224,7 @@ index 6dad8183c5..6d3d37fdf9 100644 diff --git a/PCbuild/_lzma.vcxproj b/PCbuild/_lzma.vcxproj -index fe076a6fc5..0565132363 100644 +index 40107d4b76..321f41d8d2 100644 --- a/PCbuild/_lzma.vcxproj +++ b/PCbuild/_lzma.vcxproj @@ -95,6 +95,10 @@ @@ -225,31 +238,8 @@ index fe076a6fc5..0565132363 100644 $(OutDir)liblzma$(PyDebugExt).lib;%(AdditionalDependencies) -diff --git a/PCbuild/_msi.vcxproj b/PCbuild/_msi.vcxproj -index 720eb2931b..247ab0e915 100644 ---- a/PCbuild/_msi.vcxproj -+++ b/PCbuild/_msi.vcxproj -@@ -96,6 +96,18 @@ - - cabinet.lib;msi.lib;rpcrt4.lib;%(AdditionalDependencies) - -+ -+ /d1trimfile:%SRC_DIR% -+ -+ -+ /d1trimfile:%SRC_DIR% -+ -+ -+ /d1trimfile:%SRC_DIR% -+ -+ -+ /d1trimfile:%SRC_DIR% -+ - - - diff --git a/PCbuild/_multiprocessing.vcxproj b/PCbuild/_multiprocessing.vcxproj -index 77b6bfc8e1..3c2b651549 100644 +index a65397f532..451ca37599 100644 --- a/PCbuild/_multiprocessing.vcxproj +++ b/PCbuild/_multiprocessing.vcxproj @@ -95,6 +95,18 @@ @@ -271,8 +261,15 @@ index 77b6bfc8e1..3c2b651549 100644 +@@ -115,4 +127,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj -index 9e60d3b5db..95b57290f8 100644 +index 224bf05d53..f7efa63f56 100644 --- a/PCbuild/_overlapped.vcxproj +++ b/PCbuild/_overlapped.vcxproj @@ -95,6 +95,18 @@ @@ -294,8 +291,15 @@ index 9e60d3b5db..95b57290f8 100644 +@@ -111,4 +123,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_queue.vcxproj b/PCbuild/_queue.vcxproj -index 8065b23585..e46ab5a83b 100644 +index 80a1c3c6a4..8d4555299a 100644 --- a/PCbuild/_queue.vcxproj +++ b/PCbuild/_queue.vcxproj @@ -91,6 +91,26 @@ @@ -326,7 +330,7 @@ index 8065b23585..e46ab5a83b 100644 diff --git a/PCbuild/_socket.vcxproj b/PCbuild/_socket.vcxproj -index 78fa4d6729..be19cf1dca 100644 +index 41af089592..45ecbcc464 100644 --- a/PCbuild/_socket.vcxproj +++ b/PCbuild/_socket.vcxproj @@ -95,6 +95,18 @@ @@ -348,8 +352,15 @@ index 78fa4d6729..be19cf1dca 100644 +@@ -114,4 +126,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj -index 4735477f00..c7c377e217 100644 +index f482734ba1..70943daa02 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -95,6 +95,10 @@ @@ -364,7 +375,7 @@ index 4735477f00..c7c377e217 100644 $(condaDir)\lib\sqlite3.lib;%(AdditionalDependencies) diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj -index e2fac911e1..5c1ae2fce2 100644 +index ce21f992ff..34561515c1 100644 --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj @@ -96,6 +96,18 @@ @@ -387,7 +398,7 @@ index e2fac911e1..5c1ae2fce2 100644 diff --git a/PCbuild/_testbuffer.vcxproj b/PCbuild/_testbuffer.vcxproj -index 917d7ae50f..8c7e141eea 100644 +index 4e721e8ce0..3fec7516ed 100644 --- a/PCbuild/_testbuffer.vcxproj +++ b/PCbuild/_testbuffer.vcxproj @@ -92,6 +92,26 @@ @@ -417,8 +428,15 @@ index 917d7ae50f..8c7e141eea 100644 +@@ -106,4 +126,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_testcapi.vcxproj b/PCbuild/_testcapi.vcxproj -index 257562c75d..41bd3cc56c 100644 +index 44dbf23481..ec791cfe60 100644 --- a/PCbuild/_testcapi.vcxproj +++ b/PCbuild/_testcapi.vcxproj @@ -92,6 +92,26 @@ @@ -449,7 +467,7 @@ index 257562c75d..41bd3cc56c 100644 diff --git a/PCbuild/_testconsole.vcxproj b/PCbuild/_testconsole.vcxproj -index 5d7e14eff1..695dcb3b91 100644 +index 69d312b17a..bee3326ef8 100644 --- a/PCbuild/_testconsole.vcxproj +++ b/PCbuild/_testconsole.vcxproj @@ -92,6 +92,10 @@ @@ -463,8 +481,15 @@ index 5d7e14eff1..695dcb3b91 100644 Console +@@ -112,4 +116,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_testembed.vcxproj b/PCbuild/_testembed.vcxproj -index a7ea8787e0..eab72171e3 100644 +index a7ea8787e0..e8edb3dd75 100644 --- a/PCbuild/_testembed.vcxproj +++ b/PCbuild/_testembed.vcxproj @@ -89,6 +89,10 @@ @@ -478,8 +503,15 @@ index a7ea8787e0..eab72171e3 100644 Console +@@ -109,4 +113,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_testimportmultiple.vcxproj b/PCbuild/_testimportmultiple.vcxproj -index 6d80d5779f..951bf40e7c 100644 +index c35ac83c1c..c9d7f5d22b 100644 --- a/PCbuild/_testimportmultiple.vcxproj +++ b/PCbuild/_testimportmultiple.vcxproj @@ -92,6 +92,26 @@ @@ -510,7 +542,7 @@ index 6d80d5779f..951bf40e7c 100644 diff --git a/PCbuild/_testinternalcapi.vcxproj b/PCbuild/_testinternalcapi.vcxproj -index 6c5b12cd40..d25c774913 100644 +index 87db569423..c91bc1a2b9 100644 --- a/PCbuild/_testinternalcapi.vcxproj +++ b/PCbuild/_testinternalcapi.vcxproj @@ -92,6 +92,26 @@ @@ -539,9 +571,9 @@ index 6c5b12cd40..d25c774913 100644 + - + diff --git a/PCbuild/_testmultiphase.vcxproj b/PCbuild/_testmultiphase.vcxproj -index 430eb528cc..7a268d227b 100644 +index e730fe308a..a6f13ef31d 100644 --- a/PCbuild/_testmultiphase.vcxproj +++ b/PCbuild/_testmultiphase.vcxproj @@ -92,6 +92,10 @@ @@ -555,8 +587,15 @@ index 430eb528cc..7a268d227b 100644 Console +@@ -112,4 +116,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/_tkinter.vcxproj b/PCbuild/_tkinter.vcxproj -index 30cedcbb43..0484a5c81f 100644 +index 117488a016..5ca877b5f2 100644 --- a/PCbuild/_tkinter.vcxproj +++ b/PCbuild/_tkinter.vcxproj @@ -96,6 +96,10 @@ @@ -570,6 +609,13 @@ index 30cedcbb43..0484a5c81f 100644 $(tcltkLib);%(AdditionalDependencies) +@@ -134,4 +138,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/liblzma.vcxproj b/PCbuild/liblzma.vcxproj index 4dd42ab98a..7c2dbc7e70 100644 --- a/PCbuild/liblzma.vcxproj @@ -586,7 +632,7 @@ index 4dd42ab98a..7c2dbc7e70 100644 diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index 001f8afd89..3be4ac06dd 100644 +index dc9161a8b2..3bcef600a3 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -92,6 +92,10 @@ @@ -616,7 +662,7 @@ index 35f2f7e505..02d7961c5d 100644 shell32.lib;pathcch.lib;%(AdditionalDependencies) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj -index ea432d6bc9..13bc692103 100644 +index ea432d6bc9..50397324a2 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -92,6 +92,10 @@ @@ -630,11 +676,18 @@ index ea432d6bc9..13bc692103 100644 version.lib;shlwapi.lib;%(AdditionalDependencies) +@@ -114,4 +118,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj -index 8021002c16..9eb3f36940 100644 +index b11fb61796..dacf01e264 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj -@@ -91,6 +91,10 @@ +@@ -92,6 +92,10 @@ Py_BUILD_CORE;_CONSOLE;%(PreprocessorDefinitions) @@ -646,7 +699,7 @@ index 8021002c16..9eb3f36940 100644 Console diff --git a/PCbuild/python3dll.vcxproj b/PCbuild/python3dll.vcxproj -index ec22e6fc76..80dff0a3d9 100644 +index 235ea1cf9d..d861f6c6a4 100644 --- a/PCbuild/python3dll.vcxproj +++ b/PCbuild/python3dll.vcxproj @@ -93,6 +93,10 @@ @@ -660,6 +713,13 @@ index ec22e6fc76..80dff0a3d9 100644 true +@@ -107,4 +111,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/python_uwp.vcxproj b/PCbuild/python_uwp.vcxproj index fb27e9e712..f8dc841ef1 100644 --- a/PCbuild/python_uwp.vcxproj @@ -674,7 +734,7 @@ index fb27e9e712..f8dc841ef1 100644 windowsapp.lib;%(AdditionalDependencies) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj -index b265264dc1..9390c4d7d7 100644 +index 70212903c8..b85cca2cd5 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -99,7 +99,7 @@ @@ -687,12 +747,12 @@ index b265264dc1..9390c4d7d7 100644 $(zlibDir);%(AdditionalIncludeDirectories) _USRDLL;Py_BUILD_CORE;Py_BUILD_CORE_BUILTIN;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) diff --git a/PCbuild/pythonw.vcxproj b/PCbuild/pythonw.vcxproj -index 38a2547089..0b05df346e 100644 +index 58a9e852be..ce6e35477b 100644 --- a/PCbuild/pythonw.vcxproj +++ b/PCbuild/pythonw.vcxproj -@@ -93,6 +93,18 @@ - 8000000 - 8000000 +@@ -96,6 +96,18 @@ + + 3000000 + + /d1trimfile:%SRC_DIR% @@ -723,7 +783,7 @@ index e21e46a1b7..ff7dc6635d 100644 windowsapp.lib;%(AdditionalDependencies) diff --git a/PCbuild/pywlauncher.vcxproj b/PCbuild/pywlauncher.vcxproj -index e50b69aefe..3aa738bb7f 100644 +index e50b69aefe..d64a06b5e6 100644 --- a/PCbuild/pywlauncher.vcxproj +++ b/PCbuild/pywlauncher.vcxproj @@ -93,6 +93,10 @@ @@ -737,8 +797,15 @@ index e50b69aefe..3aa738bb7f 100644 shell32.lib;pathcch.lib;%(AdditionalDependencies) +@@ -111,4 +115,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/select.vcxproj b/PCbuild/select.vcxproj -index 750a713949..1da66eaddc 100644 +index d7448fd4d7..9fab5e8a63 100644 --- a/PCbuild/select.vcxproj +++ b/PCbuild/select.vcxproj @@ -94,6 +94,18 @@ @@ -760,8 +827,15 @@ index 750a713949..1da66eaddc 100644 +@@ -110,4 +122,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/unicodedata.vcxproj b/PCbuild/unicodedata.vcxproj -index addef75335..1a13f363e2 100644 +index 781f938e2a..3870c85adf 100644 --- a/PCbuild/unicodedata.vcxproj +++ b/PCbuild/unicodedata.vcxproj @@ -91,6 +91,26 @@ @@ -791,13 +865,20 @@ index addef75335..1a13f363e2 100644 +@@ -110,4 +130,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/venvlauncher.vcxproj b/PCbuild/venvlauncher.vcxproj -index 123e84ec4e..6272f9f69d 100644 +index 1193e03224..6855845d13 100644 --- a/PCbuild/venvlauncher.vcxproj +++ b/PCbuild/venvlauncher.vcxproj -@@ -93,6 +93,10 @@ +@@ -94,6 +94,10 @@ - _CONSOLE;VENV_REDIRECT;%(PreprocessorDefinitions) + EXENAME=L"$(PyExeName)$(PyDebugExt).exe";_CONSOLE;%(PreprocessorDefinitions) MultiThreaded + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% @@ -807,12 +888,12 @@ index 123e84ec4e..6272f9f69d 100644 PY_ICON;%(PreprocessorDefinitions) diff --git a/PCbuild/venvwlauncher.vcxproj b/PCbuild/venvwlauncher.vcxproj -index b8504d5d08..60d6308713 100644 +index 1b61718201..4eecc214aa 100644 --- a/PCbuild/venvwlauncher.vcxproj +++ b/PCbuild/venvwlauncher.vcxproj -@@ -93,6 +93,10 @@ +@@ -94,6 +94,10 @@ - _WINDOWS;VENV_REDIRECT;%(PreprocessorDefinitions) + EXENAME=L"$(PyExeName)$(PyDebugExt).exe";_WINDOWS;%(PreprocessorDefinitions) MultiThreaded + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% @@ -822,7 +903,7 @@ index b8504d5d08..60d6308713 100644 PYW_ICON;%(PreprocessorDefinitions) diff --git a/PCbuild/winsound.vcxproj b/PCbuild/winsound.vcxproj -index 32cedc9b44..c9abee1d69 100644 +index c26029b15a..1e543b31c4 100644 --- a/PCbuild/winsound.vcxproj +++ b/PCbuild/winsound.vcxproj @@ -96,6 +96,18 @@ @@ -844,8 +925,15 @@ index 32cedc9b44..c9abee1d69 100644 +@@ -112,4 +124,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/PCbuild/xxlimited.vcxproj b/PCbuild/xxlimited.vcxproj -index 1c776fb0da..36dec23c20 100644 +index 093e6920c0..19dd43c19c 100644 --- a/PCbuild/xxlimited.vcxproj +++ b/PCbuild/xxlimited.vcxproj @@ -93,6 +93,12 @@ @@ -862,7 +950,7 @@ index 1c776fb0da..36dec23c20 100644 wsock32.lib;%(AdditionalDependencies) diff --git a/PCbuild/xxlimited_35.vcxproj b/PCbuild/xxlimited_35.vcxproj -index dd830b3b6a..fef2c5b9f4 100644 +index 3f4d4463f2..2572449ba0 100644 --- a/PCbuild/xxlimited_35.vcxproj +++ b/PCbuild/xxlimited_35.vcxproj @@ -93,6 +93,12 @@ diff --git a/recipe/patches/0009-cross-compile-darwin.patch b/recipe/patches/0009-cross-compile-darwin.patch index 2ef8f8c09..5f13e8cb6 100644 --- a/recipe/patches/0009-cross-compile-darwin.patch +++ b/recipe/patches/0009-cross-compile-darwin.patch @@ -1,4 +1,4 @@ -From fae08eb999d62039e0dbbeb65761f0e4c507c471 Mon Sep 17 00:00:00 2001 +From a8e5a682c72ddd09f434e1cf6cdaa853c4e07f93 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 2 Oct 2020 00:03:12 +0200 Subject: [PATCH 09/22] cross compile darwin @@ -11,7 +11,7 @@ By Isuru Fernando. 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Lib/platform.py b/Lib/platform.py -index c5b6048036..7470545466 100755 +index 5958382276..44264f0c81 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -459,7 +459,12 @@ def win32_ver(release='', version='', csd='', ptype=''): @@ -29,10 +29,10 @@ index c5b6048036..7470545466 100755 try: import plistlib diff --git a/configure b/configure -index 6dc8a66e48..552597c021 100755 +index beffc1fd76..c1a6fc4382 100755 --- a/configure +++ b/configure -@@ -4267,6 +4267,9 @@ then +@@ -4048,6 +4048,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -42,21 +42,21 @@ index 6dc8a66e48..552597c021 100755 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -4332,6 +4335,9 @@ if test "$cross_compiling" = yes; then - _host_cpu=$host_cpu +@@ -4496,6 +4499,9 @@ if test "$cross_compiling" = yes; then + _host_ident=$host_cpu esac ;; + *-*-darwin*) -+ _host_cpu=$host_cpu ++ _host_ident=$host_cpu + ;; *-*-cygwin*) - _host_cpu= + _host_ident= ;; diff --git a/configure.ac b/configure.ac -index 8a32cb58f4..36b565af1b 100644 +index 5842bd24c4..e99df82739 100644 --- a/configure.ac +++ b/configure.ac -@@ -547,6 +547,9 @@ then +@@ -324,6 +324,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -66,13 +66,13 @@ index 8a32cb58f4..36b565af1b 100644 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -610,6 +613,9 @@ if test "$cross_compiling" = yes; then - _host_cpu=$host_cpu +@@ -748,6 +751,9 @@ if test "$cross_compiling" = yes; then + _host_ident=$host_cpu esac ;; + *-*-darwin*) -+ _host_cpu=$host_cpu ++ _host_ident=$host_cpu + ;; *-*-cygwin*) - _host_cpu= + _host_ident= ;; diff --git a/recipe/patches/0010-Fix-TZPATH-on-windows.patch b/recipe/patches/0010-Fix-TZPATH-on-windows.patch index 1020b8573..0b0f73151 100644 --- a/recipe/patches/0010-Fix-TZPATH-on-windows.patch +++ b/recipe/patches/0010-Fix-TZPATH-on-windows.patch @@ -1,17 +1,17 @@ -From eaf0b19149ec28a231e0c73e36b2a6fdc29c250e Mon Sep 17 00:00:00 2001 +From ae26b5e3744016d2f3c7fad32500765d250ed364 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 7 Oct 2020 10:08:30 -0500 Subject: [PATCH 10/22] Fix TZPATH on windows --- - Lib/sysconfig.py | 1 + + Lib/sysconfig/__init__.py | 1 + 1 file changed, 1 insertion(+) -diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index 122d441bd1..8e1d823a4c 100644 ---- a/Lib/sysconfig.py -+++ b/Lib/sysconfig.py -@@ -666,6 +666,7 @@ def _init_config_vars(): +diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py +index 80aef34471..f31706d7a6 100644 +--- a/Lib/sysconfig/__init__.py ++++ b/Lib/sysconfig/__init__.py +@@ -479,6 +479,7 @@ def _init_config_vars(): if os.name == 'nt': _init_non_posix(_CONFIG_VARS) _CONFIG_VARS['VPATH'] = sys._vpath diff --git a/recipe/patches/0011-Make-dyld-search-work-with-SYSTEM_VERSION_COMPAT-1.patch b/recipe/patches/0011-Make-dyld-search-work-with-SYSTEM_VERSION_COMPAT-1.patch index 8fafc58d7..537c07ca3 100644 --- a/recipe/patches/0011-Make-dyld-search-work-with-SYSTEM_VERSION_COMPAT-1.patch +++ b/recipe/patches/0011-Make-dyld-search-work-with-SYSTEM_VERSION_COMPAT-1.patch @@ -1,4 +1,4 @@ -From dfa56fb035e286513a96ab1ee60a438a61295aac Mon Sep 17 00:00:00 2001 +From d0ce3c5e7c42270aa5c381e4cf629ddab5205dbc Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 25 Jan 2021 03:28:08 -0600 Subject: [PATCH 11/22] Make dyld search work with SYSTEM_VERSION_COMPAT=1 @@ -15,10 +15,10 @@ as that part is compiled with `MACOSX_DEPLOYMENT_TARGET=11.0`) 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c -index d2fe525dd4..62eaf1d889 100644 +index cbed2f32ca..f717b1f4d1 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c -@@ -1460,7 +1460,7 @@ copy_com_pointer(PyObject *self, PyObject *args) +@@ -1489,7 +1489,7 @@ copy_com_pointer(PyObject *self, PyObject *args) #ifdef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH # ifdef HAVE_BUILTIN_AVAILABLE # define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \ diff --git a/recipe/patches/0012-Unvendor-bzip2.patch b/recipe/patches/0012-Unvendor-bzip2.patch index 23f0716de..3647dd535 100644 --- a/recipe/patches/0012-Unvendor-bzip2.patch +++ b/recipe/patches/0012-Unvendor-bzip2.patch @@ -1,15 +1,15 @@ -From 4cfee77c16d2985f27f61ed831027f18ad51a641 Mon Sep 17 00:00:00 2001 +From 2b63337924c78aac42780af33679349b0c1010c5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 02:56:27 -0700 Subject: [PATCH 12/22] Unvendor bzip2 --- PCbuild/_bz2.vcxproj | 15 +++++---------- - PCbuild/_bz2.vcxproj.filters | 26 +------------------------- - 2 files changed, 6 insertions(+), 35 deletions(-) + PCbuild/_bz2.vcxproj.filters | 28 ++-------------------------- + 2 files changed, 7 insertions(+), 36 deletions(-) diff --git a/PCbuild/_bz2.vcxproj b/PCbuild/_bz2.vcxproj -index 0402f7a9aa..569c7c5de9 100644 +index 30ad0dc486..1d46cc8198 100644 --- a/PCbuild/_bz2.vcxproj +++ b/PCbuild/_bz2.vcxproj @@ -94,7 +94,7 @@ @@ -47,7 +47,7 @@ index 0402f7a9aa..569c7c5de9 100644 diff --git a/PCbuild/_bz2.vcxproj.filters b/PCbuild/_bz2.vcxproj.filters -index 7c0b516253..c1f960608c 100644 +index 7c0b516253..ed9510978f 100644 --- a/PCbuild/_bz2.vcxproj.filters +++ b/PCbuild/_bz2.vcxproj.filters @@ -21,33 +21,9 @@ @@ -85,3 +85,10 @@ index 7c0b516253..c1f960608c 100644 Header Files\bzip2 +@@ -56,4 +32,4 @@ + Resource Files + + +- +\ No newline at end of file ++ diff --git a/recipe/patches/0013-Unvendor-libffi.patch b/recipe/patches/0013-Unvendor-libffi.patch index 3b921e6fa..9deb3b986 100644 --- a/recipe/patches/0013-Unvendor-libffi.patch +++ b/recipe/patches/0013-Unvendor-libffi.patch @@ -1,4 +1,4 @@ -From a346f51234b70e907c8bac4156e2f67f209ca380 Mon Sep 17 00:00:00 2001 +From 4bdb6acf12607d04d1eb19c187fd4002d330859e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 03:07:40 -0700 Subject: [PATCH 13/22] Unvendor libffi diff --git a/recipe/patches/0014-Unvendor-tcltk.patch b/recipe/patches/0014-Unvendor-tcltk.patch index ae34ec8a0..381f800c9 100644 --- a/recipe/patches/0014-Unvendor-tcltk.patch +++ b/recipe/patches/0014-Unvendor-tcltk.patch @@ -1,15 +1,15 @@ -From dcb96fc3a6604875421ad94654bad12424db494c Mon Sep 17 00:00:00 2001 +From d447498487ffbcb673fd46f2c399049164813b7e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 20 Aug 2021 10:23:51 -0700 Subject: [PATCH 14/22] Unvendor tcltk --- PCbuild/_tkinter.vcxproj | 6 ------ - PCbuild/tcltk.props | 12 +++++------- - 2 files changed, 5 insertions(+), 13 deletions(-) + PCbuild/tcltk.props | 11 +++++------ + 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/PCbuild/_tkinter.vcxproj b/PCbuild/_tkinter.vcxproj -index 0484a5c81f..d1393c914d 100644 +index 5ca877b5f2..4ee4ff6d61 100644 --- a/PCbuild/_tkinter.vcxproj +++ b/PCbuild/_tkinter.vcxproj @@ -126,12 +126,6 @@ @@ -26,16 +26,15 @@ index 0484a5c81f..d1393c914d 100644 diff --git a/PCbuild/tcltk.props b/PCbuild/tcltk.props -index 9d5189b3b8..a8f5b8811c 100644 +index 95b699b4ca..7aa8ef582c 100644 --- a/PCbuild/tcltk.props +++ b/PCbuild/tcltk.props -@@ -17,13 +17,11 @@ - $([System.Version]::Parse($(TixVersion)).Minor) - $([System.Version]::Parse($(TixVersion)).Build) - $([System.Version]::Parse($(TixVersion)).Revision) +@@ -12,12 +12,11 @@ + $([System.Version]::Parse($(TkVersion)).Minor) + $([System.Version]::Parse($(TkVersion)).Build) + $([System.Version]::Parse($(TkVersion)).Revision) - $(ExternalsDir)tcl-core-$(TclVersion)\ - $(ExternalsDir)tk-$(TkVersion)\ -- $(ExternalsDir)tix-$(TixVersion)\ - $(ExternalsDir)tcltk-$(TclVersion)\$(ArchName)\ - $(tcltkDir)\bin\tclsh$(TclMajorVersion)$(TclMinorVersion)t.exe - $(tcltkDir)\..\win32\bin\tclsh$(TclMajorVersion)$(TclMinorVersion)t.exe diff --git a/recipe/patches/0015-unvendor-xz.patch b/recipe/patches/0015-unvendor-xz.patch index bbb3882a8..03ca833bd 100644 --- a/recipe/patches/0015-unvendor-xz.patch +++ b/recipe/patches/0015-unvendor-xz.patch @@ -1,4 +1,4 @@ -From e2ef6df310bc7877332881ac140aab4d884a887e Mon Sep 17 00:00:00 2001 +From 06c84376da44deeb053c8c31b7aaf02a3bfc7883 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 25 Sep 2021 10:07:05 -0700 Subject: [PATCH 15/22] unvendor xz @@ -8,7 +8,7 @@ Subject: [PATCH 15/22] unvendor xz 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/PCbuild/_lzma.vcxproj b/PCbuild/_lzma.vcxproj -index 0565132363..e8b2704cee 100644 +index 321f41d8d2..bd7d6c64b1 100644 --- a/PCbuild/_lzma.vcxproj +++ b/PCbuild/_lzma.vcxproj @@ -93,15 +93,15 @@ diff --git a/recipe/patches/0016-unvendor-zlib.patch b/recipe/patches/0016-unvendor-zlib.patch index d96dc9790..c33e4b82a 100644 --- a/recipe/patches/0016-unvendor-zlib.patch +++ b/recipe/patches/0016-unvendor-zlib.patch @@ -1,4 +1,4 @@ -From 91fcbab935cefba1855808e5b275d2b81b79d53a Mon Sep 17 00:00:00 2001 +From b84d1d0dc0e2b74ed33953051a3140254be34a7d Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Sep 2021 15:21:55 -0700 Subject: [PATCH 16/22] unvendor zlib @@ -9,7 +9,7 @@ Subject: [PATCH 16/22] unvendor zlib 2 files changed, 4 insertions(+), 95 deletions(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj -index 9390c4d7d7..b36c48abb3 100644 +index b85cca2cd5..8e09d243c5 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -82,7 +82,7 @@ @@ -21,7 +21,7 @@ index 9390c4d7d7..b36c48abb3 100644 false -@@ -101,12 +101,13 @@ +@@ -101,14 +101,15 @@ /d1trimfile:%SRC_DIR% $(PySourcePath)Modules\_hacl\include;$(PySourcePath)Modules\_hacl\internal;$(PySourcePath)Python;%(AdditionalIncludeDirectories) @@ -29,6 +29,8 @@ index 9390c4d7d7..b36c48abb3 100644 + $(condaDir)\include;%(AdditionalIncludeDirectories) _USRDLL;Py_BUILD_CORE;Py_BUILD_CORE_BUILTIN;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) _Py_HAVE_ZLIB;%(PreprocessorDefinitions) + _Py_JIT;%(PreprocessorDefinitions) + _Py_TIER2=$(UseTIER2);%(PreprocessorDefinitions) - version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) @@ -37,7 +39,7 @@ index 9390c4d7d7..b36c48abb3 100644 -@@ -353,19 +354,6 @@ +@@ -397,19 +398,6 @@ @@ -57,7 +59,7 @@ index 9390c4d7d7..b36c48abb3 100644 -@@ -577,19 +565,6 @@ +@@ -643,19 +631,6 @@ @@ -78,12 +80,12 @@ index 9390c4d7d7..b36c48abb3 100644 diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters -index 67a32f653d..9c064964b5 100644 +index 3eed5a9465..0892b669d6 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters -@@ -717,39 +717,6 @@ - - Include\internal +@@ -852,39 +852,6 @@ + + Include\internal\mimalloc - - Modules\zlib @@ -121,7 +123,7 @@ index 67a32f653d..9c064964b5 100644 Include\internal -@@ -1307,39 +1274,6 @@ +@@ -1514,39 +1481,6 @@ Modules diff --git a/recipe/patches/0017-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch b/recipe/patches/0017-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch index 266edb532..a9297f222 100644 --- a/recipe/patches/0017-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch +++ b/recipe/patches/0017-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch @@ -1,4 +1,4 @@ -From 7c7ce51dae3af7b8325e1ccdf8bcd7225b2b5065 Mon Sep 17 00:00:00 2001 +From a0010ee411fae6c4ac73f4cbd1ca497a912f2844 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:45:28 +0100 Subject: [PATCH 17/22] Do not pass -g to GCC when not Py_DEBUG @@ -10,10 +10,10 @@ This bloats our exe and our modules a lot. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure b/configure -index 552597c021..cff40b9959 100755 +index c1a6fc4382..1edd09e0cc 100755 --- a/configure +++ b/configure -@@ -5465,9 +5465,9 @@ if test $ac_test_CFLAGS; then +@@ -5667,9 +5667,9 @@ if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -25,7 +25,7 @@ index 552597c021..cff40b9959 100755 fi else if test "$GCC" = yes; then -@@ -9335,7 +9335,7 @@ then +@@ -9501,7 +9501,7 @@ then if test "$Py_DEBUG" = 'true' ; then OPT="-g $PYDEBUG_CFLAGS -Wall" else @@ -35,10 +35,10 @@ index 552597c021..cff40b9959 100755 ;; *) diff --git a/configure.ac b/configure.ac -index 36b565af1b..538122985c 100644 +index e99df82739..2df5beb5c0 100644 --- a/configure.ac +++ b/configure.ac -@@ -2255,7 +2255,7 @@ then +@@ -2361,7 +2361,7 @@ then if test "$Py_DEBUG" = 'true' ; then OPT="-g $PYDEBUG_CFLAGS -Wall" else diff --git a/recipe/patches/0018-Unvendor-expat.patch b/recipe/patches/0018-Unvendor-expat.patch index 60dde921a..c4d000a5b 100644 --- a/recipe/patches/0018-Unvendor-expat.patch +++ b/recipe/patches/0018-Unvendor-expat.patch @@ -1,4 +1,4 @@ -From 578d46ad1930ab405cd908d8ec68368db36f0801 Mon Sep 17 00:00:00 2001 +From 8979b94cda12107faa89698d05d30c6519ac6bf4 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Mar 2023 23:07:10 -0500 Subject: [PATCH 18/22] Unvendor expat @@ -11,7 +11,7 @@ Subject: [PATCH 18/22] Unvendor expat 4 files changed, 10 insertions(+), 104 deletions(-) diff --git a/PCbuild/_elementtree.vcxproj b/PCbuild/_elementtree.vcxproj -index 20cc09d63f..de476a6add 100644 +index 94da21f642..f47bcd8e4e 100644 --- a/PCbuild/_elementtree.vcxproj +++ b/PCbuild/_elementtree.vcxproj @@ -93,36 +93,19 @@ @@ -133,7 +133,7 @@ index bc14e31f32..7cc8e9a3b9 100644 \ No newline at end of file + diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index 3be4ac06dd..e253b39c86 100644 +index 3bcef600a3..ec5d4b64b3 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -90,23 +90,19 @@ diff --git a/recipe/patches/0019-Remove-unused-readelf.patch b/recipe/patches/0019-Remove-unused-readelf.patch index 19a4e8827..4407632ad 100644 --- a/recipe/patches/0019-Remove-unused-readelf.patch +++ b/recipe/patches/0019-Remove-unused-readelf.patch @@ -1,4 +1,4 @@ -From fd9f5630ec6e354261274f5cb79501024197f3a1 Mon Sep 17 00:00:00 2001 +From 938bbf50591026c72ee403cbfb20c4cd8bbb836d Mon Sep 17 00:00:00 2001 From: Charles Bousseau Date: Thu, 25 May 2023 17:56:53 -0400 Subject: [PATCH 19/22] Remove unused readelf @@ -15,7 +15,7 @@ Drop unused build dependency on ``readelf``. 1 file changed, 1 deletion(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 4a957fb004..689ece9d24 100644 +index 6b40228bca..79102c6585 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -38,7 +38,6 @@ CC= @CC@ @@ -24,5 +24,5 @@ index 4a957fb004..689ece9d24 100644 AR= @AR@ -READELF= @READELF@ SOABI= @SOABI@ - LDVERSION= @LDVERSION@ - LIBPYTHON= @LIBPYTHON@ + ABIFLAGS= @ABIFLAGS@ + ABI_THREAD= @ABI_THREAD@ diff --git a/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch b/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch index ac2822641..7d33a838c 100644 --- a/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch +++ b/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch @@ -1,19 +1,19 @@ -From 46ed1d097913ea6752125324ecf254a51e4927b4 Mon Sep 17 00:00:00 2001 +From 38466ceef3e3d900c680d338489cc39ad0f7888d Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 1 Sep 2023 23:32:14 +0200 Subject: [PATCH 20/22] Don't checksharedmods if cross-compiling --- - Makefile.pre.in | 2 +- - if_runnable.sh | 5 +++++ - 2 files changed, 6 insertions(+), 1 deletion(-) + Makefile.pre.in | 2 +- + if_runnable.sh | 10 ++++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 if_runnable.sh diff --git a/Makefile.pre.in b/Makefile.pre.in -index 689ece9d24..913cbd8e23 100644 +index 79102c6585..ebacdb9d0f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -994,7 +994,7 @@ sharedmods: $(SHAREDMODS) pybuilddir.txt +@@ -1367,7 +1367,7 @@ sharedmods: $(SHAREDMODS) pybuilddir.txt # dependency on BUILDPYTHON ensures that the target is run last .PHONY: checksharedmods checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) @@ -24,7 +24,7 @@ index 689ece9d24..913cbd8e23 100644 rundsymutil: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) diff --git a/if_runnable.sh b/if_runnable.sh new file mode 100755 -index 0000000000..14f84a8597 +index 0000000000..dcfde5b751 --- /dev/null +++ b/if_runnable.sh @@ -0,0 +1,10 @@ diff --git a/recipe/patches/0021-Override-configure-LIBFFI.patch b/recipe/patches/0021-Override-configure-LIBFFI.patch index 5934acc09..ba0d64d3e 100644 --- a/recipe/patches/0021-Override-configure-LIBFFI.patch +++ b/recipe/patches/0021-Override-configure-LIBFFI.patch @@ -1,4 +1,4 @@ -From 9278cac7fd97574e551bf989795d61381131ac97 Mon Sep 17 00:00:00 2001 +From aa476f87309f709b47c221bbaa6efe3b6009cff1 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 5 Sep 2023 21:51:31 +0200 Subject: [PATCH 21/22] Override configure LIBFFI @@ -8,10 +8,10 @@ Subject: [PATCH 21/22] Override configure LIBFFI 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index cff40b9959..50cbcc1ac7 100755 +index 1edd09e0cc..b837875dbf 100755 --- a/configure +++ b/configure -@@ -14095,7 +14095,7 @@ if test "x$ac_cv_lib_ffi_ffi_call" = xyes +@@ -14269,7 +14269,7 @@ if test "x$ac_cv_lib_ffi_ffi_call" = xyes then : have_libffi=yes diff --git a/recipe/patches/0022-Allow-linking-ncursesw-panelw-on-macOS-if-available.patch b/recipe/patches/0022-Allow-linking-ncursesw-panelw-on-macOS-if-available.patch deleted file mode 100644 index 8b087e7b7..000000000 --- a/recipe/patches/0022-Allow-linking-ncursesw-panelw-on-macOS-if-available.patch +++ /dev/null @@ -1,85 +0,0 @@ -From bbc64a8ca9d69dbfd220a3924a71f7ea12cd43da Mon Sep 17 00:00:00 2001 -From: Marcel Bargull -Date: Thu, 14 Dec 2023 22:16:33 +0100 -Subject: [PATCH 22/22] Allow linking ncursesw/panelw on macOS if available - -Signed-off-by: Marcel Bargull ---- - configure | 4 ---- - configure.ac | 6 ------ - 2 files changed, 10 deletions(-) - -diff --git a/configure b/configure -index 50cbcc1ac7..0108f553bf 100755 ---- a/configure -+++ b/configure -@@ -25714,7 +25714,6 @@ fi - if test "x$ac_cv_header_ncurses_h" = xyes - then : - -- if test "$ac_sys_system" != "Darwin"; then - - pkg_failed=no - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ncursesw" >&5 -@@ -25910,7 +25909,6 @@ printf "%s\n" "yes" >&6; } - have_curses=ncursesw - - fi -- fi - - if test "x$have_curses" = xno - then : -@@ -26146,7 +26144,6 @@ if test "x$ac_cv_header_panel_h" = xyes - then : - - -- if test "$ac_sys_system" != "Darwin"; then - if test "x$have_curses" = xncursesw - then : - -@@ -26341,7 +26338,6 @@ printf "%s\n" "yes" >&6; } - fi - - fi -- fi - - if test "x$have_curses" = xncurses - then : -diff --git a/configure.ac b/configure.ac -index 538122985c..284c0daddd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -6432,8 +6432,6 @@ AH_TEMPLATE([HAVE_NCURSESW], [Define to 1 if you have the `ncursesw' library.]) - AC_CHECK_HEADERS([curses.h ncurses.h]) - - AS_VAR_IF([ac_cv_header_ncurses_h], [yes], [ -- if test "$ac_sys_system" != "Darwin"; then -- dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. - PKG_CHECK_MODULES([CURSES], [ncursesw], [ - AC_DEFINE([HAVE_NCURSESW], [1]) - have_curses=ncursesw -@@ -6447,7 +6445,6 @@ AS_VAR_IF([ac_cv_header_ncurses_h], [yes], [ - ]) - ]) - ]) -- fi - - AS_VAR_IF([have_curses], [no], [ - PKG_CHECK_MODULES([CURSES], [ncurses], [ -@@ -6496,8 +6493,6 @@ AC_CHECK_HEADERS([panel.h]) - - AS_VAR_IF([ac_cv_header_panel_h], [yes], [ - -- if test "$ac_sys_system" != "Darwin"; then -- dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw. - AS_VAR_IF([have_curses], [ncursesw], [ - PKG_CHECK_MODULES([PANEL], [panelw], [ - have_panel=panelw -@@ -6511,7 +6506,6 @@ AS_VAR_IF([ac_cv_header_panel_h], [yes], [ - ]) - ]) - ]) -- fi - - AS_VAR_IF([have_curses], [ncurses], [ - PKG_CHECK_MODULES([PANEL], [panel], [ diff --git a/recipe/patches/0022-Unvendor-libmpdec.patch b/recipe/patches/0022-Unvendor-libmpdec.patch new file mode 100644 index 000000000..6df989619 --- /dev/null +++ b/recipe/patches/0022-Unvendor-libmpdec.patch @@ -0,0 +1,85 @@ +From f913216ab628d7519525bd047c6553aec72814cc Mon Sep 17 00:00:00 2001 +From: Isuru Fernando +Date: Fri, 16 Aug 2024 21:34:43 -0500 +Subject: [PATCH 22/22] Unvendor libmpdec + +--- + PCbuild/_decimal.vcxproj | 50 +++++----------------------------------- + 1 file changed, 6 insertions(+), 44 deletions(-) + +diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj +index e9d60b4db1..0f49d7923f 100644 +--- a/PCbuild/_decimal.vcxproj ++++ b/PCbuild/_decimal.vcxproj +@@ -93,65 +93,27 @@ + + + +- BUILD_LIBMPDEC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) ++ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + CONFIG_32;PPRO;MASM;%(PreprocessorDefinitions) + CONFIG_32;ANSI;%(PreprocessorDefinitions) + CONFIG_64;ANSI;%(PreprocessorDefinitions) + CONFIG_64;MASM;%(PreprocessorDefinitions) +- ..\Modules\_decimal;..\Modules\_decimal\windows;$(mpdecimalDir)\libmpdec;%(AdditionalIncludeDirectories) ++ ..\Modules\_decimal;$(condaDir)\include;%(AdditionalIncludeDirectories) + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% + ++ ++ $(condaDir)\lib;%(AdditionalLibraryDirectories) ++ mpdec.lib;%(AdditionalDependencies) ++ + + +- +- +- +- +- +- + +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- true +- true +- true +- ml64 /nologo /c /Zi /Fo "$(IntDir)vcdiv64.obj" "%(FullPath)" +- $(IntDir)vcdiv64.obj;%(Outputs) +- + + + diff --git a/recipe/run_test.py b/recipe/run_test.py index 6529b7e5a..7c2e60425 100644 --- a/recipe/run_test.py +++ b/recipe/run_test.py @@ -16,6 +16,8 @@ print('tuple.__itemsize__:', tuple.__itemsize__) if sys.platform == 'win32': assert 'MSC v.19' in sys.version +if hasattr(sys, "abiflags"): + print('sys.abiflags', sys.abiflags) print('sys.maxunicode:', sys.maxunicode) print('platform.architecture:', platform.architecture()) print('platform.python_version:', platform.python_version()) @@ -50,7 +52,6 @@ import _struct import _testcapi import array -import audioop import binascii import bz2 import cmath @@ -77,10 +78,8 @@ if not (ppc64le or armv7l): import _curses import _curses_panel - import crypt import fcntl import grp - import nis import readline import resource import syslog diff --git a/recipe/scripts/activate.bat b/recipe/scripts/activate.bat new file mode 100644 index 000000000..75c269be1 --- /dev/null +++ b/recipe/scripts/activate.bat @@ -0,0 +1,3 @@ +@echo off +set "PYTHON_JIT_CONDA_BACKUP=%PYTHON_JIT%" +set "PYTHON_JIT=1" diff --git a/recipe/scripts/activate.sh b/recipe/scripts/activate.sh new file mode 100644 index 000000000..1aa5a3216 --- /dev/null +++ b/recipe/scripts/activate.sh @@ -0,0 +1,4 @@ +if [ "${PYTHON_JIT+x}" ] ; then + export PYTHON_JIT_CONDA_BACKUP="${PYTHON_JIT}" +fi +export PYTHON_JIT=1 diff --git a/recipe/scripts/deactivate.bat b/recipe/scripts/deactivate.bat new file mode 100644 index 000000000..43da52e3b --- /dev/null +++ b/recipe/scripts/deactivate.bat @@ -0,0 +1,3 @@ +@echo off +set "PYTHON_JIT=%PYTHON_JIT_CONDA_BACKUP%" +set "PYTHON_JIT_CONDA_BACKUP=" diff --git a/recipe/scripts/deactivate.sh b/recipe/scripts/deactivate.sh new file mode 100644 index 000000000..5bb99b600 --- /dev/null +++ b/recipe/scripts/deactivate.sh @@ -0,0 +1,4 @@ +if [ "${PYTHON_JIT_CONDA_BACKUP+x}" ] ; then + export PYTHON_JIT=$PYTHON_JIT_CONDA_BACKUP + unset PYTHON_JIT_CONDA_BACKUP +fi diff --git a/recipe/sitecustomize.py b/recipe/sitecustomize.py new file mode 100644 index 000000000..ce5918175 --- /dev/null +++ b/recipe/sitecustomize.py @@ -0,0 +1,25 @@ +import site, sys, os + +dirs_to_add = [] +# Workaround for https://github.com/conda/conda/issues/14053 +# Older conda versions install noarch: python packages in wrong places. +# For example python3.1 because older conda assumed python minor version +# will have only one digit. noarhc pkgs for freethreading builds are supposed +# to be installed into /lib/python3.13t/site-packages, but conda +# installs them to /lib/python3.13/site-packages. +# The workaround is to add all these wrong paths to sys.path using +# site.addsitedir so that cpython and other tools like pip know about these +# locations to check when importing packages and uninstalling packages. +# When installing packages, pip will use the correct location +# /lib/python3.13t/site-packages. +if 't' in sys.abiflags: + dirs_to_add.append(os.path.join(sys.prefix, 'lib', f'python3.{sys.version_info[1]}', 'site-packages')) +# Workaround for https://github.com/conda/conda/issues/10969 +dirs_to_add.append(os.path.join(sys.prefix, 'lib', f'python3.1', 'site-packages')) +# A python version independent directory that ABI3 and noarch packages can use. +# This is unused at the moment, but keeping it here for experimentation. +dirs_to_add.append(os.path.join(sys.prefix, 'lib', f'python', 'site-packages')) + +for d in dirs_to_add: + if os.path.exists(d): + site.addsitedir(d) diff --git a/recipe/tests/prefix-replacement/a.c b/recipe/tests/prefix-replacement/a.c index dacc1d63e..93922c20d 100644 --- a/recipe/tests/prefix-replacement/a.c +++ b/recipe/tests/prefix-replacement/a.c @@ -9,7 +9,8 @@ main(int argc, char *argv[]) fprintf(stderr, "Fatal error: cannot decode argv[0]\n"); exit(1); } - Py_SetProgramName(program); /* optional but recommended */ + // Removed in Python 3.13 and needs to be replaced with https://docs.python.org/3.13/c-api/init_config.html#c.PyConfig.program_name + // Py_SetProgramName(program); /* optional but recommended */ Py_Initialize(); PyRun_SimpleString("from time import time,ctime\n" "print('Today is', ctime(time()))\n");
VariantStatus
linux_64_build_typedebugchannel_targetsconda-forge_python_debuglinux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - variant + variant
linux_64_build_typereleasechannel_targetsconda-forge_mainlinux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - variant + variant
linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debuglinux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - variant + variant
linux_aarch64_build_typereleasechannel_targetsconda-forge_mainlinux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes - variant + variant
linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debuglinux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - variant + variant
linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainlinux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - variant + variant
osx_64_build_typedebugchannel_targetsconda-forge_python_debuglinux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - variant + variant
osx_64_build_typereleasechannel_targetsconda-forge_mainlinux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes - variant + variant
osx_arm64_build_typedebugchannel_targetsconda-forge_python_debuglinux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - variant + variant
osx_arm64_build_typereleasechannel_targetsconda-forge_mainlinux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - variant + variant
win_64linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - variant + variant + +
linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + + variant + +
osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + + variant + +
osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + + variant + +
osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + + variant + +
osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + + variant + +
osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + + variant + +
osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + + variant + +
osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + + variant + +
osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + + variant + +
win_64_freethreadingno + + variant + +
win_64_freethreadingyes + + variant