├── .DS_Store ├── .githooks └── pre-commit ├── .gitmodules ├── LICENSE.txt ├── README.rst ├── abs.yaml ├── clobber_noarch.yaml ├── conda_build_config.yaml ├── git-format-patch-le.py ├── make-mixed-crlf-patch.py └── python-order.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnacondaRecipes/aggregate/d04629c17adc4466583c574f766b581c88056b07/.DS_Store -------------------------------------------------------------------------------- /.githooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Debugging 4 | # set -x 5 | 6 | ### ---------------------------------------------------------------------- 7 | txtred='\033[0;31m' # red 8 | bldred='\033[1;31m' # red bold 9 | txtgrn='\033[0;32m' # green 10 | bldgrn='\033[1;32m' # green bold 11 | txtyel='\033[0;33m' # yellow 12 | bldyel='\033[1;33m' # yellow bold 13 | txtrst='\033[0m' # Text reset 14 | 15 | # ------------------------------ 16 | # regex 17 | SUBMODULE_REGEX_STATUS="([\+-uU[:space:]])([^[:space:]]*) ([^[:space:]]*)( ([^[:space:]]*))?" 18 | SUBMODULE_REGEX_MODULE="\[submodule \"(.*)\"\]" 19 | GIT_REGEX_DIFF_COMMIT=".*commit (.*)" 20 | 21 | # ------------------------------ 22 | print_error() { 23 | echo -e "${bldred}$1${txtrst}" 24 | } 25 | 26 | # ------------------------------ 27 | print_success() { 28 | echo -e "${bldgrn}$1${txtrst}" 29 | } 30 | 31 | # ------------------------------ 32 | print_warning() { 33 | echo -e "${bldyel}$1${txtrst}" 34 | } 35 | 36 | # ------------------------------ 37 | print_warning_with_title() { 38 | echo -e "${txtyel}$1: ${bldyel}$2${txtrst}" 39 | } 40 | 41 | # ------------------------------ 42 | parse_git_branch() { 43 | git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/' 44 | } 45 | 46 | # ------------------------------ 47 | find_submodule_remote_ref() { 48 | local l_remote_ref=`git rev-parse --remotes=*$1` 49 | echo ${l_remote_ref} 50 | return 0 51 | } 52 | 53 | # ------------------------------ 54 | # $1 = path 55 | find_submodule_commit_hash() { 56 | local l_br=`git diff HEAD -- $1 | sed '1,6 d'` # too specific? 57 | if [[ ${l_br} =~ $GIT_REGEX_DIFF_COMMIT ]]; then 58 | # return commit HASH 59 | echo ${BASH_REMATCH[1]} 60 | return 0 61 | fi 62 | return -1 63 | } 64 | 65 | # ------------------------------ 66 | # $1 = hash 67 | # $2 = path 68 | # 69 | check_submodule_is_pushed() { 70 | # need to find the path for this module 71 | local l_hash=$1 72 | local l_path=$2 73 | 74 | done_processing= 75 | while read line 76 | do 77 | if [[ "$line" =~ $SUBMODULE_REGEX_MODULE ]]; then 78 | if [[ ${BASH_REMATCH[1]} == ${l_path} ]]; then 79 | diffed_submodule=`find_submodule_commit_hash ${l_path}` 80 | if [[ "$?" -eq 0 ]]; then 81 | pushd . > /dev/null 82 | # echo "let's go to submodule folder... [${BASH_REMATCH[1]}]" 83 | cd ${BASH_REMATCH[1]} 84 | local l_branch=$(parse_git_branch) 85 | # echo "BRANCH is <<${l_branch}>>" 86 | local l_remote_ref=$(find_submodule_remote_ref ${l_branch}) 87 | # echo "remote REF is <<${l_remote_ref}>>" 88 | popd > /dev/null 89 | 90 | # finally!!!!! 91 | if [[ $l_hash == $l_remote_ref ]]; then 92 | print_success "All is good with this submodule..." 93 | return 0 94 | else 95 | echo " " 96 | print_error "Stop! Pre-commit condition failed." 97 | echo "Did you forget to push submodule [$l_path] to remote?" 98 | echo "Cannot proceed until you do so." 99 | print_warning_with_title "Remote HASH" ${l_remote_ref} 100 | print_warning_with_title "Local HASH." ${l_hash} 101 | echo " " 102 | return -1 103 | fi 104 | # else 105 | # should we just skip instead of break? 106 | # print_error ">> [$l_path] - No commit HASH found..." 107 | # return -1 108 | # noop 109 | fi 110 | fi 111 | # else 112 | # print_error "NOT submodule line... continue" 113 | # return -1 114 | fi 115 | done < ${SUBMODULE_CONFIG_FILE} 116 | 117 | if [[ -z done_processing ]]; then 118 | print_error ">> Could not process submodule..." 119 | return -1 #signal error 120 | fi 121 | } 122 | 123 | ### ---------------------------------------------------------------------- 124 | ### MAIN 125 | ### ---------------------------------------------------------------------- 126 | 127 | PROJECT_ROOT=`git rev-parse --git-dir`/.. 128 | # echo "root is ${PROJECT_ROOT}" 129 | 130 | # ------------------------------ 131 | # exit if nothing to do here... 132 | SUBMODULE_CONFIG_FILE=${PROJECT_ROOT}/.gitmodules 133 | if [[ ! -f ${SUBMODULE_CONFIG_FILE} ]]; then 134 | # echo "NO SUBMODULE -- exit" 135 | exit 0 136 | fi 137 | 138 | echo "Checking submodules..." 139 | 140 | # ------------------------------ 141 | IFS=$'\x0A'$'\x0D' 142 | #save initial dir 143 | pushd . > /dev/null 144 | cd ${PROJECT_ROOT} 145 | 146 | FAILED=0 147 | # loop through all submodules 148 | git_submodules=`git submodule` 149 | for l in $git_submodules 150 | do 151 | if [[ "$l" =~ $SUBMODULE_REGEX_STATUS ]]; then 152 | status=${BASH_REMATCH[1]} 153 | hash=${BASH_REMATCH[2]} 154 | path=${BASH_REMATCH[3]} 155 | branch=${BASH_REMATCH[5]} 156 | 157 | # if [[ $status =~ " " ]]; then 158 | # print_success " Submodule [$path] ... OK" 159 | if [[ $status == "-" ]]; then 160 | print_error " Submodule [$path] ... NOT initialized" 161 | else 162 | # echo "submodule changed!!! let's check revisions" 163 | success=`check_submodule_is_pushed ${hash} ${path}` 164 | if [[ "$?" -eq 0 ]]; then 165 | print_success " Submodule [$path] ... OK" 166 | else 167 | IFS=$'' 168 | print_error " Submodule [$path] ... FAILED" 169 | echo $success 170 | FAILED=1 171 | exit 1 # break as soon as submodule fails 172 | fi 173 | fi 174 | fi 175 | done 176 | 177 | # go back to original folder 178 | popd > /dev/null 179 | 180 | echo "returning state $FAILED" 181 | exit $FAILED -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2012, Anaconda, Inc. 4 | Copyright (c) 2015-2019, conda-forge 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright 11 | notice, this list of conditions and the following disclaimer. 12 | * Redistributions in binary form must reproduce the above copyright 13 | notice, this list of conditions and the following disclaimer in the 14 | documentation and/or other materials provided with the distribution. 15 | * Neither the name of the copyright holder nor the names of its 16 | contributors may be used to endorse or promote products 17 | derived from this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY 23 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | About the AnacondaRecipes/aggregate repository 2 | ============================================== 3 | 4 | The aggregate repository contains: 5 | 6 | - The global `conda-build variant config `_ file: `conda_build_config.yaml `_ (similar to the `conda-forge-pinnings-feedstock `_) 7 | - A central list of all public maintained feedstocks: 8 | 9 | - most feedstocks are separate feedstock repositories: 10 | 11 | - They are referenced as git submodule with relative repository URL and their release branches: `.gitmodules `_. (similar to ``conda-forge`` feedstocks repository) 12 | - The quality on the referenced release branches is ensured via *Pull Requests* and *Automated builds*. The latest commit can be checked out via: ``git submodule update --init --remote $feedstock-folder`` (``--remote`` is important as the submodule pinning to a specific sha1 of the referenced repository is often not updated.) 13 | 14 | - some feedstocks are normal directories checked into aggregate: aggregate serves here as staging area for recipes that eventually need to be submitted to ``conda-forge`` or for recipes that we think ``conda-forge`` will have no interest in. 15 | 16 | How to add new recipes to the aggregate repository 17 | -------------------------------------------------- 18 | 19 | Unfortunately, because of the structure of this organization, where each recipe has its own repository, there is no way to submit a PR that adds a new recipe, because PRs can’t create repositories, only modify existing ones. If you’d like to submit a recipe for us to build and make available on the default channel, you can either: 20 | 21 | - Submit your recipe to conda-forge’s staged-recipes repository (https://github.com/conda-forge/staged-recipes). There are directions in `the readme here `_. When your recipe is merged and has become a feedstock repository, file an issue on the ``AnacondaRecipes/aggregate`` repo and we can fork that feedstock repository and build it. 22 | - Add your recipe in a folder on the aggregate repository. **This is generally something we’d like to avoid.** It does not benefit from the automated CI building that ``conda-forge`` does. It also mixes up the git history for your recipe with everything else that happens to the aggregate repository. We’ll still consider recipes submitted this way, but please consider it a last resort. 23 | 24 | How to change recipes on the aggregate repository 25 | ------------------------------------------------- 26 | 27 | Most recipes in the aggregate repository are submodules - essentially links to other repositories. To submit changes to recipes, it is best to fork those other repositories, submit PRs to them, and then we’ll update the aggregate’s link to the changed recipe. We prefer PRs to be submitted to ``conda-forge`` recipes, because their automatic CI builds help us know that your changes don’t cause any unintended breakage. Once your changes are incorporated at conda-forge, file an issue on the ``AnacondaRecipes/aggregate`` repo and we’ll pull them into our recipe on AnacondaRecipes. 28 | 29 | For the few recipes that exist as folders on the aggregate repo, clone the aggregate repo, and issue PRs against it directly. 30 | 31 | How to build python + packages once a new version of Python arrives (on ppc) 32 | ---------------------------------------------------------------------------- 33 | 34 | :: 35 | 36 | CONDA_ADD_PIP_AS_PYTHON_DEPENDENCY=0 \ 37 | conda-build $(cat python-order.txt | \ 38 | sed '/^python-feedstock/,$!d' | \ 39 | grep -v '# \[not ppc\]' | \ 40 | sed 's/[[:space:]].*$//' | tr '\n' ' ') \ 41 | -c local \ 42 | -c https://repo.anaconda.com/pkgs/main \ 43 | --skip-existing --error-overlinking 2>&1 | \ 44 | tee -a ~/conda/python-3.7.0-all-build-out.log 45 | -------------------------------------------------------------------------------- /abs.yaml: -------------------------------------------------------------------------------- 1 | build_env_vars: 2 | ANACONDA_ROCKET_ENABLE_PY313: yes 3 | 4 | aggregate_check: false 5 | upload_channels: 6 | - sfe1ed40 7 | 8 | -------------------------------------------------------------------------------- /clobber_noarch.yaml: -------------------------------------------------------------------------------- 1 | build: 2 | noarch: False 3 | -------------------------------------------------------------------------------- /conda_build_config.yaml: -------------------------------------------------------------------------------- 1 | ## GLOBAL config 2 | ## Compilers, blas, R, python... 3 | 4 | pin_run_as_build: 5 | libboost: 6 | max_pin: x.x.x 7 | 8 | blas_impl: 9 | - mkl # [(x86 or x86_64) and not osx] 10 | - openblas # [not win] 11 | c_compiler: 12 | - gcc # [linux] 13 | - clang # [osx] 14 | - vs2019 # [win] 15 | cxx_compiler: 16 | - gxx # [linux] 17 | - clangxx # [osx] 18 | - vs2019 # [win] 19 | cuda_compiler: 20 | - cuda-nvcc 21 | fortran_compiler: 22 | - gfortran # [linux or osx] 23 | - intel-fortran # [win] 24 | m2w64_c_compiler: # [win] 25 | - m2w64-toolchain # [win] 26 | m2w64_cxx_compiler: # [win] 27 | - m2w64-toolchain # [win] 28 | m2w64_fortran_compiler: # [win] 29 | - m2w64-toolchain # [win] 30 | ucrt64_c_compiler: # [win] 31 | - ucrt64-gcc-toolchain # [win] 32 | ucrt64_cxx_compiler: # [win] 33 | - ucrt64-gcc-toolchain # [win] 34 | ucrt64_fortran_compiler: # [win] 35 | - ucrt64-gcc-toolchain # [win] 36 | rust_compiler: 37 | - rust 38 | rust_compiler_version: 39 | - 1.82.0 40 | # use {{ compiler('rust-gnu') }} when requiring a build using the m2w64-toolchain 41 | rust_gnu_compiler: # [win] 42 | - rust-gnu # [win] 43 | rust_gnu_compiler_version: # [win] 44 | - 1.82.0 # [win] 45 | CONDA_BUILD_SYSROOT: 46 | - /opt/MacOSX10.15.sdk # [osx and x86_64] 47 | - /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk # [osx and arm64] 48 | VERBOSE_AT: 49 | - V=1 50 | VERBOSE_CM: 51 | - VERBOSE=1 52 | cran_mirror: 53 | - https://cran.r-project.org 54 | c_compiler_version: # [linux or osx] 55 | - 11.2.0 # [linux] 56 | - 14 # [osx] 57 | cxx_compiler_version: # [linux or osx] 58 | - 11.2.0 # [linux] 59 | - 14 # [osx] 60 | cuda_compiler_version: 61 | - 12.4 62 | fortran_compiler_version: 63 | - 2022.1.0 # [win] 64 | - 11.2.0 # [osx or linux] 65 | clang_variant: 66 | - clang 67 | # The basic go-compiler with CGO disabled (CGO_ENABLED=0). 68 | # It generates fat binaries without libc dependencies. 69 | go_compiler: 70 | - go-nocgo 71 | go_compiler_version: 72 | - 1.21 73 | # The go compiler build with CGO enabled (CGO_ENABLED=1). 74 | # It can generate fat binaries that depend on conda's libc. 75 | # You should use this compiler if the underlying 76 | # program needs to link against other C libraries, in which 77 | # case make sure to add 'c,cpp,fortran_compiler' for unix 78 | # and the m2w64 equivalent for windows. 79 | cgo_compiler: 80 | - go-cgo 81 | cgo_compiler_version: 82 | - 1.21 83 | macos_min_version: 84 | - 10.15 # [osx and x86_64] 85 | - 11.1 # [osx and arm64] 86 | macos_machine: 87 | - x86_64-apple-darwin13.4.0 # [osx and x86_64] 88 | - arm64-apple-darwin20.0.0 # [osx and arm64] 89 | MACOSX_DEPLOYMENT_TARGET: 90 | - 10.15 # [osx and x86_64] 91 | - 11.1 # [osx and arm64] 92 | python: 93 | - 3.9 94 | - "3.10" 95 | - "3.11" 96 | - "3.12" 97 | - "3.13" 98 | # numpy will by default use a compatible ABI for the oldest still-supported numpy versions 99 | # `{{ pin_compatible("numpy") }}` is no longer needed as builds of numpy from version 2 have run_exports. 100 | numpy: 101 | # python 3.9 102 | - 2.0 103 | # python 3.10 104 | - 2.0 105 | # python 3.11 106 | - 2.0 107 | # python 3.12 108 | - 2.0 109 | # python 3.13 110 | - 2.1 111 | zip_keys: 112 | - 113 | - python 114 | - numpy 115 | python_implementation: 116 | - cpython 117 | python_impl: 118 | - cpython 119 | r_base: 120 | - 4.3.1 121 | r_version: 122 | - 4.3.1 123 | r_implementation: 124 | - 'r-base' # [linux and x86_64] 125 | # This differs from target_platform in that it determines what subdir the compiler 126 | # will target, not what subdir the compiler package will be itself. 127 | # For example, we need a win-64 vs2008_win-32 package, so that we compile win-32 128 | # code on win-64 miniconda. 129 | cross_compiler_target_platform: 130 | # - win-32 # [win] 131 | - win-64 # [win] 132 | target_platform: 133 | - win-64 # [win] 134 | # - win-32 # [win] 135 | channel_targets: 136 | - defaults 137 | cdt_name: 138 | - amzn2 # [linux and aarch64] 139 | 140 | 141 | ## GLOBAL pinnings 142 | alsa_lib: 143 | - '1.2' 144 | ampl_mp: 145 | - '3.1' 146 | aom: 147 | - '3.6' 148 | armadillo: 149 | - '12' 150 | arpack: 151 | - '3.9' 152 | arrow_cpp: 153 | - 19.0.0 154 | assimp: 155 | - 5.4.3 156 | at_spi2_core: 157 | - '2.36' 158 | aws_c_auth: 159 | - 0.8.5 160 | aws_c_cal: 161 | - 0.8.5 162 | aws_c_common: 163 | - 0.11.1 164 | aws_c_compression: 165 | - 0.3.1 166 | aws_c_event_stream: 167 | - 0.5.4 168 | aws_c_http: 169 | - 0.9.3 170 | aws_c_io: 171 | - 0.17.0 172 | aws_c_mqtt: 173 | - 0.12.2 174 | aws_c_s3: 175 | - 0.7.11 176 | aws_c_sdkutils: 177 | - 0.2.3 178 | aws_checksums: 179 | - 0.2.3 180 | aws_crt_cpp: 181 | - 0.31.0 182 | aws_sdk_cpp: 183 | - 1.11.528 184 | azure_core_cpp: 185 | - 1.14.1 186 | azure_identity_cpp: 187 | - 1.10.1 188 | azure_storage_blobs_cpp: 189 | - 12.13.0 190 | azure_storage_common_cpp: 191 | - 12.10.0 192 | backtrace: 193 | - '20241216' 194 | blosc: 195 | - '1' 196 | boost: 197 | - 1.82 198 | boost_cpp: 199 | - 1.82 200 | brunsli: 201 | - '0' 202 | bzip2: 203 | - '1' 204 | c_ares: 205 | - '1' 206 | c_blosc2: 207 | - '2' 208 | cairo: 209 | - '1' 210 | capnproto: 211 | - 1.1.0 212 | ceres_solver: 213 | - '2.2' 214 | cfitsio: 215 | - '3.470' 216 | charls: 217 | - '2.2' 218 | coin_or_cbc: 219 | - '2.10' 220 | coin_or_cgl: 221 | - '0.60' 222 | coin_or_clp: 223 | - '1.17' 224 | coin_or_osi: 225 | - '0.108' 226 | coin_or_utils: 227 | - '2.11' 228 | cudnn: 229 | - '9' 230 | cutensor: 231 | - '2' 232 | cyrus_sasl: 233 | - 2.1.28 234 | dav1d: 235 | - 1.2.1 236 | dbus: 237 | - '1' 238 | eigen: 239 | - 3.3.7 240 | epoxy: 241 | - '1.5' 242 | expat: 243 | - '2' 244 | ffmpeg: 245 | - '6' 246 | fftw: 247 | - '3.3' 248 | flatbuffers: 249 | - 24.3.25 250 | fmt: 251 | - '9' 252 | fontconfig: 253 | - '2' 254 | freeglut: 255 | - '3' 256 | freetds: 257 | - '1' 258 | freetype: 259 | - '2' 260 | freexl: 261 | - '2' 262 | fribidi: 263 | - '1' 264 | g2clib: 265 | - '1.6' 266 | gcab: 267 | - '1' 268 | gdbm: 269 | - '1.18' 270 | gdk_pixbuf: 271 | - '2' 272 | geos: 273 | - 3.10.6 274 | geotiff: 275 | - '1.7' 276 | gettext: 277 | - '0' 278 | gflags: 279 | - '2.2' 280 | giflib: 281 | - '5.2' 282 | gl2ps: 283 | - 1.4.2 284 | glew: 285 | - '2.2' 286 | glib: 287 | - 2 288 | glog: 289 | - '0.5' 290 | glpk: 291 | - '4.65' 292 | glslang: 293 | - '15' 294 | gmp: 295 | - '6' 296 | gnupg: 297 | - '2.4' 298 | gnutls: 299 | - '3.8' 300 | graphite2: 301 | - '1' 302 | gsl: 303 | - '2.7' 304 | gst_plugins_base: 305 | - 1.24 306 | gst_plugins_good: 307 | - '1.24' 308 | gstreamer: 309 | - '1.24' 310 | gstreamer_orc: 311 | - '0.4' 312 | gtest: 313 | - 1.14.0 314 | gtk3: 315 | - '3' 316 | gts: 317 | - '0.7' 318 | harfbuzz: 319 | - '10' 320 | hdf4: 321 | - 4.2.13 322 | hdf5: 323 | - 1.14.5 324 | hdfeos2: 325 | - 2.20 326 | hdfeos5: 327 | - 5.1 328 | icu: 329 | - '73' 330 | igraph: 331 | - '0.10' 332 | isl: 333 | - '0.22' 334 | jansson: 335 | - '2' 336 | jasper: 337 | - '4' 338 | jemalloc: 339 | - '5' 340 | jpeg: 341 | - 9e 342 | json_c: 343 | - '0.16' 344 | jsoncpp: 345 | - 1.9.4 346 | jxrlib: 347 | - '1.1' 348 | kealib: 349 | - '1.5' 350 | krb5: 351 | - '1.21' 352 | lame: 353 | - '3.100' 354 | lcms2: 355 | - '2' 356 | leptonica: 357 | - '1.82' 358 | lerc: 359 | - '4' 360 | leveldb: 361 | - '1.23' 362 | libabseil: 363 | - '20250127.0' 364 | libaec: 365 | - '1' 366 | libaio: 367 | - '0.3' 368 | libapr: 369 | - '1' 370 | libapriconv: 371 | - '1' 372 | libaprutil: 373 | - '1' 374 | libarchive: 375 | - '3.7' 376 | libassuan: 377 | - '3' 378 | libavif: 379 | - '1' 380 | libbrotlicommon: 381 | - '1.0' 382 | libbrotlidec: 383 | - '1.0' 384 | libbrotlienc: 385 | - '1.0' 386 | libclang13: 387 | - '14.0' 388 | libclang_cpp14: 389 | - '14.0' 390 | libcrc32c: 391 | - '1.1' 392 | libcryptominisat: 393 | - '5.6' 394 | libcurl: 395 | - '8' 396 | libdap4: 397 | - '3.19' 398 | libdb: 399 | - '6.2' 400 | libde265: 401 | - 1.0.15 402 | libdeflate: 403 | - '1.22' 404 | libdrm: 405 | - '2.4' 406 | libebm: 407 | - 0.4.4 408 | libedit: 409 | - '3.1' 410 | libegl: 411 | - '1' 412 | libevent: 413 | - 2.1.12 414 | libfaiss: 415 | - 1.0.0 416 | libffi: 417 | - '3.4' 418 | libflac: 419 | - '1.4' 420 | libgcrypt: 421 | - '1' 422 | libgd: 423 | - '2.3' 424 | libgdal: 425 | - '3.6' 426 | libgit2: 427 | - '1.6' 428 | libgl: 429 | - '1' 430 | libgles: 431 | - '1' 432 | libglib: 433 | - '2' 434 | libglvnd: 435 | - '1' 436 | libglx: 437 | - '1' 438 | libgpg_error: 439 | - '1' 440 | libgrpc: 441 | - '1.71' 442 | libgsasl: 443 | - '1' 444 | libgsf: 445 | - '1.14' 446 | libheif: 447 | - '1.19' 448 | libiconv: 449 | - '1' 450 | libidn2: 451 | - '2' 452 | libjpeg_turbo: 453 | - '3' 454 | libkml: 455 | - '1.3' 456 | libksba: 457 | - '1.6' 458 | liblief: 459 | - '0.16' 460 | libllvm19: 461 | - '19.1' 462 | libmamba: 463 | - '2.0' 464 | libmambapy: 465 | - '2.0' 466 | libmicrohttpd: 467 | - '0.9' 468 | libmlir19: 469 | - '19.1' 470 | libnetcdf: 471 | - '4' 472 | libnghttp2: 473 | - '1' 474 | libnsl: 475 | - '2.0' 476 | libntlm: 477 | - '1' 478 | libogg: 479 | - '1.3' 480 | libopengl: 481 | - '1' 482 | libopus: 483 | - '1' 484 | libortools: 485 | - '9.9' 486 | libosqp: 487 | - 0.6.3 488 | libpcap: 489 | - '1.10' 490 | libpciaccess: 491 | - '0.18' 492 | libpng: 493 | - '1.6' 494 | libpq: 495 | - '17' 496 | libprotobuf: 497 | - 5.29.3 498 | libqdldl: 499 | - 0.1.7 500 | librdkafka: 501 | - '2.2' 502 | libre2_11: 503 | - '2024' 504 | librsvg: 505 | - '2' 506 | libsentencepiece: 507 | - 0.2.0 508 | libsndfile: 509 | - '1.2' 510 | libsodium: 511 | - 1.0.18 512 | libspatialindex: 513 | - 1.9.3 514 | libspatialite: 515 | - '5.1' 516 | libssh2: 517 | - '1' 518 | libtasn1: 519 | - '4' 520 | libtensorflow: 521 | - 2.18.1 522 | libtensorflow_cc: 523 | - 2.18.1 524 | libtheora: 525 | - '1' 526 | libthrift: 527 | - '0.15' 528 | libtiff: 529 | - '4' 530 | libtorch: 531 | - '2.5' 532 | libunistring: 533 | - '0' 534 | libunwind: 535 | - '1' 536 | libutf8proc: 537 | - '2' 538 | libuuid: 539 | - '1' 540 | libuv: 541 | - '1' 542 | libvorbis: 543 | - '1' 544 | libvpx: 545 | - '1.13' 546 | libwebp: 547 | - 1.3.2 548 | libwebp_base: 549 | - '1' 550 | libxcb: 551 | - '1' 552 | libxkbcommon: 553 | - '1' 554 | libxml2: 555 | - '2.13' 556 | libxmlsec1: 557 | - '1.3' 558 | libxslt: 559 | - '1' 560 | libzopfli: 561 | - '1.0' 562 | lmdb: 563 | - '0' 564 | lz4_c: 565 | - '1.9' 566 | lzo: 567 | - '2' 568 | mbedtls: 569 | - '3.5' 570 | metis: 571 | - '5.1' 572 | minizip: 573 | - '4' 574 | mkl: 575 | - '2023' 576 | mkl_service: 577 | - '2' 578 | mpc: 579 | - '1' 580 | mpfr: 581 | - '4' 582 | mpich: 583 | - '4' 584 | nanobind_abi: 585 | - '15' 586 | nccl: 587 | - '2' 588 | ncurses: 589 | - '6' 590 | nettle: 591 | - '3.7' 592 | nlopt: 593 | - '2.7' 594 | npth: 595 | - '1' 596 | nspr: 597 | - '4' 598 | nss: 599 | - '3' 600 | ntbtls: 601 | - '0' 602 | ocl_icd: 603 | - '2' 604 | oniguruma: 605 | - '6.9' 606 | openblas: 607 | - 0 608 | openblas_devel: 609 | - '0' 610 | openh264: 611 | - '2.6' 612 | openjpeg: 613 | - '2' 614 | openldap: 615 | - '2.6' 616 | openmpi: 617 | - '4.1' 618 | openssl: 619 | - '3' 620 | orc: 621 | - 2.1.1 622 | pango: 623 | - '1' 624 | pcre: 625 | - '8' 626 | pcre2: 627 | - '10.42' 628 | pdal: 629 | - '2.5' 630 | perl: 631 | - 5.38 632 | pixman: 633 | - '0' 634 | popt: 635 | - '1' 636 | proj: 637 | - 9.3.1 638 | ptscotch: 639 | - 6.0.9 640 | pugixml: 641 | - '1.11' 642 | py_lief: 643 | - '0.16' 644 | pybind11_abi: 645 | - '5' 646 | pyqt: 647 | - '6.7' 648 | pyqtwebengine: 649 | - '6.7' 650 | python_igraph: 651 | - '0.10' 652 | pytorch: 653 | - '2.5' 654 | qhull: 655 | - '2020.2' 656 | qpdf: 657 | - '11' 658 | qt: 659 | - '6.7' 660 | quantlib: 661 | - '1' 662 | rdkit: 663 | - 2023.03.3 664 | re2: 665 | - '2024' 666 | readline: 667 | - '8' 668 | reproc: 669 | - '14.2' 670 | reproc_cpp: 671 | - '14.2' 672 | rhash: 673 | - '1' 674 | ruby: 675 | - '3.2' 676 | s2n: 677 | - 1.5.14 678 | scotch: 679 | - 6.0.9 680 | serf: 681 | - '1.3' 682 | simdjson: 683 | - '3.10' 684 | sip: 685 | - '6.10' 686 | sleef: 687 | - '3' 688 | snappy: 689 | - '1' 690 | spdlog: 691 | - '1' 692 | spdlog_fmt_embed: 693 | - '1' 694 | spirv_tools: 695 | - '2025' 696 | sqlite: 697 | - '3' 698 | suitesparse: 699 | - '7' 700 | tesseract: 701 | - 5.2.0 702 | tiledb: 703 | - '2.26' 704 | tk: 705 | - '8.6' 706 | unixodbc: 707 | - '2.3' 708 | vc: 709 | - '14' 710 | vtk_base: 711 | - 9.4.1 712 | vtk_io_ffmpeg: 713 | - 9.4.1 714 | x264: 715 | - 1!152.20180806 716 | xcb_util: 717 | - '0.4' 718 | xcb_util_cursor: 719 | - '0.1' 720 | xcb_util_image: 721 | - '0.4' 722 | xcb_util_keysyms: 723 | - '0.4' 724 | xcb_util_renderutil: 725 | - '0.3' 726 | xcb_util_wm: 727 | - '0.4' 728 | xerces_c: 729 | - '3.2' 730 | xorg_libice: 731 | - '1' 732 | xorg_libsm: 733 | - '1' 734 | xorg_libx11: 735 | - '1' 736 | xorg_libxau: 737 | - '1' 738 | xorg_libxcomposite: 739 | - '0' 740 | xorg_libxcursor: 741 | - '1' 742 | xorg_libxdamage: 743 | - '1' 744 | xorg_libxdmcp: 745 | - '1' 746 | xorg_libxext: 747 | - '1' 748 | xorg_libxfixes: 749 | - '6' 750 | xorg_libxft: 751 | - '2' 752 | xorg_libxi: 753 | - '1' 754 | xorg_libxinerama: 755 | - '1.1' 756 | xorg_libxmu: 757 | - '1' 758 | xorg_libxrandr: 759 | - '1' 760 | xorg_libxrender: 761 | - '0.9' 762 | xorg_libxscrnsaver: 763 | - '1' 764 | xorg_libxshmfence: 765 | - '1' 766 | xorg_libxt: 767 | - '1' 768 | xorg_libxtst: 769 | - '1' 770 | xorg_libxxf86vm: 771 | - '1' 772 | xorg_xextproto: 773 | - '7' 774 | xorg_xorgproto: 775 | - '2024' 776 | xxhash: 777 | - 0.8.0 778 | xz: 779 | - '5' 780 | yaml: 781 | - '0.2' 782 | yaml_cpp: 783 | - '0.8' 784 | zfp: 785 | - '1' 786 | zlib: 787 | - '1.2' 788 | zlib_ng: 789 | - '2.0' 790 | zstd: 791 | - '1.5' 792 | -------------------------------------------------------------------------------- /git-format-patch-le.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import glob 4 | import logging 5 | import os 6 | import re 7 | import shlex 8 | import shutil 9 | import subprocess 10 | import sys 11 | import tempfile 12 | from re import match 13 | 14 | log = logging.getLogger(__name__) 15 | 16 | """ 17 | NAME 18 | git-format-patch-le - Prepare patches for e-mail submission, retaining 19 | line-endings in the patch blocks. 20 | 21 | SYNOPSIS 22 | git format-patch-le [-k] [(-o|--output-directory) | --stdout] 23 | [--no-thread | --thread[=