diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 56857c74..aef462c4 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -15,7 +15,11 @@ jobs: linux_aarch64_: CONFIG: linux_aarch64_ UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_ppc64le_: + CONFIG: linux_ppc64le_ + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 730a6268..7708e23e 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,7 +5,7 @@ jobs: - job: osx pool: - vmImage: macOS-11 + vmImage: macOS-12 strategy: matrix: osx_64_: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index d609fcdf..204327b7 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -24,7 +24,7 @@ jobs: scriptSource: inline script: | import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" urllib.request.urlretrieve(url, path) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 260fa180..68f05c7a 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -3,9 +3,13 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '12' +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: @@ -13,7 +17,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 libffi: @@ -43,5 +47,7 @@ xz: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name zlib: -- '1.2' +- '1' diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index 68dc6817..c590daba 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -5,7 +5,11 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '12' +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' cdt_arch: - aarch64 cdt_name: @@ -17,9 +21,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-aarch64 +- quay.io/condaforge/linux-anvil-cos7-x86_64 libffi: - '3.4' libuuid: @@ -47,5 +51,7 @@ xz: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name zlib: -- '1.2' +- '1' diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 0fa62c5a..8b498035 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -3,7 +3,11 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '12' +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' cdt_name: - cos7 channel_sources: @@ -13,9 +17,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: -- quay.io/condaforge/linux-anvil-ppc64le +- quay.io/condaforge/linux-anvil-cos7-x86_64 libffi: - '3.4' libuuid: @@ -41,5 +45,7 @@ xz: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name zlib: -- '1.2' +- '1' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 1bd98e89..f76e5f60 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' MACOSX_SDK_VERSION: - '11.0' bzip2: @@ -7,7 +7,11 @@ bzip2: c_compiler: - clang c_compiler_version: -- '16' +- '17' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' channel_sources: - conda-forge channel_targets: @@ -15,7 +19,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '16' +- '17' libffi: - '3.4' macos_machine: @@ -44,4 +48,4 @@ zip_keys: - - c_compiler_version - cxx_compiler_version zlib: -- '1.2' +- '1' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 913dfcb9..77bc942a 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -1,11 +1,17 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' bzip2: - '1' c_compiler: - clang c_compiler_version: -- '16' +- '17' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' channel_sources: - conda-forge channel_targets: @@ -13,7 +19,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '16' +- '17' libffi: - '3.4' macos_machine: @@ -42,4 +48,4 @@ zip_keys: - - c_compiler_version - cxx_compiler_version zlib: -- '1.2' +- '1' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 3aeb688e..d673cf68 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -1,13 +1,15 @@ bzip2: - '1' c_compiler: -- vs2017 +- vs2019 +c_stdlib: +- vs channel_sources: - conda-forge channel_targets: - conda-forge main cxx_compiler: -- vs2017 +- vs2019 libffi: - '3.4' openssl: @@ -27,4 +29,4 @@ tk: xz: - '5' zlib: -- '1.2' +- '1' diff --git a/.gitattributes b/.gitattributes index 7f327638..18f114a1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index e3deaae4..f387b25b 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -43,13 +43,19 @@ setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup +( +# Due to https://bugzilla.redhat.com/show_bug.cgi?id=1537564 old versions of rpm +# are drastically slowed down when the number of file descriptors is very high. +# This can be visible during a `yum install` step of a feedstock build. +# => Set a lower limit in a subshell for the `yum install`s only. +ulimit -n 1024 # Install the yum requirements defined canonically in the # "recipe/yum_requirements.txt" file. After updating that file, # run "conda smithy rerender" and this line will be updated # automatically. -/usr/bin/sudo -n yum install -y libx11 libXext-devel libXrender-devel libSM-devel libX11-devel - +/usr/bin/sudo -n yum install -y libX11 libxcb libxau +) # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -80,6 +86,12 @@ else --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:-}" + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 07dff219..420f051c 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -11,7 +11,7 @@ MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} ( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" +MINIFORGE_FILE="Miniforge3-MacOSX-$(uname -m).sh" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" rm -rf ${MINIFORGE_HOME} bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} @@ -85,6 +85,13 @@ else --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" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 6d546976..a45c34fd 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -24,7 +24,7 @@ set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" :: Provision the necessary dependencies to build the recipe later echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes +mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes if !errorlevel! neq 0 exit /b !errorlevel! :: Set basic configuration @@ -48,7 +48,7 @@ if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( ) 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%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" ) call :end_group @@ -58,6 +58,11 @@ echo Building recipe conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% if !errorlevel! neq 0 exit /b !errorlevel! +call :start_group "Inspecting artifacts" +:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" +call :end_group + :: Prepare some environment variables for the upload step if /i "%CI%" == "github_actions" ( set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5f7a8967..00000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +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. - -language: generic - - - -matrix: - include: - - env: CONFIG=linux_ppc64le_ UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=quay.io/condaforge/linux-anvil-ppc64le - os: linux - arch: ppc64le - dist: focal - -script: - - export CI=travis - - export GIT_BRANCH="$TRAVIS_BRANCH" - - export flow_run_id="travis_$TRAVIS_JOB_ID" - - export sha="$TRAVIS_COMMIT" - - export remote_url="https://github.com/$TRAVIS_REPO_SLUG" - - export FEEDSTOCK_NAME=$(basename ${TRAVIS_REPO_SLUG}) - - if [[ "${TRAVIS_PULL_REQUEST:-}" == "false" ]]; then export IS_PR_BUILD="False"; else export IS_PR_BUILD="True"; fi - - - - if [[ ${PLATFORM} =~ .*linux.* ]]; then CONDA_FORGE_DOCKER_RUN_ARGS="--network=host --security-opt=seccomp=unconfined" ./.scripts/run_docker_build.sh; fi \ No newline at end of file diff --git a/README.md b/README.md index f47796d4..0ace5044 100644 --- a/README.md +++ b/README.md @@ -25,14 +25,7 @@ Current build status ==================== - - - - +
Travis - - linux - -
@@ -100,6 +93,8 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | +| [![Conda Recipe](https://img.shields.io/badge/recipe-cpython-green.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/cpython.svg)](https://anaconda.org/conda-forge/cpython) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-cpython--gil-green.svg)](https://anaconda.org/conda-forge/cpython-gil) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/cpython-gil.svg)](https://anaconda.org/conda-forge/cpython-gil) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/cpython-gil.svg)](https://anaconda.org/conda-forge/cpython-gil) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/cpython-gil.svg)](https://anaconda.org/conda-forge/cpython-gil) | | [![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) | @@ -113,41 +108,41 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libpython-static, python` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `cpython, cpython-gil, libpython-static, python` can be installed with `conda`: ``` -conda install libpython-static python +conda install cpython cpython-gil libpython-static python ``` or with `mamba`: ``` -mamba install libpython-static python +mamba install cpython cpython-gil libpython-static python ``` -It is possible to list all of the versions of `libpython-static` available on your platform with `conda`: +It is possible to list all of the versions of `cpython` available on your platform with `conda`: ``` -conda search libpython-static --channel conda-forge +conda search cpython --channel conda-forge ``` or with `mamba`: ``` -mamba search libpython-static --channel conda-forge +mamba search cpython --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libpython-static --channel conda-forge +mamba repoquery search cpython --channel conda-forge -# List packages depending on `libpython-static`: -mamba repoquery whoneeds libpython-static --channel conda-forge +# List packages depending on `cpython`: +mamba repoquery whoneeds cpython --channel conda-forge -# List dependencies of `libpython-static`: -mamba repoquery depends libpython-static --channel conda-forge +# List dependencies of `cpython`: +mamba repoquery depends cpython --channel conda-forge ``` diff --git a/build-locally.py b/build-locally.py index e0d408d0..6788aea6 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,13 +1,16 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob +import os +import platform import subprocess from argparse import ArgumentParser -import platform def setup_environment(ns): diff --git a/conda-forge.yml b/conda-forge.yml index 0266ca9c..a40f3fa5 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,6 +1,5 @@ -build_platform: {osx_arm64: osx_64} +build_platform: {osx_arm64: osx_64, linux_ppc64le: linux_64, linux_aarch64: linux_64} conda_forge_output_validation: true -provider: {linux_aarch64: azure, linux_ppc64le: native, osx: azure, win: azure} github: branch_name: main tooling_branch_name: main diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index d35ab838..08014fad 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -4,11 +4,5 @@ python_impl: - cpython numpy: - 1.16 -c_compiler: # [win] - - vs2017 # [win] -cxx_compiler: # [win] - - vs2017 # [win] -vc: # [win] - - 14.1 # [win] MACOSX_SDK_VERSION: # [osx and x86_64] - 11.0 # [osx and x86_64] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 95af54f5..ab5621ed 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.9.19" %} +{% set version = "3.9.20" %} {% set dev = "" %} {% set dev_ = "" %} {% set ver2 = '.'.join(version.split('.')[0:2]) %} @@ -47,7 +47,7 @@ source: {% else %} - url: https://www.python.org/ftp/python/{{ version }}/Python-{{ version }}{{ dev }}.tar.xz # md5 from: https://www.python.org/downloads/release/python-{{ ver3nd }}/ - md5: 87d0f8281237b972ff8b23e0e2c8d325 + md5: bdcda0fdb99e7e17018f6886fae5e1fd {% endif %} patches: - patches/0001-Win32-Change-FD_SETSIZE-from-512-to-2048.patch @@ -111,6 +111,8 @@ outputs: ignore_run_exports_from: # [unix] # C++ only installed so CXX is defined for distutils/sysconfig. - {{ compiler('cxx') }} # [unix] + # this is just to get the headers needed for tk.h, but is unused + - xorg-libx11 # Disabled until verified to work correctly detect_binary_files_with_prefix: true # detect_binary_files_with_prefix: False @@ -155,10 +157,9 @@ outputs: - '**/api-ms-win-core-path-l1-1-0.dll' # [win] requirements: build: + - {{ stdlib('c') }} - {{ compiler('c') }} - {{ compiler('cxx') }} - - {{ cdt('xorg-x11-proto-devel') }} # [linux] - - {{ cdt('libx11-devel') }} # [linux] - make # [not win] - libtool # [unix] - pkg-config # [not win] @@ -176,6 +177,8 @@ outputs: - openssl - readline # [not win] - tk + # this is just to get the headers needed for tk.h, but is unused + - xorg-libx11 - ncurses # [unix] - libffi - ld_impl_{{ target_platform }} >=2.36.1 # [linux] @@ -278,6 +281,7 @@ outputs: string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}{{ linkage_nature }}{{ debug }} # ["conda-forge" not in (channel_targets or "")] requirements: build: + - {{ stdlib('c') }} - {{ compiler('c') }} - {{ compiler('cxx') }} {% if from_source_control == 'yes' %} @@ -300,6 +304,20 @@ outputs: - bash build-and-test.sh # [unix] - popd # [unix] + - name: cpython + build: + noarch: generic + requirements: + - python {{ version }}.* + - python_abi * *_cp{{ ver2nd }} + + - name: cpython-gil + build: + noarch: generic + requirements: + - cpython {{ version }}.* + - python_abi * *_cp{{ ver2nd }} + about: home: https://www.python.org/ license: Python-2.0 diff --git a/recipe/yum_requirements.txt b/recipe/yum_requirements.txt index 8991c682..e1482717 100644 --- a/recipe/yum_requirements.txt +++ b/recipe/yum_requirements.txt @@ -1,5 +1,5 @@ -libx11 -libXext-devel -libXrender-devel -libSM-devel -libX11-devel +#tk_needs_libx11_but_avoids_a_runtime_requirement_of_libx11_to_reduce_the_dependencies_of_python +libX11 +#libxcb_is_a_dependency_of_libx11_but_deps_are_wrong_on_our_cdt +libxcb +libxau
Azure