diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index 53c8548d6..0f53d9b4c 100644 --- a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml index 90e346d70..aaa11910b 100644 --- a/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/osx_64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index eafd3c5c2..78aa874c5 100644 --- a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml index 375254106..3919c826b 100644 --- a/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/osx_64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml index d478a9687..39342566a 100644 --- a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingno.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml index 4de2bb1b6..c1e4581fe 100644 --- a/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml +++ b/.ci_support/osx_arm64_build_typedebugchannel_targetsconda-forge_python_debugfreethreadingyes.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml index 6a27cf528..c3655d647 100644 --- a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingno.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml index 40032eca1..f9b22c690 100644 --- a/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml +++ b/.ci_support/osx_arm64_build_typereleasechannel_targetsconda-forge_mainfreethreadingyes.yaml @@ -1,5 +1,3 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' MACOSX_SDK_VERSION: - '11.0' build_type: diff --git a/.gitattributes b/.gitattributes index 85ccb8f4f..79144109a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,18 +8,11 @@ bld.bat text eol=crlf # github helper pieces to make some files not show up in diffs automatically .azure-pipelines/* linguist-generated=true -.circleci/* linguist-generated=true .ci_support/README linguist-generated=true -.drone/* linguist-generated=true -.drone.yml linguist-generated=true .github/* linguist-generated=true -.travis/* linguist-generated=true -.appveyor.yml linguist-generated=true .gitattributes linguist-generated=true .gitignore linguist-generated=true -.travis.yml linguist-generated=true .scripts/* linguist-generated=true -.woodpecker.yml linguist-generated=true /LICENSE.txt linguist-generated=true /README.md linguist-generated=true azure-pipelines.yml linguist-generated=true diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index da447dcc0..203d608a4 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -272,6 +272,8 @@ jobs: run: | if [[ "$(uname -m)" == "x86_64" ]]; then docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + elif [[ "$(uname -m)" == "aarch64" ]]; then + docker run --rm --privileged --entrypoint /opt/docker/bin/register-binfmt ${{ matrix.DOCKER_IMAGE }} aarch64 fi - name: Build on Linux diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 28dfd13df..76c2b336a 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -9,17 +9,23 @@ set -xeuo pipefail export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" +# ensure absolute path +FEEDSTOCK_ROOT=$(cd "${FEEDSTOCK_ROOT}"; pwd) source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh ( endgroup "Start Docker" ) 2> /dev/null -( startgroup "Configuring conda" ) 2> /dev/null +( startgroup "Configuring build environment" ) 2> /dev/null +MINIFORGE_HOME=/opt/conda export PYTHONUNBUFFERED=1 export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" +# ensure absolute path +RECIPE_ROOT=$(cd "${RECIPE_ROOT}"; pwd) export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" +export PIXI_CACHE_DIR="${MINIFORGE_HOME}" 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 \ + +( endgroup "Configuring build environment" ) 2> /dev/null + +( startgroup "Provisioning base env with micromamba" ) 2> /dev/null + +MAMBA_ROOT_PREFIX=~/.conda +MICROMAMBA_EXE=micromamba + +echo Creating environment +mv "${MINIFORGE_HOME}"/conda-meta/history "${MINIFORGE_HOME}"/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S) +echo > "${MINIFORGE_HOME}"/conda-meta/history +"${MICROMAMBA_EXE}" install --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ + --override-channels --channel conda-forge --strict-channel-priority \ pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" + +( endgroup "Provisioning base env with micromamba" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -# set up the condarc + + +# Set basic configuration +echo Setting up configuration setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" +# Linux-specific setup +echo Running build setup source run_conda_forge_build_setup -# make the build number clobber -make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi @@ -57,7 +78,8 @@ fi ( endgroup "Configuring conda" ) 2> /dev/null if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then - cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" + echo Copying feedstock license + cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then @@ -69,48 +91,49 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # - none vs. --target-platform CONDA_SUBDIR="${BUILD_PLATFORM}" conda debug \ "${RECIPE_ROOT}" \ - -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + -m "${CONFIG_FILE}" \ ${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 - # 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_SUBDIR="${BUILD_PLATFORM}" 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 +fi - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" +# Build the recipe +echo Building recipe - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null +# 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 - validate_recipe_outputs "${FEEDSTOCK_NAME}" +CONDA_SUBDIR="${BUILD_PLATFORM}" conda-build \ + "${RECIPE_ROOT}" \ + -m "${CONFIG_FILE}" \ + ${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:-}" - ( endgroup "Validating outputs" ) 2> /dev/null +( startgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Uploading packages" ) 2> /dev/null +# inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 +command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - fi +( endgroup "Inspecting artifacts" ) 2> /dev/null +( startgroup "Validating outputs" ) 2> /dev/null +validate_recipe_outputs "${FEEDSTOCK_NAME}" +( endgroup "Validating outputs" ) 2> /dev/null +if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then + ( startgroup "Uploading packages" ) 2> /dev/null + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" ( endgroup "Uploading packages" ) 2> /dev/null fi -( startgroup "Final checks" ) 2> /dev/null +( startgroup "Leaving the Docker container" ) 2> /dev/null touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index aff009f0c..c39888ea7 100755 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -10,9 +10,6 @@ function startgroup { case ${CI:-} in azure ) echo "##[group]$1";; - travis ) - echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -27,8 +24,6 @@ function endgroup { case ${CI:-} in azure ) echo "##[endgroup]";; - travis ) - echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 17d983f11..4715f5df4 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -84,9 +84,9 @@ 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}" + # Fix file permissions for rootless podman builds. In addition to `recipe/` + # and `build_artifacts`, `.scripts` also needs to be available in the container. + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${FEEDSTOCK_ROOT}" # Add SELinux label only if enforcing if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then @@ -143,4 +143,4 @@ ${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ test -f "$DONE_CANARY" # This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null +( endgroup "Leaving the Docker container" ) 2> /dev/null diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index aff5569d0..9a08751fe 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,139 +1,178 @@ #!/usr/bin/env bash +# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here +# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent +# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also +# benefit from the improvement. + # -*- mode: jinja-shell -*- -source .scripts/logging_utils.sh +set -xeuo pipefail +export FEEDSTOCK_ROOT=${PWD} +source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh + -set -xe +( startgroup "Configuring build environment" ) 2> /dev/null MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" +export RECIPE_ROOT="recipe" +# ensure absolute path +RECIPE_ROOT=$(cd "${RECIPE_ROOT}"; pwd) +export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" +export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" +export PIXI_CACHE_DIR="${MINIFORGE_HOME}" +export RATTLER_CACHE_DIR="${CONDA_BLD_PATH}/pkg_cache" + +( endgroup "Configuring build environment" ) 2> /dev/null + +arch=$(uname -m) +if [[ "${arch}" == "x86_64" ]]; then + arch="64" +fi ( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" -fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" + MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" +MICROMAMBA_VERSION="2.9.0-0" +MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-osx-${arch}" +MICROMAMBA_TMPDIR=$(mktemp -d) +MICROMAMBA_EXE=${MICROMAMBA_TMPDIR}/micromamba + echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -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.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" +curl -L -o "${MICROMAMBA_EXE}" "${MICROMAMBA_URL}" +chmod +x "${MICROMAMBA_EXE}" + +echo Creating environment +"${MICROMAMBA_EXE}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ + --override-channels --channel conda-forge --strict-channel-priority \ + pip python=3.14 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" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true + +echo Cleaning up micromamba +rm -rf "${MAMBA_ROOT_PREFIX}" "${MICROMAMBA_EXE}" || : + ( endgroup "Provisioning base env with micromamba" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" + +# Activate the base conda environment +echo Activating environment source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" conda activate base +# Configure the solver export CONDA_SOLVER="libmamba" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 +# Set basic configuration +echo Setting up configuration +setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -echo -e "\n\nSetting up the condarc and mangling the compiler." -setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - +# macOS-specific setup if [[ "${CI:-}" != "" ]]; then - mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml + mangle_compiler "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" fi if [[ "${CI:-}" != "" ]]; then - echo -e "\n\nMangling homebrew in the CI to avoid conflicts." - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k + echo "Mangling homebrew in the CI to avoid conflicts." + /usr/bin/sudo mangle_homebrew + /usr/bin/sudo -k else - echo -e "\n\nNot mangling homebrew as we are not running in CI" + echo "Not mangling homebrew as we are not running in CI" fi if [[ "${sha:-}" == "" ]]; then - sha=$(git rev-parse HEAD) + 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 + 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 + 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." +echo Running build setup source run_conda_forge_build_setup -( endgroup "Configuring conda" ) 2> /dev/null +if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" +fi -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml -if [[ -f LICENSE.txt ]]; then - cp LICENSE.txt "recipe/recipe-scripts-license.txt" +( endgroup "Configuring conda" ) 2> /dev/null + +if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then + echo Copying feedstock license + cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" 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_SUBDIR="${BUILD_PLATFORM}" conda debug ./recipe -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_SUBDIR="${BUILD_PLATFORM}" conda debug \ + "${RECIPE_ROOT}" \ + -m "${CONFIG_FILE}" \ ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + ${BUILD_OUTPUT_ID:+--output-id "${BUILD_OUTPUT_ID}"} \ + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" # Drop into an interactive shell /bin/bash -else - - if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" - fi +fi - CONDA_SUBDIR="${BUILD_PLATFORM}" conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" +# Build the recipe +echo Building recipe - ( startgroup "Inspecting artifacts" ) 2> /dev/null +# 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 - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" +CONDA_SUBDIR="${BUILD_PLATFORM}" conda-build \ + "${RECIPE_ROOT}" \ + -m "${CONFIG_FILE}" \ + ${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:-}" - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null +( startgroup "Inspecting artifacts" ) 2> /dev/null - validate_recipe_outputs "${FEEDSTOCK_NAME}" +# inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 +command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - ( endgroup "Validating outputs" ) 2> /dev/null +( endgroup "Inspecting artifacts" ) 2> /dev/null +( startgroup "Validating outputs" ) 2> /dev/null +validate_recipe_outputs "${FEEDSTOCK_NAME}" +( endgroup "Validating outputs" ) 2> /dev/null +if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml - fi - + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" ( endgroup "Uploading packages" ) 2> /dev/null fi diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index e11c3ecf8..bb04aa492 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -16,10 +16,20 @@ FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" :: Remove trailing backslash, if present if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" + +set FEEDSTOCK_ROOT=%cd% +set RECIPE_ROOT=%FEEDSTOCK_ROOT%\recipe +set CI_SUPPORT=%FEEDSTOCK_ROOT%\.ci_support +set CONFIG_FILE=%CI_SUPPORT%\%CONFIG%.yaml + +set "arch=64" +if "%PROCESSOR_ARCHITECTURE%"=="ARM64" set "arch=arm64" + call :start_group "Provisioning base env with micromamba" + set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" -set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" +set "MICROMAMBA_VERSION=2.9.0-0" +set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-%arch%" set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" @@ -33,9 +43,11 @@ call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefi --channel conda-forge ^ pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" if !errorlevel! neq 0 exit /b !errorlevel! -echo Removing %MAMBA_ROOT_PREFIX% + +echo Cleaning up micromamba del /S /Q "%MAMBA_ROOT_PREFIX%" >nul del /S /Q "%MICROMAMBA_TMPDIR%" >nul + call :end_group call :start_group "Configuring conda" @@ -51,17 +63,18 @@ set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" :: Set basic configuration echo Setting up configuration -setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml -if !errorlevel! neq 0 exit /b !errorlevel! -echo Running build setup +setup_conda_rc "%FEEDSTOCK_ROOT%" "%RECIPE_ROOT%" "%CONFIG_FILE%" +if !errorlevel! neq 0 exit /b !errorlevel!echo Running build setup CALL run_conda_forge_build_setup if !errorlevel! neq 0 exit /b !errorlevel! -if EXIST LICENSE.txt ( +call :end_group + +if EXIST %FEEDSTOCK_ROOT%\LICENSE.txt ( echo Copying feedstock license - copy LICENSE.txt "recipe\\recipe-scripts-license.txt" + copy "%FEEDSTOCK_ROOT%\\LICENSE.txt" "%RECIPE_ROOT%\\recipe-scripts-license.txt" ) if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( if [%CROSSCOMPILING_EMULATOR%] == [] ( @@ -73,20 +86,22 @@ if NOT [%flow_run_id%] == [] ( set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" ) -call :end_group - :: Build the recipe echo Building recipe -set "_OLD_CONDA_SUBDIR=%CONDA_SUBDIR%" -set "CONDA_SUBDIR=%BUILD_PLATFORM%" -conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% + +conda-build.exe ^ + "%RECIPE_ROOT%" ^ + -m %CONFIG_FILE% ^ + %EXTRA_CB_OPTIONS% ^ + --suppress-variables + if !errorlevel! neq 0 exit /b !errorlevel! -set "_OLD_CONDA_SUBDIR=" -set "CONDA_SUBDIR=%_OLD_CONDA_SUBDIR%" call :start_group "Inspecting artifacts" + :: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir "%RECIPE_ROOT%" -m %CONFIG_FILE% || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + call :end_group :: Prepare some environment variables for the upload step @@ -110,8 +125,6 @@ if /i "%CI%" == "azure" ( ) set "TEMP=%UPLOAD_TEMP%" ) - -:: Validate call :start_group "Validating outputs" validate_recipe_outputs "%FEEDSTOCK_NAME%" if !errorlevel! neq 0 exit /b !errorlevel! @@ -122,7 +135,7 @@ if /i "%UPLOAD_PACKAGES%" == "true" ( call :start_group "Uploading packages" if not exist "%TEMP%\" md "%TEMP%" set "TMP=%TEMP%" - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml + upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" "%FEEDSTOCK_ROOT%" "%RECIPE_ROOT%" "%CONFIG_FILE%" if !errorlevel! neq 0 exit /b !errorlevel! call :end_group ) diff --git a/README.md b/README.md index 1756faa73..d3440d56e 100644 --- a/README.md +++ b/README.md @@ -145,10 +145,10 @@ Current release info Installing python ================= -Installing `python` from the `conda-forge/label/python_debug` channel can be achieved by adding `conda-forge/label/python_debug` to your channels with: +Installing `python` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` -conda config --add channels conda-forge/label/python_debug +conda config --add channels conda-forge conda config --set channel_priority strict ``` @@ -194,7 +194,7 @@ It is possible to list all of the versions of `cpython` available on your platfo With conda ``` -conda search cpython --channel conda-forge/label/python_debug +conda search cpython --channel conda-forge ``` @@ -203,7 +203,7 @@ conda search cpython --channel conda-forge/label/python_debug With mamba ``` -mamba search cpython --channel conda-forge/label/python_debug +mamba search cpython --channel conda-forge ``` @@ -212,7 +212,7 @@ mamba search cpython --channel conda-forge/label/python_debug With pixi ``` -pixi search cpython --channel conda-forge/label/python_debug +pixi search cpython --channel conda-forge ``` @@ -222,18 +222,19 @@ pixi search cpython --channel conda-forge/label/python_debug ``` # Search all versions available on your platform: -mamba repoquery search cpython --channel conda-forge/label/python_debug +mamba repoquery search cpython --channel conda-forge # List packages depending on `cpython`: -mamba repoquery whoneeds cpython --channel conda-forge/label/python_debug +mamba repoquery whoneeds cpython --channel conda-forge # List dependencies of `cpython`: -mamba repoquery depends cpython --channel conda-forge/label/python_debug +mamba repoquery depends cpython --channel conda-forge ``` + About conda-forge ================= @@ -248,9 +249,7 @@ for each of the installable packages. Such a repository is known as a *feedstock A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by -[Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), -[CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), -[Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) +[Azure](https://azure.microsoft.com/en-us/services/devops/) and [GitHub](https://github.com/) it is possible to build and upload installable packages to the [conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) channel for Linux, Windows and OSX respectively. diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 44247e152..2472e7ec9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,10 +1,10 @@ -{% set version = "3.15.0" %} +{% set version = "3.15.1" %} {% set dev = "" %} {% set dev_ = "" %} {% set ver2 = '.'.join(version.split('.')[0:2]) %} {% set ver2nd = ''.join(version.split('.')[0:2]) %} {% set ver3nd = ''.join(version.split('.')[0:3]) %} -{% set build_number = 1 %} +{% set build_number = 0 %} # this makes the linter happy {% set channel_targets = channel_targets or 'conda-forge main' %} @@ -64,7 +64,7 @@ package: source: - url: https://www.python.org/ftp/python/{{ version }}/Python-{{ version }}{{ dev }}.tar.xz # sha256 from: https://www.python.org/downloads/release/python-{{ ver3nd }}{{ dev }}/ - sha256: ba4bed1ba346b916890b76d9e320451420aa69f6408997d33c66482eeae3d575 + sha256: 673ae7232d84c894729882c8257d300ef2d26523911bfd3917ec8ce7f526f99b patches: - patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch - patches/0002-Win32-Do-not-download-externals.patch 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 99df4898b..882fdb80c 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 e80a91ba5dfc80520d7611b65f84bbc21463ade2 Mon Sep 17 00:00:00 2001 +From 027db1a4a6b619ab700f8073a00d31463d5f3ce0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:53:55 +0100 Subject: [PATCH 01/28] Win32: Change FD_SETSIZE from 512 to 2048 diff --git a/recipe/patches/0002-Win32-Do-not-download-externals.patch b/recipe/patches/0002-Win32-Do-not-download-externals.patch index d444ebef3..a687599c6 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 4e10f8e9863f366e317fb8417d1c9cb9d06a95fa Mon Sep 17 00:00:00 2001 +From 841832e00c404aff8e0c0075948fcddb9ba1911c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 7 Sep 2017 11:35:47 +0100 Subject: [PATCH 02/28] Win32: Do not download externals 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 5b944270b..89e835e18 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 a9d4d43a85328a9d27bf6b7e330efb4fcdf6a3ab Mon Sep 17 00:00:00 2001 +From 2edc4215fd5230ca1537a34d0512d8e2e2ba59e3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 5 Dec 2017 22:47:59 +0000 Subject: [PATCH 03/28] Fix find_library so that it looks in sys.prefix/lib 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 64d827d59..8e1ef619e 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 b8dbc160c4b4c40ee230d67cbde1cdaa18deef92 Mon Sep 17 00:00:00 2001 +From 0d8ff7e4fc3ee5c8f7ffd726596c39edf91e644c Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Oct 2018 18:48:30 +0100 Subject: [PATCH 04/28] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS @@ -11,10 +11,10 @@ Co-authored-by: Isuru Fernando 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/getpath.c b/Modules/getpath.c -index 1e75993480a..ff96c8e1990 100644 +index ada8a27be4c..88252adf91d 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c -@@ -937,6 +937,7 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config) +@@ -939,6 +939,7 @@ _PyConfig_InitPathConfig(PyConfig *config, int compute_path_config) !env_to_dict(dict, "ENV_PATH", 0) || !env_to_dict(dict, "ENV_PYTHONHOME", 0) || !env_to_dict(dict, "ENV_PYTHONEXECUTABLE", 0) || @@ -23,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 c322d5c4b4c..e237c58d6bc 100644 +index f5f928f1795..a809396a3a4 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -52,6 +52,7 @@ @@ -34,7 +34,7 @@ index c322d5c4b4c..e237c58d6bc 100644 # ** Values calculated at runtime ** # config -- [in/out] dict of the PyConfig structure -@@ -699,7 +700,7 @@ def search_up(prefix, *landmarks, test=isfile): +@@ -703,7 +704,7 @@ def search_up(prefix, *landmarks, test=isfile): stdlib_zip = joinpath(base_prefix, ZIP_LANDMARK) pythonpath.append(stdlib_zip) diff --git a/recipe/patches/0005-Unvendor-openssl.patch b/recipe/patches/0005-Unvendor-openssl.patch index 649c56ca7..35e3c6c8f 100644 --- a/recipe/patches/0005-Unvendor-openssl.patch +++ b/recipe/patches/0005-Unvendor-openssl.patch @@ -1,4 +1,4 @@ -From 983fa397e88ff375dc0ab65a4e1fabd2bbec1e85 Mon Sep 17 00:00:00 2001 +From 311c5d3d3f678fae946b3a6d94fb91a05226f558 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sat, 24 Nov 2018 20:38:02 -0600 Subject: [PATCH 05/28] Unvendor openssl diff --git a/recipe/patches/0006-Unvendor-sqlite3.patch b/recipe/patches/0006-Unvendor-sqlite3.patch index 3d3031a0f..1f333c786 100644 --- a/recipe/patches/0006-Unvendor-sqlite3.patch +++ b/recipe/patches/0006-Unvendor-sqlite3.patch @@ -1,4 +1,4 @@ -From bb643b537c9d024a1a7b92c8ed9d9293742f937e Mon Sep 17 00:00:00 2001 +From f3487142ebee3e4eba2ba2d6837b1ff0ba60c441 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Tue, 5 Oct 2021 12:42:06 -0700 Subject: [PATCH 06/28] Unvendor sqlite3 diff --git a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch index e5e24257b..e0a47c99c 100644 --- a/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch +++ b/recipe/patches/0007-Add-CondaEcosystemModifyDllSearchPath.patch @@ -1,4 +1,4 @@ -From 36aeede5f2c50132eb76dfc8a522946ee1f7b4a2 Mon Sep 17 00:00:00 2001 +From 9ca62354a4fc9e4e040e6d23d9781132863661ee Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 24 Dec 2019 18:37:17 +0100 Subject: [PATCH 07/28] Add CondaEcosystemModifyDllSearchPath() diff --git a/recipe/patches/0008-Doing-d1trimfile.patch b/recipe/patches/0008-Doing-d1trimfile.patch index f822e83f4..5941109bb 100644 --- a/recipe/patches/0008-Doing-d1trimfile.patch +++ b/recipe/patches/0008-Doing-d1trimfile.patch @@ -1,4 +1,4 @@ -From 2f50cf21e33e951def4036664198f82d2dad1945 Mon Sep 17 00:00:00 2001 +From 997b757be705a59e9c2cb100414dabb9e8677259 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 31 Dec 2019 21:47:47 +0100 Subject: [PATCH 08/28] Doing d1trimfile @@ -164,7 +164,7 @@ index 3ba49370d58..921d22e47b3 100644 diff --git a/PCbuild/_elementtree.vcxproj b/PCbuild/_elementtree.vcxproj -index c102da85e9c..8d5117e804c 100644 +index cd8c1ff1731..c33e8e3c232 100644 --- a/PCbuild/_elementtree.vcxproj +++ b/PCbuild/_elementtree.vcxproj @@ -94,7 +94,11 @@ @@ -650,7 +650,7 @@ index 75d4e162346..d50534affa1 100644 diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index cf60976266e..91aa7e7bcc3 100644 +index ae9ad59197b..1858e9c60dd 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -92,6 +92,10 @@ diff --git a/recipe/patches/0009-cross-compile-darwin.patch b/recipe/patches/0009-cross-compile-darwin.patch index d836fdeba..3e6a20d38 100644 --- a/recipe/patches/0009-cross-compile-darwin.patch +++ b/recipe/patches/0009-cross-compile-darwin.patch @@ -1,4 +1,4 @@ -From 28a708a72e0842f8449a88d54e469120dc1e3bdd Mon Sep 17 00:00:00 2001 +From e907c26cabb5b057db06fc0790af24bf9cc72530 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 2 Oct 2020 00:03:12 +0200 Subject: [PATCH 09/28] cross compile darwin @@ -29,10 +29,10 @@ index 36489d4fdd9..37278847c0a 100644 try: import plistlib diff --git a/configure b/configure -index a68a98c5a4d..a7d9fa69814 100755 +index 5a728e8ba68..d03f7d1c341 100755 --- a/configure +++ b/configure -@@ -4155,6 +4155,9 @@ then +@@ -4157,6 +4157,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -42,7 +42,7 @@ index a68a98c5a4d..a7d9fa69814 100755 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -4638,6 +4641,9 @@ if test "$cross_compiling" = yes; then +@@ -4640,6 +4643,9 @@ if test "$cross_compiling" = yes; then esac ;; *-gnu) @@ -53,10 +53,10 @@ index a68a98c5a4d..a7d9fa69814 100755 ;; *-*-cygwin*) diff --git a/configure.ac b/configure.ac -index ed8b53dd3a4..cc9554e5b39 100644 +index 08cfd620afb..f57e87983d2 100644 --- a/configure.ac +++ b/configure.ac -@@ -333,6 +333,9 @@ then +@@ -339,6 +339,9 @@ then *-*-linux*) ac_sys_system=Linux ;; @@ -66,7 +66,7 @@ index ed8b53dd3a4..cc9554e5b39 100644 *-*-cygwin*) ac_sys_system=Cygwin ;; -@@ -786,6 +789,9 @@ if test "$cross_compiling" = yes; then +@@ -792,6 +795,9 @@ if test "$cross_compiling" = yes; then *-gnu) _host_ident=$host_cpu ;; diff --git a/recipe/patches/0010-Fix-TZPATH-on-windows.patch b/recipe/patches/0010-Fix-TZPATH-on-windows.patch index ed06c88bb..587f8899d 100644 --- a/recipe/patches/0010-Fix-TZPATH-on-windows.patch +++ b/recipe/patches/0010-Fix-TZPATH-on-windows.patch @@ -1,4 +1,4 @@ -From 74dff303650dc5b1dd5b4574236ce85bc23d79d1 Mon Sep 17 00:00:00 2001 +From f667dd9d5dbdf4a7922aadfe67336eacae185a0f Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 7 Oct 2020 10:08:30 -0500 Subject: [PATCH 10/28] Fix TZPATH on windows @@ -8,7 +8,7 @@ Subject: [PATCH 10/28] Fix TZPATH on windows 1 file changed, 2 insertions(+) diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py -index 4f8ebf15d36..1230a48208e 100644 +index b93155131c6..fc99cd14af2 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -175,6 +175,7 @@ def joinuser(*args): @@ -19,7 +19,7 @@ index 4f8ebf15d36..1230a48208e 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. -@@ -553,6 +554,7 @@ def _init_config_vars(): +@@ -554,6 +555,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 ab3614531..254442695 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 c0565bb53db8ca36d1b1d4b7115b7e29761244f9 Mon Sep 17 00:00:00 2001 +From d52ae57e1726f27db5a64a4c4b3e44db41352070 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 25 Jan 2021 03:28:08 -0600 Subject: [PATCH 11/28] Make dyld search work with SYSTEM_VERSION_COMPAT=1 diff --git a/recipe/patches/0012-Unvendor-bzip2.patch b/recipe/patches/0012-Unvendor-bzip2.patch index b41e2f1ba..15d5db0c1 100644 --- a/recipe/patches/0012-Unvendor-bzip2.patch +++ b/recipe/patches/0012-Unvendor-bzip2.patch @@ -1,4 +1,4 @@ -From 6a371e64f05b7d00b7c5d9b69474dd540f409f49 Mon Sep 17 00:00:00 2001 +From ec068b10b8bfdcec41b771aee0d2d54ccdd418d0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 02:56:27 -0700 Subject: [PATCH 12/28] Unvendor bzip2 diff --git a/recipe/patches/0013-Unvendor-libffi.patch b/recipe/patches/0013-Unvendor-libffi.patch index 86a8c0735..395fa9c77 100644 --- a/recipe/patches/0013-Unvendor-libffi.patch +++ b/recipe/patches/0013-Unvendor-libffi.patch @@ -1,4 +1,4 @@ -From 07e0db7f9b9e69930032f2959e3fdb2cb7d2fc71 Mon Sep 17 00:00:00 2001 +From b5096324b30574768431a2e715b5fd3cd0bef4f1 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 16 Aug 2021 03:07:40 -0700 Subject: [PATCH 13/28] Unvendor libffi diff --git a/recipe/patches/0014-Unvendor-tcltk.patch b/recipe/patches/0014-Unvendor-tcltk.patch index c2152191c..7b0b47384 100644 --- a/recipe/patches/0014-Unvendor-tcltk.patch +++ b/recipe/patches/0014-Unvendor-tcltk.patch @@ -1,4 +1,4 @@ -From 1076e2ba8bf7bb97eaed1a7e17a32ca2042fc541 Mon Sep 17 00:00:00 2001 +From a6b3f9fbd3ff890aaa66daabfa7eb98d7b4be9d9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 20 Aug 2021 10:23:51 -0700 Subject: [PATCH 14/28] Unvendor tcltk diff --git a/recipe/patches/0015-unvendor-xz.patch b/recipe/patches/0015-unvendor-xz.patch index a47c06579..0b66b785a 100644 --- a/recipe/patches/0015-unvendor-xz.patch +++ b/recipe/patches/0015-unvendor-xz.patch @@ -1,4 +1,4 @@ -From 3933e591a90f7535f6e8563537910865b83c9a0a Mon Sep 17 00:00:00 2001 +From 9440f6e9d0ba3a0d09c308f849bc53423d9ca683 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sat, 25 Sep 2021 10:07:05 -0700 Subject: [PATCH 15/28] unvendor xz diff --git a/recipe/patches/0016-unvendor-zlib.patch b/recipe/patches/0016-unvendor-zlib.patch index 34561d331..84c238111 100644 --- a/recipe/patches/0016-unvendor-zlib.patch +++ b/recipe/patches/0016-unvendor-zlib.patch @@ -1,4 +1,4 @@ -From 4ebb401825f40ab1c5e629c031f9ffa0a1b20f25 Mon Sep 17 00:00:00 2001 +From 1af2de9e26ec189a48ca483640f3875c892acbdf Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Sep 2021 15:21:55 -0700 Subject: [PATCH 16/28] unvendor zlib 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 2dd1027b1..59cdc5f35 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 f3caef43467711c00b6e03d574f52841946399a8 Mon Sep 17 00:00:00 2001 +From f8d5f03b28baad225ad496754deb63edb829e33f Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:45:28 +0100 Subject: [PATCH 17/28] 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 a7d9fa69814..3499d97f59e 100755 +index d03f7d1c341..d6da4cf6632 100755 --- a/configure +++ b/configure -@@ -5850,9 +5850,9 @@ if test $ac_test_CFLAGS; then +@@ -5852,9 +5852,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 a7d9fa69814..3499d97f59e 100755 fi else if test "$GCC" = yes; then -@@ -9769,7 +9769,7 @@ then +@@ -9771,7 +9771,7 @@ then if test "$Py_DEBUG" = 'true' ; then OPT="-g $PYDEBUG_CFLAGS -Wall" else @@ -35,10 +35,10 @@ index a7d9fa69814..3499d97f59e 100755 ;; *) diff --git a/configure.ac b/configure.ac -index cc9554e5b39..8b818a7a7d7 100644 +index f57e87983d2..7cbb5f3d524 100644 --- a/configure.ac +++ b/configure.ac -@@ -2384,7 +2384,7 @@ then +@@ -2390,7 +2390,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 871dfd3e1..0984e39df 100644 --- a/recipe/patches/0018-Unvendor-expat.patch +++ b/recipe/patches/0018-Unvendor-expat.patch @@ -1,20 +1,20 @@ -From 142e405db68dfe97487161e84a3fc987a64c8d94 Mon Sep 17 00:00:00 2001 +From 45aeefe8050575d35362bd2589df21bc85ed1da0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Mar 2023 23:07:10 -0500 Subject: [PATCH 18/28] Unvendor expat --- - PCbuild/_elementtree.vcxproj | 27 ++---------- - PCbuild/_elementtree.vcxproj.filters | 62 ---------------------------- - PCbuild/pyexpat.vcxproj | 15 ++----- - PCbuild/pyexpat.vcxproj.filters | 26 ------------ - 4 files changed, 8 insertions(+), 122 deletions(-) + PCbuild/_elementtree.vcxproj | 29 ++---------- + PCbuild/_elementtree.vcxproj.filters | 68 ---------------------------- + PCbuild/pyexpat.vcxproj | 17 ++----- + PCbuild/pyexpat.vcxproj.filters | 32 ------------- + 4 files changed, 8 insertions(+), 138 deletions(-) diff --git a/PCbuild/_elementtree.vcxproj b/PCbuild/_elementtree.vcxproj -index 8d5117e804c..f47bcd8e4e6 100644 +index c33e8e3c232..f47bcd8e4e6 100644 --- a/PCbuild/_elementtree.vcxproj +++ b/PCbuild/_elementtree.vcxproj -@@ -93,38 +93,19 @@ +@@ -93,40 +93,19 @@ @@ -46,11 +46,13 @@ index 8d5117e804c..f47bcd8e4e6 100644 - - - +- - - - +- - - - @@ -58,10 +60,10 @@ index 8d5117e804c..f47bcd8e4e6 100644 diff --git a/PCbuild/_elementtree.vcxproj.filters b/PCbuild/_elementtree.vcxproj.filters -index 9e2e062af3f..88a13faa683 100644 +index 2ce694e1b53..88a13faa683 100644 --- a/PCbuild/_elementtree.vcxproj.filters +++ b/PCbuild/_elementtree.vcxproj.filters -@@ -17,72 +17,10 @@ +@@ -17,78 +17,10 @@ {f99990ba-cd06-40cc-8f28-d2d424ec13be} @@ -111,6 +113,9 @@ index 9e2e062af3f..88a13faa683 100644 - - Header Files\expat - +- +- Header Files\expat +- - - Header Files\expat - @@ -122,6 +127,9 @@ index 9e2e062af3f..88a13faa683 100644 Source Files +- +- Source Files\expat +- - - Source Files\expat - @@ -135,10 +143,10 @@ index 9e2e062af3f..88a13faa683 100644 diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj -index 91aa7e7bcc3..8bc1bcec7e8 100644 +index 1858e9c60dd..8bc1bcec7e8 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj -@@ -90,26 +90,19 @@ +@@ -90,28 +90,19 @@ @@ -158,11 +166,13 @@ index 91aa7e7bcc3..8bc1bcec7e8 100644 - - - +- - - - +- - - - @@ -170,10 +180,10 @@ index 91aa7e7bcc3..8bc1bcec7e8 100644 diff --git a/PCbuild/pyexpat.vcxproj.filters b/PCbuild/pyexpat.vcxproj.filters -index e63cb9c6306..b8280b4049c 100644 +index baa06e4491f..b8280b4049c 100644 --- a/PCbuild/pyexpat.vcxproj.filters +++ b/PCbuild/pyexpat.vcxproj.filters -@@ -11,36 +11,10 @@ +@@ -11,42 +11,10 @@ {f1dbbdb5-41e5-4a88-bf8e-13da010c0ce4} @@ -187,6 +197,9 @@ index e63cb9c6306..b8280b4049c 100644 - - Header Files - +- +- Header Files +- - - Header Files - @@ -198,6 +211,9 @@ index e63cb9c6306..b8280b4049c 100644 Source Files +- +- Source Files +- - - Source Files - diff --git a/recipe/patches/0019-Remove-unused-readelf.patch b/recipe/patches/0019-Remove-unused-readelf.patch index 8d8375bfd..9cc56f636 100644 --- a/recipe/patches/0019-Remove-unused-readelf.patch +++ b/recipe/patches/0019-Remove-unused-readelf.patch @@ -1,4 +1,4 @@ -From 31fb51fce82a41045088413235048934aa1ab097 Mon Sep 17 00:00:00 2001 +From f3483880947df825a5a5f66b24c2b74da7fc7a58 Mon Sep 17 00:00:00 2001 From: Charles Bousseau Date: Thu, 25 May 2023 17:56:53 -0400 Subject: [PATCH 19/28] 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 965244d8d2d..f46a928c041 100644 +index f24b41db6f0..524f59dc81d 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 d6b41eb4c..64ae9281d 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 9ecec5ae34fd97920b9fcc5bf37f5a1a7c66d2a1 Mon Sep 17 00:00:00 2001 +From 98a91639271b1810c9be645ca41057f7d9a62dd8 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 1 Sep 2023 23:32:14 +0200 Subject: [PATCH 20/28] Don't checksharedmods if cross-compiling @@ -10,10 +10,10 @@ Subject: [PATCH 20/28] Don't checksharedmods if cross-compiling create mode 100755 if_runnable.sh diff --git a/Makefile.pre.in b/Makefile.pre.in -index f46a928c041..959a60a2545 100644 +index 524f59dc81d..ed3ad2f4f05 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1634,7 +1634,7 @@ checksharedmods: sharedmods $(PYTHON_FOR_BUILD_DEPS) $(BUILDPYTHON) +@@ -1638,7 +1638,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 diff --git a/recipe/patches/0021-Override-configure-LIBFFI.patch b/recipe/patches/0021-Override-configure-LIBFFI.patch index 790365347..76ff98bbf 100644 --- a/recipe/patches/0021-Override-configure-LIBFFI.patch +++ b/recipe/patches/0021-Override-configure-LIBFFI.patch @@ -1,4 +1,4 @@ -From bf44251585023e9c0ede75d899c87e4484cd3d15 Mon Sep 17 00:00:00 2001 +From f69e684cd2027f789e7e0fe00911f11ec270b832 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 5 Sep 2023 21:51:31 +0200 Subject: [PATCH 21/28] Override configure LIBFFI @@ -8,10 +8,10 @@ Subject: [PATCH 21/28] Override configure LIBFFI 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index 3499d97f59e..9dfc1191b20 100755 +index d6da4cf6632..6f4f996a0aa 100755 --- a/configure +++ b/configure -@@ -15929,7 +15929,7 @@ if test "x$ac_cv_lib_ffi_ffi_call" = xyes +@@ -15937,7 +15937,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 dc85955db..ec481a373 100644 --- a/recipe/patches/0022-Unvendor-libmpdec.patch +++ b/recipe/patches/0022-Unvendor-libmpdec.patch @@ -1,4 +1,4 @@ -From e0fc76d4cd6c7158bf869a943f53c88e0de2bbdd Mon Sep 17 00:00:00 2001 +From 3e40beea16f44e1c37fff0c9582bdc7fda3d473f Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 16 Aug 2024 21:34:43 -0500 Subject: [PATCH 22/28] Unvendor libmpdec diff --git a/recipe/patches/0023-Brand-conda-forge.patch b/recipe/patches/0023-Brand-conda-forge.patch index 599214dd4..f4ef28ca5 100644 --- a/recipe/patches/0023-Brand-conda-forge.patch +++ b/recipe/patches/0023-Brand-conda-forge.patch @@ -1,4 +1,4 @@ -From a378760f21c7400d73c7b43d0f14aea624ea6980 Mon Sep 17 00:00:00 2001 +From 8fd631fa50438dc550fcc3ddd8309a1eec9982ea Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 28 Aug 2024 11:12:22 -0500 Subject: [PATCH 23/28] Brand conda-forge 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 d45e3b0c9..9672af3a5 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 710a192817712f745c87b1444e6ebeeb5428569e Mon Sep 17 00:00:00 2001 +From a6732a73e75d9442f5d8b164a586c88830a07527 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sun, 12 Jan 2025 10:37:29 +0530 Subject: [PATCH 24/28] Do not define pid_t as it might conflict with the @@ -30,7 +30,7 @@ index 008a7d37726..7829e9cc714 100644 module _testcapi [clinic start generated code]*/ diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c -index fb18a866e62..7ef862ef1ad 100644 +index f6009e7e73f..fd46b1ef170 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -15,6 +15,10 @@ @@ -45,10 +45,10 @@ index fb18a866e62..7ef862ef1ad 100644 # error "The public headers should not include , see gh-90904" #endif diff --git a/Modules/_testlimitedcapi/long.c b/Modules/_testlimitedcapi/long.c -index 99b9e96760d..932fef0497f 100644 +index 1654f9210e1..0c456d91e92 100644 --- a/Modules/_testlimitedcapi/long.c +++ b/Modules/_testlimitedcapi/long.c -@@ -8,6 +8,10 @@ +@@ -10,6 +10,10 @@ #include "util.h" #include "clinic/long.c.h" @@ -60,7 +60,7 @@ index 99b9e96760d..932fef0497f 100644 module _testlimitedcapi [clinic start generated code]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h -index 45e509d0030..65b87843b20 100644 +index 242934b2175..49f5e469266 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -10,6 +10,10 @@ preserve @@ -75,10 +75,10 @@ index 45e509d0030..65b87843b20 100644 "stat($module, /, path, *, dir_fd=None, follow_symlinks=True)\n" "--\n" diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index 0b42b059541..a8aff655bd1 100644 +index 1a6d6982478..df090ddb98b 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c -@@ -222,6 +222,7 @@ +@@ -224,6 +224,7 @@ # if defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_SYSTEM) # define HAVE_SYMLINK # endif /* MS_WINDOWS_DESKTOP | MS_WINDOWS_SYSTEM */ @@ -100,7 +100,7 @@ index b5069328796..fe213640fb1 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 16229df936f..adb2d7cd993 100644 +index ca6e9067622..a1eb4fb956b 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 f6d4209d1..72b7d303a 100644 --- a/recipe/patches/0025-Unvendor-zstd.patch +++ b/recipe/patches/0025-Unvendor-zstd.patch @@ -1,4 +1,4 @@ -From adaae58397e45088378a1c91bae5a63aea7de23e Mon Sep 17 00:00:00 2001 +From 7bc5eca5b7aa57753d86c754b840d2e8ea5af118 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 22 Jul 2025 18:07:54 +0200 Subject: [PATCH 25/28] Unvendor zstd @@ -199,8 +199,9 @@ index eec666e5eaf..5028bb5592d 100644 Header Files - -- Header Files\zstd -- ++ + Header Files\zstd + - - Header Files\zstd - @@ -262,9 +263,8 @@ index eec666e5eaf..5028bb5592d 100644 - Header Files\zstd - - -+ - Header Files\zstd - +- Header Files\zstd +- - + Header Files\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 c08e1adea..6ef99c31e 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 6da8de34750aea6e10c7741d9382e80a9c1ec130 Mon Sep 17 00:00:00 2001 +From fc677191ff37eda9f4abd41b749760cfd4ec31f9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 2 Dec 2025 09:46:56 -0800 Subject: [PATCH 26/28] Set Py_GIL_DISABLED in windows to match unix diff --git a/recipe/patches/0027-More-unixy-layout-for-windows.patch b/recipe/patches/0027-More-unixy-layout-for-windows.patch index 076429286..b6fa1eabd 100644 --- a/recipe/patches/0027-More-unixy-layout-for-windows.patch +++ b/recipe/patches/0027-More-unixy-layout-for-windows.patch @@ -1,4 +1,4 @@ -From 05dea992ecbfb2532fb969ea0af817954f2b69ff Mon Sep 17 00:00:00 2001 +From fbd5e1fe695d776e2667dfb1118b84d8f67a7a60 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 22 May 2026 14:21:19 -0700 Subject: [PATCH 27/28] More unixy layout for windows @@ -24,7 +24,7 @@ index 89e136d7b10..5bc762fdd03 100644 sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) return sitepackages diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py -index 1230a48208e..955a7896ca3 100644 +index fc99cd14af2..c26660f439a 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -58,6 +58,16 @@ @@ -54,7 +54,7 @@ index 1230a48208e..955a7896ca3 100644 'user': 'nt_user', } diff --git a/Modules/getpath.py b/Modules/getpath.py -index e237c58d6bc..4ccd9179e84 100644 +index a809396a3a4..1edd24009fc 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -190,9 +190,9 @@ diff --git a/recipe/patches/0028-Avoid-erroring-when-conda-site.pth-has-non-existent-.patch b/recipe/patches/0028-Avoid-erroring-when-conda-site.pth-has-non-existent-.patch index 99c5902d3..60fde0a55 100644 --- a/recipe/patches/0028-Avoid-erroring-when-conda-site.pth-has-non-existent-.patch +++ b/recipe/patches/0028-Avoid-erroring-when-conda-site.pth-has-non-existent-.patch @@ -1,4 +1,4 @@ -From 818a13d465af31871a1f1db4cba754ec6878d73d Mon Sep 17 00:00:00 2001 +From 4eb2410ece2eaa5a98bbe0b3d7b2128bf89617b5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 1 Sep 2026 17:23:36 -0700 Subject: [PATCH 28/28] Avoid erroring when conda-site.pth has non-existent