From 7ac3bd58db4de6c55d014781c77fac6257f92f58 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 31 Mar 2023 11:02:07 +0200 Subject: [PATCH 1/5] Fix compatibility with libcxx 16 in boost 1.78 --- recipe/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 46462e1..848ce2d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -11,9 +11,11 @@ source: patches: - 5eff1ecc8413b0dc93a1ab047d7fed751e6cb40e.patch # [not win] - 62e7321669f66a90e2a90c8f31af34f59ebc5d7a.patch + # Backport of https://github.com/boostorg/config/pull/440 + - boost_config_libcxx16_compat.patch build: - number: 1 + number: 2 requirements: build: From 0b9f858b28b602ffaa58db951a80eb767c5ba7ba Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 31 Mar 2023 11:02:48 +0200 Subject: [PATCH 2/5] Create boost_config_libcxx16_compat.patch --- recipe/boost_config_libcxx16_compat.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 recipe/boost_config_libcxx16_compat.patch diff --git a/recipe/boost_config_libcxx16_compat.patch b/recipe/boost_config_libcxx16_compat.patch new file mode 100644 index 0000000..8c949b2 --- /dev/null +++ b/recipe/boost_config_libcxx16_compat.patch @@ -0,0 +1,18 @@ +diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp +index bc8536ead..0e9f2445e 100644 +--- a/include/boost/config/stdlib/libcpp.hpp ++++ b/include/boost/config/stdlib/libcpp.hpp +@@ -168,4 +168,13 @@ + # define BOOST_NO_CXX14_HDR_SHARED_MUTEX + #endif + ++#if _LIBCPP_VERSION >= 15000 ++// ++// Unary function is now deprecated in C++11 and later: ++// ++#if __cplusplus >= 201103L ++#define BOOST_NO_CXX98_FUNCTION_BASE ++#endif ++#endif ++ + // --- end --- From a5b827ea9a2b08861efa09373119b9aadd358e8b Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 31 Mar 2023 11:19:45 +0200 Subject: [PATCH 3/5] Create conda_build_config.yaml --- recipe/conda_build_config.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 recipe/conda_build_config.yaml diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml new file mode 100644 index 0000000..ab3acb5 --- /dev/null +++ b/recipe/conda_build_config.yaml @@ -0,0 +1,8 @@ +# To avoid the ABI problems described in https://github.com/conda-forge/boost-cpp-feedstock/pull/130#issuecomment-1297532047, +# we fix the compiler versions used for boost 1.78.0 +cxx_compiler_version: # [linux] + - 10 # [linux] +cxx_compiler_version: # [osx] + - 12 # [osx] +cxx_compiler: # [win] + - vs2017 # [win] From d79245ab8dbd75449251fe65581d73f2b0031e3a Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 09:21:49 +0000 Subject: [PATCH 4/5] MNT: Re-rendered with conda-build 3.24.0, conda-smithy 3.23.1, and conda-forge-pinning 2023.03.29.16.02.14 --- .azure-pipelines/azure-pipelines-osx.yml | 2 +- .azure-pipelines/azure-pipelines-win.yml | 75 ++++++++---------------- .ci_support/linux_64_.yaml | 9 +-- .ci_support/linux_aarch64_.yaml | 9 +-- .ci_support/linux_ppc64le_.yaml | 9 +-- .ci_support/migrations/icu70.yaml | 7 --- .ci_support/osx_64_.yaml | 9 +-- .ci_support/osx_arm64_.yaml | 9 +-- .ci_support/win_64_.yaml | 5 -- .circleci/config.yml | 5 +- .scripts/build_steps.sh | 9 ++- .scripts/run_osx_build.sh | 5 +- LICENSE.txt | 30 +++++++--- README.md | 20 +++---- build-locally.py | 19 ++++-- 15 files changed, 92 insertions(+), 130 deletions(-) delete mode 100644 .ci_support/migrations/icu70.yaml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 84d4f42..8032e96 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-10.15 + vmImage: macOS-11 strategy: matrix: osx_64_: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 88fd9c1..8a96a72 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -5,7 +5,7 @@ jobs: - job: win pool: - vmImage: windows-2019 + vmImage: windows-2022 strategy: matrix: win_64_: @@ -14,47 +14,30 @@ jobs: timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ + UPLOAD_TEMP: D:\\tmp steps: - - script: | - choco install vcpython27 -fdv -y --debug - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Install vcpython27.msi (if needed) - - # Cygwin's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) - # - script: rmdir C:\cygwin /s /q - # continueOnError: true - - - powershell: | - Set-PSDebug -Trace 1 - - $batchcontent = @" - ECHO ON - SET vcpython=C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0 - - DIR "%vcpython%" - - CALL "%vcpython%\vcvarsall.bat" %* - "@ - - $batchDir = "C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC" - $batchPath = "$batchDir" + "\vcvarsall.bat" - New-Item -Path $batchPath -ItemType "file" -Force - - Set-Content -Value $batchcontent -Path $batchPath + - task: PythonScript@0 + displayName: 'Download Miniforge' + inputs: + scriptSource: inline + script: | + import urllib.request + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' + path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" + urllib.request.urlretrieve(url, path) - Get-ChildItem -Path $batchDir + - script: | + start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge + displayName: Install Miniforge - Get-ChildItem -Path ($batchDir + '\..') + - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" + displayName: Add conda to PATH - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Patch vs2008 (if needed) - - task: CondaEnvironment@1 - inputs: - packageSpecs: 'python=3.9 conda-build conda pip boa conda-forge-ci-setup=3' # Optional - installOptions: "-c conda-forge" - updateConda: true - displayName: Install conda-build and activate environment + - script: | + call activate base + mamba.exe install "python=3.10" conda-build conda pip boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes + displayName: Install conda-build - script: set PYTHONUNBUFFERED=1 displayName: Set PYTHONUNBUFFERED @@ -71,25 +54,16 @@ jobs: call activate base run_conda_forge_build_setup displayName: conda-forge build setup - - - # Special cased version setting some more things! - - script: | - call activate base - conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml - displayName: Build recipe (vs2008) - env: - VS90COMNTOOLS: "C:\\Program Files (x86)\\Common Files\\Microsoft\\Visual C++ for Python\\9.0\\VC\\bin" - PYTHONUNBUFFERED: 1 - condition: contains(variables['CONFIG'], 'vs2008') - script: | call activate base + if EXIST LICENSE.txt ( + copy LICENSE.txt "recipe\\recipe-scripts-license.txt" + ) conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables displayName: Build recipe env: PYTHONUNBUFFERED: 1 - condition: not(contains(variables['CONFIG'], 'vs2008')) - script: | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" call activate base @@ -99,6 +73,9 @@ jobs: - script: | set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" + set "TEMP=$(UPLOAD_TEMP)" + if not exist "%TEMP%\" md "%TEMP%" + set "TMP=%TEMP%" call activate base upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml displayName: Upload package diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 3e624fe..de969a8 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -14,17 +14,10 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 icu: - '70' -pin_run_as_build: - bzip2: - max_pin: x - xz: - max_pin: x.x - zlib: - max_pin: x.x target_platform: - linux-64 xz: -- '5.2' +- '5' zlib: - '1.2' zstd: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index 772aaa9..9c973bc 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -18,17 +18,10 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 icu: - '70' -pin_run_as_build: - bzip2: - max_pin: x - xz: - max_pin: x.x - zlib: - max_pin: x.x target_platform: - linux-aarch64 xz: -- '5.2' +- '5' zlib: - '1.2' zstd: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index fe79bdd..e1524ee 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -14,17 +14,10 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 icu: - '70' -pin_run_as_build: - bzip2: - max_pin: x - xz: - max_pin: x.x - zlib: - max_pin: x.x target_platform: - linux-ppc64le xz: -- '5.2' +- '5' zlib: - '1.2' zstd: diff --git a/.ci_support/migrations/icu70.yaml b/.ci_support/migrations/icu70.yaml deleted file mode 100644 index 726d5e2..0000000 --- a/.ci_support/migrations/icu70.yaml +++ /dev/null @@ -1,7 +0,0 @@ -__migrator: - build_number: 1 - kind: version - migration_number: 1 -icu: -- '70' -migrator_ts: 1648069834.8412466 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index deb06c0..ab107db 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -14,17 +14,10 @@ icu: - '70' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - bzip2: - max_pin: x - xz: - max_pin: x.x - zlib: - max_pin: x.x target_platform: - osx-64 xz: -- '5.2' +- '5' zlib: - '1.2' zstd: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index c72ecac..19cf132 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -14,17 +14,10 @@ icu: - '70' macos_machine: - arm64-apple-darwin20.0.0 -pin_run_as_build: - bzip2: - max_pin: x - xz: - max_pin: x.x - zlib: - max_pin: x.x target_platform: - osx-arm64 xz: -- '5.2' +- '5' zlib: - '1.2' zstd: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index e097dc4..30d2ed4 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -6,11 +6,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2017 -pin_run_as_build: - bzip2: - max_pin: x - zlib: - max_pin: x.x target_platform: - win-64 zlib: diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ad461b..8b4ef2f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,13 +1,14 @@ # This file was generated automatically from conda-smithy. To update this configuration, # update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- +# -*- mode: jinja-yaml -*- version: 2 jobs: build: working_directory: ~/test - machine: true + machine: + image: ubuntu-2004:current steps: - run: # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index d71d6ae..595f8b5 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -24,7 +24,10 @@ export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" cat >~/.condarc < /dev/null +if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then + 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}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 19843e0..f169576 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -23,7 +23,6 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base -echo -e "\n\nInstalling ['conda-forge-ci-setup=3'] and conda-build." mamba install --update-specs --quiet --yes --channel conda-forge \ conda-build pip boa conda-forge-ci-setup=3 mamba update --update-specs --yes --quiet --channel conda-forge \ @@ -57,6 +56,10 @@ 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" +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}" diff --git a/LICENSE.txt b/LICENSE.txt index 6ec1401..2ec51d7 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,13 +1,27 @@ -BSD 3-clause license +BSD-3-Clause license Copyright (c) 2015-2022, conda-forge contributors All rights reserved. -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/README.md b/README.md index 99df1a1..78b6370 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -About boost-cpp -=============== +About boost-cpp-feedstock +========================= + +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/boost-cpp-feedstock/blob/main/LICENSE.txt) Home: http://www.boost.org/ Package license: BSL-1.0 -Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/boost-cpp-feedstock/blob/main/LICENSE.txt) - Summary: Free peer-reviewed portable C++ source libraries. Current build status @@ -30,42 +30,42 @@ Current build status linux_64 - variant + variant linux_aarch64 - variant + variant linux_ppc64le - variant + variant osx_64 - variant + variant osx_arm64 - variant + variant win_64 - variant + variant diff --git a/build-locally.py b/build-locally.py index eec38a0..3f4b7a7 100755 --- a/build-locally.py +++ b/build-locally.py @@ -86,12 +86,19 @@ def main(args=None): verify_config(ns) setup_environment(ns) - if ns.config.startswith("linux") or ( - ns.config.startswith("osx") and platform.system() == "Linux" - ): - run_docker_build(ns) - elif ns.config.startswith("osx"): - run_osx_build(ns) + try: + if ns.config.startswith("linux") or ( + ns.config.startswith("osx") and platform.system() == "Linux" + ): + run_docker_build(ns) + elif ns.config.startswith("osx"): + run_osx_build(ns) + finally: + recipe_license_file = os.path.join( + "recipe", "recipe-scripts-license.txt" + ) + if os.path.exists(recipe_license_file): + os.remove(recipe_license_file) if __name__ == "__main__": From 20b2ca6066aea63103deb583d8a4eeb46bddfa1c Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 31 Mar 2023 11:27:46 +0200 Subject: [PATCH 5/5] Update boost_config_libcxx16_compat.patch --- recipe/boost_config_libcxx16_compat.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/boost_config_libcxx16_compat.patch b/recipe/boost_config_libcxx16_compat.patch index 8c949b2..5e87dab 100644 --- a/recipe/boost_config_libcxx16_compat.patch +++ b/recipe/boost_config_libcxx16_compat.patch @@ -1,7 +1,7 @@ diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index bc8536ead..0e9f2445e 100644 ---- a/include/boost/config/stdlib/libcpp.hpp -+++ b/include/boost/config/stdlib/libcpp.hpp +--- a/boost/config/stdlib/libcpp.hpp ++++ b/boost/config/stdlib/libcpp.hpp @@ -168,4 +168,13 @@ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX #endif