diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index 378d045f1..000000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,88 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - 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-x86_64:alma9 - timeoutInMinutes: 360 - variables: {} - - steps: - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - .scripts/run_docker_build.sh - displayName: Run docker build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index af6c938c0..079a8ddc0 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,33 +5,89 @@ jobs: - job: osx pool: - vmImage: macOS-15 + vmImage: $(VMIMAGE) strategy: matrix: - osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: - CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno: + CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno UPLOAD_PACKAGES: 'True' - osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: - CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes: + CONFIG: osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes UPLOAD_PACKAGES: 'True' - osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: - CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno: + CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno UPLOAD_PACKAGES: 'True' - osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: - CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes: + CONFIG: osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes UPLOAD_PACKAGES: 'True' - osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno: - CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno: + CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno UPLOAD_PACKAGES: 'True' - osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes: - CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes: + CONFIG: osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes UPLOAD_PACKAGES: 'True' - osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno: - CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno: + CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno UPLOAD_PACKAGES: 'True' - osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes: - CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 + osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes: + CONFIG: osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes UPLOAD_PACKAGES: 'True' + VMIMAGE: macOS-15 + build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: ~/miniforge3 timeoutInMinutes: 360 variables: {} @@ -39,12 +95,14 @@ jobs: # TODO: Fast finish on azure pipelines? - script: | export CI=azure + export CONDA_BLD_PATH=$(build_workspace_dir) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export MINIFORGE_HOME=$(tools_install_dir) + export OSX_FORCE_SDK_DOWNLOAD="1" export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) export remote_url=$(Build.Repository.Uri) export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then export IS_PR_BUILD="True" else diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index d5d5b9980..9c4f923eb 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -11,31 +11,40 @@ jobs: win_64_freethreadingno: CONFIG: win_64_freethreadingno UPLOAD_PACKAGES: 'True' + build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: D:\Miniforge win_64_freethreadingyes: CONFIG: win_64_freethreadingyes UPLOAD_PACKAGES: 'True' + build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 + resize_partitions: false + store_build_artifacts: false + tools_install_dir: D:\Miniforge timeoutInMinutes: 360 variables: - CONDA_BLD_PATH: D:\\bld\\ - MINIFORGE_HOME: D:\Miniforge UPLOAD_TEMP: D:\\tmp steps: - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: - MINIFORGE_HOME: $(MINIFORGE_HOME) - CONDA_BLD_PATH: $(CONDA_BLD_PATH) - PYTHONUNBUFFERED: 1 - CONFIG: $(CONFIG) CI: azure + CONFIG: $(CONFIG) + CONDA_BLD_PATH: $(build_workspace_dir) + MINIFORGE_HOME: $(tools_install_dir) + PYTHONUNBUFFERED: 1 + UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) + UPLOAD_TEMP: $(UPLOAD_TEMP) flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) remote_url: $(Build.Repository.Uri) sha: $(Build.SourceVersion) - UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) - UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml similarity index 94% rename from .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml rename to .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml index 37593b055..e450ab9d3 100644 --- a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml similarity index 94% rename from .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml rename to .ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml index b1b3ad18a..31079909e 100644 --- a/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml similarity index 95% rename from .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml rename to .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml index df48c0233..c2a3977ac 100644 --- a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml similarity index 95% rename from .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml rename to .ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml index e610789ca..fd74202b0 100644 --- a/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml similarity index 94% rename from .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml rename to .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml index fd15ad542..4e85b9160 100644 --- a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml similarity index 94% rename from .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml rename to .ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml index 1b77335e7..27265adf8 100644 --- a/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml similarity index 95% rename from .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml rename to .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml index 9438623ec..e394c7044 100644 --- a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml similarity index 95% rename from .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml rename to .ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml index 94c391015..d66846eb1 100644 --- a/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml similarity index 94% rename from .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml rename to .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml index 1aab323bc..96546b899 100644 --- a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml similarity index 94% rename from .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml rename to .ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml index 874f4a813..b5cd6b391 100644 --- a/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml similarity index 95% rename from .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml rename to .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml index fae135ea5..bc3202a8d 100644 --- a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml similarity index 95% rename from .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml rename to .ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml index 70dcd3114..7413de85b 100644 --- a/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml @@ -13,7 +13,7 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - gxx cxx_compiler_version: @@ -41,7 +41,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml similarity index 90% rename from .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml rename to .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml index 05ac199c9..eb477a3f6 100644 --- a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: @@ -9,19 +9,19 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml similarity index 90% rename from .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml rename to .ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml index 2f973fde2..95124a5f3 100644 --- a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: @@ -9,19 +9,19 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml similarity index 91% rename from .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml rename to .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml index 745a1635f..a875cde41 100644 --- a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: @@ -9,19 +9,19 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml similarity index 91% rename from .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml rename to .ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml index e4b541998..c8b0b8e56 100644 --- a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: @@ -9,19 +9,19 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml similarity index 93% rename from .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml rename to .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml index 4c14dd0b8..40e691881 100644 --- a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno.yaml @@ -9,7 +9,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,11 +17,11 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml similarity index 93% rename from .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml rename to .ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml index 5a9fff19a..9fce21abf 100644 --- a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes.yaml @@ -9,7 +9,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,11 +17,11 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge python_debug +- conda-forge python_dev_debug cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml similarity index 93% rename from .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml rename to .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml index 8589dd2fe..484ed338c 100644 --- a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno.yaml @@ -9,7 +9,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,11 +17,11 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml similarity index 93% rename from .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml rename to .ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml index 01f363958..c0383042b 100644 --- a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes.yaml @@ -9,7 +9,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '20.1' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,11 +17,11 @@ c_stdlib_version: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - clangxx cxx_compiler_version: -- '20.1' +- '21' expat: - '2' freethreading: @@ -43,7 +43,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' readline: - '8' target_platform: diff --git a/.ci_support/win_64_freethreadingno.yaml b/.ci_support/win_64_freethreadingno.yaml index 85976e397..1db1459dc 100644 --- a/.ci_support/win_64_freethreadingno.yaml +++ b/.ci_support/win_64_freethreadingno.yaml @@ -9,7 +9,7 @@ c_stdlib: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - vs2022 expat: @@ -29,7 +29,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' target_platform: - win-64 tk: diff --git a/.ci_support/win_64_freethreadingyes.yaml b/.ci_support/win_64_freethreadingyes.yaml index 9a079f9f6..71df4046b 100644 --- a/.ci_support/win_64_freethreadingyes.yaml +++ b/.ci_support/win_64_freethreadingyes.yaml @@ -9,7 +9,7 @@ c_stdlib: channel_sources: - conda-forge/label/python_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge python_dev cxx_compiler: - vs2022 expat: @@ -29,7 +29,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- '3.14' +- '3.15' target_platform: - win-64 tk: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml new file mode 100644 index 000000000..51b9029c7 --- /dev/null +++ b/.github/workflows/conda-build.yml @@ -0,0 +1,263 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +name: Build conda package +on: + push: + + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +jobs: + build: + name: ${{ matrix.CONFIG }} + runs-on: ${{ matrix.runs_on }} + timeout-minutes: 360 + strategy: + fail-fast: false + max-parallel: 50 + matrix: + include: + - CONFIG: linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_aarch64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_aarch64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip + os: ubuntu + pagefile_size: 0 + resize_partitions: False + runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + steps: + + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Configure binfmt_misc + if: matrix.os == 'ubuntu' + shell: bash + run: | + if [[ "$(uname -m)" == "x86_64" ]]; then + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi + + - name: Build on Linux + id: build-linux + if: matrix.os == 'ubuntu' + env: + CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONDA_FORGE_DOCKER_RUN_ARGS: ${{ matrix.docker_run_args }} + CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_docker_build.sh + + - name: Build on macOS + id: build-macos + if: matrix.os == 'macos' + env: + CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + + - name: Build on windows + id: build-windows + if: matrix.os == 'windows' + shell: cmd + run: | + set "flow_run_id=github_%GITHUB_RUN_ID%" + set "remote_url=https://github.com/%GITHUB_REPOSITORY%" + set "sha=%GITHUB_SHA%" + call ".scripts\run_win_build.bat" + env: + CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + PYTHONUNBUFFERED: 1 + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 47b5408a8..86a9c55b4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ # Ignore all files and folders in root * !/conda-forge.yml +!.recipe_maintainers.json # Don't ignore any files/folders if the parent folder is 'un-ignored' # This also avoids warnings when adding an already-checked file with an ignored parent. diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 780a358ff..5c97f7442 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -20,6 +20,7 @@ export PYTHONUNBUFFERED=1 export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" +export RATTLER_CACHE_DIR="${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache" cat >~/.condarc < /opt/conda/conda-meta/history micromamba install --root-prefix ~/.conda --prefix /opt/conda \ --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc @@ -60,18 +61,33 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + # differences between conda-build vs. rattler-build + # - 1 step (conda debug + manually open shell) vs. 2 step (rb debug {setup, shell}) + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --output-id vs. --output-name + # - --clobber-file vs. none + # - none vs. --target-platform + conda debug \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ ${EXTRA_CB_OPTIONS:-} \ + ${BUILD_OUTPUT_ID:+--output-id "${BUILD_OUTPUT_ID}"} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" # Drop into an interactive shell /bin/bash else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + # differences between conda-build vs. rattler-build + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --suppress-variables vs. none + # - --clobber-file vs. none + # - none vs. --target-platform + # - --extra-meta a=b c=d vs. --extra-meta a=b --extra-meta c=d + conda-build \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --suppress-variables \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index b63b5a05a..17d983f11 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -11,6 +11,8 @@ source .scripts/logging_utils.sh set -xeo pipefail +DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}" + THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename "$THISDIR")" @@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then popd fi -docker info +${DOCKER_EXECUTABLE} info # In order for the conda-build process in the container to write to the mounted # volumes, we need to run with the same id as the host machine, which is @@ -35,6 +37,7 @@ docker info export HOST_USER_ID=$(id -u) # Check if docker-machine is being used (normally on OSX) and get the uid from # the VM + if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) fi @@ -76,27 +79,56 @@ if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi -( endgroup "Configure Docker" ) 2> /dev/null +# Default volume suffix for Docker (preserve original behavior) +VOLUME_SUFFIX=",z" + +# Podman-specific handling +if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then + # Fix file permissions for rootless podman builds + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}" + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}" + + # Add SELinux label only if enforcing + if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then + VOLUME_SUFFIX=",z" + else + VOLUME_SUFFIX="" + fi +fi + +# When running on GitHub Actions, mount the step summary file into the container +# and point GITHUB_STEP_SUMMARY at it so that rattler-build's GitHub integration +# can write its summary. GitHub writes the file out to the job summary after the +# step finishes. +if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then + DOCKER_RUN_ARGS="${DOCKER_RUN_ARGS} -v ${GITHUB_STEP_SUMMARY}:/home/conda/github_step_summary:rw${VOLUME_SUFFIX},delegated -e GITHUB_STEP_SUMMARY=/home/conda/github_step_summary" +fi +( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ + +${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}" + +${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \ + -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \ + -e BUILD_OUTPUT_ID \ + -e BUILD_WITH_CONDA_DEBUG \ + -e CI \ -e CONFIG \ + -e CPU_COUNT \ + -e FEEDSTOCK_NAME \ + -e GIT_BRANCH \ + -e GITHUB_ACTIONS \ -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ -e IS_PR_BUILD \ - -e GIT_BRANCH \ + -e RATTLER_BUILD_COLOR \ + -e RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION \ -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ + -e UPLOAD_PACKAGES \ -e flow_run_id \ -e remote_url \ -e sha \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 361edeb2c..b0eda55cd 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,7 +26,7 @@ chmod +x "${micromamba_exe}" echo "Creating environment" "${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" echo "Cleaning up micromamba" @@ -63,6 +63,25 @@ if [[ "${sha:-}" == "" ]]; then sha=$(git rev-parse HEAD) fi +if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + if [[ "${CI:-}" == "" ]]; then + echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting" + exit 1 + else + export OSX_SDK_DIR=/opt/conda-sdks + /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}" + /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}" + fi +else + if tmpf=$(mktemp "$OSX_SDK_DIR"/tmp.XXXXXXXX 2>/dev/null); then + rm -f "$tmpf" + echo "OSX_SDK_DIR is writeable without sudo, continuing" + else + echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting" + exit 1 + fi +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 27c552b1a..c07d98e61 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -31,7 +31,7 @@ if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ --channel conda-forge ^ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" >nul diff --git a/LICENSE.txt b/LICENSE.txt index 2ec51d75f..c5aa738f1 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,5 @@ BSD-3-Clause license -Copyright (c) 2015-2022, conda-forge contributors -All rights reserved. +Copyright (c) 2015-2026, conda-forge contributors Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index 78eed68b8..1db2da8f9 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,14 @@ Current build status ==================== - +
+ + + @@ -59,143 +66,31 @@ Current build status
GitHub Actions + + + +
Azure
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -226,6 +121,7 @@ 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-libpython-green.svg)](https://anaconda.org/conda-forge/libpython) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libpython.svg)](https://anaconda.org/conda-forge/libpython) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libpython.svg)](https://anaconda.org/conda-forge/libpython) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libpython.svg)](https://anaconda.org/conda-forge/libpython) | | [![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) | | [![Conda Recipe](https://img.shields.io/badge/recipe-python--freethreading-green.svg)](https://anaconda.org/conda-forge/python-freethreading) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/python-freethreading.svg)](https://anaconda.org/conda-forge/python-freethreading) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/python-freethreading.svg)](https://anaconda.org/conda-forge/python-freethreading) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/python-freethreading.svg)](https://anaconda.org/conda-forge/python-freethreading) | @@ -235,48 +131,48 @@ Current release info Installing python ================= -Installing `python` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `python` from the `conda-forge/label/python_dev` channel can be achieved by adding `conda-forge/label/python_dev` to your channels with: ``` -conda config --add channels conda-forge +conda config --add channels conda-forge/label/python_dev conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `cpython, libpython-static, python, python-freethreading, python-gil, python-jit` can be installed with `conda`: +Once the `conda-forge/label/python_dev` channel has been enabled, `cpython, libpython, libpython-static, python, python-freethreading, python-gil, python-jit` can be installed with `conda`: ``` -conda install cpython libpython-static python python-freethreading python-gil python-jit +conda install cpython libpython libpython-static python python-freethreading python-gil python-jit ``` or with `mamba`: ``` -mamba install cpython libpython-static python python-freethreading python-gil python-jit +mamba install cpython libpython libpython-static python python-freethreading python-gil python-jit ``` It is possible to list all of the versions of `cpython` available on your platform with `conda`: ``` -conda search cpython --channel conda-forge +conda search cpython --channel conda-forge/label/python_dev ``` or with `mamba`: ``` -mamba search cpython --channel conda-forge +mamba search cpython --channel conda-forge/label/python_dev ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search cpython --channel conda-forge +mamba repoquery search cpython --channel conda-forge/label/python_dev # List packages depending on `cpython`: -mamba repoquery whoneeds cpython --channel conda-forge +mamba repoquery whoneeds cpython --channel conda-forge/label/python_dev # List dependencies of `cpython`: -mamba repoquery depends cpython --channel conda-forge +mamba repoquery depends cpython --channel conda-forge/label/python_dev ``` diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eff4ad66b..03594e446 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,7 +7,7 @@ stages: jobs: - job: Skip pool: - vmImage: 'ubuntu-22.04' + vmImage: 'ubuntu-latest' variables: DECODE_PERCENTS: 'false' RET: 'true' @@ -28,6 +28,5 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - template: ./.azure-pipelines/azure-pipelines-osx.yml - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index 9dfe44039..3beb68ccd 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,5 +1,6 @@ #!/bin/sh """exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on + # # This file has been generated by conda-smithy in order to build the recipe # locally. @@ -27,13 +28,6 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) - # The default cache location might not be writable using docker on macOS. - if ns.config.startswith("linux") and platform.system() == "Darwin": - os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( - os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") - + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" - ) - def run_docker_build(ns): script = ".scripts/run_docker_build.sh" @@ -104,7 +98,10 @@ def main(args=None): p.add_argument( "--debug", action="store_true", - help="Setup debug environment using `conda debug`", + help=( + "Setup debug environment using `conda debug` " + "(or `rattler-build debug` for rattler-build recipes)" + ), ) p.add_argument("--output-id", help="If running debug, specify the output to setup.") diff --git a/recipe/build_base.sh b/recipe/build_base.sh index a376602ca..bf36540ab 100644 --- a/recipe/build_base.sh +++ b/recipe/build_base.sh @@ -385,20 +385,16 @@ if [[ ${_OPTIMIZED} == yes ]]; then _FLAGS_REPLACE+=("") done fi -# Install the shared library (for people who embed Python only, e.g. GDB). -# Linking module extensions to this on Linux is redundant (but harmless). -# Linking module extensions to this on Darwin is harmful (multiply defined symbols). -shopt -s extglob -cp -pf ${_buildd_shared}/libpython*${SHLIB_EXT}!(.lto) ${PREFIX}/lib/ -shopt -u extglob -if [[ ${target_platform} =~ .*linux.* ]]; then - ln -sf ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT}.1.0 ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT} -fi -SYSCONFIG=$(find ${_buildd_static}/$(cat ${_buildd_static}/pybuilddir.txt) -name "_sysconfigdata*.py" -print0) +# Use sysconfigdata and build-details.json from the shared build, as we want packages to prefer +# linking against the shared library. Issue #565. +BUILD_DIR=$(< ${_buildd_shared}/pybuilddir.txt) +SYSCONFIG=$(find ${_buildd_shared}/${BUILD_DIR} -name "_sysconfigdata*.py" -print0) cat ${SYSCONFIG} | ${SYS_PYTHON} "${RECIPE_DIR}"/replace-word-pairs.py \ "${_FLAGS_REPLACE[@]}" \ > ${PREFIX}/lib/python${VERABI_NO_DBG}/$(basename ${SYSCONFIG}) +BUILD_DETAILS=${_buildd_shared}/${BUILD_DIR}/build-details.json +cp ${BUILD_DETAILS} ${PREFIX}/lib/python${VERABI_NO_DBG}/ 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 \ @@ -515,7 +511,6 @@ 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${VERABI_NO_DBG}${SHLIB_EXT} ln -s ${PREFIX}/include/python${VERABI} ${PREFIX}/include/python${VER} fi diff --git a/recipe/build_shared.bat b/recipe/build_shared.bat new file mode 100644 index 000000000..e69de29bb diff --git a/recipe/build_shared.sh b/recipe/build_shared.sh new file mode 100644 index 000000000..35812a5d1 --- /dev/null +++ b/recipe/build_shared.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -ex + +_buildd_shared=build-shared +if [[ ${PY_INTERP_DEBUG} == yes ]]; then + DBG=d +else + DBG= +fi +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} + +# Install the shared library (for people who embed Python only, e.g. GDB). +# Linking module extensions to this on Linux is redundant (but harmless). +# Linking module extensions to this on Darwin is harmful (multiply defined symbols). +shopt -s extglob +cp -pf ${_buildd_shared}/libpython*${SHLIB_EXT}!(.lto) ${PREFIX}/lib/ +shopt -u extglob +if [[ ${target_platform} =~ .*linux.* ]]; then + ln -sf ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT}.1.0 ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT} +fi +if [[ ${PY_INTERP_DEBUG} == yes ]]; then + ln -s ${PREFIX}/lib/libpython${VERABI}${SHLIB_EXT} ${PREFIX}/lib/libpython${VERABI_NO_DBG}${SHLIB_EXT} +fi diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 9d84028dd..2ae238ad9 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -2,13 +2,13 @@ MACOSX_SDK_VERSION: # [osx and x86_64] - 11.0 # [osx and x86_64] # See https://docs.python.org/3.14/whatsnew/3.14.html#a-new-type-of-interpreter c_compiler_version: # [osx] - - 20.1 # [osx] + - 21 # [osx] cxx_compiler_version: # [osx] - - 20.1 # [osx] + - 21 # [osx] # Override Python `zip_keys` python: - - 3.14 + - 3.15 numpy: - 1.16 python_impl: @@ -30,8 +30,8 @@ build_type: - release - debug # [not win] channel_targets: - - conda-forge main - - conda-forge python_debug # [not win] + - conda-forge python_dev + - conda-forge python_dev_debug # [not win] zip_keys: - build_type - channel_targets diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 1b26b7a00..95c1015f7 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.14.2" %} -{% set dev = "" %} +{% set version = "3.15.0" %} +{% set dev = "b3" %} {% set dev_ = "" %} {% set ver2 = '.'.join(version.split('.')[0:2]) %} {% set ver2nd = ''.join(version.split('.')[0:2]) %} @@ -45,8 +45,8 @@ package: source: - 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: 19a31b2838db3b53f9f2db8782bf8773 + # sha256 from: https://www.python.org/downloads/release/python-{{ ver3nd }}{{ dev }}/ + sha256: 6a935ae234a67e6549894373b0cfeb8361182d03b21442328ae9598ab7422127 patches: - patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch - patches/0002-Win32-Do-not-download-externals.patch @@ -159,10 +159,10 @@ outputs: - llvm-tools # [osx] - ld_impl_{{ target_platform }} # [linux] - binutils_impl_{{ target_platform }} # [linux] - - clang-19 # [not win] - - llvm-tools-19 # [not win] - - clang 19.* # [win] - - llvm-tools 19.* # [win] + - clang-21 # [not win] + - llvm-tools-21 # [not win] + - clang 21.* # [win] + - llvm-tools 21.* # [win] - bzip2 # [build_platform != target_platform] - libsqlite # [build_platform != target_platform] - liblzma-devel # [build_platform != target_platform] @@ -209,6 +209,9 @@ outputs: - ripgrep - cmake - ninja + # Pin to the openssl version used during the build to check whether + # we load the conda-forge version. + - openssl {{ openssl }} - {{ stdlib('c') }} - {{ compiler('c') }} # Tried to use enable_language(C) to avoid needing this. It does not work. @@ -218,7 +221,6 @@ outputs: files: - tests/cmake/* - tests/cython/* - - tests/prefix-replacement/* - run_test.py commands: - echo on # [win] @@ -244,8 +246,11 @@ outputs: - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_linux_gnu python -c "import sysconfig; print(sysconfig.get_config_var('CC'))" # [linux64] # check for unreplaced @ symbols in sysconfig files, excluding e.g. '"$@".lto' - for f in ${CONDA_PREFIX}/lib/python*/_sysconfig*.py; do echo "Checking $f:"; if [[ `rg @[^@]*@ $f` ]]; then echo "FAILED ON $f"; cat $f; exit 1; fi; done # [linux64 or osx] - - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.a # [unix] - - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.nolto.a # [unix] + - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.so # [unix] + - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.a # [unix] + - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.so # [linux] + - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.dylib # [osx] + - test ! -f ${PREFIX}/lib/libpython${PKG_VERSION%.*}.nolto.a # [unix] {% if freethreading == "yes" %} - if not exist %PREFIX%\\libs\\python3t.lib exit 1 # [win] - if not exist %PREFIX%\\libs\\python{{ ver2nd }}t.lib exit 1 # [win] @@ -262,14 +267,8 @@ outputs: - if not exist %PREFIX%\\Scripts\\pydoc.exe exit 1 # [win] - if not exist %PREFIX%\\include\\pyconfig.h exit 1 # [win] - pushd tests - - pushd prefix-replacement # [unix] - - bash build-and-test.sh # [unix] - - popd # [unix] - pushd cmake -{% if freethreading == "no" %} - # TODO: use the new FindPython3 which supports freethreading - - cmake -GNinja -DPY_VER={{ version }} --debug-find --trace --debug-output --debug-trycompile . -{% endif %} + - cmake -GNinja -DPY_VER={{ version }} -DEXTRA_COMPONENTS="Development.Module" --debug-find --trace --debug-output --debug-trycompile . - popd - popd - python run_test.py @@ -280,6 +279,61 @@ outputs: # 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] + - name: libpython + script: build_shared.sh # [unix] + script: build_shared.bat # [win] + build: + number: {{ build_number }} + activate_in_script: true + ignore_run_exports: + - python_abi + script_env: + - PY_INTERP_DEBUG={{ py_interp_debug }} + - PY_FREETHREADING={{ freethreading }} + string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ debug }}_{{ abi_tag }} + requirements: + build: + - {{ compiler('c') }} + - {{ stdlib('c') }} + - {{ compiler('cxx') }} + host: + - {{ pin_subpackage('python', exact=True) }} + run: + - {{ pin_subpackage('python', exact=True) }} + test: + files: + - tests/cmake/* + - tests/prefix-replacement/* + requires: + - {{ stdlib('c') }} + - {{ compiler('c') }} + # cmake expects a C++ compiler for some reason + - {{ compiler('cxx') }} + - ripgrep + - cmake + - ninja + commands: + - 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=${VERABI}d # [not win] +{% endif %} + - test -f ${PREFIX}/lib/libpython${VERABI}.so # [linux] + - test -f ${PREFIX}/lib/libpython3.so # [linux and build_type == "release"] + - test -f ${PREFIX}/lib/libpython${VERABI}.dylib # [osx] + - pushd tests + - pushd prefix-replacement # [unix] + - bash build-and-test.sh # [unix] + - popd # [unix] + - pushd cmake + - cmake -GNinja -DPY_VER={{ version }} -DEXTRA_COMPONENTS="Development.Embed" --debug-find --trace --debug-output --debug-trycompile . + - popd + - popd + - name: libpython-static script: build_static.sh # [unix] script: build_static.bat # [win] @@ -303,10 +357,16 @@ outputs: - {{ pin_subpackage('python', exact=True) }} test: files: + - tests/cmake/* - tests/prefix-replacement/* requires: - {{ stdlib('c') }} - {{ compiler('c') }} + # cmake expects a C++ compiler for some reason + - {{ compiler('cxx') }} + - ripgrep + - cmake + - ninja commands: - VER=${PKG_VERSION%.*} # [not win] - VERABI=${VER} # [not win] @@ -320,9 +380,14 @@ outputs: - test -f ${PREFIX}/lib/libpython${VERABI}.a # [unix] - 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] + - pushd tests + - pushd prefix-replacement # [unix] + - bash build-and-test.sh # [unix] + - popd # [unix] + - pushd cmake + - cmake -GNinja -DPY_VER={{ version }} -DEXTRA_COMPONENTS="Development.Embed" --debug-find --trace --debug-output --debug-trycompile . + - popd + - popd - name: cpython build: 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 348ac3d5d..18c2ccaf8 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 3dff368f2f15764584cd9d90234ae7e8248e4e4d Mon Sep 17 00:00:00 2001 +From ffb1951d87e6554c3e0ae00b6ab8a042e085779a Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:53:55 +0100 Subject: [PATCH 01/26] Win32: Change FD_SETSIZE from 512 to 2048 @@ -9,7 +9,7 @@ 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 d234d504cb5..3856307c611 100644 +index 137bf2ca55b..70e2d178c54 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -44,7 +44,7 @@ diff --git a/recipe/patches/0002-Win32-Do-not-download-externals.patch b/recipe/patches/0002-Win32-Do-not-download-externals.patch index 2fc7dfd08..ef7b2585f 100644 --- a/recipe/patches/0002-Win32-Do-not-download-externals.patch +++ b/recipe/patches/0002-Win32-Do-not-download-externals.patch @@ -1,4 +1,4 @@ -From 15bfc5e613ae654bd685f65d975d79ce88d3853d Mon Sep 17 00:00:00 2001 +From 25b73c426a756ffea6425130b7e22b5ee544c8ff Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 7 Sep 2017 11:35:47 +0100 Subject: [PATCH 02/26] Win32: Do not download externals @@ -8,10 +8,10 @@ Subject: [PATCH 02/26] Win32: Do not download externals 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PCbuild/build.bat b/PCbuild/build.bat -index 60235704886..edb61912b74 100644 +index 8fb2f096c93..e69b3aef564 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat -@@ -107,7 +107,7 @@ if "%~1"=="--no-ctypes" (set IncludeCTypes=false) & shift & goto CheckOpts +@@ -112,7 +112,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 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 626e4df29..a3f9e58dc 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 2e9e95c2e3aa8d212a302de52f19d129c5068d57 Mon Sep 17 00:00:00 2001 +From bd6431cd6b69c8111e1b3c72a89d5ace434c6265 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 5 Dec 2017 22:47:59 +0000 Subject: [PATCH 03/26] Fix find_library so that it looks in sys.prefix/lib @@ -25,10 +25,10 @@ index 583c47daff3..ab9b01c87e2 100644 yield os.path.join(executable_path, name[len('@executable_path/'):]) diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 378f12167c6..bf45580ab9f 100644 +index 3b21658433b..ecd2c6cbd9c 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py -@@ -129,7 +129,8 @@ def dllist(): +@@ -135,7 +135,8 @@ def dllist(): 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): @@ -38,7 +38,7 @@ index 378f12167c6..bf45580ab9f 100644 '%s.dylib' % name, '%s.framework/%s' % (name, name)] for name in possible: -@@ -430,10 +431,30 @@ def _findLib_ld(name): +@@ -436,10 +437,30 @@ def _findLib_ld(name): pass # result will be None return result @@ -47,7 +47,7 @@ index 378f12167c6..bf45580ab9f 100644 + return None + for fullname in (name, "lib%s.so" % (name)): + path = os.path.join(sys.prefix, 'lib', fullname) -+ if os.path.exists(path): ++ if os.path.exists(path) and not os.path.isdir(path): + return path + return None + 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 cd2f67fad..7d3b5f681 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 12999f1ec012f5c3859aa23070a5d293b852afda Mon Sep 17 00:00:00 2001 +From e380a8cfc9757d26d85cfe1d0c965b7415fb73ac Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Oct 2018 18:48:30 +0100 Subject: [PATCH 04/26] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS @@ -23,7 +23,7 @@ index 1e75993480a..ff96c8e1990 100644 !progname_to_dict(dict, "real_executable") || !library_to_dict(dict, "library") || diff --git a/Modules/getpath.py b/Modules/getpath.py -index b89d7427e3f..21df0efac12 100644 +index 4dceb5cdc8d..43a47ca77af 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -52,6 +52,7 @@ @@ -34,9 +34,9 @@ index b89d7427e3f..21df0efac12 100644 # ** Values calculated at runtime ** # config -- [in/out] dict of the PyConfig structure -@@ -704,7 +705,7 @@ def search_up(prefix, *landmarks, test=isfile): - else: - pythonpath.append(joinpath(base_prefix, ZIP_LANDMARK)) +@@ -706,7 +707,7 @@ def search_up(prefix, *landmarks, test=isfile): + stdlib_zip = joinpath(base_prefix, ZIP_LANDMARK) + pythonpath.append(stdlib_zip) - if os_name == 'nt' and use_environment and winreg: + if os_name == 'nt' and use_environment and winreg and ENV_CONDA_PY_ALLOW_REG_PATHS and ENV_CONDA_PY_ALLOW_REG_PATHS != '0': diff --git a/recipe/patches/0005-Unvendor-openssl.patch b/recipe/patches/0005-Unvendor-openssl.patch index 3be8ce468..9660771c2 100644 --- a/recipe/patches/0005-Unvendor-openssl.patch +++ b/recipe/patches/0005-Unvendor-openssl.patch @@ -1,4 +1,4 @@ -From f3da6c061da6528ac2aa9069418e2abec3e81bec Mon Sep 17 00:00:00 2001 +From d441985a62cf37f233a6093a187e06497740069d Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sat, 24 Nov 2018 20:38:02 -0600 Subject: [PATCH 05/26] Unvendor openssl @@ -90,10 +90,10 @@ index 7ca750dda8f..17eee400ebb 100644 diff --git a/PCbuild/python.props b/PCbuild/python.props -index d4d9a54248d..94fb385c1fb 100644 +index 3ad8d81dfc9..05c8c7cd83f 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props -@@ -67,6 +67,7 @@ +@@ -68,6 +68,7 @@ $(EXTERNALS_DIR) @@ -101,19 +101,19 @@ index d4d9a54248d..94fb385c1fb 100644 $([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`)) $(ExternalsDir)\ -@@ -74,20 +75,8 @@ +@@ -75,20 +76,8 @@ - $(ExternalsDir)sqlite-3.50.4.0\ - $(ExternalsDir)bzip2-1.0.8\ -- $(ExternalsDir)xz-5.2.5\ +- $(ExternalsDir)xz-5.8.1.1\ - $(ExternalsDir)libffi-3.4.4\ - $(libffiDir)$(ArchName)\ - $(libffiOutDir)include $(ExternalsDir)\mpdecimal-4.0.0\ -- $(ExternalsDir)openssl-3.0.18\ -- $(ExternalsDir)openssl-bin-3.0.18\$(ArchName)\ +- $(ExternalsDir)openssl-3.5.5\ +- $(ExternalsDir)openssl-bin-3.5.5\$(ArchName)\ - $(opensslOutDir)include $(ExternalsDir)\nasm-2.11.06\ - $(ExternalsDir)\zlib-1.3.1\ diff --git a/recipe/patches/0006-Unvendor-sqlite3.patch b/recipe/patches/0006-Unvendor-sqlite3.patch index d97f464ea..089cba660 100644 --- a/recipe/patches/0006-Unvendor-sqlite3.patch +++ b/recipe/patches/0006-Unvendor-sqlite3.patch @@ -1,4 +1,4 @@ -From 73585456429c8ce96c088d3403afd7e430bdeb85 Mon Sep 17 00:00:00 2001 +From b9106812add3d50b2f441cf7d463725f60b9978c Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Tue, 5 Oct 2021 12:42:06 -0700 Subject: [PATCH 06/26] Unvendor sqlite3 diff --git a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch index fa194652d..2adf2356a 100644 --- a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch +++ b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch @@ -1,4 +1,4 @@ -From 966dfbe7e1972661885959ec72d34d52af373698 Mon Sep 17 00:00:00 2001 +From 32d83eacf1dc0cb8db86f22cd310e376d5493350 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 24 Dec 2019 18:37:17 +0100 Subject: [PATCH 07/26] Add CondaEcosystemModifyDllSearchPath() @@ -33,10 +33,10 @@ Co-authored-by: Isuru Fernando 1 file changed, 95 insertions(+) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c -index 352787c6495..4fd4fcb0f6e 100644 +index 711e7bc89b7..89ad70f2105 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c -@@ -80,6 +80,10 @@ +@@ -85,6 +85,10 @@ #ifdef MS_WINDOWS # undef BYTE @@ -47,7 +47,7 @@ index 352787c6495..4fd4fcb0f6e 100644 #endif #define PUTS(fd, str) (void)_Py_write_noraise(fd, str, (int)strlen(str)) -@@ -114,6 +118,93 @@ GENERATE_DEBUG_SECTION(PyRuntime, _PyRuntimeState _PyRuntime) +@@ -119,6 +123,93 @@ GENERATE_DEBUG_SECTION(PyRuntime, _PyRuntimeState _PyRuntime) = _PyRuntimeState_INIT(_PyRuntime, _Py_Debug_Cookie); _Py_COMP_DIAG_POP @@ -141,7 +141,7 @@ index 352787c6495..4fd4fcb0f6e 100644 static int runtime_initialized = 0; -@@ -131,6 +222,10 @@ _PyRuntime_Initialize(void) +@@ -136,6 +227,10 @@ _PyRuntime_Initialize(void) } runtime_initialized = 1; diff --git a/recipe/patches/0008-Doing-d1trimfile.patch b/recipe/patches/0008-Doing-d1trimfile.patch index a80d79b6e..23878624c 100644 --- a/recipe/patches/0008-Doing-d1trimfile.patch +++ b/recipe/patches/0008-Doing-d1trimfile.patch @@ -1,4 +1,4 @@ -From 17412eb7031d69a13c749f5d6a5f9cdef01c1188 Mon Sep 17 00:00:00 2001 +From 9a38ec4f30d8ec426af73ff082b696dd31d3dcbb Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 31 Dec 2019 21:47:47 +0100 Subject: [PATCH 08/26] Doing d1trimfile @@ -147,7 +147,7 @@ index f15b80852e3..e565441ca4c 100644 diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj -index ee7421484b5..e9d60b4db1a 100644 +index 3ba49370d58..921d22e47b3 100644 --- a/PCbuild/_decimal.vcxproj +++ b/PCbuild/_decimal.vcxproj @@ -99,6 +99,10 @@ @@ -179,7 +179,7 @@ index 3eb9c89bcb6..920656f2ee2 100644 diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj -index 5ceddf759b8..6b113ad8c2e 100644 +index cb806459596..a85ba7ca53f 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -93,6 +93,10 @@ @@ -429,7 +429,7 @@ index 4e721e8ce09..3fec7516ed5 100644 \ No newline at end of file + diff --git a/PCbuild/_testcapi.vcxproj b/PCbuild/_testcapi.vcxproj -index a68f15d25aa..5c42f15c312 100644 +index 68707a54ff6..4e88650812f 100644 --- a/PCbuild/_testcapi.vcxproj +++ b/PCbuild/_testcapi.vcxproj @@ -92,6 +92,26 @@ @@ -535,7 +535,7 @@ index c35ac83c1c7..c9d7f5d22b7 100644 diff --git a/PCbuild/_testinternalcapi.vcxproj b/PCbuild/_testinternalcapi.vcxproj -index f7e050b7c74..58c3e10c0f0 100644 +index f3e423fa046..ac285717998 100644 --- a/PCbuild/_testinternalcapi.vcxproj +++ b/PCbuild/_testinternalcapi.vcxproj @@ -92,6 +92,26 @@ @@ -603,11 +603,11 @@ index 87f6005fffc..de9358312ac 100644 $(tcltkLib);%(AdditionalDependencies) diff --git a/PCbuild/liblzma.vcxproj b/PCbuild/liblzma.vcxproj -index 97938692328..212fb5e1ebc 100644 +index 75d4e162346..d50534affa1 100644 --- a/PCbuild/liblzma.vcxproj +++ b/PCbuild/liblzma.vcxproj @@ -95,6 +95,10 @@ - $(lzmaDir)windows/vs2019;$(lzmaDir)src/liblzma/common;$(lzmaDir)src/common;$(lzmaDir)src/liblzma/api;$(lzmaDir)src/liblzma/check;$(lzmaDir)src/liblzma/delta;$(lzmaDir)src/liblzma/lz;$(lzmaDir)src/liblzma/lzma;$(lzmaDir)src/liblzma/rangecoder;$(lzmaDir)src/liblzma/simple;%(AdditionalIncludeDirectories) + $(lzmaDir)windows;$(lzmaDir)src/liblzma/common;$(lzmaDir)src/common;$(lzmaDir)src/liblzma/api;$(lzmaDir)src/liblzma/check;$(lzmaDir)src/liblzma/delta;$(lzmaDir)src/liblzma/lz;$(lzmaDir)src/liblzma/lzma;$(lzmaDir)src/liblzma/rangecoder;$(lzmaDir)src/liblzma/simple;%(AdditionalIncludeDirectories) 4244;4267;4996;%(DisableSpecificWarnings) %(AdditionalOptions) -Wno-deprecated-declarations + /d1trimfile:%SRC_DIR% @@ -618,13 +618,13 @@ index 97938692328..212fb5e1ebc 100644 diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index dc9161a8b29..3bcef600a3e 100644 +index 8e0f5f63112..7a1d5942a6c 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -92,6 +92,10 @@ $(PySourcePath)Modules\expat;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;PYEXPAT_EXPORTS;XML_STATIC;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;XML_STATIC;%(PreprocessorDefinitions) + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% + /d1trimfile:%SRC_DIR% @@ -720,7 +720,7 @@ index 3f8772d30b4..d80968e351a 100644 windowsapp.lib;%(AdditionalDependencies) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj -index b911c938563..8e45967a83c 100644 +index 61bee29c0af..d1efe476439 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -99,7 +99,7 @@ diff --git a/recipe/patches/0009-cross-compile-darwin.patch b/recipe/patches/0009-cross-compile-darwin.patch index ae8f1be68..998ecdecd 100644 --- a/recipe/patches/0009-cross-compile-darwin.patch +++ b/recipe/patches/0009-cross-compile-darwin.patch @@ -1,4 +1,4 @@ -From 4a750134d0e82bf5e843bcde03a28c4ef7e6c036 Mon Sep 17 00:00:00 2001 +From 323229d393ca44056d519d8b926ac57d900f6fa9 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 2 Oct 2020 00:03:12 +0200 Subject: [PATCH 09/26] cross compile darwin @@ -11,10 +11,10 @@ By Isuru Fernando. 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Lib/platform.py b/Lib/platform.py -index 784b6b749b7..9918b4106e8 100644 +index 9d7aa5c66a9..2401eff96df 100644 --- a/Lib/platform.py +++ b/Lib/platform.py -@@ -477,7 +477,12 @@ def win32_ver(release='', version='', csd='', ptype=''): +@@ -474,7 +474,12 @@ def win32_ver(release='', version='', csd='', ptype=''): def _mac_ver_xml(): fn = '/System/Library/CoreServices/SystemVersion.plist' if not os.path.exists(fn): @@ -29,10 +29,10 @@ index 784b6b749b7..9918b4106e8 100644 try: import plistlib diff --git a/configure b/configure -index d31c24dffa2..1e4cf61234b 100755 +index eca5f03cdcf..0595b8dc8c2 100755 --- a/configure +++ b/configure -@@ -4110,6 +4110,9 @@ then +@@ -4140,6 +4140,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -42,7 +42,7 @@ index d31c24dffa2..1e4cf61234b 100755 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -4589,6 +4592,9 @@ if test "$cross_compiling" = yes; then +@@ -4619,6 +4622,9 @@ if test "$cross_compiling" = yes; then _host_ident=$host_cpu esac ;; @@ -53,10 +53,10 @@ index d31c24dffa2..1e4cf61234b 100755 _host_ident= ;; diff --git a/configure.ac b/configure.ac -index af7a9623d7b..e7a4bb5b998 100644 +index c21024a1e77..9a63e9bbaef 100644 --- a/configure.ac +++ b/configure.ac -@@ -324,6 +324,9 @@ then +@@ -333,6 +333,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -66,7 +66,7 @@ index af7a9623d7b..e7a4bb5b998 100644 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -771,6 +774,9 @@ if test "$cross_compiling" = yes; then +@@ -780,6 +783,9 @@ if test "$cross_compiling" = yes; then _host_ident=$host_cpu esac ;; diff --git a/recipe/patches/0010-Fix-TZPATH-on-windows.patch b/recipe/patches/0010-Fix-TZPATH-on-windows.patch index b380b8065..aeb319c9e 100644 --- a/recipe/patches/0010-Fix-TZPATH-on-windows.patch +++ b/recipe/patches/0010-Fix-TZPATH-on-windows.patch @@ -1,4 +1,4 @@ -From 53c0cb3b5f5c206ead42a55dcbc39ce1453dfd38 Mon Sep 17 00:00:00 2001 +From 1848c4134c71cda587ff04bea02e59cb2347669d Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 7 Oct 2020 10:08:30 -0500 Subject: [PATCH 10/26] Fix TZPATH on windows @@ -8,7 +8,7 @@ Subject: [PATCH 10/26] Fix TZPATH on windows 1 file changed, 2 insertions(+) diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py -index 2ecbff222fe..9a263dea8da 100644 +index 8ff9c99435b..2caf1862ba0 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -175,6 +175,7 @@ def joinuser(*args): @@ -19,7 +19,7 @@ index 2ecbff222fe..9a263dea8da 100644 _BASE_PREFIX = os.path.normpath(sys.base_prefix) _BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Mutex guarding initialization of _CONFIG_VARS. -@@ -555,6 +556,7 @@ def _init_config_vars(): +@@ -550,6 +551,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 719ceb57d..0aaf0cf25 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 fb9d535290c32d9ff02820949cab3d2c212d6397 Mon Sep 17 00:00:00 2001 +From 387b71e1e8de72e8b88166e0a7cbdb79416acd53 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 25 Jan 2021 03:28:08 -0600 Subject: [PATCH 11/26] Make dyld search work with SYSTEM_VERSION_COMPAT=1 @@ -18,10 +18,10 @@ and this code using 10.16 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c -index 856b0376e5e..8d269ac5969 100644 +index 9a1c1ff8bb9..730e1fd1394 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c -@@ -1509,7 +1509,7 @@ copy_com_pointer(PyObject *self, PyObject *args) +@@ -1501,7 +1501,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 \ @@ -30,7 +30,7 @@ index 856b0376e5e..8d269ac5969 100644 # else # define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \ (_dyld_shared_cache_contains_path != NULL) -@@ -1552,8 +1552,10 @@ static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *ar +@@ -1544,8 +1544,10 @@ static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *ar if (PyUnicode_FSConverter(name, &name2) == 0) return NULL; name_str = PyBytes_AS_STRING(name2); diff --git a/recipe/patches/0012-Unvendor-bzip2.patch b/recipe/patches/0012-Unvendor-bzip2.patch index 94bb7eb82..bc19267ae 100644 --- a/recipe/patches/0012-Unvendor-bzip2.patch +++ b/recipe/patches/0012-Unvendor-bzip2.patch @@ -1,4 +1,4 @@ -From 7c194e8eecd10c4f16b25110e53647a87bb71ec6 Mon Sep 17 00:00:00 2001 +From 108f13f1274c37edc200c431e74f6d5de1f0472e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 02:56:27 -0700 Subject: [PATCH 12/26] Unvendor bzip2 diff --git a/recipe/patches/0013-Unvendor-libffi.patch b/recipe/patches/0013-Unvendor-libffi.patch index 7da3aa1d1..1e9516e69 100644 --- a/recipe/patches/0013-Unvendor-libffi.patch +++ b/recipe/patches/0013-Unvendor-libffi.patch @@ -1,4 +1,4 @@ -From fafc2c3880a6c1e872142b8ed040a562edb45738 Mon Sep 17 00:00:00 2001 +From e12404f2f87ab519d56519e894798a020a31a50b Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 03:07:40 -0700 Subject: [PATCH 13/26] Unvendor libffi diff --git a/recipe/patches/0014-Unvendor-tcltk.patch b/recipe/patches/0014-Unvendor-tcltk.patch index 0aafc2b3d..8f882b629 100644 --- a/recipe/patches/0014-Unvendor-tcltk.patch +++ b/recipe/patches/0014-Unvendor-tcltk.patch @@ -1,4 +1,4 @@ -From bac07ba9b9bdbcc560af20d9eadc38bd30a7fc9b Mon Sep 17 00:00:00 2001 +From 224891042e975b4c534582fcb201f7b1510bb7ad Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 20 Aug 2021 10:23:51 -0700 Subject: [PATCH 14/26] Unvendor tcltk diff --git a/recipe/patches/0015-unvendor-xz.patch b/recipe/patches/0015-unvendor-xz.patch index 56e718717..6bfa48584 100644 --- a/recipe/patches/0015-unvendor-xz.patch +++ b/recipe/patches/0015-unvendor-xz.patch @@ -1,4 +1,4 @@ -From 4492573c31d9b6989cf878c1b133870ccc93886f Mon Sep 17 00:00:00 2001 +From a49377ccaae2185b5ed4658d361725c32a3b5b67 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 25 Sep 2021 10:07:05 -0700 Subject: [PATCH 15/26] unvendor xz diff --git a/recipe/patches/0016-unvendor-zlib.patch b/recipe/patches/0016-unvendor-zlib.patch index d59a79019..46015dc89 100644 --- a/recipe/patches/0016-unvendor-zlib.patch +++ b/recipe/patches/0016-unvendor-zlib.patch @@ -1,4 +1,4 @@ -From aca0e2c3d51aaa449f7e849b7fbc26233d611298 Mon Sep 17 00:00:00 2001 +From a20ff3cb121cccad86df60f0e6594b01cb16c97a Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Sep 2021 15:21:55 -0700 Subject: [PATCH 16/26] unvendor zlib @@ -9,7 +9,7 @@ Subject: [PATCH 16/26] unvendor zlib 2 files changed, 4 insertions(+), 76 deletions(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj -index 8e45967a83c..fc1a6077b34 100644 +index d1efe476439..62b762f8bdc 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -82,7 +82,7 @@ @@ -30,8 +30,8 @@ index 8e45967a83c..fc1a6077b34 100644 $(GeneratedJitStencilsDir);%(AdditionalIncludeDirectories) _USRDLL;Py_BUILD_CORE;Py_BUILD_CORE_BUILTIN;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";ZLIB_COMPAT;%(PreprocessorDefinitions) _Py_HAVE_ZLIB;%(PreprocessorDefinitions) -@@ -112,8 +112,8 @@ - Py_REMOTE_DEBUG;%(PreprocessorDefinitions) +@@ -113,8 +113,8 @@ + Py_STACKREF_DEBUG;%(PreprocessorDefinitions) - version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) @@ -41,7 +41,7 @@ index 8e45967a83c..fc1a6077b34 100644 -@@ -681,12 +681,6 @@ +@@ -695,12 +695,6 @@ @@ -55,10 +55,10 @@ index 8e45967a83c..fc1a6077b34 100644 diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters -index 0e6d42cc959..144a0e3425a 100644 +index 664788e69af..53665c076ac 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters -@@ -900,39 +900,6 @@ +@@ -921,39 +921,6 @@ Include\internal\mimalloc @@ -98,7 +98,7 @@ index 0e6d42cc959..144a0e3425a 100644 Include\internal -@@ -1580,39 +1547,6 @@ +@@ -1613,39 +1580,6 @@ Objects 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 d6cb69535..32edaddb5 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 34a225d86b9b9d43fe12b130101e35779c4322bc Mon Sep 17 00:00:00 2001 +From f424f1bd6619a7134bb4543b52d36ed8af4b7aa6 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:45:28 +0100 Subject: [PATCH 17/26] 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 1e4cf61234b..61c94c69308 100755 +index 0595b8dc8c2..4f2966857ba 100755 --- a/configure +++ b/configure -@@ -5794,9 +5794,9 @@ if test $ac_test_CFLAGS; then +@@ -5824,9 +5824,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 1e4cf61234b..61c94c69308 100755 fi else if test "$GCC" = yes; then -@@ -9572,7 +9572,7 @@ then +@@ -9619,7 +9619,7 @@ then if test "$Py_DEBUG" = 'true' ; then OPT="-g $PYDEBUG_CFLAGS -Wall" else @@ -35,10 +35,10 @@ index 1e4cf61234b..61c94c69308 100755 ;; *) diff --git a/configure.ac b/configure.ac -index e7a4bb5b998..480e59d6c3e 100644 +index 9a63e9bbaef..854e66bedcb 100644 --- a/configure.ac +++ b/configure.ac -@@ -2306,7 +2306,7 @@ then +@@ -2327,7 +2327,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 d49ff7eb1..1eaac615a 100644 --- a/recipe/patches/0018-Unvendor-expat.patch +++ b/recipe/patches/0018-Unvendor-expat.patch @@ -1,4 +1,4 @@ -From 97ae235561329f2310cd2f03b0e6321b448601ca Mon Sep 17 00:00:00 2001 +From a1019278bfabcbacd69bbbf62cba9b5e8edd5763 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Mar 2023 23:07:10 -0500 Subject: [PATCH 18/26] Unvendor expat @@ -129,7 +129,7 @@ index a5368024cce..7cc8e9a3b9b 100644 \ No newline at end of file + diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index 3bcef600a3e..ec5d4b64b3c 100644 +index 7a1d5942a6c..8bc1bcec7e8 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -90,23 +90,19 @@ @@ -138,7 +138,7 @@ index 3bcef600a3e..ec5d4b64b3c 100644 - $(PySourcePath)Modules\expat;%(AdditionalIncludeDirectories) + $(condaDir)\include;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;PYEXPAT_EXPORTS;XML_STATIC;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;XML_STATIC;%(PreprocessorDefinitions) /d1trimfile:%SRC_DIR% /d1trimfile:%SRC_DIR% /d1trimfile:%SRC_DIR% diff --git a/recipe/patches/0019-Remove-unused-readelf.patch b/recipe/patches/0019-Remove-unused-readelf.patch index 91d5eb481..ca162a4d6 100644 --- a/recipe/patches/0019-Remove-unused-readelf.patch +++ b/recipe/patches/0019-Remove-unused-readelf.patch @@ -1,4 +1,4 @@ -From 2e87abf11bbb270eb6971923b3854f599a5da6c9 Mon Sep 17 00:00:00 2001 +From dac34619b5be2dea6cff95887e8350716e1e4ca5 Mon Sep 17 00:00:00 2001 From: Charles Bousseau Date: Thu, 25 May 2023 17:56:53 -0400 Subject: [PATCH 19/26] 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 ba039794c88..7b0d6dced64 100644 +index 120a6add385..e39dfef95ae 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -38,7 +38,6 @@ CC= @CC@ 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 9e126e31e..dd578b035 100644 --- a/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch +++ b/recipe/patches/0020-Don-t-checksharedmods-if-cross-compiling.patch @@ -1,4 +1,4 @@ -From 00a945ee9d283d6d189f782092d06348d2ccef00 Mon Sep 17 00:00:00 2001 +From b5e14a23a5c91e6f7e14f923efed0ac803ef79f6 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 1 Sep 2023 23:32:14 +0200 Subject: [PATCH 20/26] Don't checksharedmods if cross-compiling @@ -10,13 +10,13 @@ Subject: [PATCH 20/26] Don't checksharedmods if cross-compiling create mode 100755 if_runnable.sh diff --git a/Makefile.pre.in b/Makefile.pre.in -index 7b0d6dced64..e1cc236b150 100644 +index e39dfef95ae..109939cbc36 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1593,7 +1593,7 @@ sharedmods: $(SHAREDMODS) pybuilddir.txt - # dependency on BUILDPYTHON ensures that the target is run last - .PHONY: checksharedmods - checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) +@@ -1615,7 +1615,7 @@ checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) + else \ + $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/build/check_extension_modules.py --generate-missing-stdlib-info; \ + fi - @$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/build/check_extension_modules.py + @$(RUNSHARED) $(srcdir)/if_runnable.sh $(PYTHON_FOR_BUILD) $(srcdir)/Tools/build/check_extension_modules.py diff --git a/recipe/patches/0021-Override-configure-LIBFFI.patch b/recipe/patches/0021-Override-configure-LIBFFI.patch index bc4412089..502cd71e0 100644 --- a/recipe/patches/0021-Override-configure-LIBFFI.patch +++ b/recipe/patches/0021-Override-configure-LIBFFI.patch @@ -1,4 +1,4 @@ -From fdef0a3f1a886320e3acd5f01fdbc0907a32d9d8 Mon Sep 17 00:00:00 2001 +From ff05e640d84cddc9fb18ae57b476fdbcc0a99c05 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 5 Sep 2023 21:51:31 +0200 Subject: [PATCH 21/26] Override configure LIBFFI @@ -8,10 +8,10 @@ Subject: [PATCH 21/26] Override configure LIBFFI 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index 61c94c69308..8af6bd41981 100755 +index 4f2966857ba..9f700232d40 100755 --- a/configure +++ b/configure -@@ -15251,7 +15251,7 @@ if test "x$ac_cv_lib_ffi_ffi_call" = xyes +@@ -15317,7 +15317,7 @@ if test "x$ac_cv_lib_ffi_ffi_call" = xyes then : have_libffi=yes diff --git a/recipe/patches/0022-Unvendor-libmpdec.patch b/recipe/patches/0022-Unvendor-libmpdec.patch index 2bfccdb41..0a24c8977 100644 --- a/recipe/patches/0022-Unvendor-libmpdec.patch +++ b/recipe/patches/0022-Unvendor-libmpdec.patch @@ -1,17 +1,17 @@ -From 76f71b983fbe97118ff7e9c187e689226fbdd296 Mon Sep 17 00:00:00 2001 +From b713152ab14c7df7ed3ea0e2b963c263e2a46eef Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 16 Aug 2024 21:34:43 -0500 Subject: [PATCH 22/26] Unvendor libmpdec --- - PCbuild/_decimal.vcxproj | 50 +++++----------------------------------- - 1 file changed, 6 insertions(+), 44 deletions(-) + PCbuild/_decimal.vcxproj | 51 ++++++---------------------------------- + 1 file changed, 7 insertions(+), 44 deletions(-) diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj -index e9d60b4db1a..0f49d7923f5 100644 +index 921d22e47b3..0f49d7923f5 100644 --- a/PCbuild/_decimal.vcxproj +++ b/PCbuild/_decimal.vcxproj -@@ -93,65 +93,27 @@ +@@ -93,64 +93,27 @@ @@ -40,7 +40,6 @@ index e9d60b4db1a..0f49d7923f5 100644 - - - - - - - @@ -54,6 +53,7 @@ index e9d60b4db1a..0f49d7923f5 100644 - - - ++ diff --git a/recipe/patches/0023-Brand-conda-forge.patch b/recipe/patches/0023-Brand-conda-forge.patch index d7fd45221..bf3e53476 100644 --- a/recipe/patches/0023-Brand-conda-forge.patch +++ b/recipe/patches/0023-Brand-conda-forge.patch @@ -1,4 +1,4 @@ -From 3ae72a4b59fec1f5a8f2431f33b37888ebe2f646 Mon Sep 17 00:00:00 2001 +From a5f26fdd98167ffbcfd64502e85c6cbac3a4638c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 28 Aug 2024 11:12:22 -0500 Subject: [PATCH 23/26] Brand conda-forge @@ -9,10 +9,10 @@ Subject: [PATCH 23/26] Brand conda-forge 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Lib/platform.py b/Lib/platform.py -index 9918b4106e8..1bedf861aad 100644 +index 2401eff96df..69808d58586 100644 --- a/Lib/platform.py +++ b/Lib/platform.py -@@ -1215,6 +1215,7 @@ def _sys_version(sys_version=None): +@@ -1146,6 +1146,7 @@ def _sys_version(sys_version=None): cpython_sys_version_parser = re.compile( r'([\w.+]+)\s*' # "version" r'(?:free-threading build\s+)?' # "free-threading-build" diff --git a/recipe/patches/0024-Do-not-define-pid_t-as-it-might-conflict-with-the-ac.patch b/recipe/patches/0024-Do-not-define-pid_t-as-it-might-conflict-with-the-ac.patch index 56b92c848..39d08ce32 100644 --- a/recipe/patches/0024-Do-not-define-pid_t-as-it-might-conflict-with-the-ac.patch +++ b/recipe/patches/0024-Do-not-define-pid_t-as-it-might-conflict-with-the-ac.patch @@ -1,4 +1,4 @@ -From dfd3c9a8237180a5456a13ecc3c1e19cb52ccd1a Mon Sep 17 00:00:00 2001 +From 3076bdfe11bc89567638c0ff669a8ad817dd759b Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sun, 12 Jan 2025 10:37:29 +0530 Subject: [PATCH 24/26] Do not define pid_t as it might conflict with the @@ -30,7 +30,7 @@ index 6313abf5485..bc8169e2f68 100644 module _testcapi [clinic start generated code]*/ diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c -index 2572df9719a..792c0df35af 100644 +index c0ab35cda19..af073445222 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -23,6 +23,10 @@ @@ -60,7 +60,7 @@ index 34bc7331da9..abae4b19bf0 100644 module _testlimitedcapi [clinic start generated code]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h -index 87a17935507..a88a9151cb6 100644 +index ad4c5dd1c9b..0053e527fe7 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -10,6 +10,10 @@ preserve @@ -75,10 +75,10 @@ index 87a17935507..a88a9151cb6 100644 "stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n" "--\n" diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index e1576f809fa..1ea521478e7 100644 +index aa3d682a19b..102ba435d86 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c -@@ -219,6 +219,7 @@ +@@ -220,6 +220,7 @@ # if defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_SYSTEM) # define HAVE_SYMLINK # endif /* MS_WINDOWS_DESKTOP | MS_WINDOWS_SYSTEM */ @@ -87,10 +87,10 @@ index e1576f809fa..1ea521478e7 100644 diff --git a/PC/pyconfig.h b/PC/pyconfig.h -index 710a737ebcc..92d327b1e35 100644 +index a126fca6f5a..8332de4afb4 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h -@@ -235,8 +235,6 @@ typedef _W64 int Py_ssize_t; +@@ -240,8 +240,6 @@ typedef _W64 int Py_ssize_t; #endif #endif /* MS_WIN32 && !MS_WIN64 */ @@ -100,7 +100,7 @@ index 710a737ebcc..92d327b1e35 100644 #if _MSC_VER >= 1200 /* This file only exists in VC 6.0 or higher */ diff --git a/Python/remote_debug.h b/Python/remote_debug.h -index 8f9b6cd4c49..20cd65dd818 100644 +index 7628fb04ba5..398c91c0470 100644 --- a/Python/remote_debug.h +++ b/Python/remote_debug.h @@ -28,6 +28,9 @@ extern "C" { diff --git a/recipe/patches/0025-Unvendor-zstd.patch b/recipe/patches/0025-Unvendor-zstd.patch index b7b496249..d258ba066 100644 --- a/recipe/patches/0025-Unvendor-zstd.patch +++ b/recipe/patches/0025-Unvendor-zstd.patch @@ -1,4 +1,4 @@ -From 0c0f398f475a9d61fbec7e004647299cd7e9e049 Mon Sep 17 00:00:00 2001 +From afc1b0812b94fbb4ada518031f0c518c526f932e Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 22 Jul 2025 18:07:54 +0200 Subject: [PATCH 25/26] Unvendor zstd diff --git a/recipe/patches/0026-Set-Py_GIL_DISABLED-in-windows-to-match-unix.patch b/recipe/patches/0026-Set-Py_GIL_DISABLED-in-windows-to-match-unix.patch index 32c34f568..523b2d3c1 100644 --- a/recipe/patches/0026-Set-Py_GIL_DISABLED-in-windows-to-match-unix.patch +++ b/recipe/patches/0026-Set-Py_GIL_DISABLED-in-windows-to-match-unix.patch @@ -1,4 +1,4 @@ -From bdffefd91e576916a70808069885b1c33d6b4f62 Mon Sep 17 00:00:00 2001 +From 6a769cac72e65980185dbc12c76655656fea19ad Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 2 Dec 2025 09:46:56 -0800 Subject: [PATCH 26/26] Set Py_GIL_DISABLED in windows to match unix @@ -11,10 +11,10 @@ luxury of not having to do that. 1 file changed, 2 insertions(+) diff --git a/PC/pyconfig.h b/PC/pyconfig.h -index 92d327b1e35..ed0d9c0592b 100644 +index 8332de4afb4..45744078c1b 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h -@@ -105,6 +105,8 @@ WIN32 is still required for the locale module. +@@ -110,6 +110,8 @@ WIN32 is still required for the locale module. #if Py_GIL_DISABLED == 0 #undef Py_GIL_DISABLED #endif diff --git a/recipe/run_test.py b/recipe/run_test.py index d53c4a388..6b6473899 100644 --- a/recipe/run_test.py +++ b/recipe/run_test.py @@ -102,8 +102,8 @@ import ssl print('OPENSSL_VERSION:', ssl.OPENSSL_VERSION) -CONDA_OPENSSL_VERSION = os.getenv('openssl').split(".")[0] -assert CONDA_OPENSSL_VERSION in ssl.OPENSSL_VERSION +CONDA_OPENSSL_VERSION = os.getenv('openssl') +assert CONDA_OPENSSL_VERSION in ssl.OPENSSL_VERSION, f"{CONDA_OPENSSL_VERSION} not found in {ssl.OPENSSL_VERSION}" # See https://github.com/conda-forge/python-feedstock/issues/718 for context: assert sys.hash_info.algorithm.startswith("siphash") diff --git a/recipe/tests/cmake/CMakeLists.txt b/recipe/tests/cmake/CMakeLists.txt index a13e20ae1..f3e41560c 100644 --- a/recipe/tests/cmake/CMakeLists.txt +++ b/recipe/tests/cmake/CMakeLists.txt @@ -1,16 +1,10 @@ -# https://martinopilia.com/posts/2018/09/15/building-python-extension.html -# FindPythonInterp and FindPythonLibs are deprecated since cmake 3.12 -# These can be replaced by find_package(Python ${PY_VER} REQUIRED) -# But these are still used by other packages, so we keep them. +# https://scikit-build-core.readthedocs.io/en/latest/guide/cmakelists.html#finding-python cmake_minimum_required(VERSION 3.10) enable_language(C) project(mymath) -option(PY_VER, "Python version to use") +option(PY_VER "Python version to use") +option(EXTRA_COMPONENTS "Additional Python components to check for") -find_package(PythonInterp ${PY_VER} REQUIRED) -# PATHS $ENV{CONDA_PREFIX} - -# This goes after, since it uses PythonInterp as hint -find_package(PythonLibs ${PY_VER} REQUIRED) +find_package(Python ${PY_VER} COMPONENTS Interpreter ${EXTRA_COMPONENTS} REQUIRED) diff --git a/recipe/tests/prefix-replacement/build-and-test.sh b/recipe/tests/prefix-replacement/build-and-test.sh index 633b741a3..d710bde75 100644 --- a/recipe/tests/prefix-replacement/build-and-test.sh +++ b/recipe/tests/prefix-replacement/build-and-test.sh @@ -2,46 +2,47 @@ set -ex -if [[ "$PKG_NAME" == "libpython-static" ]]; then - # see bpo44182 for why -L${CONDA_PREFIX}/lib is added - ${CC} a.c $(python3-config --cflags) $(python3-config --embed --ldflags) -L${CONDA_PREFIX}/lib -o ${CONDA_PREFIX}/bin/embedded-python-static - if [[ "$target_platform" == linux-* ]]; then - if ${READELF} -d ${CONDA_PREFIX}/bin/embedded-python-static | rg libpython; then - echo "ERROR :: Embedded python linked to shared python library. It is expected to link to the static library." - fi - elif [[ "$target_platform" == osx-* ]]; then - if ${OTOOL} -l ${CONDA_PREFIX}/bin/embedded-python-static | rg libpython; then - echo "ERROR :: Embedded python linked to shared python library. It is expected to link to the static library." - fi - fi - ${CONDA_PREFIX}/bin/embedded-python-static - - # I thought this would prefer the shared library for Python. I was wrong: - # EMBED_LDFLAGS=$(python3-config --ldflags) - # re='^(.*)(-lpython[^ ]*)(.*)$' - # if [[ ${EMBED_LDFLAGS} =~ $re ]]; then - # EMBED_LDFLAGS="${BASH_REMATCH[1]} ${BASH_REMATCH[3]} -Wl,-Bdynamic ${BASH_REMATCH[2]}" - # fi - # ${CC} a.c $(python3-config --cflags) ${EMBED_LDFLAGS} -o ${CONDA_PREFIX}/bin/embedded-python-shared +case ${PKG_NAME} in + libpython) + # see bpo44182 for why -L${CONDA_PREFIX}/lib is added + ${CC} a.c $(python3-config --cflags) \ + $(python3-config --embed --ldflags) \ + -L${CONDA_PREFIX}/lib -Wl,-rpath,${CONDA_PREFIX}/lib \ + -o ${CONDA_PREFIX}/bin/embedded-python-shared - # Brute-force way of linking to the shared library, sorry! - rm -rf ${CONDA_PREFIX}/lib/libpython*.a -fi + if [[ "$target_platform" == linux-* ]]; then + if ! ${READELF} -d ${CONDA_PREFIX}/bin/embedded-python-shared | rg libpython; then + echo "ERROR :: Embedded python linked to static python library. We tried to force it to use the shared library." + fi + elif [[ "$target_platform" == osx-* ]]; then + if ! ${OTOOL} -l ${CONDA_PREFIX}/bin/embedded-python-shared | rg libpython; then + echo "ERROR :: Embedded python linked to static python library. We tried to force it to use the shared library." + fi + fi + ${CONDA_PREFIX}/bin/embedded-python-shared + ;; -${CC} a.c $(python3-config --cflags) \ - $(python3-config --embed --ldflags) \ - -L${CONDA_PREFIX}/lib -Wl,-rpath,${CONDA_PREFIX}/lib \ - -o ${CONDA_PREFIX}/bin/embedded-python-shared + libpython-static) + ${CC} a.c $(python3-config --cflags) \ + $(python3-config --embed --ldflags) \ + -L${CONDA_PREFIX}/lib -Wl,-rpath,${CONDA_PREFIX}/lib \ + -o ${CONDA_PREFIX}/bin/embedded-python-static + if [[ "$target_platform" == linux-* ]]; then + if ${READELF} -d ${CONDA_PREFIX}/bin/embedded-python-static | rg libpython; then + echo "ERROR :: Embedded python linked to shared python library. It is expected to link to the static library." + fi + elif [[ "$target_platform" == osx-* ]]; then + if ${OTOOL} -l ${CONDA_PREFIX}/bin/embedded-python-static | rg libpython; then + echo "ERROR :: Embedded python linked to shared python library. It is expected to link to the static library." + fi + fi + ${CONDA_PREFIX}/bin/embedded-python-static + ;; -if [[ "$target_platform" == linux-* ]]; then - if ! ${READELF} -d ${CONDA_PREFIX}/bin/embedded-python-shared | rg libpython; then - echo "ERROR :: Embedded python linked to static python library. We tried to force it to use the shared library." - fi -elif [[ "$target_platform" == osx-* ]]; then - if ! ${OTOOL} -l ${CONDA_PREFIX}/bin/embedded-python-shared | rg libpython; then - echo "ERROR :: Embedded python linked to static python library. We tried to force it to use the shared library." - fi -fi -${CONDA_PREFIX}/bin/embedded-python-shared + *) + # invalid package + exit 1 + ;; +esac set +x
VariantStatus
linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - - variant - -
linux_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - - variant - -
linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - - variant - -
linux_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes - - variant - -
linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - - variant - -
linux_aarch64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - - variant - -
linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - - variant - -
linux_aarch64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes - - variant - -
linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno - - variant - -
linux_ppc64le_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes - - variant - -
linux_ppc64le_build_typereleasechannel_targetsconda-forge_mainfreethreadingno - - 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_debugfreethreadingnoosx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingno - variant + variant
osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyesosx_64_build_typedebugchannel_targetsconda-forge_python_dev_debugfreethreadingyes - variant + variant
osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingnoosx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingno - variant + variant
osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyesosx_64_build_typereleasechannel_targetsconda-forge_python_devfreethreadingyes - variant + variant