diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index c01f323..aef462c 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -12,17 +12,14 @@ jobs: CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_64_ linux_aarch64_: CONFIG: linux_aarch64_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_aarch64_ linux_ppc64le_: CONFIG: linux_ppc64le_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - SHORT_CONFIG: linux_ppc64le_ timeoutInMinutes: 360 variables: {} @@ -52,33 +49,4 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - script: | - export CI=azure - export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - export CONDA_BLD_DIR=build_artifacts - export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" - # Archive everything in CONDA_BLD_DIR except environments - export BLD_ARTIFACT_PREFIX=conda_artifacts - if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then - # Archive the CONDA_BLD_DIR environments only when the job fails - export ENV_ARTIFACT_PREFIX=conda_envs - fi - ./.scripts/create_conda_build_artifacts.sh - displayName: Prepare conda build artifacts - condition: succeededOrFailed() - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 96e989b..7708e23 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -11,11 +11,9 @@ jobs: osx_64_: CONFIG: osx_64_ UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_64_ osx_arm64_: CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: osx_arm64_ timeoutInMinutes: 360 variables: {} @@ -39,33 +37,4 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - script: | - export CI=azure - export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - export CONDA_BLD_DIR=/Users/runner/miniforge3/conda-bld - export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" - # Archive everything in CONDA_BLD_DIR except environments - export BLD_ARTIFACT_PREFIX=conda_artifacts - if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then - # Archive the CONDA_BLD_DIR environments only when the job fails - export ENV_ARTIFACT_PREFIX=conda_envs - fi - ./.scripts/create_conda_build_artifacts.sh - displayName: Prepare conda build artifacts - condition: succeededOrFailed() - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 8be5906..204327b 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -11,7 +11,6 @@ jobs: win_64_: CONFIG: win_64_ UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: win_64_ timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ @@ -25,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) @@ -50,31 +49,4 @@ jobs: UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - script: | - set CI=azure - set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - set FEEDSTOCK_NAME=$(build.Repository.Name) - set ARTIFACT_STAGING_DIR=$(Build.ArtifactStagingDirectory) - set CONDA_BLD_DIR=$(CONDA_BLD_PATH) - set BLD_ARTIFACT_PREFIX=conda_artifacts - if "%AGENT_JOBSTATUS%" == "Failed" ( - set ENV_ARTIFACT_PREFIX=conda_envs - ) - call ".scripts\create_conda_build_artifacts.bat" - displayName: Prepare conda build artifacts - condition: succeededOrFailed() - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.scripts/create_conda_build_artifacts.bat b/.scripts/create_conda_build_artifacts.bat deleted file mode 100755 index 2853cfd..0000000 --- a/.scripts/create_conda_build_artifacts.bat +++ /dev/null @@ -1,80 +0,0 @@ -setlocal enableextensions enabledelayedexpansion - -rem INPUTS (environment variables that need to be set before calling this script): -rem -rem CI (azure/github_actions/UNSET) -rem CI_RUN_ID (unique identifier for the CI job run) -rem FEEDSTOCK_NAME -rem CONFIG (build matrix configuration string) -rem SHORT_CONFIG (uniquely-shortened configuration string) -rem CONDA_BLD_DIR (path to the conda-bld directory) -rem ARTIFACT_STAGING_DIR (use working directory if unset) -rem BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) -rem ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) - -rem OUTPUTS -rem -rem BLD_ARTIFACT_NAME -rem BLD_ARTIFACT_PATH -rem ENV_ARTIFACT_NAME -rem ENV_ARTIFACT_PATH - -rem Check that the conda-build directory exists -if not exist %CONDA_BLD_DIR% ( - echo conda-build directory does not exist - exit 1 -) - -if not defined ARTIFACT_STAGING_DIR ( - rem Set staging dir to the working dir - set ARTIFACT_STAGING_DIR=%cd% -) - -rem Set a unique ID for the artifact(s), specialized for this particular job run -set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% -if not "%ARTIFACT_UNIQUE_ID%" == "%ARTIFACT_UNIQUE_ID:~0,80%" ( - set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%SHORT_CONFIG% -) - -rem Set a descriptive ID for the archive(s), specialized for this particular job run -set ARCHIVE_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% - -rem Make the build artifact zip -if defined BLD_ARTIFACT_PREFIX ( - set BLD_ARTIFACT_NAME=%BLD_ARTIFACT_PREFIX%_%ARTIFACT_UNIQUE_ID% - echo BLD_ARTIFACT_NAME: !BLD_ARTIFACT_NAME! - - set "BLD_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%BLD_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" - 7z a "!BLD_ARTIFACT_PATH!" "%CONDA_BLD_DIR%" -xr^^!.git/ -xr^^!_*_env*/ -xr^^!*_cache/ -bb - if errorlevel 1 exit 1 - echo BLD_ARTIFACT_PATH: !BLD_ARTIFACT_PATH! - - if "%CI%" == "azure" ( - echo ##vso[task.setVariable variable=BLD_ARTIFACT_NAME]!BLD_ARTIFACT_NAME! - echo ##vso[task.setVariable variable=BLD_ARTIFACT_PATH]!BLD_ARTIFACT_PATH! - ) - if "%CI%" == "github_actions" ( - echo BLD_ARTIFACT_NAME=!BLD_ARTIFACT_NAME!>> !GITHUB_OUTPUT! - echo BLD_ARTIFACT_PATH=!BLD_ARTIFACT_PATH!>> !GITHUB_OUTPUT! - ) -) - -rem Make the environments artifact zip -if defined ENV_ARTIFACT_PREFIX ( - set ENV_ARTIFACT_NAME=!ENV_ARTIFACT_PREFIX!_%ARTIFACT_UNIQUE_ID% - echo ENV_ARTIFACT_NAME: !ENV_ARTIFACT_NAME! - - set "ENV_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%ENV_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" - 7z a "!ENV_ARTIFACT_PATH!" -r "%CONDA_BLD_DIR%"/_*_env*/ -bb - if errorlevel 1 exit 1 - echo ENV_ARTIFACT_PATH: !ENV_ARTIFACT_PATH! - - if "%CI%" == "azure" ( - echo ##vso[task.setVariable variable=ENV_ARTIFACT_NAME]!ENV_ARTIFACT_NAME! - echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH! - ) - if "%CI%" == "github_actions" ( - echo ENV_ARTIFACT_NAME=!ENV_ARTIFACT_NAME!>> !GITHUB_OUTPUT! - echo ENV_ARTIFACT_PATH=!ENV_ARTIFACT_PATH!>> !GITHUB_OUTPUT! - ) -) \ No newline at end of file diff --git a/.scripts/create_conda_build_artifacts.sh b/.scripts/create_conda_build_artifacts.sh deleted file mode 100755 index 17ec086..0000000 --- a/.scripts/create_conda_build_artifacts.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env bash - -# INPUTS (environment variables that need to be set before calling this script): -# -# CI (azure/github_actions/UNSET) -# CI_RUN_ID (unique identifier for the CI job run) -# FEEDSTOCK_NAME -# CONFIG (build matrix configuration string) -# SHORT_CONFIG (uniquely-shortened configuration string) -# CONDA_BLD_DIR (path to the conda-bld directory) -# ARTIFACT_STAGING_DIR (use working directory if unset) -# BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) -# ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) - -# OUTPUTS -# -# BLD_ARTIFACT_NAME -# BLD_ARTIFACT_PATH -# ENV_ARTIFACT_NAME -# ENV_ARTIFACT_PATH - -source .scripts/logging_utils.sh - -# DON'T do set -x, because it results in double echo-ing pipeline commands -# and that might end up inserting extraneous quotation marks in output variables -set -e - -# Check that the conda-build directory exists -if [ ! -d "$CONDA_BLD_DIR" ]; then - echo "conda-build directory does not exist" - exit 1 -fi - -# Set staging dir to the working dir, in Windows style if applicable -if [[ -z "${ARTIFACT_STAGING_DIR}" ]]; then - if pwd -W; then - ARTIFACT_STAGING_DIR=$(pwd -W) - else - ARTIFACT_STAGING_DIR=$PWD - fi -fi -echo "ARTIFACT_STAGING_DIR: $ARTIFACT_STAGING_DIR" - -FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) -if [ -z ${FEEDSTOCK_NAME} ]; then - export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) -fi - -# Set a unique ID for the artifact(s), specialized for this particular job run -ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" -if [[ ${#ARTIFACT_UNIQUE_ID} -gt 80 ]]; then - ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${SHORT_CONFIG}" -fi -echo "ARTIFACT_UNIQUE_ID: $ARTIFACT_UNIQUE_ID" - -# Set a descriptive ID for the archive(s), specialized for this particular job run -ARCHIVE_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" - -# Make the build artifact zip -if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then - export BLD_ARTIFACT_NAME="${BLD_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" - export BLD_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${BLD_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" - - ( startgroup "Archive conda build directory" ) 2> /dev/null - - # Try 7z and fall back to zip if it fails (for cross-platform use) - if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_DIR" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then - pushd "$CONDA_BLD_DIR" - zip -r -y -T "$BLD_ARTIFACT_PATH" . -x '*.git/*' '*_*_env*/*' '*_cache/*' - popd - fi - - ( endgroup "Archive conda build directory" ) 2> /dev/null - - echo "BLD_ARTIFACT_NAME: $BLD_ARTIFACT_NAME" - echo "BLD_ARTIFACT_PATH: $BLD_ARTIFACT_PATH" - - if [[ "$CI" == "azure" ]]; then - echo "##vso[task.setVariable variable=BLD_ARTIFACT_NAME]$BLD_ARTIFACT_NAME" - echo "##vso[task.setVariable variable=BLD_ARTIFACT_PATH]$BLD_ARTIFACT_PATH" - elif [[ "$CI" == "github_actions" ]]; then - echo "BLD_ARTIFACT_NAME=$BLD_ARTIFACT_NAME" >> $GITHUB_OUTPUT - echo "BLD_ARTIFACT_PATH=$BLD_ARTIFACT_PATH" >> $GITHUB_OUTPUT - fi -fi - -# Make the environments artifact zip -if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then - export ENV_ARTIFACT_NAME="${ENV_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" - export ENV_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${ENV_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" - - ( startgroup "Archive conda build environments" ) 2> /dev/null - - # Try 7z and fall back to zip if it fails (for cross-platform use) - if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_DIR"/'_*_env*/' -bb; then - pushd "$CONDA_BLD_DIR" - zip -r -y -T "$ENV_ARTIFACT_PATH" . -i '*_*_env*/*' - popd - fi - - ( endgroup "Archive conda build environments" ) 2> /dev/null - - echo "ENV_ARTIFACT_NAME: $ENV_ARTIFACT_NAME" - echo "ENV_ARTIFACT_PATH: $ENV_ARTIFACT_PATH" - - if [[ "$CI" == "azure" ]]; then - echo "##vso[task.setVariable variable=ENV_ARTIFACT_NAME]$ENV_ARTIFACT_NAME" - echo "##vso[task.setVariable variable=ENV_ARTIFACT_PATH]$ENV_ARTIFACT_PATH" - elif [[ "$CI" == "github_actions" ]]; then - echo "ENV_ARTIFACT_NAME=$ENV_ARTIFACT_NAME" >> $GITHUB_OUTPUT - echo "ENV_ARTIFACT_PATH=$ENV_ARTIFACT_PATH" >> $GITHUB_OUTPUT - fi -fi \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index ba0c879..420f051 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} diff --git a/README.md b/README.md index cedfe96..b75017c 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,6 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | -| [![Conda Recipe](https://img.shields.io/badge/recipe-boost-green.svg)](https://anaconda.org/conda-forge/boost) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/boost.svg)](https://anaconda.org/conda-forge/boost) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/boost.svg)](https://anaconda.org/conda-forge/boost) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/boost.svg)](https://anaconda.org/conda-forge/boost) | -| [![Conda Recipe](https://img.shields.io/badge/recipe-boost--cpp-green.svg)](https://anaconda.org/conda-forge/boost-cpp) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/boost-cpp.svg)](https://anaconda.org/conda-forge/boost-cpp) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/boost-cpp.svg)](https://anaconda.org/conda-forge/boost-cpp) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/boost-cpp.svg)](https://anaconda.org/conda-forge/boost-cpp) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libboost-green.svg)](https://anaconda.org/conda-forge/libboost) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libboost.svg)](https://anaconda.org/conda-forge/libboost) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libboost.svg)](https://anaconda.org/conda-forge/libboost) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libboost.svg)](https://anaconda.org/conda-forge/libboost) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libboost--devel-green.svg)](https://anaconda.org/conda-forge/libboost-devel) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libboost-devel.svg)](https://anaconda.org/conda-forge/libboost-devel) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libboost-devel.svg)](https://anaconda.org/conda-forge/libboost-devel) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libboost-devel.svg)](https://anaconda.org/conda-forge/libboost-devel) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libboost--headers-green.svg)](https://anaconda.org/conda-forge/libboost-headers) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libboost-headers.svg)](https://anaconda.org/conda-forge/libboost-headers) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libboost-headers.svg)](https://anaconda.org/conda-forge/libboost-headers) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libboost-headers.svg)](https://anaconda.org/conda-forge/libboost-headers) | @@ -103,41 +101,41 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `boost, boost-cpp, libboost, libboost-devel, libboost-headers, libboost-python, libboost-python-devel` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libboost, libboost-devel, libboost-headers, libboost-python, libboost-python-devel` can be installed with `conda`: ``` -conda install boost boost-cpp libboost libboost-devel libboost-headers libboost-python libboost-python-devel +conda install libboost libboost-devel libboost-headers libboost-python libboost-python-devel ``` or with `mamba`: ``` -mamba install boost boost-cpp libboost libboost-devel libboost-headers libboost-python libboost-python-devel +mamba install libboost libboost-devel libboost-headers libboost-python libboost-python-devel ``` -It is possible to list all of the versions of `boost` available on your platform with `conda`: +It is possible to list all of the versions of `libboost` available on your platform with `conda`: ``` -conda search boost --channel conda-forge +conda search libboost --channel conda-forge ``` or with `mamba`: ``` -mamba search boost --channel conda-forge +mamba search libboost --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search boost --channel conda-forge +mamba repoquery search libboost --channel conda-forge -# List packages depending on `boost`: -mamba repoquery whoneeds boost --channel conda-forge +# List packages depending on `libboost`: +mamba repoquery whoneeds libboost --channel conda-forge -# List dependencies of `boost`: -mamba repoquery depends boost --channel conda-forge +# List dependencies of `libboost`: +mamba repoquery depends libboost --channel conda-forge ``` diff --git a/build-locally.py b/build-locally.py index e0d408d..d78427b 100755 --- a/build-locally.py +++ b/build-locally.py @@ -3,11 +3,11 @@ # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os 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 b2d9074..ff75e18 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,5 +1,3 @@ -azure: - store_build_artifacts: true bot: abi_migration_branches: - v1.84.x diff --git a/recipe/bld.bat b/recipe/bld.bat index 6dbd947..d2718a4 100755 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -13,6 +13,9 @@ xcopy /Y user-config.jam %USERPROFILE% call bootstrap.bat if %ERRORLEVEL% neq 0 exit 1 +:: bootstrap.bat turns off echo; turn it on again +@echo on + mkdir temp_prefix :: Build step diff --git a/recipe/build-py.sh b/recipe/build-py.sh index c739d0e..fa5abe2 100755 --- a/recipe/build-py.sh +++ b/recipe/build-py.sh @@ -1,4 +1,15 @@ #!/bin/bash +set -ex + +# work-around for https://github.com/bfgroup/b2/issues/405 +echo "using python" > user-config.jam +echo ": $PY_VER" >> user-config.jam +echo ": $PYTHON" >> user-config.jam +echo ": $PREFIX/include/python$PY_VER" >> user-config.jam +echo ": $PREFIX/lib" >> user-config.jam +echo ";" >> user-config.jam +# see https://www.boost.org/build/doc/html/bbv2/overview/configuration.html +export BOOST_BUILD_PATH=$SRC_DIR # Hints: # http://boost.2283326.n4.nabble.com/how-to-build-boost-with-bzip2-in-non-standard-location-td2661155.html @@ -8,9 +19,6 @@ # Hints for OSX: # http://stackoverflow.com/questions/20108407/how-do-i-compile-boost-for-os-x-64b-platforms-with-stdlibc -set -x -e -u -set -o pipefail - INCLUDE_PATH="${PREFIX}/include" LIBRARY_PATH="${PREFIX}/lib" @@ -82,7 +90,7 @@ mkdir build-py --layout=system \ --with-python \ -j"${CPU_COUNT}" \ - install 2>&1 | tee b2.log + install 2>&1 || (tee b2.log && exit 1) # clean up between builds for different python versions/implementations rm -rf build-py diff --git a/recipe/build.sh b/recipe/build.sh index 51d0260..edb1d07 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -1,6 +1,16 @@ #!/bin/bash set -ex +# work-around for https://github.com/bfgroup/b2/issues/405 +echo "using python" > user-config.jam +echo ": $PY_DUMMY_VER" >> user-config.jam +echo ": $PYTHON" >> user-config.jam +echo ": $PREFIX/include/python$PY_DUMMY_VER" >> user-config.jam +echo ": $PREFIX/lib" >> user-config.jam +echo ";" >> user-config.jam +# see https://www.boost.org/build/doc/html/bbv2/overview/configuration.html +export BOOST_BUILD_PATH=$SRC_DIR + # Hints: # http://boost.2283326.n4.nabble.com/how-to-build-boost-with-bzip2-in-non-standard-location-td2661155.html # http://www.gentoo.org/proj/en/base/amd64/howtos/?part=1&chap=3 diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml deleted file mode 100644 index 990c7e7..0000000 --- a/recipe/conda_build_config.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# Bump MacOs target to 10.13 for Boost.Cobalt / C++20 support -c_stdlib_version: # [osx and x86_64] - - '10.13' # [osx and x86_64] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e2c4efa..7c9769a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.85.0" %} +{% set version = "1.86.0" %} {% set boost_libs = [ "atomic", "charconv", "chrono", "cobalt", "container", "context", "contract", "coroutine", @@ -14,7 +14,7 @@ # we only need _a_ python version to build the headers for libboost-headers, # make it accessible in the build scripts via build/script_env below. {% set PY_DUMMY_VER = "3.10" %} -{% set NP_DUMMY_VER = "1.21" %} +{% set NP_DUMMY_VER = "2.0" %} package: name: boost-split @@ -22,19 +22,18 @@ package: source: url: https://boostorg.jfrog.io/artifactory/main/release/{{ version }}/source/boost_{{ version|replace(".", "_") }}.tar.bz2 - sha256: 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617 + sha256: 1bed88e40401b2cb7a1f76d4bab499e352fa4d0c5f31c0dbae64e24d34d7513b patches: # ensure our compiler flags get used during bootstrapping - patches/0001-Add-default-value-for-cxx-and-cxxflags-options-for-t.patch - # backport https://github.com/boostorg/charconv/pull/183 - - patches/0002-Merge-pull-request-183-from-boostorg-ppc64le.patch + # still haven't landed in main boost repo yet: https://github.com/boostorg/python/issues/446 # backport https://github.com/boostorg/python/pull/432 - - patches/0003-Support-numpy-2.0.0b1.patch + - patches/0002-Support-numpy-2.0.0b1.patch # backport https://github.com/boostorg/python/pull/443 - - patches/0004-Support-numpy-2.0.patch + - patches/0003-Support-numpy-2.0.patch build: - number: 4 + number: 0 script_env: - PY_DUMMY_VER={{ PY_DUMMY_VER }} - NP_DUMMY_VER={{ NP_DUMMY_VER }} @@ -53,7 +52,7 @@ requirements: - bzip2 - zlib - zstd - # see conda_build_config + # see above - python {{ PY_DUMMY_VER }}.* *_cpython - numpy {{ NP_DUMMY_VER }}.* @@ -67,8 +66,8 @@ outputs: - cmake # [win] host: run_constrained: - # make sure we don't co-install with old version of old package name - - boost-cpp ={{ version }} + # avoid co-installation with old naming of package + - boost-cpp <0.0a0 test: commands: # presence of regular headers @@ -115,13 +114,8 @@ outputs: - zlib - zstd run_constrained: - # Anaconda's output is also called libboost; therefore we automatically - # avoid issues of co-installability, because a package with the same name - # can only be installed once. Rather, we need to ensure that conda-forge's - # old name "boost-cpp" cannot be co-installed wrongly. Since we keep that - # output as a compatibility wrapper (see below), it's enough to enforce - # the same version to ensure no old boost packages can be co-installed. - - boost-cpp ={{ version }} + # avoid co-installation with old naming of package + - boost-cpp <0.0a0 test: commands: # absence of headers @@ -182,8 +176,8 @@ outputs: - {{ pin_subpackage("libboost", exact=True) }} - {{ pin_subpackage("libboost-headers", exact=True) }} run_constrained: - # make sure we don't co-install with old version of old package name - - boost-cpp ={{ version }} + # avoid co-installation with old naming of package + - boost-cpp <0.0a0 test: files: - test @@ -212,24 +206,6 @@ outputs: - ./test_lib.sh # [unix] - ./test_lib.bat # [win] - # compatibility output for old naming convention - - name: boost-cpp - requirements: - host: - # match host deps to avoid hash collisions between wrappers - - icu # [unix] - - libiconv # [win] - - bzip2 - - xz - - zlib - - zstd - - {{ pin_subpackage("libboost-devel", exact=True) }} - run: - - {{ pin_subpackage("libboost-devel", exact=True) }} - test: - commands: - - echo "tested in other outputs" - # the python libraries (no headers) - name: libboost-python script: build-py.sh # [unix] @@ -253,8 +229,8 @@ outputs: run: - python run_constrained: - # make sure we don't co-install with old version of old package name - - boost ={{ version }} + # avoid co-installation with old naming of package + - boost <0.0a0 # avoid co-installation with Anaconda's naming of this output - py-boost <0.0a0 test: @@ -304,8 +280,8 @@ outputs: - {{ pin_subpackage("libboost-python", exact=True) }} - {{ pin_subpackage("libboost-devel", exact=True) }} run_constrained: - # make sure we don't co-install with old version of old package name - - boost ={{ version }} + # avoid co-installation with old naming of package + - boost <0.0a0 # avoid co-installation with Anaconda's naming of this output - py-boost <0.0a0 test: @@ -316,20 +292,6 @@ outputs: - if not exist %LIBRARY_LIB%\cmake\boost_python-{{ version }} exit 1 # [win] - if not exist %LIBRARY_LIB%\cmake\boost_numpy-{{ version }} exit 1 # [win] - # compatibility output for old naming convention - - name: boost - requirements: - host: - # match host deps to avoid hash collisions between wrappers - - python - - numpy - - {{ pin_subpackage("libboost-python-devel", exact=True) }} - run: - - {{ pin_subpackage("libboost-python-devel", exact=True) }} - test: - commands: - - echo "tested in other outputs" - about: home: http://www.boost.org/ license: BSL-1.0 diff --git a/recipe/patches/0001-Add-default-value-for-cxx-and-cxxflags-options-for-t.patch b/recipe/patches/0001-Add-default-value-for-cxx-and-cxxflags-options-for-t.patch index 097ff65..d66ad33 100644 --- a/recipe/patches/0001-Add-default-value-for-cxx-and-cxxflags-options-for-t.patch +++ b/recipe/patches/0001-Add-default-value-for-cxx-and-cxxflags-options-for-t.patch @@ -1,4 +1,4 @@ -From 61c7edba61a59aa3a10de65d150dab295113a638 Mon Sep 17 00:00:00 2001 +From 17d415e6df33c888ca7122ea614212ab2b07695f Mon Sep 17 00:00:00 2001 From: Samuel Debionne Date: Fri, 30 Apr 2021 11:55:58 +0200 Subject: [PATCH] Add default value for cxx and cxxflags options for the cxx diff --git a/recipe/patches/0002-Merge-pull-request-183-from-boostorg-ppc64le.patch b/recipe/patches/0002-Merge-pull-request-183-from-boostorg-ppc64le.patch deleted file mode 100644 index 51b1595..0000000 --- a/recipe/patches/0002-Merge-pull-request-183-from-boostorg-ppc64le.patch +++ /dev/null @@ -1,666 +0,0 @@ -From ecb2c65e36a4ab2c1b510920a6d38bdd6678fa6c Mon Sep 17 00:00:00 2001 -From: Matt Borland -Date: Mon, 22 Apr 2024 09:10:56 +0200 -Subject: [PATCH] Merge pull request #183 from boostorg/ppc64le - -Disable long double overloads on platforms with unsupported types ---- - boost/charconv/detail/bit_layouts.hpp | 3 +- - boost/charconv/from_chars.hpp | 12 ++++++ - boost/charconv/to_chars.hpp | 6 +++ - libs/charconv/src/from_chars.cpp | 8 +++- - libs/charconv/src/to_chars.cpp | 40 +------------------ - libs/charconv/test/from_chars_float.cpp | 33 +++++++++------ - libs/charconv/test/from_chars_string_view.cpp | 8 +++- - libs/charconv/test/github_issue_110.cpp | 3 ++ - libs/charconv/test/github_issue_122.cpp | 3 ++ - libs/charconv/test/github_issue_152.cpp | 9 +++-- - libs/charconv/test/github_issue_158.cpp | 4 ++ - libs/charconv/test/limits.cpp | 3 ++ - libs/charconv/test/limits_link_1.cpp | 3 ++ - libs/charconv/test/limits_link_2.cpp | 3 ++ - libs/charconv/test/roundtrip.cpp | 4 +- - libs/charconv/test/to_chars_float.cpp | 2 +- - libs/charconv/test/to_chars_float_STL_comp.cpp | 21 +++++++++- - libs/charconv/test/to_chars_sprintf.cpp | 2 + - 18 files changed, 105 insertions(+), 62 deletions(-) - -diff --git a/boost/charconv/detail/bit_layouts.hpp b/boost/charconv/detail/bit_layouts.hpp -index f35e2eb..856bcfa 100644 ---- a/boost/charconv/detail/bit_layouts.hpp -+++ b/boost/charconv/detail/bit_layouts.hpp -@@ -106,7 +106,8 @@ struct IEEEl2bits - #define BOOST_CHARCONV_LDBL_BITS 64 - - #else // Unsupported long double representation --# define BOOST_MATH_UNSUPPORTED_LONG_DOUBLE -+# define BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE -+# define BOOST_CHARCONV_LDBL_BITS -1 - #endif - - struct IEEEbinary128 -diff --git a/boost/charconv/from_chars.hpp b/boost/charconv/from_chars.hpp -index 459d4c8..b60299b 100644 ---- a/boost/charconv/from_chars.hpp -+++ b/boost/charconv/from_chars.hpp -@@ -139,7 +139,10 @@ BOOST_CHARCONV_GCC5_CONSTEXPR from_chars_result from_chars(boost::core::string_v - - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept; - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept; -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept; -@@ -164,7 +167,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const - - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept; - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept; -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept; -@@ -193,7 +199,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view - - BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept; - BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept; -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept; -@@ -216,7 +225,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* - - BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept; - BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept; -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept; -diff --git a/boost/charconv/to_chars.hpp b/boost/charconv/to_chars.hpp -index 3946e46..3d5e76f 100644 ---- a/boost/charconv/to_chars.hpp -+++ b/boost/charconv/to_chars.hpp -@@ -81,15 +81,21 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu - chars_format fmt = chars_format::general) noexcept; - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value, - chars_format fmt = chars_format::general) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value, - chars_format fmt = chars_format::general) noexcept; -+#endif - - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float value, - chars_format fmt, int precision) noexcept; - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value, - chars_format fmt, int precision) noexcept; -+ -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value, - chars_format fmt, int precision) noexcept; -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, __float128 value, -diff --git a/libs/charconv/src/from_chars.cpp b/libs/charconv/src/from_chars.cpp -index 4fe8829..440b4bd 100644 ---- a/libs/charconv/src/from_chars.cpp -+++ b/libs/charconv/src/from_chars.cpp -@@ -205,7 +205,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char - return r; - } - --#else -+#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE) - - boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept - { -@@ -299,10 +299,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::cor - return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept - { - return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt); - } -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept -@@ -372,10 +374,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first - return from_chars_strict_impl(first, last, value, fmt); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept - { - return from_chars_strict_impl(first, last, value, fmt); - } -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, __float128& value, boost::charconv::chars_format fmt) noexcept -@@ -429,10 +433,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::stri - return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept - { - return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt); - } -+#endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept -diff --git a/libs/charconv/src/to_chars.cpp b/libs/charconv/src/to_chars.cpp -index 0293126..af9d919 100644 ---- a/libs/charconv/src/to_chars.cpp -+++ b/libs/charconv/src/to_chars.cpp -@@ -601,7 +601,7 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la - return boost::charconv::detail::to_chars_float_impl(first, last, static_cast(value), fmt, precision); - } - --#elif (BOOST_CHARCONV_LDBL_BITS == 80 || BOOST_CHARCONV_LDBL_BITS == 128) -+#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE) - - boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* last, long double value, - boost::charconv::chars_format fmt) noexcept -@@ -620,44 +620,6 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la - return boost::charconv::detail::to_chars_float_impl(first, last, value, fmt, precision); - } - --#else -- --boost::charconv::to_chars_result boost::charconv::to_chars( char* first, char* last, long double value, -- boost::charconv::chars_format fmt, int precision) noexcept --{ -- if (std::isnan(value)) -- { -- bool is_negative = false; -- if (std::signbit(value)) -- { -- is_negative = true; -- *first++ = '-'; -- } -- -- if (issignaling(value)) -- { -- std::memcpy(first, "nan(snan)", 9); -- return { first + 9 + static_cast(is_negative), std::errc() }; -- } -- else -- { -- if (is_negative) -- { -- std::memcpy(first, "nan(ind)", 8); -- return { first + 9, std::errc() }; -- } -- else -- { -- std::memcpy(first, "nan", 3); -- return { first + 3, std::errc() }; -- } -- } -- } -- -- // Fallback to printf -- return boost::charconv::detail::to_chars_printf_impl(first, last, value, fmt, precision); --} -- - #endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 -diff --git a/libs/charconv/test/from_chars_float.cpp b/libs/charconv/test/from_chars_float.cpp -index d763226..ea89e24 100644 ---- a/libs/charconv/test/from_chars_float.cpp -+++ b/libs/charconv/test/from_chars_float.cpp -@@ -440,6 +440,7 @@ void test_issue_37() - overflow_spot_value("1.0e+9999", HUGE_VAL); - overflow_spot_value("-1.0e+9999", -HUGE_VAL); - } -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - else - { - overflow_spot_value("1e99999", HUGE_VALL); -@@ -447,6 +448,7 @@ void test_issue_37() - overflow_spot_value("1.0e+99999", HUGE_VALL); - overflow_spot_value("-1.0e+99999", -HUGE_VALL); - } -+ #endif - - overflow_spot_value("1e-99999", static_cast(0.0L)); - overflow_spot_value("-1.0e-99999", static_cast(-0.0L)); -@@ -530,20 +532,22 @@ int main() - odd_strings_test(); - odd_strings_test(); - -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - simple_integer_test(); - simple_hex_integer_test(); - simple_scientific_test(); - simple_hex_scientific_test(); -+ zero_test(); -+ test_issue_37(); -+ #endif - - zero_test(); - zero_test(); -- zero_test(); - - boost_json_test(); - - test_issue_37(); - test_issue_37(); -- test_issue_37(); - - test_issue_45(static_cast(-4109895455460520.5), "-4109895455460520.513430", 19); - test_issue_45(1.035695536657502e-308, "1.0356955366575023e-3087", 23); -@@ -1846,40 +1850,29 @@ int main() - spot_check_nan("-nan", fmt); - spot_check_nan("nan", fmt); - spot_check_nan("-nan", fmt); -- spot_check_nan("nan", fmt); -- spot_check_nan("-nan", fmt); - - spot_check_inf("inf", fmt); - spot_check_inf("-inf", fmt); - spot_check_inf("inf", fmt); - spot_check_inf("-inf", fmt); -- spot_check_inf("inf", fmt); -- spot_check_inf("-inf", fmt); - - spot_check_nan("NAN", fmt); - spot_check_nan("-NAN", fmt); - spot_check_nan("NAN", fmt); - spot_check_nan("-NAN", fmt); -- spot_check_nan("NAN", fmt); -- spot_check_nan("-NAN", fmt); - - spot_check_inf("INF", fmt); - spot_check_inf("-INF", fmt); - spot_check_inf("INF", fmt); - spot_check_inf("-INF", fmt); -- spot_check_inf("INF", fmt); -- spot_check_inf("-INF", fmt); - - spot_check_nan("nan(snan)", fmt); - spot_check_nan("-nan(snan)", fmt); - spot_check_nan("nan(snan)", fmt); - spot_check_nan("-nan(snan)", fmt); -- spot_check_nan("nan(snan)", fmt); -- spot_check_nan("-nan(snan)", fmt); - - spot_check_nan("-nan(ind)", fmt); - spot_check_nan("-nan(ind)", fmt); -- spot_check_nan("-nan(ind)", fmt); - - spot_check_invalid_argument("na7", fmt); - spot_check_invalid_argument("na", fmt); -@@ -1889,8 +1882,22 @@ int main() - spot_check_invalid_argument(" 1.23", fmt); - spot_check_invalid_argument(" 1.23", fmt); - spot_check_invalid_argument(" 1.23", fmt); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE -+ spot_check_nan("nan", fmt); -+ spot_check_nan("-nan", fmt); -+ spot_check_inf("inf", fmt); -+ spot_check_inf("-inf", fmt); -+ spot_check_nan("NAN", fmt); -+ spot_check_nan("-NAN", fmt); -+ spot_check_inf("INF", fmt); -+ spot_check_inf("-INF", fmt); -+ spot_check_nan("nan(snan)", fmt); -+ spot_check_nan("-nan(snan)", fmt); -+ spot_check_nan("-nan(ind)", fmt); - spot_check_invalid_argument(" 1.23", fmt); - spot_check_invalid_argument(" 1.23", fmt); -+ #endif - } - - return boost::report_errors(); -diff --git a/libs/charconv/test/from_chars_string_view.cpp b/libs/charconv/test/from_chars_string_view.cpp -index f1bcaf8..3588942 100644 ---- a/libs/charconv/test/from_chars_string_view.cpp -+++ b/libs/charconv/test/from_chars_string_view.cpp -@@ -116,17 +116,23 @@ int main() - - test_float(); - test_float(); -- test_float(); - - test_float(); - test_float(); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE -+ test_float(); - test_float(); -+ #endif - - #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) - - test_float(); - test_float(); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test_float(); -+ #endif - - #endif - -diff --git a/libs/charconv/test/github_issue_110.cpp b/libs/charconv/test/github_issue_110.cpp -index 378d5bc..0ccf6de 100644 ---- a/libs/charconv/test/github_issue_110.cpp -+++ b/libs/charconv/test/github_issue_110.cpp -@@ -42,7 +42,10 @@ int main() - { - test(); - test(); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test(); -+ #endif - - #ifdef BOOST_CHARCONV_HAS_FLOAT128 - test<__float128>(); -diff --git a/libs/charconv/test/github_issue_122.cpp b/libs/charconv/test/github_issue_122.cpp -index 7bae0de..c8495b2 100644 ---- a/libs/charconv/test/github_issue_122.cpp -+++ b/libs/charconv/test/github_issue_122.cpp -@@ -52,7 +52,10 @@ int main() - { - test(); - test(); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test(); -+ #endif - - return boost::report_errors(); - } -diff --git a/libs/charconv/test/github_issue_152.cpp b/libs/charconv/test/github_issue_152.cpp -index 730f607..5409a47 100644 ---- a/libs/charconv/test/github_issue_152.cpp -+++ b/libs/charconv/test/github_issue_152.cpp -@@ -188,7 +188,6 @@ int main() - { - test_non_finite(); - test_non_finite(); -- test_non_finite(); - #ifdef BOOST_CHARCONV_HAS_FLOAT16 - test_non_finite(); - #endif -@@ -204,7 +203,6 @@ int main() - - test_non_finite_fixed_precision(); - test_non_finite_fixed_precision(); -- test_non_finite_fixed_precision(); - #ifdef BOOST_CHARCONV_HAS_FLOAT16 - test_non_finite_fixed_precision(); - #endif -@@ -220,7 +218,6 @@ int main() - - test_min_buffer_size(); - test_min_buffer_size(); -- test_min_buffer_size(); - #ifdef BOOST_CHARCONV_HAS_FLOAT32 - test_min_buffer_size(); - #endif -@@ -232,5 +229,11 @@ int main() - test_failed_values(); - #endif - -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE -+ test_non_finite(); -+ test_non_finite_fixed_precision(); -+ test_min_buffer_size(); -+ #endif -+ - return boost::report_errors(); - } -diff --git a/libs/charconv/test/github_issue_158.cpp b/libs/charconv/test/github_issue_158.cpp -index 9507196..f1333e0 100644 ---- a/libs/charconv/test/github_issue_158.cpp -+++ b/libs/charconv/test/github_issue_158.cpp -@@ -93,6 +93,7 @@ void test_values_with_negative_exp() - BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000000099999999999999990753745222790"); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - void test_long_double_with_negative_exp() - { - char buffer[256]; -@@ -126,6 +127,7 @@ void test_long_double_with_negative_exp() - // BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000999999999999999999997135886174218"); - BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000001000000000000000000000000000000000"); - } -+#endif - - void test_values_with_positive_exp() - { -@@ -407,6 +409,7 @@ void test_zero() - BOOST_TEST_CSTR_EQ(buffer, "0"); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - void test_long_double_with_positive_exp() - { - char buffer[256]; -@@ -438,6 +441,7 @@ void test_long_double_with_positive_exp() - BOOST_TEST(res); - BOOST_TEST_CSTR_EQ(buffer, "100000000000000000.00000000000000000000000000000000000000000000000000"); - } -+#endif - - template - void test_spot_value(T value, int precision, const char* result, boost::charconv::chars_format fmt = boost::charconv::chars_format::fixed) -diff --git a/libs/charconv/test/limits.cpp b/libs/charconv/test/limits.cpp -index 5847dd3..934e3c6 100644 ---- a/libs/charconv/test/limits.cpp -+++ b/libs/charconv/test/limits.cpp -@@ -227,7 +227,10 @@ int main() - - test_floating_point(); - test_floating_point(); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test_floating_point(); -+ #endif - - #ifdef BOOST_CHARCONV_HAS_INT128 - -diff --git a/libs/charconv/test/limits_link_1.cpp b/libs/charconv/test/limits_link_1.cpp -index e4dd20e..a7b2eaf 100644 ---- a/libs/charconv/test/limits_link_1.cpp -+++ b/libs/charconv/test/limits_link_1.cpp -@@ -3,6 +3,7 @@ - // https://www.boost.org/LICENSE_1_0.txt - - #include -+#include - - void test_odr_use( int const* ); - -@@ -28,7 +29,9 @@ void f1() - - test(); - test(); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test(); -+ #endif - - #ifdef BOOST_CHARCONV_HAS_INT128 - -diff --git a/libs/charconv/test/limits_link_2.cpp b/libs/charconv/test/limits_link_2.cpp -index 12f3d0b..b45c627 100644 ---- a/libs/charconv/test/limits_link_2.cpp -+++ b/libs/charconv/test/limits_link_2.cpp -@@ -3,6 +3,7 @@ - // https://www.boost.org/LICENSE_1_0.txt - - #include -+#include - - void test_odr_use( int const* ); - -@@ -28,7 +29,9 @@ void f2() - - test(); - test(); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test(); -+ #endif - - #ifdef BOOST_CHARCONV_HAS_INT128 - -diff --git a/libs/charconv/test/roundtrip.cpp b/libs/charconv/test/roundtrip.cpp -index e702f75..2f4754a 100644 ---- a/libs/charconv/test/roundtrip.cpp -+++ b/libs/charconv/test/roundtrip.cpp -@@ -347,6 +347,7 @@ template int64_t Distance(FPType y, FPType x) - return ToOrdinal(y) - ToOrdinal(x); - } - -+#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - template <> void test_roundtrip(long double value) - { - char buffer[ 256 ]; -@@ -381,6 +382,7 @@ template <> void test_roundtrip(long double value) - // LCOV_EXCL_STOP - } - } -+#endif - - // floating point types, boundary values - -@@ -601,7 +603,7 @@ int main() - #endif - - // long double -- #if !(BOOST_CHARCONV_LDBL_BITS == 128) -+ #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE) - - { - long double const ql = std::pow( 1.0L, -64 ); -diff --git a/libs/charconv/test/to_chars_float.cpp b/libs/charconv/test/to_chars_float.cpp -index 535cdc3..e929ffa 100644 ---- a/libs/charconv/test/to_chars_float.cpp -+++ b/libs/charconv/test/to_chars_float.cpp -@@ -202,7 +202,7 @@ int main() - non_finite_values(boost::charconv::chars_format::hex, 2); - - // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484 -- #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) -+ #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE) - non_finite_values(); - #endif - -diff --git a/libs/charconv/test/to_chars_float_STL_comp.cpp b/libs/charconv/test/to_chars_float_STL_comp.cpp -index 02a6b46..c6f20a6 100644 ---- a/libs/charconv/test/to_chars_float_STL_comp.cpp -+++ b/libs/charconv/test/to_chars_float_STL_comp.cpp -@@ -212,7 +212,10 @@ int main() - // General format - random_test(); - random_test(); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - random_test(); -+ #endif -+ - test_spot(0.0); - test_spot(-0.0); - -@@ -224,7 +227,9 @@ int main() - // Scientific - random_test(boost::charconv::chars_format::scientific); - random_test(boost::charconv::chars_format::scientific); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - random_test(boost::charconv::chars_format::scientific); -+ #endif - test_spot(0.0, boost::charconv::chars_format::scientific); - test_spot(-0.0, boost::charconv::chars_format::scientific); - -@@ -237,14 +242,20 @@ int main() - // Hex - random_test(boost::charconv::chars_format::hex); - random_test(boost::charconv::chars_format::hex); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - random_test(boost::charconv::chars_format::hex); -+ #endif - - #if !defined(_LIBCPP_VERSION) -+ - random_test(boost::charconv::chars_format::hex, -1e5F, 1e5F); - random_test(boost::charconv::chars_format::hex, -1e5, 1e5); -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - random_test(boost::charconv::chars_format::hex, -1e5L, 1e5L); - #endif - -+ #endif -+ - test_spot(-9.52743282403084637e+306, boost::charconv::chars_format::hex); - test_spot(-9.52743282403084637e-306, boost::charconv::chars_format::hex); - test_spot(-9.52743282403084637e+305, boost::charconv::chars_format::hex); -@@ -261,13 +272,16 @@ int main() - // Various non-finite values - non_finite_test(); - non_finite_test(); -- non_finite_test(); - non_finite_test(boost::charconv::chars_format::scientific); - non_finite_test(boost::charconv::chars_format::scientific); -- non_finite_test(boost::charconv::chars_format::scientific); - non_finite_test(boost::charconv::chars_format::hex); - non_finite_test(boost::charconv::chars_format::hex); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE -+ non_finite_test(); -+ non_finite_test(boost::charconv::chars_format::scientific); - non_finite_test(boost::charconv::chars_format::hex); -+ #endif - - #if (defined(__GNUC__) && __GNUC__ >= 11) || (defined(_MSC_VER) && _MSC_VER >= 1924) - // Selected additional values -@@ -288,7 +302,10 @@ int main() - // Reported in issue #93 - test_spot(3.3F); - test_spot(3.3); -+ -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - test_spot(3.3L); -+ #endif - - return boost::report_errors(); - } -diff --git a/libs/charconv/test/to_chars_sprintf.cpp b/libs/charconv/test/to_chars_sprintf.cpp -index e8dcd60..3439d81 100644 ---- a/libs/charconv/test/to_chars_sprintf.cpp -+++ b/libs/charconv/test/to_chars_sprintf.cpp -@@ -627,6 +627,7 @@ int main() - - // long double - -+ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE - { - for( int i = 0; i < N; ++i ) - { -@@ -665,6 +666,7 @@ int main() - - test_sprintf_bv_fp(); - } -+ #endif - - return boost::report_errors(); - } diff --git a/recipe/patches/0003-Support-numpy-2.0.0b1.patch b/recipe/patches/0002-Support-numpy-2.0.0b1.patch similarity index 100% rename from recipe/patches/0003-Support-numpy-2.0.0b1.patch rename to recipe/patches/0002-Support-numpy-2.0.0b1.patch diff --git a/recipe/patches/0004-Support-numpy-2.0.patch b/recipe/patches/0003-Support-numpy-2.0.patch similarity index 100% rename from recipe/patches/0004-Support-numpy-2.0.patch rename to recipe/patches/0003-Support-numpy-2.0.patch