├── .github └── CODEOWNERS ├── recipe ├── test.cpp ├── yum_requirements.txt ├── activate.fish ├── activate.csh ├── thisroot ├── deactivate.fish ├── deactivate.csh ├── activate.sh ├── deactivate.sh ├── conda_build_config.yaml ├── test_pyroot.py ├── test_roofit_multiprocess.py ├── patches │ ├── 0003-Set-LLVM_REQUIRES_EH-for-Cling.patch │ ├── 0009-Avoid-linking-TPython-against-libPython.patch │ ├── 0001-disable-cling-sysroot-at-runtime.patch │ ├── 0004-asimage-cross-compilation-fix.patch │ ├── 0002-Hint-to-external-LLVM-and-Clang-on-Conda.patch │ ├── 0011-Remove-bad-check-on-SDK-for-std_darwin.MacOSX14.2.sd.patch │ ├── 0008-disable-builtin-freetype-macos.patch │ ├── 0006-HACK-Support-overriding-triplet-used-by-cling.patch │ ├── 0010-root-x.xx.xx-osx-remove-hardcoded-sysroot.patch │ ├── 0005-Detect-which-ar-binary-should-be-used-to-build-libAf.patch │ └── 0007-Disable-hsimple.root-generation-if-cross-compiling.patch ├── get_cpu_arch.sh ├── recipe.yaml └── build_root.sh ├── .ci_support ├── README ├── migrations │ ├── libxml2214.yaml │ └── python314.yaml ├── linux_64_python3.13.____cp313.yaml ├── linux_64_python3.14.____cp314.yaml ├── linux_64_python3.10.____cpython.yaml ├── linux_64_python3.11.____cpython.yaml ├── linux_64_python3.12.____cpython.yaml ├── linux_aarch64_python3.13.____cp313.yaml ├── linux_aarch64_python3.14.____cp314.yaml ├── linux_ppc64le_python3.13.____cp313.yaml ├── linux_ppc64le_python3.14.____cp314.yaml ├── linux_aarch64_python3.10.____cpython.yaml ├── linux_aarch64_python3.11.____cpython.yaml ├── linux_aarch64_python3.12.____cpython.yaml ├── linux_ppc64le_python3.10.____cpython.yaml ├── linux_ppc64le_python3.11.____cpython.yaml ├── linux_ppc64le_python3.12.____cpython.yaml ├── osx_64_python3.13.____cp313.yaml ├── osx_64_python3.14.____cp314.yaml ├── osx_64_python3.10.____cpython.yaml ├── osx_64_python3.11.____cpython.yaml ├── osx_64_python3.12.____cpython.yaml ├── osx_arm64_python3.13.____cp313.yaml ├── osx_arm64_python3.14.____cp314.yaml ├── osx_arm64_python3.10.____cpython.yaml ├── osx_arm64_python3.11.____cpython.yaml └── osx_arm64_python3.12.____cpython.yaml ├── conda-forge.yml ├── .circleci └── config.yml ├── .gitattributes ├── .gitignore ├── .scripts ├── logging_utils.sh ├── run_osx_build.sh ├── run_docker_build.sh ├── build_steps.sh └── create_conda_build_artifacts.sh ├── azure-pipelines.yml ├── LICENSE.txt ├── .azure-pipelines ├── azure-pipelines-osx.yml └── azure-pipelines-linux.yml ├── pixi.toml └── README.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @chrisburr @duncanmmacleod @henryiii @vepadulano -------------------------------------------------------------------------------- /recipe/test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | size_t test() { 4 | std::cout << "Hello world" << std::endl; 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /recipe/yum_requirements.txt: -------------------------------------------------------------------------------- 1 | # Required for OpenGL 2 | mesa-libGL 3 | mesa-dri-drivers 4 | libselinux 5 | libXdamage 6 | libXxf86vm 7 | -------------------------------------------------------------------------------- /recipe/activate.fish: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env fish 2 | 3 | if set -q ROOTSYS 4 | set -gx CONDA_BACKUP_ROOTSYS "$ROOTSYS" 5 | end 6 | 7 | set -gx ROOTSYS "$CONDA_PREFIX" 8 | -------------------------------------------------------------------------------- /recipe/activate.csh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env csh 2 | 3 | if ($?ROOTSYS) then 4 | setenv CONDA_BACKUP_ROOTSYS "${ROOTSYS}" 5 | endif 6 | 7 | setenv ROOTSYS "${CONDA_PREFIX}" 8 | -------------------------------------------------------------------------------- /recipe/thisroot: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | echo 'ERROR: thisroot.sh, thisroot.csh and thisroot.fish should never be used' 3 | echo 'Look at using "conda activate ENVIRONMENT_NAME"' 4 | -------------------------------------------------------------------------------- /recipe/deactivate.fish: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env fish 2 | 3 | if set -q CONDA_BACKUP_ROOTSYS 4 | set -gx ROOTSYS "$CONDA_BACKUP_ROOTSYS" 5 | set -e CONDA_BACKUP_ROOTSYS 6 | else 7 | set -e ROOTSYS 8 | end 9 | -------------------------------------------------------------------------------- /recipe/deactivate.csh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env csh 2 | 3 | if ($?CONDA_BACKUP_ROOTSYS) then 4 | setenv ROOTSYS "${CONDA_BACKUP_ROOTSYS}" 5 | unsetenv CONDA_BACKUP_ROOTSYS 6 | else 7 | unsetenv ROOTSYS 8 | endif 9 | -------------------------------------------------------------------------------- /recipe/activate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # preserve the user's existing setting 4 | if [ ! -z "${ROOTSYS+x}" ]; then 5 | export CONDA_BACKUP_ROOTSYS="${ROOTSYS}" 6 | fi 7 | 8 | export ROOTSYS="${CONDA_PREFIX}" 9 | -------------------------------------------------------------------------------- /recipe/deactivate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # reinstate the backup from outside the environment 4 | if [ ! -z "${CONDA_BACKUP_ROOTSYS}" ]; then 5 | export ROOTSYS="${CONDA_BACKUP_ROOTSYS}" 6 | unset CONDA_BACKUP_ROOTSYS 7 | # no backup, just unset 8 | else 9 | unset ROOTSYS 10 | fi 11 | -------------------------------------------------------------------------------- /.ci_support/README: -------------------------------------------------------------------------------- 1 | This file is automatically generated by conda-smithy. If any 2 | particular build configuration is expected, but it is not found, 3 | please make sure all dependencies are satisfiable. To add/modify any 4 | matrix elements, you should create/change conda-smithy's input 5 | recipe/conda_build_config.yaml and re-render the recipe, rather than 6 | editing these files directly. 7 | -------------------------------------------------------------------------------- /.ci_support/migrations/libxml2214.yaml: -------------------------------------------------------------------------------- 1 | __migrator: 2 | build_number: 1 3 | commit_message: Rebuild for libxml2 2.14 4 | kind: version 5 | migration_number: 1 6 | exclude: 7 | # break circularity with compiler stack 8 | - llvmdev 9 | - clangdev 10 | - compiler-rt 11 | - lld 12 | # same for libgsf and msitools 13 | - libgsf 14 | libxml2: 15 | - '2.14' 16 | libxml2_devel: 17 | - '2.14' 18 | migrator_ts: 1743812129.3751788 19 | -------------------------------------------------------------------------------- /recipe/conda_build_config.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib_version: # [osx] 2 | - 11.0 # [osx] 3 | 4 | # libc++ shipped by the conda-forge compilers on MacOS may not be compatible 5 | # with the version of clang used by the ROOT build (i.e. by cling). Try to help 6 | # the build by using a compatible compiler version for the main compiler driving 7 | # the build process 8 | c_compiler_version: 9 | - 18 # [osx] 10 | cxx_compiler_version: 11 | - 18 # [osx] 12 | 13 | -------------------------------------------------------------------------------- /conda-forge.yml: -------------------------------------------------------------------------------- 1 | azure: 2 | free_disk_space: true 3 | store_build_artifacts: true 4 | build_platform: 5 | linux_aarch64: linux_64 6 | linux_ppc64le: linux_64 7 | osx_arm64: osx_64 8 | conda_build: 9 | pkg_format: '2' 10 | conda_build_tool: rattler-build 11 | conda_forge_output_validation: true 12 | conda_install_tool: pixi 13 | github: 14 | branch_name: main 15 | tooling_branch_name: main 16 | provider: 17 | linux_aarch64: default 18 | linux_ppc64le: default 19 | osx_arm64: default 20 | test: native 21 | -------------------------------------------------------------------------------- /recipe/test_pyroot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | import ROOT 4 | 5 | def test_1(): 6 | if sys.version_info >= (3, 8): # Minimum supported Python version by ROOT 7 | try: 8 | import numba 9 | except ImportError: 10 | print("Skipping numba test") 11 | return 12 | 13 | @ROOT.Numba.Declare(["float"], "float") 14 | def fn(x): 15 | return x**2 16 | 17 | assert fn(6) == 36 18 | 19 | def test_2(): 20 | assert ROOT.TPython.Exec("print('1 + 1 =', 1+1)") 21 | 22 | if __name__ == "__main__": 23 | test_1() 24 | test_2() 25 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: jinja-yaml -*- 4 | 5 | version: 2 6 | 7 | jobs: 8 | build: 9 | working_directory: ~/test 10 | machine: 11 | image: ubuntu-2004:current 12 | steps: 13 | - run: 14 | # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. 15 | command: exit 0 16 | 17 | workflows: 18 | version: 2 19 | build_and_test: 20 | jobs: 21 | - build: 22 | filters: 23 | branches: 24 | ignore: 25 | - /.*/ 26 | -------------------------------------------------------------------------------- /recipe/test_roofit_multiprocess.py: -------------------------------------------------------------------------------- 1 | import ROOT 2 | 3 | x = ROOT.RooRealVar("x", "x", -10, 10) 4 | mean = ROOT.RooRealVar("mean", "mean of gaussian", 1, -10, 10) 5 | sigma = ROOT.RooRealVar("sigma", "width of gaussian", 3, 0.1, 10) 6 | 7 | gauss = ROOT.RooGaussian("gauss", "gaussian PDF", x, mean, sigma) 8 | 9 | data = gauss.generate(x, 10000) # ROOT.RooDataSet 10 | 11 | # Use the new RooFit multiprocessing for parallelization 12 | # See https://root.cern.ch/doc/master/classRooAbsPdf.html#ab0721374836c343a710f5ff92a326ff5 13 | # This raises an exception if RooFit multiprocessing is not available 14 | result = gauss.fitTo(data, PrintLevel=-1, Parallelize=2, Save=True) 15 | 16 | # status zero means successful fit 17 | assert result.status() == 0 18 | -------------------------------------------------------------------------------- /recipe/patches/0003-Set-LLVM_REQUIRES_EH-for-Cling.patch: -------------------------------------------------------------------------------- 1 | From 4f5c55238bf7f1726811eae6beb4bd84c846876d Mon Sep 17 00:00:00 2001 2 | From: Chris Burr 3 | Date: Mon, 19 Apr 2021 15:23:24 +0200 4 | Subject: [PATCH] Set LLVM_REQUIRES_EH for Cling 5 | 6 | --- 7 | interpreter/CMakeLists.txt | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt 11 | index 39dc895cce..71ca52ee5c 100644 12 | --- a/interpreter/CMakeLists.txt 13 | +++ b/interpreter/CMakeLists.txt 14 | @@ -323,6 +323,8 @@ else() 15 | "Set to ON to force using an old, unsupported host toolchain." OFF) 16 | option(CLANG_ENABLE_BOOTSTRAP "Generate the clang bootstrap target" OFF) 17 | 18 | + set(LLVM_REQUIRES_EH ON) 19 | + 20 | include(AddLLVM) 21 | include(TableGen) 22 | include(HandleLLVMOptions) 23 | -- 24 | 2.27.0 25 | 26 | -------------------------------------------------------------------------------- /recipe/get_cpu_arch.sh: -------------------------------------------------------------------------------- 1 | # Taken from https://github.com/conda-forge/ctng-compiler-activation-feedstock/blob/e2bdf15eb170008eda386056a900ce93e0f9cb16/recipe/get_cpu_arch.sh 2 | 3 | get_triplet() { 4 | local CPU_ARCH 5 | if [[ "$1" == *"-64" ]]; then 6 | CPU_ARCH="x86_64" 7 | elif [[ "$1" == *"-ppc64le" ]]; then 8 | CPU_ARCH="powerpc64le" 9 | elif [[ "$1" == *"-aarch64" ]]; then 10 | CPU_ARCH="aarch64" 11 | elif [[ "$1" == *"-s390x" ]]; then 12 | CPU_ARCH="s390x" 13 | elif [[ "$1" == *"-arm64" ]]; then 14 | CPU_ARCH="arm64" 15 | else 16 | echo "Unknown architecture" 17 | exit 1 18 | fi 19 | if [[ "$1" == "linux-"* ]]; then 20 | echo $CPU_ARCH-conda-linux-gnu 21 | elif [[ "$1" == "osx-64" ]]; then 22 | echo x86_64-apple-darwin13.4.0 23 | elif [[ "$1" == "osx-arm64" ]]; then 24 | echo arm64-apple-darwin20.0.0 25 | elif [[ "$1" == "win-64" ]]; then 26 | echo x86_64-w64-mingw32 27 | fi 28 | } 29 | 30 | export CHOST="$(get_triplet ${target_platform})" 31 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.patch binary 4 | *.diff binary 5 | meta.yaml text eol=lf 6 | build.sh text eol=lf 7 | bld.bat text eol=crlf 8 | 9 | # github helper pieces to make some files not show up in diffs automatically 10 | .azure-pipelines/* linguist-generated=true 11 | .circleci/* linguist-generated=true 12 | .ci_support/README linguist-generated=true 13 | .drone/* linguist-generated=true 14 | .drone.yml linguist-generated=true 15 | .github/* linguist-generated=true 16 | .travis/* linguist-generated=true 17 | .appveyor.yml linguist-generated=true 18 | .gitattributes linguist-generated=true 19 | .gitignore linguist-generated=true 20 | .travis.yml linguist-generated=true 21 | .scripts/* linguist-generated=true 22 | .woodpecker.yml linguist-generated=true 23 | /LICENSE.txt linguist-generated=true 24 | /README.md linguist-generated=true 25 | azure-pipelines.yml linguist-generated=true 26 | build-locally.py linguist-generated=true 27 | pixi.toml linguist-generated=true 28 | shippable.yml linguist-generated=true 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # User content belongs under recipe/. 2 | # Feedstock configuration goes in `conda-forge.yml` 3 | # Everything else is managed by the conda-smithy rerender process. 4 | # Please do not modify 5 | 6 | # Ignore all files and folders in root 7 | * 8 | !/conda-forge.yml 9 | 10 | # Don't ignore any files/folders if the parent folder is 'un-ignored' 11 | # This also avoids warnings when adding an already-checked file with an ignored parent. 12 | !/**/ 13 | # Don't ignore any files/folders recursively in the following folders 14 | !/recipe/** 15 | !/.ci_support/** 16 | 17 | # Since we ignore files/folders recursively, any folders inside 18 | # build_artifacts gets ignored which trips some build systems. 19 | # To avoid that we 'un-ignore' all files/folders recursively 20 | # and only ignore the root build_artifacts folder. 21 | !/build_artifacts/** 22 | /build_artifacts 23 | 24 | *.pyc 25 | 26 | # Rattler-build's artifacts are in `output` when not specifying anything. 27 | /output 28 | # Pixi's configuration 29 | .pixi 30 | -------------------------------------------------------------------------------- /.scripts/logging_utils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Provide a unified interface for the different logging 4 | # utilities CI providers offer. If unavailable, provide 5 | # a compatible fallback (e.g. bare `echo xxxxxx`). 6 | 7 | function startgroup { 8 | # Start a foldable group of log lines 9 | # Pass a single argument, quoted 10 | case ${CI:-} in 11 | azure ) 12 | echo "##[group]$1";; 13 | travis ) 14 | echo "$1" 15 | echo -en 'travis_fold:start:'"${1// /}"'\r';; 16 | github_actions ) 17 | echo "::group::$1";; 18 | * ) 19 | echo "$1";; 20 | esac 21 | } 2> /dev/null 22 | 23 | function endgroup { 24 | # End a foldable group of log lines 25 | # Pass a single argument, quoted 26 | 27 | case ${CI:-} in 28 | azure ) 29 | echo "##[endgroup]";; 30 | travis ) 31 | echo -en 'travis_fold:end:'"${1// /}"'\r';; 32 | github_actions ) 33 | echo "::endgroup::";; 34 | esac 35 | } 2> /dev/null 36 | -------------------------------------------------------------------------------- /recipe/patches/0009-Avoid-linking-TPython-against-libPython.patch: -------------------------------------------------------------------------------- 1 | From 5684c0bcbd85edcca8e32078bf554e7919a6870a Mon Sep 17 00:00:00 2001 2 | From: Vincenzo Eduardo Padulano 3 | Date: Thu, 20 Jun 2024 14:08:06 +0200 4 | Subject: [PATCH] Avoid linking TPython against libPython 5 | 6 | --- 7 | bindings/tpython/CMakeLists.txt | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/bindings/tpython/CMakeLists.txt b/bindings/tpython/CMakeLists.txt 11 | index cfb9f4e65e..fddb8c09fa 100644 12 | --- a/bindings/tpython/CMakeLists.txt 13 | +++ b/bindings/tpython/CMakeLists.txt 14 | @@ -27,7 +27,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ROOTTPython 15 | # We link libTPython against Python libraries to compensate for the fact that libcppyy 16 | # is built with unresolved symbols. If we didn't do this, invoking TPython from C++ 17 | # would not work. 18 | - Python3::Python 19 | + Python3::Module 20 | ) 21 | 22 | # Disables warnings originating from deprecated register keyword in Python 23 | -- 24 | 2.45.0 25 | 26 | -------------------------------------------------------------------------------- /recipe/patches/0001-disable-cling-sysroot-at-runtime.patch: -------------------------------------------------------------------------------- 1 | On Prefix, we have specified SYSROOT for llvm at build time. But we 2 | do not need sysroot at runtime as we are not crosscompiling. 3 | 4 | This patch disable the sysroot feature for cling, so that ACLiC can 5 | work on Prefix. 6 | 7 | Index: root-6.12.06/interpreter/cling/lib/Utils/Paths.cpp 8 | =================================================================== 9 | --- root-6.12.06.orig/interpreter/cling/lib/Utils/Paths.cpp 10 | +++ root-6.12.06/interpreter/cling/lib/Utils/Paths.cpp 11 | @@ -57,11 +57,6 @@ using namespace clang; 12 | void CopyIncludePaths(const clang::HeaderSearchOptions& Opts, 13 | llvm::SmallVectorImpl& incpaths, 14 | bool withSystem, bool withFlags) { 15 | - if (withFlags && Opts.Sysroot != "/") { 16 | - incpaths.push_back("-isysroot"); 17 | - incpaths.push_back(Opts.Sysroot); 18 | - } 19 | - 20 | /// User specified include entries. 21 | for (unsigned i = 0, e = Opts.UserEntries.size(); i != e; ++i) { 22 | const HeaderSearchOptions::Entry &E = Opts.UserEntries[i]; 23 | -------------------------------------------------------------------------------- /recipe/patches/0004-asimage-cross-compilation-fix.patch: -------------------------------------------------------------------------------- 1 | From 58ca7b5916c14605327f64a555e8460f283a3035 Mon Sep 17 00:00:00 2001 2 | From: Chris Burr 3 | Date: Sun, 6 Dec 2020 21:42:47 +0100 4 | Subject: [PATCH] Hackily fix cross-compilation 5 | 6 | --- 7 | configure.in | 5 +---- 8 | 1 file changed, 1 insertion(+), 4 deletions(-) 9 | 10 | diff --git a/graf2d/asimage/src/libAfterImage/configure.in b/graf2d/asimage/src/libAfterImage/configure.in 11 | index 2a479be..678e15d 100644 12 | --- a/graf2d/asimage/src/libAfterImage/configure.in 13 | +++ b/graf2d/asimage/src/libAfterImage/configure.in 14 | @@ -602,10 +602,7 @@ else 15 | [have_ttf=yes],AC_MSG_RESULT(no)) 16 | fi; 17 | elif test "x$have_freetype_freetype" = "xyes" ; then 18 | - AC_TRY_RUN([#include 19 | - #include 20 | - int main(){FT_Face f; return 0;}], 21 | - [have_ttf=yes],AC_MSG_RESULT(no)) 22 | + have_ttf=yes 23 | elif test "x$have_freetype" = "xyes" ; then 24 | AC_TRY_RUN([#include 25 | #include 26 | -- 27 | 2.27.0 28 | 29 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.13.* *_cp313 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.14.* *_cp314 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.10.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.11.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.12.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.13.* *_cp313 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-aarch64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.14.* *_cp314 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-aarch64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.13.* *_cp313 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-ppc64le 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.14.* *_cp314 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-ppc64le 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.10.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-aarch64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.11.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-aarch64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.12.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-aarch64 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.10.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-ppc64le 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.11.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-ppc64le 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '14' 5 | c_stdlib: 6 | - sysroot 7 | c_stdlib_version: 8 | - '2.17' 9 | cfitsio: 10 | - 4.6.3 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | cxx_compiler: 16 | - gxx 17 | cxx_compiler_version: 18 | - '14' 19 | davix: 20 | - '0.8' 21 | docker_image: 22 | - quay.io/condaforge/linux-anvil-x86_64:alma9 23 | fftw: 24 | - '3' 25 | freetype: 26 | - '2' 27 | gdk_pixbuf: 28 | - '2' 29 | giflib: 30 | - '5.2' 31 | glew: 32 | - '2.2' 33 | glib: 34 | - '2' 35 | graphviz: 36 | - '14' 37 | gsl: 38 | - '2.7' 39 | libblas: 40 | - 3.9.* *netlib 41 | libcblas: 42 | - 3.9.* *netlib 43 | liblzma_devel: 44 | - '5' 45 | libpng: 46 | - '1.6' 47 | librsvg: 48 | - '2' 49 | libtiff: 50 | - '4.7' 51 | libxml2_devel: 52 | - '2.14' 53 | lz4_c: 54 | - '1.10' 55 | numpy: 56 | - '2' 57 | openssl: 58 | - '3.5' 59 | pcre: 60 | - '8' 61 | pin_run_as_build: 62 | python: 63 | min_pin: x.x 64 | max_pin: x.x 65 | python: 66 | - 3.12.* *_cpython 67 | sqlite: 68 | - '3' 69 | target_platform: 70 | - linux-ppc64le 71 | tbb: 72 | - '2022' 73 | tbb_devel: 74 | - '2022' 75 | xrootd: 76 | - '5' 77 | xxhash: 78 | - 0.8.3 79 | zeromq: 80 | - 4.3.5 81 | zip_keys: 82 | - - c_compiler_version 83 | - cxx_compiler_version 84 | zlib: 85 | - '1' 86 | zstd: 87 | - '1.5' 88 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - x86_64-apple-darwin13.4.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.13.* *_cp313 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - x86_64-apple-darwin13.4.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.14.* *_cp314 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - x86_64-apple-darwin13.4.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.10.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - x86_64-apple-darwin13.4.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.11.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - x86_64-apple-darwin13.4.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.12.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - arm64-apple-darwin20.0.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.13.* *_cp313 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-arm64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - arm64-apple-darwin20.0.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.14.* *_cp314 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-arm64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/migrations/python314.yaml: -------------------------------------------------------------------------------- 1 | # this is intentionally sorted before the 3.13t migrator, because that determines 2 | # the order of application of the migrators; otherwise we'd have to add values for 3 | # is_freethreading and is_abi3 keys here, since that migration extends the zip; 4 | migrator_ts: 1724712607 5 | __migrator: 6 | commit_message: Rebuild for python 3.14 7 | migration_number: 1 8 | operation: key_add 9 | primary_key: python 10 | ordering: 11 | python: 12 | - 3.9.* *_cpython 13 | - 3.10.* *_cpython 14 | - 3.11.* *_cpython 15 | - 3.12.* *_cpython 16 | - 3.13.* *_cp313 17 | - 3.13.* *_cp313t 18 | - 3.14.* *_cp314 # new entry 19 | paused: false 20 | longterm: true 21 | pr_limit: 5 22 | max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times 23 | exclude: 24 | # this shouldn't attempt to modify the python feedstocks 25 | - python 26 | - pypy3.6 27 | - pypy-meta 28 | - cross-python 29 | - python_abi 30 | # Manually migrated (e.g. were blocked on missing dev dependencies) 31 | - pyarrow 32 | exclude_pinned_pkgs: false 33 | ignored_deps_per_node: 34 | matplotlib: 35 | - pyqt 36 | 37 | python: 38 | - 3.14.* *_cp314 39 | # additional entries to add for zip_keys 40 | is_python_min: 41 | - false 42 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - arm64-apple-darwin20.0.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.10.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-arm64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - arm64-apple-darwin20.0.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.11.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-arm64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_compiler: 6 | - clang 7 | c_compiler_version: 8 | - '18' 9 | c_stdlib: 10 | - macosx_deployment_target 11 | c_stdlib_version: 12 | - '11.0' 13 | cfitsio: 14 | - 4.6.3 15 | channel_sources: 16 | - conda-forge 17 | channel_targets: 18 | - conda-forge main 19 | cxx_compiler: 20 | - clangxx 21 | cxx_compiler_version: 22 | - '18' 23 | davix: 24 | - '0.8' 25 | fftw: 26 | - '3' 27 | freetype: 28 | - '2' 29 | gdk_pixbuf: 30 | - '2' 31 | giflib: 32 | - '5.2' 33 | glew: 34 | - '2.2' 35 | glib: 36 | - '2' 37 | graphviz: 38 | - '14' 39 | gsl: 40 | - '2.7' 41 | libblas: 42 | - 3.9.* *netlib 43 | libcblas: 44 | - 3.9.* *netlib 45 | liblzma_devel: 46 | - '5' 47 | libpng: 48 | - '1.6' 49 | librsvg: 50 | - '2' 51 | libtiff: 52 | - '4.7' 53 | libxml2_devel: 54 | - '2.14' 55 | lz4_c: 56 | - '1.10' 57 | macos_machine: 58 | - arm64-apple-darwin20.0.0 59 | numpy: 60 | - '2' 61 | openssl: 62 | - '3.5' 63 | pcre: 64 | - '8' 65 | pin_run_as_build: 66 | python: 67 | min_pin: x.x 68 | max_pin: x.x 69 | python: 70 | - 3.12.* *_cpython 71 | sqlite: 72 | - '3' 73 | target_platform: 74 | - osx-arm64 75 | tbb: 76 | - '2022' 77 | tbb_devel: 78 | - '2022' 79 | xrootd: 80 | - '5' 81 | xxhash: 82 | - 0.8.3 83 | zeromq: 84 | - 4.3.5 85 | zip_keys: 86 | - - c_compiler_version 87 | - cxx_compiler_version 88 | zlib: 89 | - '1' 90 | zstd: 91 | - '1.5' 92 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | stages: 6 | - stage: Check 7 | jobs: 8 | - job: Skip 9 | pool: 10 | vmImage: 'ubuntu-22.04' 11 | variables: 12 | DECODE_PERCENTS: 'false' 13 | RET: 'true' 14 | steps: 15 | - checkout: self 16 | fetchDepth: '2' 17 | - bash: | 18 | git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` 19 | echo "##vso[task.setvariable variable=log]$git_log" 20 | displayName: Obtain commit message 21 | - bash: echo "##vso[task.setvariable variable=RET]false" 22 | condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) 23 | displayName: Skip build? 24 | - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" 25 | name: result 26 | displayName: Export result 27 | - stage: Build 28 | condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) 29 | dependsOn: Check 30 | jobs: 31 | - template: ./.azure-pipelines/azure-pipelines-linux.yml 32 | - template: ./.azure-pipelines/azure-pipelines-osx.yml -------------------------------------------------------------------------------- /recipe/patches/0002-Hint-to-external-LLVM-and-Clang-on-Conda.patch: -------------------------------------------------------------------------------- 1 | From 0ef3e0eca8bc7dd6d2a87008fee33f204520506b Mon Sep 17 00:00:00 2001 2 | From: Vincenzo Eduardo Padulano 3 | Date: Mon, 28 Jul 2025 11:53:33 +0200 4 | Subject: [PATCH] Hint to external LLVM and Clang on Conda 5 | 6 | --- 7 | interpreter/CMakeLists.txt | 4 ++-- 8 | 1 file changed, 2 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/interpreter/CMakeLists.txt b/interpreter/CMakeLists.txt 11 | index e6512a8882..f7c486a2a6 100644 12 | --- a/interpreter/CMakeLists.txt 13 | +++ b/interpreter/CMakeLists.txt 14 | @@ -256,7 +256,7 @@ if(builtin_llvm) 15 | set(LLVM_TABLEGEN_EXE "${LLVM_BINARY_DIR}/bin/llvm-tblgen") 16 | endif() 17 | else() 18 | - find_package(LLVM REQUIRED CONFIG) 19 | + find_package(LLVM REQUIRED CONFIG HINTS "${LLVM_CMAKE_PATH}") 20 | message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION} in ${LLVM_CMAKE_DIR}") 21 | 22 | separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS}) 23 | @@ -405,7 +405,7 @@ if (builtin_clang) 24 | CACHE STRING "Clang include directories.") 25 | set(CLANG_CMAKE_DIR "${CMAKE_BINARY_DIR}/lib/cmake/clang/") 26 | else() 27 | - find_package(Clang REQUIRED CONFIG) 28 | + find_package(Clang REQUIRED CONFIG HINTS "${LLVM_CMAKE_PATH}") 29 | message(STATUS "Found Clang ${CLANG_PACKAGE_VERSION} in ${CLANG_CMAKE_DIR}") 30 | endif() 31 | 32 | -- 33 | 2.39.5 (Apple Git-154) 34 | 35 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD-3-Clause license 2 | Copyright (c) 2015-2022, conda-forge contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 3. Neither the name of the copyright holder nor the names of its 14 | contributors may be used to endorse or promote products derived from 15 | this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR 21 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 24 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 27 | DAMAGE. 28 | -------------------------------------------------------------------------------- /recipe/patches/0011-Remove-bad-check-on-SDK-for-std_darwin.MacOSX14.2.sd.patch: -------------------------------------------------------------------------------- 1 | From 02e567125dee29ac4f50ce22868ca6c7a4eb096a Mon Sep 17 00:00:00 2001 2 | From: Vincenzo Eduardo Padulano 3 | Date: Thu, 31 Jul 2025 13:50:15 +0200 4 | Subject: [PATCH] Remove bad check on SDK for 5 | std_darwin.MacOSX14.2.sdk.modulemap 6 | 7 | --- 8 | interpreter/cling/lib/Interpreter/CIFactory.cpp | 8 -------- 9 | 1 file changed, 8 deletions(-) 10 | 11 | diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp 12 | index d9cedd5ed1..bd2c3dc4a5 100644 13 | --- a/interpreter/cling/lib/Interpreter/CIFactory.cpp 14 | +++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp 15 | @@ -703,18 +703,10 @@ namespace { 16 | /*AllowModulemapOverride=*/ false); 17 | #elif __APPLE__ 18 | if (Triple.isMacOSX()) { 19 | - if (CI.getTarget().getSDKVersion() < VersionTuple(14, 4)) { 20 | - maybeAppendOverlayEntry(stdIncLoc.str(), 21 | - "std_darwin.MacOSX14.2.sdk.modulemap", 22 | - clingIncLoc.str().str(), MOverlay, 23 | - /*RegisterModuleMap=*/true, 24 | - /*AllowModulemapOverride=*/false); 25 | - } else { 26 | maybeAppendOverlayEntry(stdIncLoc.str(), "std_darwin.modulemap", 27 | clingIncLoc.str().str(), MOverlay, 28 | /*RegisterModuleMap=*/ true, 29 | /*AllowModulemapOverride=*/ false); 30 | - } 31 | } 32 | #else 33 | maybeAppendOverlayEntry(cIncLoc.str(), "libc.modulemap", 34 | -- 35 | 2.39.5 (Apple Git-154) 36 | 37 | -------------------------------------------------------------------------------- /recipe/patches/0008-disable-builtin-freetype-macos.patch: -------------------------------------------------------------------------------- 1 | From b156b2c874bbcca3d160be87a0e1dced85034e62 Mon Sep 17 00:00:00 2001 2 | From: Vincenzo Eduardo Padulano 3 | Date: Thu, 4 Jul 2024 11:43:29 +0200 4 | Subject: [PATCH] Patch for apple silicon 5 | 6 | --- 7 | cmake/modules/SearchInstalledSoftware.cmake | 4 ++-- 8 | 1 file changed, 2 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake 11 | index 109602f5e2..9d75aa0f0a 100644 12 | --- a/cmake/modules/SearchInstalledSoftware.cmake 13 | +++ b/cmake/modules/SearchInstalledSoftware.cmake 14 | @@ -37,7 +37,7 @@ endif() 15 | if(cocoa) 16 | if(APPLE) 17 | set(x11 OFF CACHE BOOL "Disabled because cocoa requested (${x11_description})" FORCE) 18 | - set(builtin_freetype ON CACHE BOOL "Enabled because needed for Cocoa graphics (${builtin_freetype_description})" FORCE) 19 | + set(builtin_freetype OFF CACHE BOOL "Enabled because needed for Cocoa graphics (${builtin_freetype_description})" FORCE) 20 | else() 21 | message(STATUS "Cocoa option can only be enabled on MacOSX platform") 22 | set(cocoa OFF CACHE BOOL "Disabled because only available on MacOSX (${cocoa_description})" FORCE) 23 | @@ -114,7 +114,7 @@ if(NOT builtin_freetype) 24 | set(FREETYPE_INCLUDE_DIR ${FREETYPE_INCLUDE_DIR_freetype2}) 25 | else() 26 | message(STATUS "FreeType not found. Switching on builtin_freetype option") 27 | - set(builtin_freetype ON CACHE BOOL "Enabled because FreeType not found (${builtin_freetype_description})" FORCE) 28 | + set(builtin_freetype OFF CACHE BOOL "Enabled because FreeType not found (${builtin_freetype_description})" FORCE) 29 | endif() 30 | endif() 31 | endif() 32 | -------------------------------------------------------------------------------- /recipe/patches/0006-HACK-Support-overriding-triplet-used-by-cling.patch: -------------------------------------------------------------------------------- 1 | From 2544f96758def3ac5eb621a183b27f6edffb6b6e Mon Sep 17 00:00:00 2001 2 | From: Chris Burr 3 | Date: Thu, 23 Jan 2025 16:03:46 +0100 4 | Subject: [PATCH 2/2] HACK: Support overriding triplet used by cling 5 | 6 | --- 7 | interpreter/cling/lib/Interpreter/CIFactory.cpp | 12 +++++++++--- 8 | 1 file changed, 9 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/interpreter/cling/lib/Interpreter/CIFactory.cpp b/interpreter/cling/lib/Interpreter/CIFactory.cpp 11 | index 1c099ad3f5..8311b7edc3 100644 12 | --- a/interpreter/cling/lib/Interpreter/CIFactory.cpp 13 | +++ b/interpreter/cling/lib/Interpreter/CIFactory.cpp 14 | @@ -1266,9 +1266,8 @@ namespace { 15 | bool profilingEnabled = 16 | cling::utils::ConvertEnvValueToBool(std::getenv("CLING_PROFILE")); 17 | 18 | -#if __APPLE__ && __arm64__ 19 | - argvCompile.push_back("--target=arm64-apple-darwin20.3.0"); 20 | -#endif 21 | + argvCompile.push_back(TODO_OVERRIDE_TARGET); 22 | + 23 | #if __aarch64__ 24 | // Disable outline-atomics on AArch64; the routines __aarch64_* are defined 25 | // in the static library libgcc.a and not necessarily included in libCling 26 | @@ -1417,6 +1416,13 @@ namespace { 27 | clang::driver::Driver Drvr(argv[0], TheTriple.getTriple(), *Diags); 28 | //Drvr.setWarnMissingInput(false); 29 | Drvr.setCheckInputsExist(false); // think foo.C(12) 30 | + if (COpts.Verbose) { 31 | + cling::log() << "Compiler command line: "; 32 | + for (const auto& arg : argvCompile) { 33 | + cling::log() << arg << " "; 34 | + } 35 | + cling::log() << "\n"; 36 | + } 37 | llvm::ArrayRefRF(&(argvCompile[0]), argvCompile.size()); 38 | std::unique_ptr 39 | Compilation(Drvr.BuildCompilation(RF)); 40 | -- 41 | 2.47.1 42 | 43 | -------------------------------------------------------------------------------- /recipe/patches/0010-root-x.xx.xx-osx-remove-hardcoded-sysroot.patch: -------------------------------------------------------------------------------- 1 | From 1b249762382fdedd2606b540425884a2b62a57b1 Mon Sep 17 00:00:00 2001 2 | From: Chris Burr 3 | Date: Sun, 10 Feb 2019 10:23:21 +0000 4 | Subject: [PATCH] Remove CLING_OSX_SYSROOT for conda 5 | 6 | --- 7 | .../cling/lib/Interpreter/CMakeLists.txt | 19 ------------------- 8 | 1 file changed, 19 deletions(-) 9 | 10 | diff --git a/interpreter/cling/lib/Interpreter/CMakeLists.txt b/interpreter/cling/lib/Interpreter/CMakeLists.txt 11 | index 7539671735..bde1aafd5b 100644 12 | --- a/interpreter/cling/lib/Interpreter/CMakeLists.txt 13 | +++ b/interpreter/cling/lib/Interpreter/CMakeLists.txt 14 | @@ -291,25 +291,6 @@ if (UNIX) 15 | #define CLING_CXX_INCL \"${CLING_CXX_HEADERS}\" 16 | #define CLING_INCLUDE_PATHS \"${CLING_INCLUDE_PATHS}\" 17 | ") 18 | - if (CMAKE_OSX_SYSROOT) 19 | - # CMAKE_OSX_SYSROOT hardcodes the concrete version of the sdk 20 | - # (eg .../MacOSX11.1.sdk) which changes after every update of XCode. We use 21 | - # the assumption that in the parent folder there is a symlink MacOSX.sdk 22 | - # which points to the current active sdk. This change allows releases 23 | - # to work when the users update their sdks. 24 | - # FIXME: That is a horrible hack and we should teach CIFactory to pick up 25 | - # the SDK directory at runtime, just as we do for the include paths to C++. 26 | - set (OSX_SYSROOT_DEFAULT_SDK ${CMAKE_OSX_SYSROOT}) 27 | - if (${OSX_SYSROOT_DEFAULT_SDK} MATCHES "MacOSX[.0-9]+\.sdk") 28 | - get_filename_component(OSX_SYSROOT_DEFAULT_SDK ${OSX_SYSROOT_DEFAULT_SDK} DIRECTORY) 29 | - set (OSX_SYSROOT_DEFAULT_SDK ${OSX_SYSROOT_DEFAULT_SDK}/MacOSX.sdk/) 30 | - endif() 31 | - 32 | - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cling-compiledata.h.in 33 | - " 34 | - #define CLING_OSX_SYSROOT \"${OSX_SYSROOT_DEFAULT_SDK}\" 35 | - ") 36 | - endif() 37 | if (CLING_CXX_PATH) 38 | MESSAGE(STATUS "And if not found, will invoke: '${CLING_CXX_PATH}' for them.") 39 | file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cling-compiledata.h.in 40 | -- 41 | 2.29.2 42 | 43 | -------------------------------------------------------------------------------- /recipe/patches/0005-Detect-which-ar-binary-should-be-used-to-build-libAf.patch: -------------------------------------------------------------------------------- 1 | From 747993d16a8cb3b1e0d8fd7ff556dcbe5497850f Mon Sep 17 00:00:00 2001 2 | From: Chris Burr 3 | Date: Mon, 27 Jan 2025 13:38:17 +0100 4 | Subject: [PATCH] Detect which ar binary should be used to build libAfterImage 5 | 6 | --- 7 | graf2d/asimage/src/libAfterImage/Makefile.in | 7 ++++--- 8 | graf2d/asimage/src/libAfterImage/configure.in | 16 ++++++++++++++++ 9 | 2 files changed, 20 insertions(+), 3 deletions(-) 10 | 11 | diff --git a/graf2d/asimage/src/libAfterImage/Makefile.in b/graf2d/asimage/src/libAfterImage/Makefile.in 12 | index 7729775f54..e0a4c64b50 100644 13 | --- a/graf2d/asimage/src/libAfterImage/Makefile.in 14 | +++ b/graf2d/asimage/src/libAfterImage/Makefile.in 15 | @@ -78,7 +78,8 @@ CCFLAGS = @CFLAGS@ @MMX_CFLAGS@ 16 | EXTRA_DEFINES = @DEFINE_XLOCALE@ 17 | 18 | RANLIB = @RANLIB@ 19 | -AR = ar cq 20 | +AR = @AR@ 21 | +ARFLAGS = @ARFLAGS@ 22 | CP = @CP@ 23 | MV = @MV@ 24 | RM = @RM@ 25 | @@ -320,8 +321,8 @@ apps: @APPSDEPS@ 26 | 27 | $(LIB_STATIC): $(LIB_OBJS) $(LIB_INCS) config.h 28 | $(RMF) $(LIB_STATIC) 29 | - $(AR) $(LIB_STATIC) $(LIB_OBJS) 30 | - $(RANLIB) $(LIB_STATIC) 31 | + $(AR) $(ARFLAGS) $@ $(LIB_OBJS) 32 | + $(RANLIB) $@ 33 | 34 | test_asstorage.o: asstorage.c 35 | $(CC) $(CCFLAGS) $(EXTRA_DEFINES) -DTEST_ASSTORAGE $(INCLUDES) $(EXTRA_INCLUDES) -c asstorage.c -o test_asstorage.o 36 | diff --git a/graf2d/asimage/src/libAfterImage/configure.in b/graf2d/asimage/src/libAfterImage/configure.in 37 | index 2a479be9e1..1cbf9a521d 100644 38 | --- a/graf2d/asimage/src/libAfterImage/configure.in 39 | +++ b/graf2d/asimage/src/libAfterImage/configure.in 40 | @@ -75,6 +75,22 @@ AC_ARG_WITH(afterbase_includes, [ --with-afterbase-includes=DIR use libAfterBa 41 | dnl# Check for compiler tools 42 | 43 | AC_PROG_CC 44 | + 45 | +# Check for ar program 46 | +AC_CHECK_TOOL([AR], [ar], [ar]) 47 | +if test "x$AR" = "x"; then 48 | + AC_MSG_ERROR([ar not found - cannot create static libraries]) 49 | +fi 50 | + 51 | +# Allow AR to be overridden 52 | +AC_ARG_VAR([AR], [Archive creator command]) 53 | + 54 | +# Default ar flags if not set 55 | +if test "x$ARFLAGS" = "x"; then 56 | + ARFLAGS="cru" 57 | +fi 58 | +AC_SUBST([ARFLAGS]) 59 | + 60 | AC_PROG_LN_S 61 | dnl# AC_SUBST(CC) 62 | dnl# AC_SUBST(GCC) 63 | -- 64 | 2.47.0 65 | 66 | -------------------------------------------------------------------------------- /recipe/patches/0007-Disable-hsimple.root-generation-if-cross-compiling.patch: -------------------------------------------------------------------------------- 1 | From a71f6addeb6bd48a47dacbedd662f47d3a98dde1 Mon Sep 17 00:00:00 2001 2 | From: Vincenzo Eduardo Padulano 3 | Date: Mon, 28 Jul 2025 09:55:16 +0200 4 | Subject: [PATCH] Don't try to generate hsimple.root when cross-compiling 5 | 6 | --- 7 | CMakeLists.txt | 39 +++++++++++++++++++++++---------------- 8 | 1 file changed, 23 insertions(+), 16 deletions(-) 9 | 10 | diff --git a/CMakeLists.txt b/CMakeLists.txt 11 | index e8060c7d1d..a1afb3305c 100644 12 | --- a/CMakeLists.txt 13 | +++ b/CMakeLists.txt 14 | @@ -549,23 +549,30 @@ if(runtime_cxxmodules) 15 | endif() 16 | 17 | #---hsimple.root---------(use the executable for clearer dependencies and proper return code)--- 18 | -add_custom_target(hsimple ALL DEPENDS tutorials/hsimple.root) 19 | -add_dependencies(hsimple onepcm) 20 | -if(WIN32) 21 | - set(hsimple_cmd COMMAND ${CMAKE_COMMAND} -E env PATH="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}\\\;%PATH%" 22 | - ROOTIGNOREPREFIX=1 ROOT_HIST=0 $ -l -q -b -n -x ${CMAKE_SOURCE_DIR}/tutorials/hsimple.C -e return) 23 | +if(CMAKE_CROSSCOMPILING) 24 | + message(WARNING "Cross-compiling: hsimple.root will not be generated") 25 | else() 26 | - set(hsimple_cmd COMMAND ${MODULES_ROOT_INCPATH} ${ld_library_path}=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:$ENV{${ld_library_path}} 27 | - ROOTIGNOREPREFIX=1 ROOT_HIST=0 $ -l -q -b -n -x ${CMAKE_SOURCE_DIR}/tutorials/hsimple.C -e return) 28 | -endif() 29 | -add_custom_command(OUTPUT tutorials/hsimple.root 30 | - ${hsimple_cmd} 31 | - WORKING_DIRECTORY tutorials 32 | - DEPENDS $ Cling Hist Tree Gpad Graf HistPainter move_artifacts) 33 | -install(FILES ${CMAKE_BINARY_DIR}/tutorials/hsimple.root DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) 34 | - 35 | -if(runtime_cxxmodules) 36 | - add_dependencies(hsimple modules_idx) 37 | + add_custom_target(hsimple ALL DEPENDS tutorials/hsimple.root) 38 | + add_dependencies(hsimple onepcm) 39 | + if(WIN32) 40 | + add_custom_command(OUTPUT tutorials/hsimple.root 41 | + COMMAND set PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} && 42 | + set ROOTIGNOREPREFIX=1 && set ROOT_HIST=0 && 43 | + $ -l -q -b -n -x hsimple.C -e return 44 | + WORKING_DIRECTORY tutorials 45 | + DEPENDS $ Cling Hist Tree Gpad Graf HistPainter move_artifacts) 46 | + else() 47 | + add_custom_command(OUTPUT tutorials/hsimple.root 48 | + COMMAND ${MODULES_ROOT_INCPATH} ${ld_library_path}=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:$ENV{${ld_library_path}} 49 | + ROOTIGNOREPREFIX=1 ROOT_HIST=0 50 | + $ -l -q -b -n -x hsimple.C -e return 51 | + WORKING_DIRECTORY tutorials 52 | + DEPENDS $ Cling Hist Tree Gpad Graf HistPainter move_artifacts) 53 | + endif() 54 | + install(FILES ${CMAKE_BINARY_DIR}/tutorials/hsimple.root DESTINATION ${CMAKE_INSTALL_TUTDIR} COMPONENT tests) 55 | + if(runtime_cxxmodules) 56 | + add_dependencies(hsimple modules_idx) 57 | + endif() 58 | endif() 59 | 60 | #---copy special headers required for building on Windows---------------------------------------- 61 | -- 62 | -------------------------------------------------------------------------------- /.scripts/run_osx_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # -*- mode: jinja-shell -*- 4 | 5 | source .scripts/logging_utils.sh 6 | 7 | set -xe 8 | 9 | MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" 10 | MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash 11 | export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" 12 | ( startgroup "Provisioning base env with pixi" ) 2> /dev/null 13 | mkdir -p "${MINIFORGE_HOME}" 14 | curl -fsSL https://pixi.sh/install.sh | bash 15 | export PATH="~/.pixi/bin:$PATH" 16 | arch=$(uname -m) 17 | if [[ "$arch" == "x86_64" ]]; then 18 | arch="64" 19 | fi 20 | sed -i.bak "s/platforms = .*/platforms = [\"osx-${arch}\"]/" pixi.toml 21 | echo "Creating environment" 22 | pixi install 23 | pixi list 24 | echo "Activating environment" 25 | eval "$(pixi shell-hook)" 26 | mv pixi.toml.bak pixi.toml 27 | ( endgroup "Provisioning base env with pixi" ) 2> /dev/null 28 | 29 | ( startgroup "Configuring conda" ) 2> /dev/null 30 | export CONDA_SOLVER="libmamba" 31 | export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 32 | 33 | 34 | 35 | 36 | 37 | echo -e "\n\nSetting up the condarc and mangling the compiler." 38 | setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml 39 | 40 | if [[ "${CI:-}" != "" ]]; then 41 | mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml 42 | fi 43 | 44 | if [[ "${CI:-}" != "" ]]; then 45 | echo -e "\n\nMangling homebrew in the CI to avoid conflicts." 46 | /usr/bin/sudo mangle_homebrew 47 | /usr/bin/sudo -k 48 | else 49 | echo -e "\n\nNot mangling homebrew as we are not running in CI" 50 | fi 51 | 52 | if [[ "${sha:-}" == "" ]]; then 53 | sha=$(git rev-parse HEAD) 54 | fi 55 | 56 | echo -e "\n\nRunning the build setup script." 57 | source run_conda_forge_build_setup 58 | 59 | 60 | 61 | ( endgroup "Configuring conda" ) 2> /dev/null 62 | 63 | if [[ -f LICENSE.txt ]]; then 64 | cp LICENSE.txt "recipe/recipe-scripts-license.txt" 65 | fi 66 | 67 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 68 | echo "rattler-build does not currently support debug mode" 69 | else 70 | 71 | if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then 72 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" 73 | fi 74 | 75 | rattler-build build --recipe ./recipe \ 76 | -m ./.ci_support/${CONFIG}.yaml \ 77 | ${EXTRA_CB_OPTIONS:-} \ 78 | --target-platform "${HOST_PLATFORM}" \ 79 | --extra-meta flow_run_id="$flow_run_id" \ 80 | --extra-meta remote_url="$remote_url" \ 81 | --extra-meta sha="$sha" 82 | 83 | ( startgroup "Inspecting artifacts" ) 2> /dev/null 84 | 85 | # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 86 | 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" 87 | 88 | ( endgroup "Inspecting artifacts" ) 2> /dev/null 89 | ( startgroup "Validating outputs" ) 2> /dev/null 90 | 91 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 92 | 93 | ( endgroup "Validating outputs" ) 2> /dev/null 94 | 95 | ( startgroup "Uploading packages" ) 2> /dev/null 96 | 97 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 98 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml 99 | fi 100 | 101 | ( endgroup "Uploading packages" ) 2> /dev/null 102 | fi 103 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-osx.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: osx 7 | pool: 8 | vmImage: macOS-15 9 | strategy: 10 | matrix: 11 | osx_64_python3.10.____cpython: 12 | CONFIG: osx_64_python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | SHORT_CONFIG: osx_64_python3.10.____cpython 15 | osx_64_python3.11.____cpython: 16 | CONFIG: osx_64_python3.11.____cpython 17 | UPLOAD_PACKAGES: 'True' 18 | SHORT_CONFIG: osx_64_python3.11.____cpython 19 | osx_64_python3.12.____cpython: 20 | CONFIG: osx_64_python3.12.____cpython 21 | UPLOAD_PACKAGES: 'True' 22 | SHORT_CONFIG: osx_64_python3.12.____cpython 23 | osx_64_python3.13.____cp313: 24 | CONFIG: osx_64_python3.13.____cp313 25 | UPLOAD_PACKAGES: 'True' 26 | SHORT_CONFIG: osx_64_python3.13.____cp313 27 | osx_64_python3.14.____cp314: 28 | CONFIG: osx_64_python3.14.____cp314 29 | UPLOAD_PACKAGES: 'True' 30 | SHORT_CONFIG: osx_64_python3.14.____cp314 31 | osx_arm64_python3.10.____cpython: 32 | CONFIG: osx_arm64_python3.10.____cpython 33 | UPLOAD_PACKAGES: 'True' 34 | SHORT_CONFIG: osx_arm64_python3.10.____cpython 35 | osx_arm64_python3.11.____cpython: 36 | CONFIG: osx_arm64_python3.11.____cpython 37 | UPLOAD_PACKAGES: 'True' 38 | SHORT_CONFIG: osx_arm64_python3.11.____cpython 39 | osx_arm64_python3.12.____cpython: 40 | CONFIG: osx_arm64_python3.12.____cpython 41 | UPLOAD_PACKAGES: 'True' 42 | SHORT_CONFIG: osx_arm64_python3.12.____cpython 43 | osx_arm64_python3.13.____cp313: 44 | CONFIG: osx_arm64_python3.13.____cp313 45 | UPLOAD_PACKAGES: 'True' 46 | SHORT_CONFIG: osx_arm64_python3.13.____cp313 47 | osx_arm64_python3.14.____cp314: 48 | CONFIG: osx_arm64_python3.14.____cp314 49 | UPLOAD_PACKAGES: 'True' 50 | SHORT_CONFIG: osx_arm64_python3.14.____cp314 51 | timeoutInMinutes: 360 52 | variables: {} 53 | 54 | steps: 55 | # TODO: Fast finish on azure pipelines? 56 | - script: | 57 | export CI=azure 58 | export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) 59 | export remote_url=$(Build.Repository.Uri) 60 | export sha=$(Build.SourceVersion) 61 | export OSX_FORCE_SDK_DOWNLOAD="1" 62 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 63 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 64 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 65 | export IS_PR_BUILD="True" 66 | else 67 | export IS_PR_BUILD="False" 68 | fi 69 | ./.scripts/run_osx_build.sh 70 | displayName: Run OSX build 71 | env: 72 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 73 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 74 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 75 | - script: | 76 | export CI=azure 77 | export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) 78 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 79 | export CONDA_BLD_DIR=/Users/runner/miniforge3/conda-bld 80 | export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" 81 | # Archive everything in CONDA_BLD_DIR except environments 82 | export BLD_ARTIFACT_PREFIX=conda_artifacts 83 | if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then 84 | # Archive the CONDA_BLD_DIR environments only when the job fails 85 | export ENV_ARTIFACT_PREFIX=conda_envs 86 | fi 87 | ./.scripts/create_conda_build_artifacts.sh 88 | displayName: Prepare conda build artifacts 89 | condition: succeededOrFailed() 90 | 91 | - task: PublishPipelineArtifact@1 92 | displayName: Store conda build artifacts 93 | condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) 94 | inputs: 95 | targetPath: $(BLD_ARTIFACT_PATH) 96 | artifactName: $(BLD_ARTIFACT_NAME) 97 | 98 | - task: PublishPipelineArtifact@1 99 | displayName: Store conda build environment artifacts 100 | condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) 101 | inputs: 102 | targetPath: $(ENV_ARTIFACT_PATH) 103 | artifactName: $(ENV_ARTIFACT_NAME) 104 | -------------------------------------------------------------------------------- /.scripts/run_docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | source .scripts/logging_utils.sh 9 | 10 | ( startgroup "Configure Docker" ) 2> /dev/null 11 | 12 | set -xeo pipefail 13 | 14 | THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" 15 | PROVIDER_DIR="$(basename "$THISDIR")" 16 | 17 | FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" 18 | RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" 19 | 20 | if [ -z ${FEEDSTOCK_NAME} ]; then 21 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 22 | fi 23 | 24 | if [[ "${sha:-}" == "" ]]; then 25 | pushd "${FEEDSTOCK_ROOT}" 26 | sha=$(git rev-parse HEAD) 27 | popd 28 | fi 29 | 30 | docker info 31 | 32 | # In order for the conda-build process in the container to write to the mounted 33 | # volumes, we need to run with the same id as the host machine, which is 34 | # normally the owner of the mounted volumes, or at least has write permission 35 | export HOST_USER_ID=$(id -u) 36 | # Check if docker-machine is being used (normally on OSX) and get the uid from 37 | # the VM 38 | if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then 39 | export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) 40 | fi 41 | 42 | ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" 43 | 44 | if [ -z "$CONFIG" ]; then 45 | set +x 46 | FILES=`ls .ci_support/linux_*` 47 | CONFIGS="" 48 | for file in $FILES; do 49 | CONFIGS="${CONFIGS}'${file:12:-5}' or "; 50 | done 51 | echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" 52 | exit 1 53 | fi 54 | 55 | if [ -z "${DOCKER_IMAGE}" ]; then 56 | SHYAML_INSTALLED="$(shyaml -h || echo NO)" 57 | if [ "${SHYAML_INSTALLED}" == "NO" ]; then 58 | echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" 59 | DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) 60 | if [ "${DOCKER_IMAGE}" = "" ]; then 61 | echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" 62 | DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" 63 | fi 64 | else 65 | DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" 66 | fi 67 | fi 68 | 69 | mkdir -p "$ARTIFACTS" 70 | DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" 71 | rm -f "$DONE_CANARY" 72 | 73 | # Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) 74 | DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" 75 | if [ -z "${CI}" ]; then 76 | DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" 77 | fi 78 | 79 | ( endgroup "Configure Docker" ) 2> /dev/null 80 | 81 | ( startgroup "Start Docker" ) 2> /dev/null 82 | 83 | export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" 84 | export IS_PR_BUILD="${IS_PR_BUILD:-False}" 85 | docker pull "${DOCKER_IMAGE}" 86 | docker run ${DOCKER_RUN_ARGS} \ 87 | -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ 88 | -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ 89 | -e CONFIG \ 90 | -e HOST_USER_ID \ 91 | -e UPLOAD_PACKAGES \ 92 | -e IS_PR_BUILD \ 93 | -e GIT_BRANCH \ 94 | -e UPLOAD_ON_BRANCH \ 95 | -e CI \ 96 | -e FEEDSTOCK_NAME \ 97 | -e CPU_COUNT \ 98 | -e BUILD_WITH_CONDA_DEBUG \ 99 | -e BUILD_OUTPUT_ID \ 100 | -e flow_run_id \ 101 | -e remote_url \ 102 | -e sha \ 103 | -e BINSTAR_TOKEN \ 104 | -e FEEDSTOCK_TOKEN \ 105 | -e STAGING_BINSTAR_TOKEN \ 106 | "${DOCKER_IMAGE}" \ 107 | bash \ 108 | "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" 109 | 110 | # verify that the end of the script was reached 111 | test -f "$DONE_CANARY" 112 | 113 | # This closes the last group opened in `build_steps.sh` 114 | ( endgroup "Final checks" ) 2> /dev/null 115 | -------------------------------------------------------------------------------- /.scripts/build_steps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | # -*- mode: jinja-shell -*- 9 | 10 | set -xeuo pipefail 11 | export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" 12 | source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh 13 | 14 | 15 | ( endgroup "Start Docker" ) 2> /dev/null 16 | 17 | ( startgroup "Configuring conda" ) 2> /dev/null 18 | 19 | export PYTHONUNBUFFERED=1 20 | export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" 21 | export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" 22 | export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" 23 | 24 | cat >~/.condarc < Set a lower limit in a subshell for the `yum install`s only. 59 | ulimit -n 1024 60 | 61 | # Install the yum requirements defined canonically in the 62 | # "recipe/yum_requirements.txt" file. After updating that file, 63 | # run "conda smithy rerender" and this line will be updated 64 | # automatically. 65 | /usr/bin/sudo -n yum install -y mesa-libGL mesa-dri-drivers libselinux libXdamage libXxf86vm 66 | ) 67 | 68 | # make the build number clobber 69 | make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 70 | 71 | if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then 72 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" 73 | fi 74 | 75 | ( endgroup "Configuring conda" ) 2> /dev/null 76 | 77 | if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then 78 | cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" 79 | fi 80 | 81 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 82 | echo "rattler-build currently doesn't support debug mode" 83 | else 84 | 85 | rattler-build build --recipe "${RECIPE_ROOT}" \ 86 | -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 87 | ${EXTRA_CB_OPTIONS:-} \ 88 | --target-platform "${HOST_PLATFORM}" \ 89 | --extra-meta flow_run_id="${flow_run_id:-}" \ 90 | --extra-meta remote_url="${remote_url:-}" \ 91 | --extra-meta sha="${sha:-}" 92 | ( startgroup "Inspecting artifacts" ) 2> /dev/null 93 | 94 | # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 95 | 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" 96 | 97 | ( endgroup "Inspecting artifacts" ) 2> /dev/null 98 | ( startgroup "Validating outputs" ) 2> /dev/null 99 | 100 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 101 | 102 | ( endgroup "Validating outputs" ) 2> /dev/null 103 | 104 | ( startgroup "Uploading packages" ) 2> /dev/null 105 | 106 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 107 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 108 | fi 109 | 110 | ( endgroup "Uploading packages" ) 2> /dev/null 111 | fi 112 | 113 | ( startgroup "Final checks" ) 2> /dev/null 114 | 115 | touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" 116 | -------------------------------------------------------------------------------- /.scripts/create_conda_build_artifacts.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # INPUTS (environment variables that need to be set before calling this script): 4 | # 5 | # CI (azure/github_actions/UNSET) 6 | # CI_RUN_ID (unique identifier for the CI job run) 7 | # FEEDSTOCK_NAME 8 | # CONFIG (build matrix configuration string) 9 | # SHORT_CONFIG (uniquely-shortened configuration string) 10 | # CONDA_BLD_DIR (path to the conda-bld directory) 11 | # ARTIFACT_STAGING_DIR (use working directory if unset) 12 | # BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) 13 | # ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) 14 | 15 | # OUTPUTS 16 | # 17 | # BLD_ARTIFACT_NAME 18 | # BLD_ARTIFACT_PATH 19 | # ENV_ARTIFACT_NAME 20 | # ENV_ARTIFACT_PATH 21 | 22 | source .scripts/logging_utils.sh 23 | 24 | # DON'T do set -x, because it results in double echo-ing pipeline commands 25 | # and that might end up inserting extraneous quotation marks in output variables 26 | set -e 27 | 28 | # Check that the conda-build directory exists 29 | if [ ! -d "$CONDA_BLD_DIR" ]; then 30 | echo "conda-build directory does not exist" 31 | exit 1 32 | fi 33 | 34 | # Set staging dir to the working dir, in Windows style if applicable 35 | if [[ -z "${ARTIFACT_STAGING_DIR}" ]]; then 36 | if pwd -W; then 37 | ARTIFACT_STAGING_DIR=$(pwd -W) 38 | else 39 | ARTIFACT_STAGING_DIR=$PWD 40 | fi 41 | fi 42 | echo "ARTIFACT_STAGING_DIR: $ARTIFACT_STAGING_DIR" 43 | 44 | FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) 45 | if [ -z ${FEEDSTOCK_NAME} ]; then 46 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 47 | fi 48 | 49 | # Set a unique ID for the artifact(s), specialized for this particular job run 50 | ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" 51 | if [[ ${#ARTIFACT_UNIQUE_ID} -gt 80 ]]; then 52 | ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${SHORT_CONFIG}" 53 | fi 54 | echo "ARTIFACT_UNIQUE_ID: $ARTIFACT_UNIQUE_ID" 55 | 56 | # Set a descriptive ID for the archive(s), specialized for this particular job run 57 | ARCHIVE_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" 58 | 59 | # Make the build artifact zip 60 | if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then 61 | export BLD_ARTIFACT_NAME="${BLD_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" 62 | export BLD_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${BLD_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" 63 | 64 | ( startgroup "Archive conda build directory" ) 2> /dev/null 65 | 66 | # Try 7z and fall back to zip if it fails (for cross-platform use) 67 | if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_DIR" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then 68 | pushd "$CONDA_BLD_DIR" 69 | zip -r -y -T "$BLD_ARTIFACT_PATH" . -x '*.git/*' '*_*_env*/*' '*_cache/*' 70 | popd 71 | fi 72 | 73 | ( endgroup "Archive conda build directory" ) 2> /dev/null 74 | 75 | echo "BLD_ARTIFACT_NAME: $BLD_ARTIFACT_NAME" 76 | echo "BLD_ARTIFACT_PATH: $BLD_ARTIFACT_PATH" 77 | 78 | if [[ "$CI" == "azure" ]]; then 79 | echo "##vso[task.setVariable variable=BLD_ARTIFACT_NAME]$BLD_ARTIFACT_NAME" 80 | echo "##vso[task.setVariable variable=BLD_ARTIFACT_PATH]$BLD_ARTIFACT_PATH" 81 | elif [[ "$CI" == "github_actions" ]]; then 82 | echo "BLD_ARTIFACT_NAME=$BLD_ARTIFACT_NAME" >> $GITHUB_OUTPUT 83 | echo "BLD_ARTIFACT_PATH=$BLD_ARTIFACT_PATH" >> $GITHUB_OUTPUT 84 | fi 85 | fi 86 | 87 | # Make the environments artifact zip 88 | if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then 89 | export ENV_ARTIFACT_NAME="${ENV_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" 90 | export ENV_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${ENV_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" 91 | 92 | ( startgroup "Archive conda build environments" ) 2> /dev/null 93 | 94 | # Try 7z and fall back to zip if it fails (for cross-platform use) 95 | if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_DIR"/'_*_env*/' -bb; then 96 | pushd "$CONDA_BLD_DIR" 97 | zip -r -y -T "$ENV_ARTIFACT_PATH" . -i '*_*_env*/*' 98 | popd 99 | fi 100 | 101 | ( endgroup "Archive conda build environments" ) 2> /dev/null 102 | 103 | echo "ENV_ARTIFACT_NAME: $ENV_ARTIFACT_NAME" 104 | echo "ENV_ARTIFACT_PATH: $ENV_ARTIFACT_PATH" 105 | 106 | if [[ "$CI" == "azure" ]]; then 107 | echo "##vso[task.setVariable variable=ENV_ARTIFACT_NAME]$ENV_ARTIFACT_NAME" 108 | echo "##vso[task.setVariable variable=ENV_ARTIFACT_PATH]$ENV_ARTIFACT_PATH" 109 | elif [[ "$CI" == "github_actions" ]]; then 110 | echo "ENV_ARTIFACT_NAME=$ENV_ARTIFACT_NAME" >> $GITHUB_OUTPUT 111 | echo "ENV_ARTIFACT_PATH=$ENV_ARTIFACT_PATH" >> $GITHUB_OUTPUT 112 | fi 113 | fi 114 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-linux.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: linux 7 | pool: 8 | vmImage: ubuntu-latest 9 | strategy: 10 | matrix: 11 | linux_64_python3.10.____cpython: 12 | CONFIG: linux_64_python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 15 | SHORT_CONFIG: linux_64_python3.10.____cpython 16 | linux_64_python3.11.____cpython: 17 | CONFIG: linux_64_python3.11.____cpython 18 | UPLOAD_PACKAGES: 'True' 19 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 20 | SHORT_CONFIG: linux_64_python3.11.____cpython 21 | linux_64_python3.12.____cpython: 22 | CONFIG: linux_64_python3.12.____cpython 23 | UPLOAD_PACKAGES: 'True' 24 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 25 | SHORT_CONFIG: linux_64_python3.12.____cpython 26 | linux_64_python3.13.____cp313: 27 | CONFIG: linux_64_python3.13.____cp313 28 | UPLOAD_PACKAGES: 'True' 29 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 30 | SHORT_CONFIG: linux_64_python3.13.____cp313 31 | linux_64_python3.14.____cp314: 32 | CONFIG: linux_64_python3.14.____cp314 33 | UPLOAD_PACKAGES: 'True' 34 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 35 | SHORT_CONFIG: linux_64_python3.14.____cp314 36 | linux_aarch64_python3.10.____cpython: 37 | CONFIG: linux_aarch64_python3.10.____cpython 38 | UPLOAD_PACKAGES: 'True' 39 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 40 | SHORT_CONFIG: linux_aarch64_python3.10.____cpython 41 | linux_aarch64_python3.11.____cpython: 42 | CONFIG: linux_aarch64_python3.11.____cpython 43 | UPLOAD_PACKAGES: 'True' 44 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 45 | SHORT_CONFIG: linux_aarch64_python3.11.____cpython 46 | linux_aarch64_python3.12.____cpython: 47 | CONFIG: linux_aarch64_python3.12.____cpython 48 | UPLOAD_PACKAGES: 'True' 49 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 50 | SHORT_CONFIG: linux_aarch64_python3.12.____cpython 51 | linux_aarch64_python3.13.____cp313: 52 | CONFIG: linux_aarch64_python3.13.____cp313 53 | UPLOAD_PACKAGES: 'True' 54 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 55 | SHORT_CONFIG: linux_aarch64_python3.13.____cp313 56 | linux_aarch64_python3.14.____cp314: 57 | CONFIG: linux_aarch64_python3.14.____cp314 58 | UPLOAD_PACKAGES: 'True' 59 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 60 | SHORT_CONFIG: linux_aarch64_python3.14.____cp314 61 | linux_ppc64le_python3.10.____cpython: 62 | CONFIG: linux_ppc64le_python3.10.____cpython 63 | UPLOAD_PACKAGES: 'True' 64 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 65 | SHORT_CONFIG: linux_ppc64le_python3.10.____cpython 66 | linux_ppc64le_python3.11.____cpython: 67 | CONFIG: linux_ppc64le_python3.11.____cpython 68 | UPLOAD_PACKAGES: 'True' 69 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 70 | SHORT_CONFIG: linux_ppc64le_python3.11.____cpython 71 | linux_ppc64le_python3.12.____cpython: 72 | CONFIG: linux_ppc64le_python3.12.____cpython 73 | UPLOAD_PACKAGES: 'True' 74 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 75 | SHORT_CONFIG: linux_ppc64le_python3.12.____cpython 76 | linux_ppc64le_python3.13.____cp313: 77 | CONFIG: linux_ppc64le_python3.13.____cp313 78 | UPLOAD_PACKAGES: 'True' 79 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 80 | SHORT_CONFIG: linux_ppc64le_python3.13.____cp313 81 | linux_ppc64le_python3.14.____cp314: 82 | CONFIG: linux_ppc64le_python3.14.____cp314 83 | UPLOAD_PACKAGES: 'True' 84 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 85 | SHORT_CONFIG: linux_ppc64le_python3.14.____cp314 86 | timeoutInMinutes: 360 87 | variables: {} 88 | 89 | steps: 90 | - script: | 91 | sudo mkdir -p /opt/empty_dir || true 92 | for d in \ 93 | /opt/ghc \ 94 | /opt/hostedtoolcache \ 95 | /usr/lib/jvm \ 96 | /usr/local/.ghcup \ 97 | /usr/local/lib/android \ 98 | /usr/local/share/powershell \ 99 | /usr/share/dotnet \ 100 | /usr/share/swift \ 101 | ; do 102 | sudo rsync --stats -a --delete /opt/empty_dir/ $d || true 103 | done 104 | sudo apt-get purge -y -f firefox \ 105 | google-chrome-stable \ 106 | microsoft-edge-stable 107 | sudo apt-get autoremove -y >& /dev/null 108 | sudo apt-get autoclean -y >& /dev/null 109 | df -h 110 | displayName: Manage disk space 111 | # configure qemu binfmt-misc running. This allows us to run docker containers 112 | # embedded qemu-static 113 | - script: | 114 | docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes 115 | ls /proc/sys/fs/binfmt_misc/ 116 | condition: not(startsWith(variables['CONFIG'], 'linux_64')) 117 | displayName: Configure binfmt_misc 118 | 119 | - script: | 120 | export CI=azure 121 | export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) 122 | export remote_url=$(Build.Repository.Uri) 123 | export sha=$(Build.SourceVersion) 124 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 125 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 126 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 127 | export IS_PR_BUILD="True" 128 | else 129 | export IS_PR_BUILD="False" 130 | fi 131 | .scripts/run_docker_build.sh 132 | displayName: Run docker build 133 | env: 134 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 135 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 136 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 137 | - script: | 138 | export CI=azure 139 | export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) 140 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 141 | export CONDA_BLD_DIR=build_artifacts 142 | export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" 143 | # Archive everything in CONDA_BLD_DIR except environments 144 | export BLD_ARTIFACT_PREFIX=conda_artifacts 145 | if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then 146 | # Archive the CONDA_BLD_DIR environments only when the job fails 147 | export ENV_ARTIFACT_PREFIX=conda_envs 148 | fi 149 | ./.scripts/create_conda_build_artifacts.sh 150 | displayName: Prepare conda build artifacts 151 | condition: succeededOrFailed() 152 | 153 | - task: PublishPipelineArtifact@1 154 | displayName: Store conda build artifacts 155 | condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) 156 | inputs: 157 | targetPath: $(BLD_ARTIFACT_PATH) 158 | artifactName: $(BLD_ARTIFACT_NAME) 159 | 160 | - task: PublishPipelineArtifact@1 161 | displayName: Store conda build environment artifacts 162 | condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) 163 | inputs: 164 | targetPath: $(ENV_ARTIFACT_PATH) 165 | artifactName: $(ENV_ARTIFACT_NAME) 166 | -------------------------------------------------------------------------------- /recipe/recipe.yaml: -------------------------------------------------------------------------------- 1 | context: 2 | name: root 3 | tag_name: 6-36-06 4 | build_number: 2 5 | clang_version: 18.1.8 6 | clang_patches_version: root_63606 7 | builtin_clang: false 8 | run_gtests: false 9 | # When new Python versions are released numba tends to be slow to support them 10 | # to prevent ROOT from being held up by this, only have a strong dependency on 11 | # numba for supported python versions 12 | unsupported_numba_pyversion: 3.15 13 | root_cxx_standard: 20 14 | 15 | recipe: 16 | name: root 17 | version: ${{ tag_name | replace("-", ".") }} 18 | 19 | source: 20 | url: https://github.com/root-project/root/archive/refs/tags/v${{ tag_name }}.tar.gz 21 | sha256: 27e158e8dc388d424696365109b7f62fd0a98b7dbb1a46a300a7c4b82e8417e1 22 | target_directory: root-source 23 | patches: 24 | - patches/0001-disable-cling-sysroot-at-runtime.patch 25 | - patches/0002-Hint-to-external-LLVM-and-Clang-on-Conda.patch 26 | - patches/0003-Set-LLVM_REQUIRES_EH-for-Cling.patch 27 | - patches/0004-asimage-cross-compilation-fix.patch 28 | - patches/0005-Detect-which-ar-binary-should-be-used-to-build-libAf.patch 29 | - if: build_platform != target_platform 30 | then: 31 | - patches/0006-HACK-Support-overriding-triplet-used-by-cling.patch 32 | - patches/0007-Disable-hsimple.root-generation-if-cross-compiling.patch 33 | - if: osx 34 | then: 35 | - patches/0008-disable-builtin-freetype-macos.patch 36 | - patches/0009-avoid-linking-TPython-against-libPython.patch 37 | - patches/0010-root-x.xx.xx-osx-remove-hardcoded-sysroot.patch 38 | - patches/0011-Remove-bad-check-on-SDK-for-std_darwin.MacOSX14.2.sd.patch 39 | build: 40 | number: ${{ build_number }} 41 | skip: 42 | - win 43 | 44 | outputs: 45 | - package: 46 | name: root_base 47 | build: 48 | script: 49 | file: build_root.sh 50 | env: 51 | clang_version: ${{ clang_version }} 52 | clang_patches_version: ${{ clang_patches_version }} 53 | ROOT_CXX_STANDARD: ${{ root_cxx_standard }} 54 | dynamic_linking: 55 | overdepending_behavior: ignore 56 | prefix_detection: 57 | ignore: 58 | - if: aarch64 59 | then: etc/allDict.cxx.pch 60 | else: lib/*.pcm 61 | files: 62 | include: 63 | - "**" 64 | exclude: 65 | - LICENSE 66 | - README/** 67 | requirements: 68 | build: 69 | - ${{ compiler('c') }} 70 | - ${{ compiler('cxx') }} 71 | - ${{ stdlib("c") }} 72 | - autoconf 73 | - cmake 74 | - git 75 | - pkg-config 76 | - sed 77 | - make 78 | - ninja 79 | - zeromq 80 | - if: unix 81 | then: gnuconfig 82 | - if: build_platform != target_platform 83 | then: 84 | - cross-python_${{ target_platform }} 85 | - python 86 | - numpy 87 | - xxhash 88 | - zlib 89 | - zstd 90 | - freetype 91 | - liblzma-devel 92 | - llvm ${{ clang_version }}.* ${{ clang_patches_version }}* 93 | - llvm-openmp ${{ clang_version }}.* 94 | - llvmdev ${{ clang_version }}.* ${{ clang_patches_version }}* 95 | - clangdev ${{ clang_version }}.* ${{ clang_patches_version }}* 96 | host: 97 | - libblas 98 | - libcblas 99 | - if: linux 100 | then: 101 | - ${{ compiler('c') }} 102 | - ${{ compiler('cxx') }} 103 | - libglu 104 | - libgl-devel 105 | - xorg-xorgproto 106 | - xorg-libx11 107 | - xorg-libxau 108 | - xorg-libxcursor 109 | - xorg-libxext 110 | - xorg-libxfixes 111 | - xorg-libxft 112 | - xorg-libxpm 113 | - ${{ stdlib("c") }} 114 | - cfitsio 115 | - davix 116 | - fftw 117 | - freetype 118 | - ftgl 119 | - gdk-pixbuf 120 | - giflib 121 | - glew 122 | - glib 123 | - gl2ps 124 | - graphviz 125 | - gsl 126 | - gtest 127 | - libpng 128 | - librsvg 129 | - libtiff 130 | - libxml2-devel 131 | - lz4-c 132 | # - mysql 133 | - nlohmann_json 134 | - openssl 135 | - pcre 136 | # - postgresql 137 | - pythia8 138 | - sqlite 139 | - tbb 140 | - tbb-devel 141 | - vector-classes 142 | - vdt 143 | - python 144 | - numpy 145 | - xrootd 146 | - liblzma-devel 147 | # FIXME: The generated allDict.cxx.pch is dependent on version of the C++ headers used 148 | - xxhash 149 | - zlib 150 | - zstd 151 | # Required for roofit_multiprocess 152 | - cppzmq 153 | # Required zmq_ppoll API added in v4.3.5 154 | - zeromq 155 | # Need to request drafts API 156 | # Note that zeromq and zeromq * drafts_* are both required 157 | # c.f. https://github.com/conda-forge/root-feedstock/pull/292#discussion_r2334082389 158 | - zeromq * drafts_* 159 | - llvm ${{ clang_version }}.* ${{ clang_patches_version }}* 160 | - llvm-openmp ${{ clang_version }}.* 161 | - llvmdev ${{ clang_version }}.* ${{ clang_patches_version }}* 162 | - clangdev ${{ clang_version }}.* ${{ clang_patches_version }}* 163 | run: 164 | - python 165 | - numpy 166 | # FIXME: Required to ensure a consistent etc/allDict.cxx.pch 167 | - ${{ compiler('c') }} 168 | - ${{ compiler('cxx') }} 169 | - ${{ stdlib("c") }} 170 | - ${{ pin_compatible('xxhash', upper_bound='x.x.x') }} 171 | - ${{ pin_compatible('nlohmann_json', upper_bound='x.x.x') }} 172 | - cffi 173 | - graphviz 174 | - if: linux 175 | then: 176 | - xorg-xorgproto 177 | - xorg-libx11 178 | - xorg-libxext 179 | - xorg-libxpm 180 | - xorg-libxft 181 | - libglu 182 | run_constraints: 183 | - numba >=0.52 184 | - cling ==9999 185 | - root5 ==9999 186 | - afterimage ==9999 187 | run_exports: 188 | - ${{ pin_subpackage('root_base', upper_bound='x.x.x') }} 189 | tests: 190 | - files: 191 | recipe: 192 | - test.cpp 193 | script: 194 | - root -l -b -q -x 195 | - root -l -b -q -x test.cpp 196 | - "root -b -l -q -x -e '2+3; 0'" 197 | - "root -b -l -q -x -e 'gSystem->LoadAllLibraries(); 0'" 198 | - "root -b -l -q -x -e 'gStyle->SetCanvasPreferGL(kTRUE); TCanvas c; if (!c.UseGL()) { throw std::runtime_error(\"OpenGL does not appear to be working\"); }'" 199 | - "root -b -l -q -x \"${PREFIX}/tutorials/analysis/tree/run_h1analysis.C\"" 200 | - if: not ppc64le 201 | then: "XrdSecPROTOCOL=unix python -c \"import ROOT; ROOT.EnableImplicitMT(); rdf = ROOT.RDataFrame('DecayTree', 'root://eospublic.cern.ch//eos/opendata/lhcb/AntimatterMatters2017/data/B2HHH_MagnetUp.root'); print(rdf.AsNumpy(['H1_PX']))\"" 202 | - root -l -b -q -x test.cpp++ 203 | - if: not (osx and arm64) and build_platform == target_platform 204 | then: "echo '.q' | root -e 'sddsa0'" 205 | 206 | - package: 207 | name: root 208 | requirements: 209 | host: 210 | - ${{ pin_subpackage('root_base', exact=True) }} 211 | - python 212 | run: 213 | - ${{ pin_subpackage('root_base', exact=True) }} 214 | - python 215 | - compilers # This package is hostile to how conda-build manages compilers 216 | - metakernel 217 | - ipython 218 | - notebook 219 | - if: python < unsupported_numba_pyversion 220 | then: numba 221 | tests: 222 | - python: 223 | imports: 224 | - ROOT 225 | - JupyROOT 226 | pip_check: false 227 | - files: 228 | recipe: 229 | - test.cpp 230 | - test_pyroot.py 231 | - test_roofit_multiprocess.py 232 | script: 233 | - python test_pyroot.py 234 | - python test_roofit_multiprocess.py 235 | - python ${PREFIX}/tutorials/analysis/dataframe/df038_NumbaDeclare.py 236 | - root -l -b -q -x test.cpp 237 | - "root -b -l -q -x -e 'gSystem->LoadAllLibraries(); 0'" 238 | - "root -b -l -q -x \"${PREFIX}/tutorials/analysis/tree/run_h1analysis.C\"" 239 | - root -l -b -q -x test.cpp++ 240 | - "jupyter-kernelspec list | grep ' root '" 241 | 242 | about: 243 | license: LGPL-2.1-only 244 | license_file: root-source/LICENSE 245 | summary: | 246 | ROOT is a unified software package for the storage, processing, and analysis of scientific data: from its 247 | acquisition to the final visualization in form of highly customizable, publication-ready plots. It is reliable, 248 | performant and well supported, easy to use and obtain, and strives to maximize the quantity and impact of scientific 249 | results obtained per unit cost, both of human effort and computing resources. ROOT is performance critical software 250 | written in C++ and enables rapid prototyping powered by a unique C++ compliant interpreter called Cling. Cling also 251 | enables performant C++ type introspection which is a building block of automatic interoperability with Python. 252 | Thanks to its dynamic Python bindings, leveraging the cppyy technology, ROOT offers efficient, on-demand C++/Python 253 | interoperability in a uniform cross-language execution environment. 254 | description: | 255 | While the feature set of the ROOT framework is vast and not everything can be supported in the conda distribution, 256 | this package aims at enabling most of the features of ROOT. Here are a few things to try: 257 | 258 | * `root`: you can start up a session and see the splash screen; Control-D to exit. 259 | * `python` followed by `import ROOT` to access all ROOT functionalities via the Python bindings. 260 | * `root --notebook` will start a notebook server with a ROOT kernel choice. 261 | * `rootbrowse` will open a TBrowser session so you can look through files. 262 | * `root -b -q -l $ROOTSYS/tutorials/analysis/dataframe/df013_InspectAnalysis.C` will run a DataFrame example with an animated plot. 263 | * `root -b -q -l -n -e "std::cout << TROOT::GetTutorialDir() << std::endl;"` will print the tutorial dir. 264 | 265 | See the post [here](https://iscinumpy.gitlab.io/post/root-conda/) for more information about using this Conda package. 266 | 267 | The ROOT package will prepare the required compilers. Everything in Conda is symlinked into 268 | `$CONDA_PREFIX` if you build things by hand; tools like CMake should find it automatically. 269 | 270 | There is also a `root_base` package, with minimal dependecies, that libraries should depend on this to avoid 271 | having a runtime dependency on the `compilers` package. In most cases users should use the `root` package directly, 272 | since it adds more features (taking care of their dependencies) to facilitate usage of the ROOT Python bindings. 273 | 274 | homepage: https://root.cern/ 275 | repository: https://github.com/root-project/root/ 276 | documentation: https://root.cern/documentation 277 | 278 | extra: 279 | recipe-maintainers: 280 | - vepadulano 281 | - chrisburr 282 | - henryiii 283 | - duncanmmacleod 284 | -------------------------------------------------------------------------------- /pixi.toml: -------------------------------------------------------------------------------- 1 | # -*- mode: toml -*- 2 | # This file was generated automatically from conda-smithy. To update this configuration, 3 | # update the conda-forge.yml and/or the recipe/meta.yaml. 4 | "$schema" = "https://pixi.sh/v0.59.0/schema/manifest/schema.json" 5 | 6 | [workspace] 7 | name = "root-feedstock" 8 | version = "3.53.3" # conda-smithy version used to generate this file 9 | description = "Pixi configuration for conda-forge/root-feedstock" 10 | authors = ["@conda-forge/root"] 11 | channels = ["conda-forge"] 12 | platforms = ["linux-64", "linux-aarch64", "linux-ppc64le", "osx-64", "osx-arm64", "win-64"] 13 | requires-pixi = ">=0.59.0" 14 | 15 | [dependencies] 16 | conda-build = ">=24.1" 17 | conda-forge-ci-setup = "4.*" 18 | rattler-build = "*" 19 | 20 | [tasks.inspect-all] 21 | cmd = "inspect_artifacts --all-packages" 22 | description = "List contents of all packages found in rattler-build build directory." 23 | [tasks.build] 24 | cmd = "rattler-build build --recipe recipe" 25 | description = "Build root-feedstock directly (without setup scripts), no particular variant specified" 26 | [tasks."build-linux_64_python3.10.____cpython"] 27 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.10.____cpython.yaml" 28 | description = "Build root-feedstock with variant linux_64_python3.10.____cpython directly (without setup scripts)" 29 | [tasks."inspect-linux_64_python3.10.____cpython"] 30 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.10.____cpython.yaml" 31 | description = "List contents of root-feedstock packages built for variant linux_64_python3.10.____cpython" 32 | [tasks."build-linux_64_python3.11.____cpython"] 33 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.11.____cpython.yaml" 34 | description = "Build root-feedstock with variant linux_64_python3.11.____cpython directly (without setup scripts)" 35 | [tasks."inspect-linux_64_python3.11.____cpython"] 36 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.11.____cpython.yaml" 37 | description = "List contents of root-feedstock packages built for variant linux_64_python3.11.____cpython" 38 | [tasks."build-linux_64_python3.12.____cpython"] 39 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.12.____cpython.yaml" 40 | description = "Build root-feedstock with variant linux_64_python3.12.____cpython directly (without setup scripts)" 41 | [tasks."inspect-linux_64_python3.12.____cpython"] 42 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.12.____cpython.yaml" 43 | description = "List contents of root-feedstock packages built for variant linux_64_python3.12.____cpython" 44 | [tasks."build-linux_64_python3.13.____cp313"] 45 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.13.____cp313.yaml" 46 | description = "Build root-feedstock with variant linux_64_python3.13.____cp313 directly (without setup scripts)" 47 | [tasks."inspect-linux_64_python3.13.____cp313"] 48 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.13.____cp313.yaml" 49 | description = "List contents of root-feedstock packages built for variant linux_64_python3.13.____cp313" 50 | [tasks."build-linux_64_python3.14.____cp314"] 51 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.14.____cp314.yaml" 52 | description = "Build root-feedstock with variant linux_64_python3.14.____cp314 directly (without setup scripts)" 53 | [tasks."inspect-linux_64_python3.14.____cp314"] 54 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.14.____cp314.yaml" 55 | description = "List contents of root-feedstock packages built for variant linux_64_python3.14.____cp314" 56 | [tasks."build-linux_aarch64_python3.10.____cpython"] 57 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.10.____cpython.yaml" 58 | description = "Build root-feedstock with variant linux_aarch64_python3.10.____cpython directly (without setup scripts)" 59 | [tasks."inspect-linux_aarch64_python3.10.____cpython"] 60 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.10.____cpython.yaml" 61 | description = "List contents of root-feedstock packages built for variant linux_aarch64_python3.10.____cpython" 62 | [tasks."build-linux_aarch64_python3.11.____cpython"] 63 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.11.____cpython.yaml" 64 | description = "Build root-feedstock with variant linux_aarch64_python3.11.____cpython directly (without setup scripts)" 65 | [tasks."inspect-linux_aarch64_python3.11.____cpython"] 66 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.11.____cpython.yaml" 67 | description = "List contents of root-feedstock packages built for variant linux_aarch64_python3.11.____cpython" 68 | [tasks."build-linux_aarch64_python3.12.____cpython"] 69 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.12.____cpython.yaml" 70 | description = "Build root-feedstock with variant linux_aarch64_python3.12.____cpython directly (without setup scripts)" 71 | [tasks."inspect-linux_aarch64_python3.12.____cpython"] 72 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.12.____cpython.yaml" 73 | description = "List contents of root-feedstock packages built for variant linux_aarch64_python3.12.____cpython" 74 | [tasks."build-linux_aarch64_python3.13.____cp313"] 75 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.13.____cp313.yaml" 76 | description = "Build root-feedstock with variant linux_aarch64_python3.13.____cp313 directly (without setup scripts)" 77 | [tasks."inspect-linux_aarch64_python3.13.____cp313"] 78 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.13.____cp313.yaml" 79 | description = "List contents of root-feedstock packages built for variant linux_aarch64_python3.13.____cp313" 80 | [tasks."build-linux_aarch64_python3.14.____cp314"] 81 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.14.____cp314.yaml" 82 | description = "Build root-feedstock with variant linux_aarch64_python3.14.____cp314 directly (without setup scripts)" 83 | [tasks."inspect-linux_aarch64_python3.14.____cp314"] 84 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.14.____cp314.yaml" 85 | description = "List contents of root-feedstock packages built for variant linux_aarch64_python3.14.____cp314" 86 | [tasks."build-linux_ppc64le_python3.10.____cpython"] 87 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_python3.10.____cpython.yaml" 88 | description = "Build root-feedstock with variant linux_ppc64le_python3.10.____cpython directly (without setup scripts)" 89 | [tasks."inspect-linux_ppc64le_python3.10.____cpython"] 90 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_python3.10.____cpython.yaml" 91 | description = "List contents of root-feedstock packages built for variant linux_ppc64le_python3.10.____cpython" 92 | [tasks."build-linux_ppc64le_python3.11.____cpython"] 93 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_python3.11.____cpython.yaml" 94 | description = "Build root-feedstock with variant linux_ppc64le_python3.11.____cpython directly (without setup scripts)" 95 | [tasks."inspect-linux_ppc64le_python3.11.____cpython"] 96 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_python3.11.____cpython.yaml" 97 | description = "List contents of root-feedstock packages built for variant linux_ppc64le_python3.11.____cpython" 98 | [tasks."build-linux_ppc64le_python3.12.____cpython"] 99 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_python3.12.____cpython.yaml" 100 | description = "Build root-feedstock with variant linux_ppc64le_python3.12.____cpython directly (without setup scripts)" 101 | [tasks."inspect-linux_ppc64le_python3.12.____cpython"] 102 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_python3.12.____cpython.yaml" 103 | description = "List contents of root-feedstock packages built for variant linux_ppc64le_python3.12.____cpython" 104 | [tasks."build-linux_ppc64le_python3.13.____cp313"] 105 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_python3.13.____cp313.yaml" 106 | description = "Build root-feedstock with variant linux_ppc64le_python3.13.____cp313 directly (without setup scripts)" 107 | [tasks."inspect-linux_ppc64le_python3.13.____cp313"] 108 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_python3.13.____cp313.yaml" 109 | description = "List contents of root-feedstock packages built for variant linux_ppc64le_python3.13.____cp313" 110 | [tasks."build-linux_ppc64le_python3.14.____cp314"] 111 | cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_python3.14.____cp314.yaml" 112 | description = "Build root-feedstock with variant linux_ppc64le_python3.14.____cp314 directly (without setup scripts)" 113 | [tasks."inspect-linux_ppc64le_python3.14.____cp314"] 114 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_python3.14.____cp314.yaml" 115 | description = "List contents of root-feedstock packages built for variant linux_ppc64le_python3.14.____cp314" 116 | [tasks."build-osx_64_python3.10.____cpython"] 117 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_python3.10.____cpython.yaml" 118 | description = "Build root-feedstock with variant osx_64_python3.10.____cpython directly (without setup scripts)" 119 | [tasks."inspect-osx_64_python3.10.____cpython"] 120 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_python3.10.____cpython.yaml" 121 | description = "List contents of root-feedstock packages built for variant osx_64_python3.10.____cpython" 122 | [tasks."build-osx_64_python3.11.____cpython"] 123 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_python3.11.____cpython.yaml" 124 | description = "Build root-feedstock with variant osx_64_python3.11.____cpython directly (without setup scripts)" 125 | [tasks."inspect-osx_64_python3.11.____cpython"] 126 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_python3.11.____cpython.yaml" 127 | description = "List contents of root-feedstock packages built for variant osx_64_python3.11.____cpython" 128 | [tasks."build-osx_64_python3.12.____cpython"] 129 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_python3.12.____cpython.yaml" 130 | description = "Build root-feedstock with variant osx_64_python3.12.____cpython directly (without setup scripts)" 131 | [tasks."inspect-osx_64_python3.12.____cpython"] 132 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_python3.12.____cpython.yaml" 133 | description = "List contents of root-feedstock packages built for variant osx_64_python3.12.____cpython" 134 | [tasks."build-osx_64_python3.13.____cp313"] 135 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_python3.13.____cp313.yaml" 136 | description = "Build root-feedstock with variant osx_64_python3.13.____cp313 directly (without setup scripts)" 137 | [tasks."inspect-osx_64_python3.13.____cp313"] 138 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_python3.13.____cp313.yaml" 139 | description = "List contents of root-feedstock packages built for variant osx_64_python3.13.____cp313" 140 | [tasks."build-osx_64_python3.14.____cp314"] 141 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_python3.14.____cp314.yaml" 142 | description = "Build root-feedstock with variant osx_64_python3.14.____cp314 directly (without setup scripts)" 143 | [tasks."inspect-osx_64_python3.14.____cp314"] 144 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_python3.14.____cp314.yaml" 145 | description = "List contents of root-feedstock packages built for variant osx_64_python3.14.____cp314" 146 | [tasks."build-osx_arm64_python3.10.____cpython"] 147 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_python3.10.____cpython.yaml" 148 | description = "Build root-feedstock with variant osx_arm64_python3.10.____cpython directly (without setup scripts)" 149 | [tasks."inspect-osx_arm64_python3.10.____cpython"] 150 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_python3.10.____cpython.yaml" 151 | description = "List contents of root-feedstock packages built for variant osx_arm64_python3.10.____cpython" 152 | [tasks."build-osx_arm64_python3.11.____cpython"] 153 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_python3.11.____cpython.yaml" 154 | description = "Build root-feedstock with variant osx_arm64_python3.11.____cpython directly (without setup scripts)" 155 | [tasks."inspect-osx_arm64_python3.11.____cpython"] 156 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_python3.11.____cpython.yaml" 157 | description = "List contents of root-feedstock packages built for variant osx_arm64_python3.11.____cpython" 158 | [tasks."build-osx_arm64_python3.12.____cpython"] 159 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_python3.12.____cpython.yaml" 160 | description = "Build root-feedstock with variant osx_arm64_python3.12.____cpython directly (without setup scripts)" 161 | [tasks."inspect-osx_arm64_python3.12.____cpython"] 162 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_python3.12.____cpython.yaml" 163 | description = "List contents of root-feedstock packages built for variant osx_arm64_python3.12.____cpython" 164 | [tasks."build-osx_arm64_python3.13.____cp313"] 165 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_python3.13.____cp313.yaml" 166 | description = "Build root-feedstock with variant osx_arm64_python3.13.____cp313 directly (without setup scripts)" 167 | [tasks."inspect-osx_arm64_python3.13.____cp313"] 168 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_python3.13.____cp313.yaml" 169 | description = "List contents of root-feedstock packages built for variant osx_arm64_python3.13.____cp313" 170 | [tasks."build-osx_arm64_python3.14.____cp314"] 171 | cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_python3.14.____cp314.yaml" 172 | description = "Build root-feedstock with variant osx_arm64_python3.14.____cp314 directly (without setup scripts)" 173 | [tasks."inspect-osx_arm64_python3.14.____cp314"] 174 | cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_python3.14.____cp314.yaml" 175 | description = "List contents of root-feedstock packages built for variant osx_arm64_python3.14.____cp314" 176 | 177 | [feature.smithy.dependencies] 178 | conda-smithy = "*" 179 | [feature.smithy.tasks.build-locally] 180 | cmd = "python ./build-locally.py" 181 | description = "Build packages locally using the same setup scripts used in conda-forge's CI" 182 | [feature.smithy.tasks.smithy] 183 | cmd = "conda-smithy" 184 | description = "Run conda-smithy. Pass necessary arguments." 185 | [feature.smithy.tasks.rerender] 186 | cmd = "conda-smithy rerender" 187 | description = "Rerender the feedstock." 188 | [feature.smithy.tasks.lint] 189 | cmd = "conda-smithy lint --conda-forge recipe" 190 | description = "Lint the feedstock recipe" 191 | 192 | [environments] 193 | smithy = ["smithy"] 194 | 195 | # This is a copy of default, to be enabled by build_steps.sh during Docker builds 196 | # __PLATFORM_SPECIFIC_ENV__ = [] 197 | -------------------------------------------------------------------------------- /recipe/build_root.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | # rebuild afterimage ./configure script after patch 5 | cp $BUILD_PREFIX/share/gnuconfig/config.* root-source/graf2d/asimage/src/libAfterImage 6 | (cd root-source/graf2d/asimage/src/libAfterImage; autoconf) 7 | 8 | if [[ "${target_platform}" == "linux-"* ]]; then 9 | # Conda's binary relocation can result in string changing which can result in errors like 10 | # > $ root.exe -l -b -q -x root-feedstock/recipe/test.cpp++ 11 | # > powerpc64le-conda-linux-gnu-c++: error: missing filename after '-o' 12 | # https://gitter.im/conda-forge/conda-forge.github.io?at=61e18f469a3354540621b912 13 | export CXXFLAGS="${CXXFLAGS} -fno-merge-constants" 14 | export CFLAGS="${CFLAGS} -fno-merge-constants" 15 | fi 16 | 17 | if [[ "${target_platform}" == "linux-ppc64le" ]]; then 18 | export CXXFLAGS="${CXXFLAGS} -fplt" 19 | export CFLAGS="${CFLAGS} -fplt" 20 | fi 21 | 22 | # Manually set the deployment_target 23 | # May not be very important but nice to do 24 | OLDVERSIONMACOS='${MACOSX_VERSION}' 25 | sed -i -e "s@${OLDVERSIONMACOS}@${MACOSX_DEPLOYMENT_TARGET}@g" \ 26 | root-source/cmake/modules/SetUpMacOS.cmake 27 | 28 | declare -a CMAKE_PLATFORM_FLAGS 29 | 30 | Clang_DIR=${PREFIX} 31 | Clang_DIR_BUILD=${BUILD_PREFIX} 32 | 33 | clang_version_split=(${clang_version//./ }) 34 | CMAKE_PLATFORM_FLAGS+=("-DCLANG_RESOURCE_DIR_VERSION=${clang_version_split[0]}") 35 | if [[ "${target_platform}" == linux* ]]; then 36 | rel=$(realpath --relative-to="$CONDA_PREFIX" "$CONDA_BUILD_SYSROOT") 37 | if [[ $rel == .* ]]; then 38 | echo "Error: Relative path starts with '.'" 39 | exit 1 40 | fi 41 | INSTALL_SYSROOT="$PREFIX/$rel" 42 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_AR=${GCC_AR}") 43 | CMAKE_PLATFORM_FLAGS+=("-DCLANG_DEFAULT_LINKER=${LD_GOLD}") 44 | CMAKE_PLATFORM_FLAGS+=("-DDEFAULT_SYSROOT=${INSTALL_SYSROOT}") 45 | CMAKE_PLATFORM_FLAGS+=("-DRT_LIBRARY=${INSTALL_SYSROOT}/usr/lib/librt.so") 46 | 47 | else 48 | CMAKE_PLATFORM_FLAGS+=("-DBLA_PREFER_PKGCONFIG=ON") 49 | 50 | # HACK: Hack the macOS SDK to make rootcling find the correct ncurses 51 | if [[ -f "$CONDA_BUILD_SYSROOT/usr/include/module.modulemap.bak" ]]; then 52 | echo "ERROR: Looks like the macOS SDK hack has already been applied" 53 | exit 1 54 | else 55 | sed -i.bak "s@\"ncurses.h\"@\"${PREFIX}/include/ncurses.h\"@g" "${CONDA_BUILD_SYSROOT}/usr/include/module.modulemap" 56 | fi 57 | fi 58 | 59 | if [[ "${target_platform}" == osx* ]]; then 60 | CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" 61 | fi 62 | 63 | export CFLAGS="${CFLAGS//-isystem /-I}" 64 | export CPPFLAGS="${CPPFLAGS//-isystem /-I}" 65 | export CXXFLAGS="${CXXFLAGS//-isystem /-I}" 66 | export DEBUG_CFLAGS="${DEBUG_CFLAGS//-isystem /-I}" 67 | export DEBUG_CXXFLAGS="${DEBUG_CXXFLAGS//-isystem /-I}" 68 | export DEBUG_FFLAGS="${DEBUG_FFLAGS//-isystem /-I}" 69 | export DEBUG_FORTRANFLAGS="${DEBUG_FORTRANFLAGS//-isystem /-I}" 70 | export FFLAGS="${FFLAGS//-isystem /-I}" 71 | export FORTRANFLAGS="${FORTRANFLAGS//-isystem /-I}" 72 | 73 | mkdir -p build-dir 74 | cd build-dir 75 | 76 | # Remove -std=c++XX from build ${CXXFLAGS} 77 | CXXFLAGS=$(echo "${CXXFLAGS}" | sed -E 's@-std=c\+\+[^ ]+@@g') 78 | export CXXFLAGS 79 | 80 | # The cross-linux toolchain breaks find_file relative to the current file 81 | # Patch up with sed 82 | sed -i -E 's#(ROOT_TEST_DRIVER RootTestDriver.cmake PATHS \$\{THISDIR\} \$\{CMAKE_MODULE_PATH\} NO_DEFAULT_PATH)#\1 CMAKE_FIND_ROOT_PATH_BOTH#g' \ 83 | ${SRC_DIR}/root-source/cmake/modules/RootNewMacros.cmake 84 | 85 | # The basics 86 | if [ "${ROOT_CONDA_BUILD_TYPE-}" == "" ]; then 87 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_BUILD_TYPE=Release") 88 | else 89 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_BUILD_TYPE=${ROOT_CONDA_BUILD_TYPE}") 90 | fi 91 | CMAKE_PLATFORM_FLAGS+=("-GNinja") 92 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_INSTALL_PREFIX=${PREFIX}") 93 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_PREFIX_PATH=${PREFIX}") 94 | 95 | CMAKE_PLATFORM_FLAGS+=("-Dfail-on-missing=ON") 96 | # TODO: Switch this on? 97 | CMAKE_PLATFORM_FLAGS+=("-Dgnuinstall=OFF") 98 | CMAKE_PLATFORM_FLAGS+=("-Drpath=ON") 99 | CMAKE_PLATFORM_FLAGS+=("-Dshared=ON") 100 | CMAKE_PLATFORM_FLAGS+=("-Dsoversion=ON") 101 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_CXX_STANDARD=${ROOT_CXX_STANDARD}") 102 | CMAKE_PLATFORM_FLAGS+=("-DTBB_ROOT_DIR=${PREFIX}") 103 | 104 | # Disable all of the builtins 105 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_cfitsio=OFF") 106 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_davix=OFF") 107 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_fftw3=OFF") 108 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_freetype=OFF") 109 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_ftgl=OFF") 110 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_gl2ps=OFF") 111 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_glew=OFF") 112 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_gsl=OFF") 113 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_lz4=OFF") 114 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_lzma=OFF") 115 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_nlohmannjson=OFF") 116 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_openssl=OFF") 117 | # TODO: Make external? 118 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_openui5=ON") 119 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_pcre=OFF") 120 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_tbb=OFF") 121 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_unuran=OFF") 122 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_vc=OFF") 123 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_vdt=OFF") 124 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_xrootd=OFF") 125 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_xxhash=OFF") 126 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_zlib=OFF") 127 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_zstd=OFF") 128 | 129 | # Configure LLVM/Clang/Cling 130 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_llvm=OFF") 131 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_clang=OFF") 132 | 133 | if [[ "${target_platform}" == "${build_platform}" ]]; then 134 | CMAKE_PLATFORM_FLAGS+=("-DLLVM_CONFIG=${Clang_DIR}/bin/llvm-config") 135 | CMAKE_PLATFORM_FLAGS+=("-DLLVM_TABLEGEN_EXE=${Clang_DIR}/bin/llvm-tblgen") 136 | else 137 | CMAKE_PLATFORM_FLAGS+=("-DLLVM_CONFIG=${Clang_DIR_BUILD}/bin/llvm-config") 138 | CMAKE_PLATFORM_FLAGS+=("-DLLVM_TABLEGEN_EXE=${Clang_DIR_BUILD}/bin/llvm-tblgen") 139 | fi 140 | 141 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_cling=ON") 142 | CMAKE_PLATFORM_FLAGS+=("-DCLING_BUILD_PLUGINS=ON") 143 | CMAKE_PLATFORM_FLAGS+=("-Dclad=ON") 144 | 145 | # Cling needs some minor patches to the LLVM sources, hackily apply them rather than rebuilding LLVM 146 | # The following lines are used to avoid linking against LLVM during the build of ROOT, which is not supported. 147 | # The setting is done globally by the LLVM CMake configuration and it overrides any other setting in our build 148 | # For more details, see https://github.com/root-project/root/issues/18387 and https://github.com/llvm/llvm-project/pull/135570 149 | sed -i "s@LLVM_LINK_LLVM_DYLIB yes@LLVM_LINK_LLVM_DYLIB no@g" "${Clang_DIR}/lib/cmake/llvm/LLVMConfig.cmake" 150 | if [[ "${target_platform}" != "${build_platform}" ]]; then 151 | sed -i "s@LLVM_LINK_LLVM_DYLIB yes@LLVM_LINK_LLVM_DYLIB no@g" "${Clang_DIR_BUILD}/lib/cmake/llvm/LLVMConfig.cmake" 152 | fi 153 | 154 | # Enable some vectorisation options 155 | CMAKE_PLATFORM_FLAGS+=("-Dveccore=ON") 156 | CMAKE_PLATFORM_FLAGS+=("-Dvc=ON") 157 | CMAKE_PLATFORM_FLAGS+=("-Dbuiltin_veccore=ON") 158 | 159 | # Cross compilation options 160 | if [[ "${target_platform}" != "${build_platform}" ]]; then 161 | CMAKE_PLATFORM_FLAGS+=("-Dfound_urandom=ON") 162 | CMAKE_PLATFORM_FLAGS+=("-DTARGET_ARCHITECTURE=generic") # for Vc 163 | # FIXME: This is a hack... 164 | CMAKE_PLATFORM_FLAGS+=("-Druntime_cxxmodules=OFF") 165 | 166 | # Build rootcling_stage1 for the current platform 167 | cp "${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp"{,.orig} 168 | sed -i "s@TODO_OVERRIDE_TARGET@\"--target=$(echo "${BUILD}" | sed 's@powerpc64le@ppc64le@g')\"@g" "${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp" 169 | diff "${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp"{.orig,} || true 170 | 171 | declare -a CMAKE_PLATFORM_FLAGS_BUILD 172 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Dminimal=ON") 173 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Dfail-on-missing=ON") 174 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Drpath=ON") 175 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_BUILD_TYPE=Release") 176 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DLLVM_CONFIG=${Clang_DIR_BUILD}/bin/llvm-config") 177 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DLLVM_TABLEGEN_EXE=${Clang_DIR_BUILD}/bin/llvm-tblgen") 178 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_CXX_STANDARD=${ROOT_CXX_STANDARD}") 179 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DROOT_CLING_TARGET=all") 180 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Dfound_urandom=ON") 181 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_C_COMPILER=$CC_FOR_BUILD") 182 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_CXX_COMPILER=$CXX_FOR_BUILD") 183 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Dbuiltin_llvm=OFF") 184 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Dbuiltin_clang=OFF") 185 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_C_FLAGS=$(echo $CFLAGS | sed s@$PREFIX@$BUILD_PREFIX@g | sed -E 's/(^| )-m[^=]+=[^ ]+//g')") 186 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_CXX_FLAGS=$(echo $CXXFLAGS | sed s@$PREFIX@$BUILD_PREFIX@g | sed -E 's/(^| )-m[^=]+=[^ ]+//g')") 187 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_EXE_LINKER_FLAGS=$(echo $LDFLAGS | sed s@$PREFIX@$BUILD_PREFIX@g)") 188 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_MODULE_LINKER_FLAGS=$(echo $LDFLAGS | sed s@$PREFIX@$BUILD_PREFIX@g)") 189 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCMAKE_SHARED_LINKER_FLAGS=$(echo $LDFLAGS | sed s@$PREFIX@$BUILD_PREFIX@g)") 190 | CMAKE_PLATFORM_FLAGS_BUILD+=("-Druntime_cxxmodules=OFF") 191 | 192 | CONDA_BUILD_SYSROOT_BUILD=$CONDA_BUILD_SYSROOT 193 | 194 | if [[ "${target_platform}" == osx* ]]; then 195 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DLLVM_CMAKE_PATH=${Clang_DIR_BUILD}/lib/cmake") 196 | clang_version_split=(${clang_version//./ }) 197 | CMAKE_PLATFORM_FLAGS_BUILD+=("-DCLANG_RESOURCE_DIR_VERSION=${clang_version_split[0]}") 198 | elif [[ "${target_platform}" == linux* ]]; then 199 | CONDA_BUILD_SYSROOT_BUILD="${BUILD_PREFIX}/${BUILD}/sysroot" 200 | else 201 | echo "Unsupported cross-compilation target" 202 | exit 1 203 | fi 204 | 205 | if [[ "${target_platform}" == "linux-ppc64le" ]]; then 206 | mv "${CONDA_BUILD_SYSROOT}/usr/include/bits/wordsize.h"{,.orig} 207 | sed -E 's@(#if defined __powerpc64__)@#define __powerpc64__ 1\n#define _CALL_ELF 2\n\1@' \ 208 | "${CONDA_BUILD_SYSROOT}/usr/include/bits/wordsize.h.orig" \ 209 | > "${CONDA_BUILD_SYSROOT}/usr/include/bits/wordsize.h" 210 | diff "${CONDA_BUILD_SYSROOT}/usr/include/bits/wordsize.h"{.orig,} || true 211 | fi 212 | 213 | CMAKE_ARGS_BUILD=$(echo $CMAKE_ARGS | sed s@$PREFIX@$BUILD_PREFIX@g | sed s@${host_alias}@${build_alias}@g) 214 | 215 | CONDA_BUILD_SYSROOT="${CONDA_BUILD_SYSROOT_BUILD}" CMAKE_PREFIX_PATH="${BUILD_PREFIX}" \ 216 | cmake "${SRC_DIR}/root-source" \ 217 | -B "${SRC_DIR}/build-rootcling_stage1-xp" \ 218 | -DCLING_CXX_PATH="$CXX_FOR_BUILD" \ 219 | "${CMAKE_PLATFORM_FLAGS_BUILD[@]}" \ 220 | ${CMAKE_ARGS_BUILD} 221 | 222 | CONDA_BUILD_SYSROOT="${CONDA_BUILD_SYSROOT_BUILD}" \ 223 | cmake --build "${SRC_DIR}/build-rootcling_stage1-xp" --target rootcling_stage1 -- "-j${CPU_COUNT}" 224 | 225 | # Build rootcling for the current platform but that will target the host platform 226 | cp ${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp{.orig,} 227 | sed -i "s@TODO_OVERRIDE_TARGET@\"--target=$(echo "${HOST}" | sed 's@powerpc64le@ppc64le@g')\"@g" ${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp 228 | diff ${SRC_DIR}/root-source/interpreter/cling/lib/Interpreter/CIFactory.cpp{.orig,} || true 229 | 230 | CONDA_BUILD_SYSROOT="${CONDA_BUILD_SYSROOT_BUILD}" CMAKE_PREFIX_PATH="${BUILD_PREFIX}" \ 231 | cmake "${SRC_DIR}/root-source" \ 232 | -B "${SRC_DIR}/build-rootcling-xp" \ 233 | -DCLING_CXX_PATH="$CXX" \ 234 | "${CMAKE_PLATFORM_FLAGS_BUILD[@]}" \ 235 | ${CMAKE_ARGS_BUILD} 236 | 237 | CONDA_BUILD_SYSROOT="${CONDA_BUILD_SYSROOT_BUILD}" \ 238 | cmake --build "${SRC_DIR}/build-rootcling-xp" --target rootcling_stage1 -- "-j${CPU_COUNT}" 239 | mv "${SRC_DIR}/build-rootcling-xp/core/rootcling_stage1/src/rootcling_stage1"{,.orig} 240 | cp "${SRC_DIR}"/build-{rootcling_stage1,rootcling}-xp/"core/rootcling_stage1/src/rootcling_stage1" 241 | touch -r "${SRC_DIR}/build-rootcling-xp/core/rootcling_stage1/src/rootcling_stage1"{.orig,} 242 | CONDA_BUILD_SYSROOT="${CONDA_BUILD_SYSROOT_BUILD}" \ 243 | cmake --build "${SRC_DIR}/build-rootcling-xp" --target rootcling -- "-j${CPU_COUNT}" 244 | fi 245 | 246 | Python_INCLUDE_DIR="$(python -c 'import sysconfig; print(sysconfig.get_path("include"))')" 247 | Python_NumPy_INCLUDE_DIR="$(python -c 'import numpy;print(numpy.get_include())')" 248 | CMAKE_PLATFORM_FLAGS+=("-DPython_EXECUTABLE:PATH=${PYTHON}") 249 | CMAKE_PLATFORM_FLAGS+=("-DPython_INCLUDE_DIR:PATH=${Python_INCLUDE_DIR}") 250 | CMAKE_PLATFORM_FLAGS+=("-DPython_NumPy_INCLUDE_DIR=${Python_NumPy_INCLUDE_DIR}") 251 | CMAKE_PLATFORM_FLAGS+=("-DPython3_EXECUTABLE:PATH=${PYTHON}") 252 | CMAKE_PLATFORM_FLAGS+=("-DPython3_INCLUDE_DIR:PATH=${Python_INCLUDE_DIR}") 253 | CMAKE_PLATFORM_FLAGS+=("-DPython3_NumPy_INCLUDE_DIR=${Python_NumPy_INCLUDE_DIR}") 254 | CMAKE_PLATFORM_FLAGS+=("-DCMAKE_INSTALL_PYTHONDIR=${SP_DIR}") 255 | CMAKE_PLATFORM_FLAGS+=("-Dpyroot=ON") 256 | CMAKE_PLATFORM_FLAGS+=("-Dtmva-pymva=ON") 257 | 258 | # Disable the R bindings, should be made standalong like PyROOT 259 | CMAKE_PLATFORM_FLAGS+=("-Dr=OFF") 260 | CMAKE_PLATFORM_FLAGS+=("-Dtmva-rmva=OFF") 261 | 262 | # TMVA, the GPU part should be made standalone like PyROOT 263 | CMAKE_PLATFORM_FLAGS+=("-Dtmva=ON") 264 | CMAKE_PLATFORM_FLAGS+=("-Dtmva-cpu=ON") 265 | CMAKE_PLATFORM_FLAGS+=("-Dtmva-gpu=OFF") 266 | CMAKE_PLATFORM_FLAGS+=("-Dcuda=OFF") 267 | CMAKE_PLATFORM_FLAGS+=("-Dcudnn=OFF") 268 | 269 | # Enable other specific features 270 | CMAKE_PLATFORM_FLAGS+=("-Dasimage=ON") 271 | CMAKE_PLATFORM_FLAGS+=("-Ddataframe=ON") 272 | CMAKE_PLATFORM_FLAGS+=("-Ddavix=ON") 273 | CMAKE_PLATFORM_FLAGS+=("-Dfftw3=ON") 274 | CMAKE_PLATFORM_FLAGS+=("-Dfitsio=ON") 275 | CMAKE_PLATFORM_FLAGS+=("-Dgdml=ON") 276 | CMAKE_PLATFORM_FLAGS+=("-Dgviz=ON") 277 | CMAKE_PLATFORM_FLAGS+=("-Dhttp=ON") 278 | CMAKE_PLATFORM_FLAGS+=("-Dimt=ON") 279 | CMAKE_PLATFORM_FLAGS+=("-Dmathmore=ON") 280 | CMAKE_PLATFORM_FLAGS+=("-Dmlp=ON") 281 | CMAKE_PLATFORM_FLAGS+=("-Dopengl=ON") 282 | CMAKE_PLATFORM_FLAGS+=("-Dpythia8=ON") 283 | CMAKE_PLATFORM_FLAGS+=("-Droofit=ON") 284 | CMAKE_PLATFORM_FLAGS+=("-Droofit_multiprocess=ON") 285 | CMAKE_PLATFORM_FLAGS+=("-Droot7=ON") 286 | CMAKE_PLATFORM_FLAGS+=("-Dspectrum=ON") 287 | CMAKE_PLATFORM_FLAGS+=("-Dsqlite=ON") 288 | CMAKE_PLATFORM_FLAGS+=("-Dssl=ON") 289 | CMAKE_PLATFORM_FLAGS+=("-Dtbb=ON") 290 | CMAKE_PLATFORM_FLAGS+=("-Dvdt=ON") 291 | CMAKE_PLATFORM_FLAGS+=("-Dwebgui=ON") 292 | CMAKE_PLATFORM_FLAGS+=("-Dxml=ON") 293 | CMAKE_PLATFORM_FLAGS+=("-Dxrootd=ON") 294 | 295 | # On by default but disabled 296 | CMAKE_PLATFORM_FLAGS+=("-Dgfal=OFF") 297 | CMAKE_PLATFORM_FLAGS+=("-Dpythia6=OFF") 298 | CMAKE_PLATFORM_FLAGS+=("-Dmysql=OFF") 299 | CMAKE_PLATFORM_FLAGS+=("-Doracle=OFF") 300 | CMAKE_PLATFORM_FLAGS+=("-Dpgsql=OFF") 301 | 302 | # Disable other specific features 303 | CMAKE_PLATFORM_FLAGS+=("-Dalien=OFF") 304 | CMAKE_PLATFORM_FLAGS+=("-Darrow=OFF") 305 | CMAKE_PLATFORM_FLAGS+=("-Dcefweb=OFF") 306 | CMAKE_PLATFORM_FLAGS+=("-Ddcache=OFF") 307 | CMAKE_PLATFORM_FLAGS+=("-Dfcgi=OFF") 308 | CMAKE_PLATFORM_FLAGS+=("-Dfortran=OFF") 309 | CMAKE_PLATFORM_FLAGS+=("-Dgsl_shared=OFF") 310 | CMAKE_PLATFORM_FLAGS+=("-Dmacos_native=OFF") 311 | CMAKE_PLATFORM_FLAGS+=("-Dmonalisa=OFF") 312 | CMAKE_PLATFORM_FLAGS+=("-Dmpi=OFF") 313 | CMAKE_PLATFORM_FLAGS+=("-Dodbc=OFF") 314 | CMAKE_PLATFORM_FLAGS+=("-Dpythia6_nolink=OFF") 315 | CMAKE_PLATFORM_FLAGS+=("-Dqt5web=OFF") 316 | CMAKE_PLATFORM_FLAGS+=("-Dshadowpw=OFF") 317 | CMAKE_PLATFORM_FLAGS+=("-Dunuran=OFF") 318 | CMAKE_PLATFORM_FLAGS+=("-During=OFF") 319 | CMAKE_PLATFORM_FLAGS+=("-Dvecgeom=OFF") 320 | CMAKE_PLATFORM_FLAGS+=("-Dvmc=OFF") 321 | CMAKE_PLATFORM_FLAGS+=("-Dxproofd=OFF") 322 | 323 | # Developer only options 324 | CMAKE_PLATFORM_FLAGS+=("-Dccache=OFF") 325 | CMAKE_PLATFORM_FLAGS+=("-Dcoverage=OFF") 326 | CMAKE_PLATFORM_FLAGS+=("-Dcxxmodules=OFF") 327 | CMAKE_PLATFORM_FLAGS+=("-Ddev=OFF") 328 | CMAKE_PLATFORM_FLAGS+=("-Ddistcc=OFF") 329 | CMAKE_PLATFORM_FLAGS+=("-Djemalloc=OFF") 330 | CMAKE_PLATFORM_FLAGS+=("-Dlibcxx=OFF") 331 | CMAKE_PLATFORM_FLAGS+=("-Dmemory_termination=OFF") 332 | CMAKE_PLATFORM_FLAGS+=("-Dmemstat=OFF") 333 | CMAKE_PLATFORM_FLAGS+=("-Dtcmalloc=OFF") 334 | CMAKE_PLATFORM_FLAGS+=("-Dtest_distrdf_pyspark=OFF") 335 | CMAKE_PLATFORM_FLAGS+=("-Dwin_broken_tests=OFF") 336 | CMAKE_PLATFORM_FLAGS+=("-Dwinrtdebug=OFF") 337 | 338 | # Platform specific options 339 | if [[ "${target_platform}" == linux* ]]; then 340 | CMAKE_PLATFORM_FLAGS+=("-Dx11=ON") 341 | else 342 | CMAKE_PLATFORM_FLAGS+=("-Dcocoa=ON") 343 | fi 344 | 345 | # Configure the tests 346 | if [ "${ROOT_CONDA_RUN_GTESTS-}" = "1" ]; then 347 | CMAKE_PLATFORM_FLAGS+=("-Dtesting=ON") 348 | # Required for the tests to work correctly 349 | export LD_LIBRARY_PATH=$PREFIX/lib 350 | else 351 | CMAKE_PLATFORM_FLAGS+=("-Dtesting=OFF") 352 | fi 353 | CMAKE_PLATFORM_FLAGS+=("-Droottest=OFF") 354 | 355 | # Now we can actually run CMake 356 | cmake $CMAKE_ARGS "${CMAKE_PLATFORM_FLAGS[@]}" ${SRC_DIR}/root-source 357 | 358 | if [[ "${target_platform}" != "${build_platform}" ]]; then 359 | # Build rootcling_stage1 then substitute the binary with the host version 360 | cmake --build . --target rootcling_stage1 -- "-j${CPU_COUNT}" 361 | mv core/rootcling_stage1/src/rootcling_stage1{,.orig} 362 | cp "${SRC_DIR}/build-rootcling_stage1-xp/core/rootcling_stage1/src/rootcling_stage1" core/rootcling_stage1/src/rootcling_stage1 363 | touch -r core/rootcling_stage1/src/rootcling_stage1{.orig,} 364 | fi 365 | 366 | if [[ "${target_platform}" != "${build_platform}" ]]; then 367 | # Build rootcling then substitute the binary with the host version 368 | cmake --build . --target rootcling -- "-j${CPU_COUNT}" 369 | mv bin/rootcling{,.orig} 370 | cp "${SRC_DIR}/build-rootcling-xp/bin/rootcling" bin/rootcling 371 | touch -r bin/rootcling{.orig,} 372 | fi 373 | 374 | cmake --build . -- "-j${CPU_COUNT}" 375 | 376 | if [[ "${target_platform}" != "${build_platform}" ]]; then 377 | # Restore the original rootcling_stage1/rootcling binaries 378 | mv core/rootcling_stage1/src/rootcling_stage1{.orig,} 379 | mv bin/rootcling{.orig,} 380 | fi 381 | 382 | if [ "${ROOT_CONDA_RUN_GTESTS-}" = "1" ]; then 383 | # Run gtests, never fail as Jenkins will check the test results instead 384 | ctest "-j${CPU_COUNT}" -T test --no-compress-output \ 385 | --exclude-regex '^(pyunittests-pyroot-numbadeclare|test-periodic-build|tutorial-pyroot-pyroot004_NumbaDeclare-py)$' \ 386 | || true 387 | rm -rf "${HOME}/feedstock_root/Testing" 388 | cp -rp "Testing" "${HOME}/feedstock_root/" 389 | fi 390 | 391 | cmake --build . --target install 392 | 393 | # Remove thisroot.* 394 | rm "${PREFIX}"/bin/thisroot.* 395 | for suffix in sh csh fish; do 396 | cp "${RECIPE_DIR}/thisroot" "${PREFIX}/bin/thisroot.${suffix}" 397 | chmod +x "${PREFIX}/bin/thisroot.${suffix}" 398 | done 399 | 400 | # Install the jupyter kernel 401 | mkdir -p "$PREFIX/share/jupyter/kernels" 402 | cp -r "$PREFIX/etc/notebook/kernels/root" "$PREFIX/share/jupyter/kernels" 403 | 404 | # Add the post activate/deactivate scripts 405 | mkdir -p "${PREFIX}/etc/conda/activate.d" 406 | cp "${RECIPE_DIR}/activate.sh" "${PREFIX}/etc/conda/activate.d/activate-root.sh" 407 | cp "${RECIPE_DIR}/activate.csh" "${PREFIX}/etc/conda/activate.d/activate-root.csh" 408 | cp "${RECIPE_DIR}/activate.fish" "${PREFIX}/etc/conda/activate.d/activate-root.fish" 409 | mkdir -p "${PREFIX}/etc/conda/deactivate.d" 410 | cp "${RECIPE_DIR}/deactivate.sh" "${PREFIX}/etc/conda/deactivate.d/deactivate-root.sh" 411 | cp "${RECIPE_DIR}/deactivate.csh" "${PREFIX}/etc/conda/deactivate.d/deactivate-root.csh" 412 | cp "${RECIPE_DIR}/deactivate.fish" "${PREFIX}/etc/conda/deactivate.d/deactivate-root.fish" 413 | 414 | # Non-bourne-like shells do not get the same level of support as bourne-like shells on conda. 415 | # Patch the activation scripts to set the required environment variable on Linux. MacOS seems 416 | # to not be affected by the same issue. 417 | # See https://github.com/conda/conda/issues/7993 and https://github.com/ContinuumIO/anaconda-issues/issues/11624 418 | if [[ "${target_platform}" == "linux-"* ]]; then 419 | source $RECIPE_DIR/get_cpu_arch.sh # populates CHOST variable 420 | # fish 421 | cat >> "${PREFIX}/etc/conda/activate.d/activate-root.fish" << EOF 422 | 423 | if set -q CONDA_BUILD_SYSROOT 424 | set -gx BACKUP_CONDA_BUILD_SYSROOT "\$CONDA_BUILD_SYSROOT" 425 | end 426 | set -gx CONDA_BUILD_SYSROOT "\$CONDA_PREFIX/${CHOST}/sysroot" 427 | EOF 428 | cat >> "${PREFIX}/etc/conda/deactivate.d/deactivate-root.fish" << EOF 429 | 430 | if set -q BACKUP_CONDA_BUILD_SYSROOT 431 | set -gx CONDA_BUILD_SYSROOT "\$BACKUP_CONDA_BUILD_SYSROOT" 432 | set -e BACKUP_CONDA_BUILD_SYSROOT 433 | else 434 | set -e CONDA_BUILD_SYSROOT 435 | end 436 | EOF 437 | # tcsh 438 | cat >> "${PREFIX}/etc/conda/activate.d/activate-root.csh" << EOF 439 | 440 | if (\$?CONDA_BUILD_SYSROOT) then 441 | setenv BACKUP_CONDA_BUILD_SYSROOT "\${CONDA_BUILD_SYSROOT}" 442 | endif 443 | setenv CONDA_BUILD_SYSROOT "\${CONDA_PREFIX}/${CHOST}/sysroot" 444 | EOF 445 | cat >> "${PREFIX}/etc/conda/deactivate.d/deactivate-root.csh" << EOF 446 | 447 | if (\$?BACKUP_CONDA_BUILD_SYSROOT) then 448 | setenv CONDA_BUILD_SYSROOT "\${BACKUP_CONDA_BUILD_SYSROOT}" 449 | unsetenv BACKUP_CONDA_BUILD_SYSROOT 450 | else 451 | unsetenv CONDA_BUILD_SYSROOT 452 | endif 453 | EOF 454 | fi 455 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | About root-feedstock 2 | ==================== 3 | 4 | Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/root-feedstock/blob/main/LICENSE.txt) 5 | 6 | Home: https://root.cern/ 7 | 8 | Package license: LGPL-2.1-only 9 | 10 | Summary: ROOT is a unified software package for the storage, processing, and analysis of scientific data: from its 11 | acquisition to the final visualization in form of highly customizable, publication-ready plots. It is reliable, 12 | performant and well supported, easy to use and obtain, and strives to maximize the quantity and impact of scientific 13 | results obtained per unit cost, both of human effort and computing resources. ROOT is performance critical software 14 | written in C++ and enables rapid prototyping powered by a unique C++ compliant interpreter called Cling. Cling also 15 | enables performant C++ type introspection which is a building block of automatic interoperability with Python. 16 | Thanks to its dynamic Python bindings, leveraging the cppyy technology, ROOT offers efficient, on-demand C++/Python 17 | interoperability in a uniform cross-language execution environment. 18 | 19 | Development: https://github.com/root-project/root/ 20 | 21 | Documentation: https://root.cern/documentation 22 | 23 | While the feature set of the ROOT framework is vast and not everything can be supported in the conda distribution, 24 | this package aims at enabling most of the features of ROOT. Here are a few things to try: 25 | 26 | * `root`: you can start up a session and see the splash screen; Control-D to exit. 27 | * `python` followed by `import ROOT` to access all ROOT functionalities via the Python bindings. 28 | * `root --notebook` will start a notebook server with a ROOT kernel choice. 29 | * `rootbrowse` will open a TBrowser session so you can look through files. 30 | * `root -b -q -l $ROOTSYS/tutorials/analysis/dataframe/df013_InspectAnalysis.C` will run a DataFrame example with an animated plot. 31 | * `root -b -q -l -n -e "std::cout << TROOT::GetTutorialDir() << std::endl;"` will print the tutorial dir. 32 | 33 | See the post [here](https://iscinumpy.gitlab.io/post/root-conda/) for more information about using this Conda package. 34 | 35 | The ROOT package will prepare the required compilers. Everything in Conda is symlinked into 36 | `$CONDA_PREFIX` if you build things by hand; tools like CMake should find it automatically. 37 | 38 | There is also a `root_base` package, with minimal dependecies, that libraries should depend on this to avoid 39 | having a runtime dependency on the `compilers` package. In most cases users should use the `root` package directly, 40 | since it adds more features (taking care of their dependencies) to facilitate usage of the ROOT Python bindings. 41 | 42 | Current build status 43 | ==================== 44 | 45 | 46 | 47 | 48 | 49 | 50 | 239 | 240 |
Azure 51 |
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 66 | 67 | 68 | 73 | 74 | 75 | 80 | 81 | 82 | 87 | 88 | 89 | 94 | 95 | 96 | 101 | 102 | 103 | 108 | 109 | 110 | 115 | 116 | 117 | 122 | 123 | 124 | 129 | 130 | 131 | 136 | 137 | 138 | 143 | 144 | 145 | 150 | 151 | 152 | 157 | 158 | 159 | 164 | 165 | 166 | 171 | 172 | 173 | 178 | 179 | 180 | 185 | 186 | 187 | 192 | 193 | 194 | 199 | 200 | 201 | 206 | 207 | 208 | 213 | 214 | 215 | 220 | 221 | 222 | 227 | 228 | 229 | 234 | 235 | 236 |
VariantStatus
linux_64_python3.10.____cpython 62 | 63 | variant 64 | 65 |
linux_64_python3.11.____cpython 69 | 70 | variant 71 | 72 |
linux_64_python3.12.____cpython 76 | 77 | variant 78 | 79 |
linux_64_python3.13.____cp313 83 | 84 | variant 85 | 86 |
linux_64_python3.14.____cp314 90 | 91 | variant 92 | 93 |
linux_aarch64_python3.10.____cpython 97 | 98 | variant 99 | 100 |
linux_aarch64_python3.11.____cpython 104 | 105 | variant 106 | 107 |
linux_aarch64_python3.12.____cpython 111 | 112 | variant 113 | 114 |
linux_aarch64_python3.13.____cp313 118 | 119 | variant 120 | 121 |
linux_aarch64_python3.14.____cp314 125 | 126 | variant 127 | 128 |
linux_ppc64le_python3.10.____cpython 132 | 133 | variant 134 | 135 |
linux_ppc64le_python3.11.____cpython 139 | 140 | variant 141 | 142 |
linux_ppc64le_python3.12.____cpython 146 | 147 | variant 148 | 149 |
linux_ppc64le_python3.13.____cp313 153 | 154 | variant 155 | 156 |
linux_ppc64le_python3.14.____cp314 160 | 161 | variant 162 | 163 |
osx_64_python3.10.____cpython 167 | 168 | variant 169 | 170 |
osx_64_python3.11.____cpython 174 | 175 | variant 176 | 177 |
osx_64_python3.12.____cpython 181 | 182 | variant 183 | 184 |
osx_64_python3.13.____cp313 188 | 189 | variant 190 | 191 |
osx_64_python3.14.____cp314 195 | 196 | variant 197 | 198 |
osx_arm64_python3.10.____cpython 202 | 203 | variant 204 | 205 |
osx_arm64_python3.11.____cpython 209 | 210 | variant 211 | 212 |
osx_arm64_python3.12.____cpython 216 | 217 | variant 218 | 219 |
osx_arm64_python3.13.____cp313 223 | 224 | variant 225 | 226 |
osx_arm64_python3.14.____cp314 230 | 231 | variant 232 | 233 |
237 |
238 |
241 | 242 | Current release info 243 | ==================== 244 | 245 | | Name | Downloads | Version | Platforms | 246 | | --- | --- | --- | --- | 247 | | [![Conda Recipe](https://img.shields.io/badge/recipe-root-green.svg)](https://anaconda.org/conda-forge/root) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/root.svg)](https://anaconda.org/conda-forge/root) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/root.svg)](https://anaconda.org/conda-forge/root) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/root.svg)](https://anaconda.org/conda-forge/root) | 248 | | [![Conda Recipe](https://img.shields.io/badge/recipe-root__base-green.svg)](https://anaconda.org/conda-forge/root_base) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/root_base.svg)](https://anaconda.org/conda-forge/root_base) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/root_base.svg)](https://anaconda.org/conda-forge/root_base) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/root_base.svg)](https://anaconda.org/conda-forge/root_base) | 249 | 250 | Installing root 251 | =============== 252 | 253 | Installing `root` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: 254 | 255 | ``` 256 | conda config --add channels conda-forge 257 | conda config --set channel_priority strict 258 | ``` 259 | 260 | Once the `conda-forge` channel has been enabled, `root, root_base` can be installed with `conda`: 261 | 262 | ``` 263 | conda install root root_base 264 | ``` 265 | 266 | or with `mamba`: 267 | 268 | ``` 269 | mamba install root root_base 270 | ``` 271 | 272 | It is possible to list all of the versions of `root` available on your platform with `conda`: 273 | 274 | ``` 275 | conda search root --channel conda-forge 276 | ``` 277 | 278 | or with `mamba`: 279 | 280 | ``` 281 | mamba search root --channel conda-forge 282 | ``` 283 | 284 | Alternatively, `mamba repoquery` may provide more information: 285 | 286 | ``` 287 | # Search all versions available on your platform: 288 | mamba repoquery search root --channel conda-forge 289 | 290 | # List packages depending on `root`: 291 | mamba repoquery whoneeds root --channel conda-forge 292 | 293 | # List dependencies of `root`: 294 | mamba repoquery depends root --channel conda-forge 295 | ``` 296 | 297 | 298 | About conda-forge 299 | ================= 300 | 301 | [![Powered by 302 | NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) 303 | 304 | conda-forge is a community-led conda channel of installable packages. 305 | In order to provide high-quality builds, the process has been automated into the 306 | conda-forge GitHub organization. The conda-forge organization contains one repository 307 | for each of the installable packages. Such a repository is known as a *feedstock*. 308 | 309 | A feedstock is made up of a conda recipe (the instructions on what and how to build 310 | the package) and the necessary configurations for automatic building using freely 311 | available continuous integration services. Thanks to the awesome service provided by 312 | [Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), 313 | [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), 314 | [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) 315 | it is possible to build and upload installable packages to the 316 | [conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) 317 | channel for Linux, Windows and OSX respectively. 318 | 319 | To manage the continuous integration and simplify feedstock maintenance, 320 | [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. 321 | Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of 322 | this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. 323 | 324 | For more information, please check the [conda-forge documentation](https://conda-forge.org/docs/). 325 | 326 | Terminology 327 | =========== 328 | 329 | **feedstock** - the conda recipe (raw material), supporting scripts and CI configuration. 330 | 331 | **conda-smithy** - the tool which helps orchestrate the feedstock. 332 | Its primary use is in the construction of the CI ``.yml`` files 333 | and simplify the management of *many* feedstocks. 334 | 335 | **conda-forge** - the place where the feedstock and smithy live and work to 336 | produce the finished article (built conda distributions) 337 | 338 | 339 | Updating root-feedstock 340 | ======================= 341 | 342 | If you would like to improve the root recipe or build a new 343 | package version, please fork this repository and submit a PR. Upon submission, 344 | your changes will be run on the appropriate platforms to give the reviewer an 345 | opportunity to confirm that the changes result in a successful build. Once 346 | merged, the recipe will be re-built and uploaded automatically to the 347 | `conda-forge` channel, whereupon the built conda packages will be available for 348 | everybody to install and use from the `conda-forge` channel. 349 | Note that all branches in the conda-forge/root-feedstock are 350 | immediately built and any created packages are uploaded, so PRs should be based 351 | on branches in forks, and branches in the main repository should only be used to 352 | build distinct package versions. 353 | 354 | In order to produce a uniquely identifiable distribution: 355 | * If the version of a package **is not** being increased, please add or increase 356 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). 357 | * If the version of a package **is** being increased, please remember to return 358 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) 359 | back to 0. 360 | 361 | Feedstock Maintainers 362 | ===================== 363 | 364 | * [@chrisburr](https://github.com/chrisburr/) 365 | * [@duncanmmacleod](https://github.com/duncanmmacleod/) 366 | * [@henryiii](https://github.com/henryiii/) 367 | * [@vepadulano](https://github.com/vepadulano/) 368 | 369 | --------------------------------------------------------------------------------