From 4acb5b7de1051a25c27d8f7b8bd84c2810ee16e8 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 11:56:52 +0200 Subject: [PATCH 01/49] add conda build recipe + linux ci --- .ci_support/README | 6 + .ci_support/linux_64_.yaml | 29 + .ci_support/linux_aarch64_.yaml | 33 + .ci_support/linux_ppc64le_.yaml | 29 + .ci_support/osx_64_.yaml | 29 + .ci_support/osx_arm64_.yaml | 29 + .ci_support/win_64_.yaml | 14 + .github/actions/conda-build/action.yml | 14 + .github/workflows/conda-build-linux.yml | 29 + .github/workflows/conda-build.sh | 11 + conda.recipe/CLI11_LICENSE.txt | 25 + conda.recipe/CPP_FILESYSTEM_LICENSE.txt | 19 + conda.recipe/CURL_LICENSE.txt | 11 + conda.recipe/C_ARES_LICENSE.txt | 15 + conda.recipe/KRB5_LICENSE.txt | 1286 +++++++++++++++++ conda.recipe/LIBARCHIVE_LICENSE.txt | 66 + conda.recipe/LIBEV_LICENSE.txt | 37 + conda.recipe/LIBLZ4_LICENSE.txt | 24 + conda.recipe/LIBNGHTTP2_LICENSE.txt | 23 + conda.recipe/LIBOPENSSL_3_LICENSE.txt | 177 +++ conda.recipe/LIBOPENSSL_LICENSE.txt | 124 ++ conda.recipe/LIBSOLV_LICENSE.txt | 28 + conda.recipe/NLOHMANN_JSON_LICENSE.txt | 21 + conda.recipe/REPROC_LICENSE.txt | 21 + conda.recipe/SPDLOG_LICENSE.txt | 25 + conda.recipe/TERMCOLOR_CPP_LICENSE.txt | 31 + conda.recipe/ZSTD_LICENSE.txt | 30 + conda.recipe/bld.bat | 39 + conda.recipe/build.sh | 22 + conda.recipe/conda_build_config.yaml | 6 + conda.recipe/libmamba.patch | 98 ++ conda.recipe/libsolv/CONTROL | 9 + .../libsolv/add_strict_repo_prio_rule.patch | 296 ++++ .../libsolv/conda_variant_priorization.patch | 438 ++++++ conda.recipe/libsolv/memcpy_to_memmove.patch | 13 + conda.recipe/libsolv/portfile.cmake | 57 + conda.recipe/libsolv/win_static_build.patch | 91 ++ conda.recipe/meta.yaml | 110 ++ 38 files changed, 3365 insertions(+) create mode 100644 .ci_support/README create mode 100644 .ci_support/linux_64_.yaml create mode 100644 .ci_support/linux_aarch64_.yaml create mode 100644 .ci_support/linux_ppc64le_.yaml create mode 100644 .ci_support/osx_64_.yaml create mode 100644 .ci_support/osx_arm64_.yaml create mode 100644 .ci_support/win_64_.yaml create mode 100644 .github/actions/conda-build/action.yml create mode 100644 .github/workflows/conda-build-linux.yml create mode 100755 .github/workflows/conda-build.sh create mode 100644 conda.recipe/CLI11_LICENSE.txt create mode 100644 conda.recipe/CPP_FILESYSTEM_LICENSE.txt create mode 100644 conda.recipe/CURL_LICENSE.txt create mode 100644 conda.recipe/C_ARES_LICENSE.txt create mode 100644 conda.recipe/KRB5_LICENSE.txt create mode 100644 conda.recipe/LIBARCHIVE_LICENSE.txt create mode 100644 conda.recipe/LIBEV_LICENSE.txt create mode 100644 conda.recipe/LIBLZ4_LICENSE.txt create mode 100644 conda.recipe/LIBNGHTTP2_LICENSE.txt create mode 100644 conda.recipe/LIBOPENSSL_3_LICENSE.txt create mode 100644 conda.recipe/LIBOPENSSL_LICENSE.txt create mode 100644 conda.recipe/LIBSOLV_LICENSE.txt create mode 100644 conda.recipe/NLOHMANN_JSON_LICENSE.txt create mode 100644 conda.recipe/REPROC_LICENSE.txt create mode 100644 conda.recipe/SPDLOG_LICENSE.txt create mode 100644 conda.recipe/TERMCOLOR_CPP_LICENSE.txt create mode 100644 conda.recipe/ZSTD_LICENSE.txt create mode 100644 conda.recipe/bld.bat create mode 100644 conda.recipe/build.sh create mode 100644 conda.recipe/conda_build_config.yaml create mode 100644 conda.recipe/libmamba.patch create mode 100644 conda.recipe/libsolv/CONTROL create mode 100644 conda.recipe/libsolv/add_strict_repo_prio_rule.patch create mode 100644 conda.recipe/libsolv/conda_variant_priorization.patch create mode 100644 conda.recipe/libsolv/memcpy_to_memmove.patch create mode 100644 conda.recipe/libsolv/portfile.cmake create mode 100644 conda.recipe/libsolv/win_static_build.patch create mode 100644 conda.recipe/meta.yaml diff --git a/.ci_support/README b/.ci_support/README new file mode 100644 index 0000000000..a47316be6a --- /dev/null +++ b/.ci_support/README @@ -0,0 +1,6 @@ +This file is automatically generated by conda-smithy. If any +particular build configuration is expected, but it is not found, +please make sure all dependencies are satisfiable. To add/modify any +matrix elements, you should create/change conda-smithy's input +recipe/conda_build_config.yaml and re-render the recipe, rather than +editing these files directly. diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml new file mode 100644 index 0000000000..5c8347e2c0 --- /dev/null +++ b/.ci_support/linux_64_.yaml @@ -0,0 +1,29 @@ +c_compiler: +- gcc +c_compiler_version: +- '10' +cdt_name: +- cos6 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '10' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +libarchive: +- '3.3' +libcurl: +- '7' +openssl: +- 1.1.1 +spdlog: +- '1.10' +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml new file mode 100644 index 0000000000..a8ed87ce23 --- /dev/null +++ b/.ci_support/linux_aarch64_.yaml @@ -0,0 +1,33 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +c_compiler: +- gcc +c_compiler_version: +- '10' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '10' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +libarchive: +- '3.3' +libcurl: +- '7' +openssl: +- 1.1.1 +spdlog: +- '1.10' +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml new file mode 100644 index 0000000000..9f4e23fb9d --- /dev/null +++ b/.ci_support/linux_ppc64le_.yaml @@ -0,0 +1,29 @@ +c_compiler: +- gcc +c_compiler_version: +- '10' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '10' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +libarchive: +- '3.3' +libcurl: +- '7' +openssl: +- 1.1.1 +spdlog: +- '1.10' +target_platform: +- linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml new file mode 100644 index 0000000000..d0906738f4 --- /dev/null +++ b/.ci_support/osx_64_.yaml @@ -0,0 +1,29 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +c_compiler: +- clang +c_compiler_version: +- '14' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '14' +libarchive: +- '3.3' +libcurl: +- '7' +macos_machine: +- x86_64-apple-darwin13.4.0 +openssl: +- 1.1.1 +spdlog: +- '1.10' +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml new file mode 100644 index 0000000000..848d020617 --- /dev/null +++ b/.ci_support/osx_arm64_.yaml @@ -0,0 +1,29 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +c_compiler: +- clang +c_compiler_version: +- '14' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '14' +libarchive: +- '3.3' +libcurl: +- '7' +macos_machine: +- arm64-apple-darwin20.0.0 +openssl: +- 1.1.1 +spdlog: +- '1.10' +target_platform: +- osx-arm64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml new file mode 100644 index 0000000000..25eb76a10c --- /dev/null +++ b/.ci_support/win_64_.yaml @@ -0,0 +1,14 @@ +c_compiler: +- vs2019 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +spdlog: +- '1.10' +target_platform: +- win-64 +zlib: +- '1.2' diff --git a/.github/actions/conda-build/action.yml b/.github/actions/conda-build/action.yml new file mode 100644 index 0000000000..8d732eb52c --- /dev/null +++ b/.github/actions/conda-build/action.yml @@ -0,0 +1,14 @@ +name: Run image +description: Run private container from GitHub Packages Registry after Docker login +inputs: + conda_build_yml: + description: "conda-build variant file" + required: true +runs: + using: 'docker' + image: condaforge/mambaforge:latest + args: + - /bin/bash + - "-l" + - "-c" + - "./.github/workflows/conda-build.sh ${{ inputs.conda_build_yml }}" diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml new file mode 100644 index 0000000000..122e5c5786 --- /dev/null +++ b/.github/workflows/conda-build-linux.yml @@ -0,0 +1,29 @@ +name: conda-build Linux +on: + push: + branches: + - main +jobs: + linux-conda-build: + name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" + runs-on: ubuntu-latest + env: + CI: True + strategy: + fail-fast: true + matrix: + CONDA_BUILD_YML: + - linux_64_ + steps: + - name: Pull image + run: docker pull condaforge/mambaforge:latest + - name: Checkout branch + uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + - name: Fetch full git history + run: git fetch --prune --unshallow + - name: Run CI inside of container + uses: ./.github/actions/conda-build + with: + conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} diff --git a/.github/workflows/conda-build.sh b/.github/workflows/conda-build.sh new file mode 100755 index 0000000000..71ec92f494 --- /dev/null +++ b/.github/workflows/conda-build.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eo pipefail + +export CONDA_BUILD_YML=$1 + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +source ${SCRIPT_DIR}/base.sh $* +conda activate base +mamba install -y conda-build +conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe diff --git a/conda.recipe/CLI11_LICENSE.txt b/conda.recipe/CLI11_LICENSE.txt new file mode 100644 index 0000000000..17739d11c5 --- /dev/null +++ b/conda.recipe/CLI11_LICENSE.txt @@ -0,0 +1,25 @@ +CLI11 1.8 Copyright (c) 2017-2019 University of Cincinnati, developed by Henry +Schreiner under NSF AWARD 1414736. All rights reserved. + +Redistribution and use in source and binary forms of CLI11, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/CPP_FILESYSTEM_LICENSE.txt b/conda.recipe/CPP_FILESYSTEM_LICENSE.txt new file mode 100644 index 0000000000..8b24faa71d --- /dev/null +++ b/conda.recipe/CPP_FILESYSTEM_LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2018, Steffen Schümann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/conda.recipe/CURL_LICENSE.txt b/conda.recipe/CURL_LICENSE.txt new file mode 100644 index 0000000000..ab7ceb34c0 --- /dev/null +++ b/conda.recipe/CURL_LICENSE.txt @@ -0,0 +1,11 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2020, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. + +All rights reserved. + +Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. diff --git a/conda.recipe/C_ARES_LICENSE.txt b/conda.recipe/C_ARES_LICENSE.txt new file mode 100644 index 0000000000..ad6bb52b72 --- /dev/null +++ b/conda.recipe/C_ARES_LICENSE.txt @@ -0,0 +1,15 @@ +# c-ares license + +Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS +file. + +Copyright 1998 by the Massachusetts Institute of Technology. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and that +the name of M.I.T. not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. +M.I.T. makes no representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. diff --git a/conda.recipe/KRB5_LICENSE.txt b/conda.recipe/KRB5_LICENSE.txt new file mode 100644 index 0000000000..45bb7a6ad5 --- /dev/null +++ b/conda.recipe/KRB5_LICENSE.txt @@ -0,0 +1,1286 @@ +Copyright |copy| 1985-2020 by the Massachusetts Institute of Technology. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Downloading of this software may constitute an export of cryptographic +software from the United States of America that is subject to the +United States Export Administration Regulations (EAR), 15 CFR 730-774. +Additional laws or regulations may apply. It is the responsibility of +the person or entity contemplating export to comply with all +applicable export laws and regulations, including obtaining any +required license from the U.S. government. + +The U.S. government prohibits export of encryption source code to +certain countries and individuals, including, but not limited to, the +countries of Cuba, Iran, North Korea, Sudan, Syria, and residents and +nationals of those countries. + +Documentation components of this software distribution are licensed +under a Creative Commons Attribution-ShareAlike 3.0 Unported License. +(https://creativecommons.org/licenses/by-sa/3.0/) + +Individual source code files are copyright MIT, Cygnus Support, +Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, +FundsXpress, and others. + +Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, +and Zephyr are trademarks of the Massachusetts Institute of Technology +(MIT). No commercial use of these trademarks may be made without +prior written permission of MIT. + +"Commercial use" means use of a name in a product or other for-profit +manner. It does NOT prevent a commercial firm from referring to the +MIT trademarks in order to convey information (although in doing so, +recognition of their trademark status should be given). + +------------------- + +The following copyright and permission notice applies to the +OpenVision Kerberos Administration system located in +``kadmin/create``, ``kadmin/dbutil``, ``kadmin/passwd``, +``kadmin/server``, ``lib/kadm5``, and portions of +``lib/rpc``: + + Copyright, OpenVision Technologies, Inc., 1993-1996, All Rights Reserved + + WARNING: Retrieving the OpenVision Kerberos Administration system source + code, as described below, indicates your acceptance of the following + terms. If you do not agree to the following terms, do not retrieve the + OpenVision Kerberos administration system. + + You may freely use and distribute the Source Code and Object Code + compiled from it, with or without modification, but this Source Code is + provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY, INCLUDING, WITHOUT + LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A + PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER EXPRESS OR IMPLIED. + IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY FOR ANY LOST PROFITS, + LOSS OF DATA OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR + FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS + AGREEMENT, INCLUDING, WITHOUT LIMITATION, THOSE RESULTING FROM THE USE + OF THE SOURCE CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR + ANY OTHER REASON. + + OpenVision retains all copyrights in the donated Source Code. OpenVision + also retains copyright to derivative works of the Source Code, whether + created by OpenVision or by a third party. The OpenVision copyright + notice must be preserved if derivative works are made based on the + donated Source Code. + + OpenVision Technologies, Inc. has donated this Kerberos Administration + system to MIT for inclusion in the standard Kerberos 5 distribution. + This donation underscores our commitment to continuing Kerberos + technology development and our gratitude for the valuable work which has + been performed by MIT and the Kerberos community. + +------------------- + + Portions contributed by Matt Crawford ``crawdad@fnal.gov`` were work + performed at Fermi National Accelerator Laboratory, which is operated + by Universities Research Association, Inc., under contract + DE-AC02-76CHO3000 with the U.S. Department of Energy. + +------------------- + +Portions of ``src/lib/crypto`` have the following copyright: + + Copyright |copy| 1998 by the FundsXpress, INC. + + All rights reserved. + + Export of this software from the United States of America may require + a specific license from the United States Government. It is the + responsibility of any person or organization contemplating export to + obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of FundsXpress. not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. FundsXpress makes no representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + + THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------- + +The implementation of the AES encryption algorithm in +``src/lib/crypto/builtin/aes`` has the following copyright: + + | Copyright |copy| 2001, Dr Brian Gladman ``brg@gladman.uk.net``, + Worcester, UK. + | All rights reserved. + + LICENSE TERMS + + The free distribution and use of this software in both source and binary + form is allowed (with or without changes) provided that: + + 1. distributions of this source code include the above copyright + notice, this list of conditions and the following disclaimer; + 2. distributions in binary form include the above copyright + notice, this list of conditions and the following disclaimer + in the documentation and/or other associated materials; + 3. the copyright holder's name is not used to endorse products + built using this software without specific written permission. + + DISCLAIMER + + This software is provided 'as is' with no explcit or implied warranties + in respect of any properties, including, but not limited to, correctness + and fitness for purpose. + +------------------- + +Portions contributed by Red Hat, including the pre-authentication +plug-in framework and the NSS crypto implementation, contain the +following copyright: + + | Copyright |copy| 2006 Red Hat, Inc. + | Portions copyright |copy| 2006 Massachusetts Institute of Technology + | All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Red Hat, Inc., nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + +The bundled verto source code is subject to the following license: + + Copyright 2011 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +------------------- + +The MS-KKDCP client implementation has the following copyright: + + Copyright 2013,2014 Red Hat, Inc. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + +The implementations of GSSAPI mechglue in GSSAPI-SPNEGO in +``src/lib/gssapi``, including the following files: + +.. parsed-literal:: + + lib/gssapi/generic/gssapi_err_generic.et + lib/gssapi/mechglue/g_accept_sec_context.c + lib/gssapi/mechglue/g_acquire_cred.c + lib/gssapi/mechglue/g_canon_name.c + lib/gssapi/mechglue/g_compare_name.c + lib/gssapi/mechglue/g_context_time.c + lib/gssapi/mechglue/g_delete_sec_context.c + lib/gssapi/mechglue/g_dsp_name.c + lib/gssapi/mechglue/g_dsp_status.c + lib/gssapi/mechglue/g_dup_name.c + lib/gssapi/mechglue/g_exp_sec_context.c + lib/gssapi/mechglue/g_export_name.c + lib/gssapi/mechglue/g_glue.c + lib/gssapi/mechglue/g_imp_name.c + lib/gssapi/mechglue/g_imp_sec_context.c + lib/gssapi/mechglue/g_init_sec_context.c + lib/gssapi/mechglue/g_initialize.c + lib/gssapi/mechglue/g_inquire_context.c + lib/gssapi/mechglue/g_inquire_cred.c + lib/gssapi/mechglue/g_inquire_names.c + lib/gssapi/mechglue/g_process_context.c + lib/gssapi/mechglue/g_rel_buffer.c + lib/gssapi/mechglue/g_rel_cred.c + lib/gssapi/mechglue/g_rel_name.c + lib/gssapi/mechglue/g_rel_oid_set.c + lib/gssapi/mechglue/g_seal.c + lib/gssapi/mechglue/g_sign.c + lib/gssapi/mechglue/g_store_cred.c + lib/gssapi/mechglue/g_unseal.c + lib/gssapi/mechglue/g_userok.c + lib/gssapi/mechglue/g_utils.c + lib/gssapi/mechglue/g_verify.c + lib/gssapi/mechglue/gssd_pname_to_uid.c + lib/gssapi/mechglue/mglueP.h + lib/gssapi/mechglue/oid_ops.c + lib/gssapi/spnego/gssapiP_spnego.h + lib/gssapi/spnego/spnego_mech.c + +and the initial implementation of incremental propagation, including +the following new or changed files: + +.. parsed-literal:: + + include/iprop_hdr.h + kadmin/server/ipropd_svc.c + lib/kdb/iprop.x + lib/kdb/kdb_convert.c + lib/kdb/kdb_log.c + lib/kdb/kdb_log.h + lib/krb5/error_tables/kdb5_err.et + kprop/kpropd_rpc.c + kprop/kproplog.c + +are subject to the following license: + + Copyright |copy| 2004 Sun Microsystems, Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +------------------- + +Kerberos V5 includes documentation and software developed at the +University of California at Berkeley, which includes this copyright +notice: + + | Copyright |copy| 1983 Regents of the University of California. + | All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------- + +Portions contributed by Novell, Inc., including the LDAP database +backend, are subject to the following license: + + | Copyright |copy| 2004-2005, Novell, Inc. + | All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The copyright holder's name is not used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +------------------- + +Portions funded by Sandia National Laboratory +and developed by the University of Michigan's +Center for Information Technology Integration, +including the PKINIT implementation, are subject +to the following license: + + | COPYRIGHT |copy| 2006-2007 + | THE REGENTS OF THE UNIVERSITY OF MICHIGAN + | ALL RIGHTS RESERVED + + Permission is granted to use, copy, create derivative works + and redistribute this software and such derivative works + for any purpose, so long as the name of The University of + Michigan is not used in any advertising or publicity + pertaining to the use of distribution of this software + without specific, written prior authorization. If the + above copyright notice or any other identification of the + University of Michigan is included in any copy of any + portion of this software, then the disclaimer below must + also be included. + + THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION + FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY + PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF + MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING + WITHOUT LIMITATION THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE + FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING + OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN + IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + +------------------- + +The pkcs11.h file included in the PKINIT code has the +following license: + + | Copyright 2006 g10 Code GmbH + | Copyright 2006 Andreas Jellinghaus + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. + +------------------- + +Portions contributed by Apple Inc. are subject to the following license: + + Copyright 2004-2008 Apple Inc. All Rights Reserved. + + Export of this software from the United States of America may require + a specific license from the United States Government. It is the + responsibility of any person or organization contemplating export to + obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of Apple Inc. not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. Apple Inc. makes no representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + + THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------- + +The implementations of UTF-8 string handling in src/util/support and +src/lib/krb5/unicode are subject to the following copyright and +permission notice: + + | The OpenLDAP Public License + | Version 2.8, 17 August 2003 + + Redistribution and use of this software and associated documentation + ("Software"), with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions in source form must retain copyright statements + and notices, + 2. Redistributions in binary form must reproduce applicable copyright + statements and notices, this list of conditions, and the following + disclaimer in the documentation and/or other materials provided + with the distribution, and + 3. Redistributions must contain a verbatim copy of this document. + + The OpenLDAP Foundation may revise this license from time to time. + Each revision is distinguished by a version number. You may use + this Software under terms of this license revision or under the + terms of any subsequent revision of the license. + + THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS + CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) + OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + The names of the authors and copyright holders must not be used in + advertising or otherwise to promote the sale, use or other dealing + in this Software without specific, written prior permission. Title + to copyright in this Software shall at all times remain with copyright + holders. + + OpenLDAP is a registered trademark of the OpenLDAP Foundation. + + Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, + California, USA. All Rights Reserved. Permission to copy and + distribute verbatim copies of this document is granted. + +------------------- + +Marked test programs in src/lib/krb5/krb have the following copyright: + + | Copyright |copy| 2006 Kungliga Tekniska Högskola + | (Royal Institute of Technology, Stockholm, Sweden). + | All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + +The KCM Mach RPC definition file used on macOS has the following copyright: + + | Copyright |copy| 2009 Kungliga Tekniska Högskola + | (Royal Institute of Technology, Stockholm, Sweden). + | All rights reserved. + + Portions Copyright |copy| 2009 Apple Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Institute nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------- + +Portions of the RPC implementation in src/lib/rpc and src/include/gssrpc +have the following copyright and permission notice: + + Copyright |copy| 2010, Oracle America, Inc. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the "Oracle America, Inc." nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + + Copyright |copy| 2006,2007,2009 + NTT (Nippon Telegraph and Telephone Corporation). All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer as + the first lines of this file unmodified. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY NTT "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + + Copyright 2000 by Carnegie Mellon University + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Carnegie Mellon + University not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior + permission. + + CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR + ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +------------------- + + Copyright |copy| 2002 Naval Research Laboratory (NRL/CCS) + + Permission to use, copy, modify and distribute this software and its + documentation is hereby granted, provided that both the copyright + notice and this permission notice appear in all copies of the software, + derivative works or modified versions, and any portions thereof. + + NRL ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND + DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER + RESULTING FROM THE USE OF THIS SOFTWARE. + +------------------- + + Copyright |copy| 1991, 1992, 1994 by Cygnus Support. + + Permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation. + Cygnus Support makes no representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + +------------------- + + Copyright |copy| 2006 Secure Endpoints Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +------------------- + +Portions of the implementation of the Fortuna-like PRNG are subject to +the following notice: + + | Copyright |copy| 2005 Marko Kreen + | All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +.. + + Copyright |copy| 1994 by the University of Southern California + + EXPORT OF THIS SOFTWARE from the United States of America may + require a specific license from the United States Government. + It is the responsibility of any person or organization contemplating + export to obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to copy, modify, and distribute + this software and its documentation in source and binary forms is + hereby granted, provided that any documentation or other materials + related to such distribution or use acknowledge that the software + was developed by the University of Southern California. + + DISCLAIMER OF WARRANTY. THIS SOFTWARE IS PROVIDED "AS IS". The + University of Southern California MAKES NO REPRESENTATIONS OR + WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not + limitation, the University of Southern California MAKES NO + REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY + PARTICULAR PURPOSE. The University of Southern + California shall not be held liable for any liability nor for any + direct, indirect, or consequential damages with respect to any + claim by the user or distributor of the ksu software. + +------------------- + + | Copyright |copy| 1995 + | The President and Fellows of Harvard University + + This code is derived from software contributed to Harvard by + Jeremy Rassen. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + + This product includes software developed by the University of + California, Berkeley and its contributors. + + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------- + + | Copyright |copy| 2008 by the Massachusetts Institute of Technology. + | Copyright 1995 by Richard P. Basch. All Rights Reserved. + | Copyright 1995 by Lehman Brothers, Inc. All Rights Reserved. + + Export of this software from the United States of America may + require a specific license from the United States Government. + It is the responsibility of any person or organization contemplating + export to obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of Richard P. Basch, Lehman Brothers and M.I.T. not be used + in advertising or publicity pertaining to distribution of the software + without specific, written prior permission. Richard P. Basch, + Lehman Brothers and M.I.T. make no representations about the suitability + of this software for any purpose. It is provided "as is" without + express or implied warranty. + +------------------- + +The following notice applies to ``src/lib/krb5/krb/strptime.c`` and +``src/include/k5-queue.h``. + + | Copyright |copy| 1997, 1998 The NetBSD Foundation, Inc. + | All rights reserved. + + This code was contributed to The NetBSD Foundation by Klaus Klein. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + + This product includes software developed by the NetBSD + Foundation, Inc. and its contributors. + + 4. Neither the name of The NetBSD Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +------------------- + +The following notice applies to Unicode library files in +``src/lib/krb5/unicode``: + + | Copyright 1997, 1998, 1999 Computing Research Labs, + | New Mexico State University + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR + THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +------------------- + +The following notice applies to ``src/util/support/strlcpy.c``: + + Copyright |copy| 1998 Todd C. Miller ``Todd.Miller@courtesan.com`` + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +------------------- + +The following notice applies to ``src/util/profile/argv_parse.c`` and +``src/util/profile/argv_parse.h``: + + Copyright 1999 by Theodore Ts'o. + + Permission to use, copy, modify, and distribute this software for + any purpose with or without fee is hereby granted, provided that + the above copyright notice and this permission notice appear in all + copies. THE SOFTWARE IS PROVIDED "AS IS" AND THEODORE TS'O (THE + AUTHOR) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (Isn't + it sick that the U.S. culture of lawsuit-happy lawyers requires + this kind of disclaimer?) + +------------------- + +The following notice applies to SWIG-generated code in +``src/util/profile/profile_tcl.c``: + + Copyright |copy| 1999-2000, The University of Chicago + + This file may be freely redistributed without license or fee provided + this copyright message remains intact. + +------------------- + +The following notice applies to portiions of ``src/lib/rpc`` and +``src/include/gssrpc``: + + Copyright |copy| 2000 The Regents of the University of Michigan. + All rights reserved. + + Copyright |copy| 2000 Dug Song ``dugsong@UMICH.EDU``. + All rights reserved, all wrongs reversed. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + +Implementations of the MD4 algorithm are subject to the following +notice: + + Copyright |copy| 1990, RSA Data Security, Inc. All rights reserved. + + License to copy and use this software is granted provided that + it is identified as the "RSA Data Security, Inc. MD4 Message + Digest Algorithm" in all material mentioning or referencing this + software or this function. + + License is also granted to make and use derivative works + provided that such works are identified as "derived from the RSA + Data Security, Inc. MD4 Message Digest Algorithm" in all + material mentioning or referencing the derived work. + + RSA Data Security, Inc. makes no representations concerning + either the merchantability of this software or the suitability + of this software for any particular purpose. It is provided "as + is" without express or implied warranty of any kind. + + These notices must be retained in any copies of any part of this + documentation and/or software. + +------------------- + +Implementations of the MD5 algorithm are subject to the following +notice: + + Copyright |copy| 1990, RSA Data Security, Inc. All rights reserved. + + License to copy and use this software is granted provided that + it is identified as the "RSA Data Security, Inc. MD5 Message- + Digest Algorithm" in all material mentioning or referencing this + software or this function. + + License is also granted to make and use derivative works + provided that such works are identified as "derived from the RSA + Data Security, Inc. MD5 Message-Digest Algorithm" in all + material mentioning or referencing the derived work. + + RSA Data Security, Inc. makes no representations concerning + either the merchantability of this software or the suitability + of this software for any particular purpose. It is provided "as + is" without express or implied warranty of any kind. + + These notices must be retained in any copies of any part of this + documentation and/or software. + +------------------- + +The following notice applies to ``src/lib/crypto/crypto_tests/t_mddriver.c``: + + Copyright |copy| 1990-2, RSA Data Security, Inc. Created 1990. All + rights reserved. + + RSA Data Security, Inc. makes no representations concerning either + the merchantability of this software or the suitability of this + software for any particular purpose. It is provided "as is" + without express or implied warranty of any kind. + + These notices must be retained in any copies of any part of this + documentation and/or software. + +------------------- + +Portions of ``src/lib/krb5`` are subject to the following notice: + + | Copyright |copy| 1994 CyberSAFE Corporation. + | Copyright 1990,1991,2007,2008 by the Massachusetts + Institute of Technology. + | All Rights Reserved. + + Export of this software from the United States of America may + require a specific license from the United States Government. + It is the responsibility of any person or organization contemplating + export to obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of M.I.T. not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. Furthermore if you modify this software you must label + your software as modified software and not distribute it in such a + fashion that it might be confused with the original M.I.T. software. + Neither M.I.T., the Open Computing Security Group, nor + CyberSAFE Corporation make any representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + +------------------- + +Portions contributed by PADL Software are subject to the following +license: + + Copyright (c) 2011, PADL Software Pty Ltd. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of PADL Software nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY PADL SOFTWARE AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL PADL SOFTWARE OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------- + +The bundled libev source code is subject to the following license: + + All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Alternatively, the contents of this package may be used under the terms + of the GNU General Public License ("GPL") version 2 or any later version, + in which case the provisions of the GPL are applicable instead of the + above. If you wish to allow the use of your version of this package only + under the terms of the GPL and not to allow others to use your version of + this file under the BSD license, indicate your decision by deleting the + provisions above and replace them with the notice and other provisions + required by the GPL in this and the other files of this package. If you do + not delete the provisions above, a recipient may use your version of this + file under either the BSD or the GPL. + +------------------- + +Files copied from the Intel AESNI Sample Library are subject to the +following license: + + Copyright |copy| 2010, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------- + +The following notice applies to +``src/ccapi/common/win/OldCC/autolock.hxx``: + + Copyright (C) 1998 by Danilo Almeida. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------- + +The following notice applies to portions of +``src/plugins/preauth/spake/edwards25519.c`` and +``src/plugins/preauth/spake/edwards25519_tables.h``: + +The MIT License (MIT) + +Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +------------------- + +The following notice applies to portions of +``src/plugins/preauth/spake/edwards25519.c``: + +Copyright (c) 2015-2016, Google Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/conda.recipe/LIBARCHIVE_LICENSE.txt b/conda.recipe/LIBARCHIVE_LICENSE.txt new file mode 100644 index 0000000000..14bbefa0d5 --- /dev/null +++ b/conda.recipe/LIBARCHIVE_LICENSE.txt @@ -0,0 +1,66 @@ +The libarchive distribution as a whole is Copyright by Tim Kientzle +and is subject to the copyright notice reproduced at the bottom of +this file. + +Each individual file in this distribution should have a clear +copyright/licensing statement at the beginning of the file. If any do +not, please let me know and I will rectify it. The following is +intended to summarize the copyright status of the individual files; +the actual statements in the files are controlling. + +* Except as listed below, all C sources (including .c and .h files) + and documentation files are subject to the copyright notice reproduced + at the bottom of this file. + +* The following source files are also subject in whole or in part to + a 3-clause UC Regents copyright; please read the individual source + files for details: + libarchive/archive_entry.c + libarchive/archive_read_support_filter_compress.c + libarchive/archive_write_add_filter_compress.c + libarchive/mtree.5 + +* The following source files are in the public domain: + libarchive/archive_getdate.c + +* The following source files are triple-licensed with the ability to choose + from CC0 1.0 Universal, OpenSSL or Apache 2.0 licenses: + libarchive/archive_blake2.h + libarchive/archive_blake2_impl.h + libarchive/archive_blake2s_ref.c + libarchive/archive_blake2sp_ref.c + +* The build files---including Makefiles, configure scripts, + and auxiliary scripts used as part of the compile process---have + widely varying licensing terms. Please check individual files before + distributing them to see if those restrictions apply to you. + +I intend for all new source code to use the license below and hope over +time to replace code with other licenses with new implementations that +do use the license below. The varying licensing of the build scripts +seems to be an unavoidable mess. + + +Copyright (c) 2003-2018 +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer + in this position and unchanged. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/LIBEV_LICENSE.txt b/conda.recipe/LIBEV_LICENSE.txt new file mode 100644 index 0000000000..2fdabd48af --- /dev/null +++ b/conda.recipe/LIBEV_LICENSE.txt @@ -0,0 +1,37 @@ +All files in libev are +Copyright (c)2007,2008,2009,2010,2011,2012,2013 Marc Alexander Lehmann. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Alternatively, the contents of this package may be used under the terms +of the GNU General Public License ("GPL") version 2 or any later version, +in which case the provisions of the GPL are applicable instead of the +above. If you wish to allow the use of your version of this package only +under the terms of the GPL and not to allow others to use your version of +this file under the BSD license, indicate your decision by deleting the +provisions above and replace them with the notice and other provisions +required by the GPL in this and the other files of this package. If you do +not delete the provisions above, a recipient may use your version of this +file under either the BSD or the GPL. diff --git a/conda.recipe/LIBLZ4_LICENSE.txt b/conda.recipe/LIBLZ4_LICENSE.txt new file mode 100644 index 0000000000..74c2cdd7d5 --- /dev/null +++ b/conda.recipe/LIBLZ4_LICENSE.txt @@ -0,0 +1,24 @@ +LZ4 Library +Copyright (c) 2011-2016, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/LIBNGHTTP2_LICENSE.txt b/conda.recipe/LIBNGHTTP2_LICENSE.txt new file mode 100644 index 0000000000..80201792ec --- /dev/null +++ b/conda.recipe/LIBNGHTTP2_LICENSE.txt @@ -0,0 +1,23 @@ +The MIT License + +Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa +Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/conda.recipe/LIBOPENSSL_3_LICENSE.txt b/conda.recipe/LIBOPENSSL_3_LICENSE.txt new file mode 100644 index 0000000000..49cc83d2ee --- /dev/null +++ b/conda.recipe/LIBOPENSSL_3_LICENSE.txt @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/conda.recipe/LIBOPENSSL_LICENSE.txt b/conda.recipe/LIBOPENSSL_LICENSE.txt new file mode 100644 index 0000000000..5b5ccdc968 --- /dev/null +++ b/conda.recipe/LIBOPENSSL_LICENSE.txt @@ -0,0 +1,124 @@ + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a double license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ diff --git a/conda.recipe/LIBSOLV_LICENSE.txt b/conda.recipe/LIBSOLV_LICENSE.txt new file mode 100644 index 0000000000..82bdbc994d --- /dev/null +++ b/conda.recipe/LIBSOLV_LICENSE.txt @@ -0,0 +1,28 @@ +Copyright (c) 2019, SUSE LLC + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of Novell nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/NLOHMANN_JSON_LICENSE.txt b/conda.recipe/NLOHMANN_JSON_LICENSE.txt new file mode 100644 index 0000000000..ae171d5682 --- /dev/null +++ b/conda.recipe/NLOHMANN_JSON_LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013-2020 Niels Lohmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/conda.recipe/REPROC_LICENSE.txt b/conda.recipe/REPROC_LICENSE.txt new file mode 100644 index 0000000000..80ebfacf55 --- /dev/null +++ b/conda.recipe/REPROC_LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Daan De Meyer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/conda.recipe/SPDLOG_LICENSE.txt b/conda.recipe/SPDLOG_LICENSE.txt new file mode 100644 index 0000000000..4abea13580 --- /dev/null +++ b/conda.recipe/SPDLOG_LICENSE.txt @@ -0,0 +1,25 @@ +The MIT License (MIT) + +Copyright (c) 2016 Gabi Melman. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-- NOTE: Third party dependency used by this software -- +This software depends on the fmt lib (MIT License), +and users must comply to its license: https://github.com/fmtlib/fmt/blob/master/LICENSE.rst diff --git a/conda.recipe/TERMCOLOR_CPP_LICENSE.txt b/conda.recipe/TERMCOLOR_CPP_LICENSE.txt new file mode 100644 index 0000000000..e2a9f53226 --- /dev/null +++ b/conda.recipe/TERMCOLOR_CPP_LICENSE.txt @@ -0,0 +1,31 @@ +Copyright (c) 2013, Ihor Kalnytskyi. +All rights reserved. + +Redistribution and use in source and binary forms of the software as well +as documentation, with or without modification, are permitted provided +that the following conditions are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +* The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/conda.recipe/ZSTD_LICENSE.txt b/conda.recipe/ZSTD_LICENSE.txt new file mode 100644 index 0000000000..a793a80289 --- /dev/null +++ b/conda.recipe/ZSTD_LICENSE.txt @@ -0,0 +1,30 @@ +BSD License + +For Zstandard software + +Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/bld.bat b/conda.recipe/bld.bat new file mode 100644 index 0000000000..cc2acf444c --- /dev/null +++ b/conda.recipe/bld.bat @@ -0,0 +1,39 @@ +mkdir build +if %errorlevel% NEQ 0 exit /b %errorlevel% +cd build + +ROBOCOPY %RECIPE_DIR%\libsolv %VCPKG_ROOT%\ports\libsolv +@rem ROBOCOPY has 0 and 1 as successfull exit codes +if %errorlevel% NEQ 0 if %errorlevel% NEQ 1 exit /b %errorlevel% + +@rem Looks like the .vcpkg-root file is missing in vcpkg package +TYPE NUL > %VCPKG_ROOT%\.vcpkg-root + +SET VCPKG_BUILD_TYPE=release +vcpkg install libsolv[conda] --triplet x64-windows-static +if %errorlevel% NEQ 0 exit /b %errorlevel% +vcpkg install "libarchive[bzip2,lz4,lzma,lzo,openssl,zstd]" --triplet x64-windows-static +if %errorlevel% NEQ 0 exit /b %errorlevel% +vcpkg install curl --triplet x64-windows-static +if %errorlevel% NEQ 0 exit /b %errorlevel% +vcpkg install yaml-cpp --triplet x64-windows-static +if %errorlevel% NEQ 0 exit /b %errorlevel% +vcpkg install reproc --triplet x64-windows-static +if %errorlevel% NEQ 0 exit /b %errorlevel% + +SET "CXXFLAGS=%CXXFLAGS% /showIncludes" +SET CMAKE_PREFIX_PATH=%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH% + +cmake .. ^ + -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -D CMAKE_PREFIX_PATH="%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH%" ^ + -D CMAKE_BUILD_TYPE="Release" ^ + -D BUILD_LIBMAMBA=ON ^ + -D BUILD_STATIC_DEPS=ON ^ + -D BUILD_MICROMAMBA=ON ^ + -D MICROMAMBA_LINKAGE=FULL_STATIC ^ + -G "Ninja" +if %errorlevel% NEQ 0 exit /b %errorlevel% + +ninja install --verbose +if %errorlevel% NEQ 0 exit /b %errorlevel% diff --git a/conda.recipe/build.sh b/conda.recipe/build.sh new file mode 100644 index 0000000000..48a84c93e3 --- /dev/null +++ b/conda.recipe/build.sh @@ -0,0 +1,22 @@ +mkdir build +cd build + +# Conda's binary relocation can result in string changing which can result in errors like +# > warning: command substitution: ignored null byte in input +# https://github.com/mamba-org/mamba/issues/1517 +export CXXFLAGS="${CXXFLAGS} -fno-merge-constants" +export CFLAGS="${CFLAGS} -fno-merge-constants" +export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY=1" + +cmake ${CMAKE_ARGS} .. \ + -DCMAKE_INSTALL_PREFIX=${PREFIX} \ + -DCMAKE_BUILD_TYPE="Release" \ + -DBUILD_LIBMAMBA=ON \ + -DBUILD_STATIC_DEPS=ON \ + -DBUILD_MICROMAMBA=ON \ + -DMICROMAMBA_LINKAGE=FULL_STATIC + +make -j${CPU_COUNT} +make install + +${STRIP:-strip} ${PREFIX}/bin/micromamba diff --git a/conda.recipe/conda_build_config.yaml b/conda.recipe/conda_build_config.yaml new file mode 100644 index 0000000000..51bdcaa825 --- /dev/null +++ b/conda.recipe/conda_build_config.yaml @@ -0,0 +1,6 @@ +libarchive: +- '3.3' +c_compiler: # [win] +- vs2019 # [win] +cxx_compiler: # [win] +- vs2019 # [win] diff --git a/conda.recipe/libmamba.patch b/conda.recipe/libmamba.patch new file mode 100644 index 0000000000..a6c5e28f68 --- /dev/null +++ b/conda.recipe/libmamba.patch @@ -0,0 +1,98 @@ +diff --git a/libmamba/CMakeLists.txt b/libmamba/CMakeLists.txt +index e9ca7c9..a02905d 100644 +--- a/libmamba/CMakeLists.txt ++++ b/libmamba/CMakeLists.txt +@@ -271,7 +271,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) + find_package(CURL CONFIG REQUIRED) + find_package(yaml-cpp CONFIG REQUIRED) + find_package(nlohmann_json CONFIG REQUIRED) +- find_package(LibLZMA CONFIG REQUIRED) ++ find_library(LIBLZMA_LIBRARIES lzma REQUIRED) ++ + find_library(LZ4_LIBRARY NAMES lz4) + find_library(LZO2_LIBRARY NAMES lzo2) + find_package(zstd CONFIG REQUIRED) +@@ -283,8 +284,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) + find_package(reproc++ CONFIG REQUIRED) + + find_library(LIBXML2_LIBRARY NAMES libxml2) +- find_library(ICONV_LIBRARY NAMES libiconv) +- find_library(CHARSET_LIBRARY NAMES libcharset) ++ find_library(ICONV_LIBRARY NAMES iconv) ++ find_library(CHARSET_LIBRARY NAMES charset) + message("Found: ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY}") + + target_link_libraries(${target_name} PUBLIC +@@ -293,14 +294,14 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) + ${LIBXML2_LIBRARY} + ${ICONV_LIBRARY} + ${CHARSET_LIBRARY} +- libzstd ++ zstd::libzstd_static + ${LZ4_LIBRARY} + ${LZO2_LIBRARY} + ${BZIP2_LIBRARIES} + ${LIBLZMA_LIBRARIES} + CURL::libcurl + nlohmann_json::nlohmann_json +- ${YAML_CPP_LIBRARIES} ++ yaml-cpp + ${LIBSOLV_BUILD_STATICRARIES} + ${LIBSOLVEXT_BUILD_STATICRARIES} + ${sodium_LIBRARY_RELEASE} +@@ -435,53 +436,4 @@ endif () + # Tests + if (BUILD_TESTS) + add_subdirectory(tests) +-endif() +- +-# Installation +-# ============ +- +-include(GNUInstallDirs) +-include(CMakePackageConfigHelpers) +- +-set(LIBMAMBA_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for libmambaConfig.cmake") +- +-install(TARGETS ${libmamba_targets} +- EXPORT ${PROJECT_NAME}-targets +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +- +-install(DIRECTORY "${LIBMAMBA_INCLUDE_DIR}/" +- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +- FILES_MATCHING +- PATTERN "*.hpp" +- PATTERN "*.h") +- +-# Makes the project importable from the build directory +-export(EXPORT ${PROJECT_NAME}-targets +- FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake") +- +-# Configure 'mambaConfig.cmake' for a build tree +-set(MAMBA_CONFIG_CODE "####### Expanded from \@MAMBA_CONFIG_CODE\@ #######\n") +-set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}set(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake;\${CMAKE_MODULE_PATH}\")\n") +-set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}##################################################") +-configure_package_config_file(${PROJECT_NAME}Config.cmake.in +- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" +- INSTALL_DESTINATION ${PROJECT_BINARY_DIR}) +- +-# Configure 'mambaConfig.cmake' for an install tree +-set(MAMBA_CONFIG_CODE "") +-configure_package_config_file(${PROJECT_NAME}Config.cmake.in +- "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake" +- INSTALL_DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) +- +- +-write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake +- VERSION ${MAMBA_VERSION_MAJOR}.${MAMBA_VERSION_MINOR}.${MAMBA_VERSION_PATCH} +- COMPATIBILITY AnyNewerVersion) +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake +- ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake +- DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) +-install(EXPORT ${PROJECT_NAME}-targets +- FILE ${PROJECT_NAME}Targets.cmake +- DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) ++endif() +\ No newline at end of file diff --git a/conda.recipe/libsolv/CONTROL b/conda.recipe/libsolv/CONTROL new file mode 100644 index 0000000000..8f5f1d342d --- /dev/null +++ b/conda.recipe/libsolv/CONTROL @@ -0,0 +1,9 @@ +Source: libsolv +Version: 0.7.18 +Description: Library for solving packages and reading repositories +Homepage: https://github.com/openSUSE/libsolv +Default-Features: conda +Supports: !uwp + +Feature: conda +Description: Conda support diff --git a/conda.recipe/libsolv/add_strict_repo_prio_rule.patch b/conda.recipe/libsolv/add_strict_repo_prio_rule.patch new file mode 100644 index 0000000000..8750da1ffd --- /dev/null +++ b/conda.recipe/libsolv/add_strict_repo_prio_rule.patch @@ -0,0 +1,296 @@ +diff --git a/src/problems.c b/src/problems.c +index a6b9394f..a4960ef4 100644 +--- a/src/problems.c ++++ b/src/problems.c +@@ -1068,10 +1068,10 @@ solver_take_solution(Solver *solv, Id problem, Id solution, Queue *job) + */ + + static void +-findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp, Id *blkrp, Map *rseen) ++findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp, Id *blkrp, Id *scprp, Map *rseen) + { + Id rid, d; +- Id lreqr, lconr, lsysr, ljobr, lblkr; ++ Id lreqr, lconr, lsysr, ljobr, lblkr, lscpr; + Rule *r; + Id jobassert = 0; + int i, reqset = 0; /* 0: unset, 1: installed, 2: jobassert, 3: assert */ +@@ -1093,7 +1093,7 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, + + /* the problem rules are somewhat ordered from "near to the problem" to + * "near to the job" */ +- lreqr = lconr = lsysr = ljobr = lblkr = 0; ++ lreqr = lconr = lsysr = ljobr = lblkr = lscpr = 0; + while ((rid = solv->learnt_pool.elements[idx++]) != 0) + { + assert(rid > 0); +@@ -1102,7 +1102,7 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, + if (MAPTST(rseen, rid - solv->learntrules)) + continue; + MAPSET(rseen, rid - solv->learntrules); +- findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr, &lblkr, rseen); ++ findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr, &lblkr, &lscpr, rseen); + } + else if ((rid >= solv->jobrules && rid < solv->jobrules_end) || (rid >= solv->infarchrules && rid < solv->infarchrules_end) || (rid >= solv->duprules && rid < solv->duprules_end) || (rid >= solv->bestrules && rid < solv->bestrules_end) || (rid >= solv->yumobsrules && rid < solv->yumobsrules_end)) + { +@@ -1119,6 +1119,11 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, + if (!*blkrp) + *blkrp = rid; + } ++ else if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) ++ { ++ if (!*scprp) ++ *scprp = rid; ++ } + else + { + assert(rid < solv->pkgrules_end); +@@ -1183,6 +1188,8 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, + *sysrp = lsysr; + if (!*blkrp && lblkr) + *blkrp = lblkr; ++ if (!*scprp && lscpr) ++ *scprp = lscpr; + } + + /* +@@ -1197,12 +1204,12 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, + Id + solver_findproblemrule(Solver *solv, Id problem) + { +- Id reqr, conr, sysr, jobr, blkr; ++ Id reqr, conr, sysr, jobr, blkr, srpr; + Id idx = solv->problems.elements[2 * problem - 2]; + Map rseen; +- reqr = conr = sysr = jobr = blkr = 0; ++ reqr = conr = sysr = jobr = blkr = srpr = 0; + map_init(&rseen, solv->learntrules ? solv->nrules - solv->learntrules : 0); +- findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr, &blkr, &rseen); ++ findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr, &blkr, &srpr, &rseen); + map_free(&rseen); + /* check if the request is about a not-installed package requiring a installed + * package conflicting with the non-installed package. In that case return the conflict */ +@@ -1232,6 +1239,8 @@ solver_findproblemrule(Solver *solv, Id problem) + return conr; /* some conflict */ + if (blkr) + return blkr; /* a blacklisted package */ ++ if (srpr) ++ return srpr; /* a strict repo priority */ + if (sysr) + return sysr; /* an update rule */ + if (jobr) +@@ -1350,6 +1359,8 @@ solver_problemruleinfo2str(Solver *solv, SolverRuleinfo type, Id source, Id targ + return pool_tmpappend(pool, s, pool_dep2str(pool, dep), 0); + case SOLVER_RULE_BLACK: + return pool_tmpjoin(pool, "package ", pool_solvid2str(pool, source), " can only be installed by a direct request"); ++ case SOLVER_RULE_STRICT_REPO_PRIORITY: ++ return pool_tmpjoin(pool, "package '", pool_solvid2str(pool, source), "' is excluded by strict repo priority"); + case SOLVER_RULE_PKG_CONSTRAINS: + s = pool_tmpjoin(pool, "package ", pool_solvid2str(pool, source), 0); + s = pool_tmpappend(pool, s, " has constraint ", pool_dep2str(pool, dep)); +diff --git a/src/rules.c b/src/rules.c +index b1b5f09c..0dcce68e 100644 +--- a/src/rules.c ++++ b/src/rules.c +@@ -2992,6 +2992,12 @@ solver_ruleinfo(Solver *solv, Id rid, Id *fromp, Id *top, Id *depp) + *fromp = -r->p; + return SOLVER_RULE_BLACK; + } ++ if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) ++ { ++ if (fromp) ++ *fromp = -r->p; ++ return SOLVER_RULE_STRICT_REPO_PRIORITY; ++ } + if (rid >= solv->choicerules && rid < solv->choicerules_end) + return SOLVER_RULE_CHOICE; + if (rid >= solv->recommendsrules && rid < solv->recommendsrules_end) +@@ -3028,8 +3034,8 @@ solver_ruleclass(Solver *solv, Id rid) + return SOLVER_RULE_CHOICE; + if (rid >= solv->recommendsrules && rid < solv->recommendsrules_end) + return SOLVER_RULE_RECOMMENDS; +- if (rid >= solv->blackrules && rid < solv->blackrules_end) +- return SOLVER_RULE_BLACK; ++ if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) ++ return SOLVER_RULE_STRICT_REPO_PRIORITY; + if (rid >= solv->learntrules && rid < solv->nrules) + return SOLVER_RULE_LEARNT; + return SOLVER_RULE_UNKNOWN; +@@ -4135,6 +4141,54 @@ solver_addrecommendsrules(Solver *solv) + solv->recommendsrules_end = solv->nrules; + } + ++/* add rules to exclude solvables provided by lower ++ * precedence repositories */ ++void solver_addstrictrepopriorules(struct s_Solver *solv, Map *addedmap) ++{ ++ Pool *pool = solv->pool; ++ Solvable *s; ++ Id p, p2, pp2; ++ Map priomap; ++ int max_prio; ++ ++ map_init_clone(&priomap, addedmap); ++ solv->strictrepopriorules = solv->nrules; ++ ++ FOR_POOL_SOLVABLES(p) ++ { ++ if (!MAPTST(&priomap, p)) ++ continue; ++ ++ s = pool->solvables + p; ++ max_prio = s->repo->priority; ++ FOR_PROVIDES(p2, pp2, s->name) ++ { ++ Solvable *s2 = pool->solvables + p2; ++ if (s->name != s2->name) ++ { ++ MAPCLR(&priomap, p2); ++ continue; ++ } ++ if (s2->repo->priority > max_prio) ++ max_prio = s2->repo->priority; ++ } ++ ++ FOR_PROVIDES(p2, pp2, s->name) ++ { ++ Solvable *s2 = pool->solvables + p2; ++ if (!MAPTST(&priomap, p2)) ++ continue; ++ MAPCLR(&priomap, p2); ++ if (pool->installed && s2->repo == pool->installed) ++ continue; ++ if (s2->repo->priority < max_prio) ++ solver_addrule(solv, -p2, 0, 0); ++ } ++ } ++ solv->strictrepopriorules_end = solv->nrules; ++ map_free(&priomap); ++} ++ + void + solver_breakorphans(Solver *solv) + { +diff --git a/src/rules.h b/src/rules.h +index 3fcede07..043d0a0b 100644 +--- a/src/rules.h ++++ b/src/rules.h +@@ -74,7 +74,8 @@ typedef enum { + SOLVER_RULE_BEST = 0x900, + SOLVER_RULE_YUMOBS = 0xa00, + SOLVER_RULE_RECOMMENDS = 0xb00, +- SOLVER_RULE_BLACK = 0xc00 ++ SOLVER_RULE_BLACK = 0xc00, ++ SOLVER_RULE_STRICT_REPO_PRIORITY = 0xd00 + } SolverRuleinfo; + + #define SOLVER_RULE_TYPEMASK 0xff00 +@@ -142,6 +143,9 @@ extern void solver_addblackrules(struct s_Solver *solv); + /* recommends rules */ + extern void solver_addrecommendsrules(struct s_Solver *solv); + ++/* channel priority rules */ ++extern void solver_addstrictrepopriorules(struct s_Solver *solv, Map *addedmap); ++ + /* policy rule disabling/reenabling */ + extern void solver_disablepolicyrules(struct s_Solver *solv); + extern void solver_reenablepolicyrules(struct s_Solver *solv, int jobidx); +diff --git a/src/solver.c b/src/solver.c +index 89a2ed10..25ff2d40 100644 +--- a/src/solver.c ++++ b/src/solver.c +@@ -1473,6 +1473,8 @@ solver_get_flag(Solver *solv, int flag) + return solv->install_also_updates; + case SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED: + return solv->only_namespace_recommended; ++ case SOLVER_FLAG_STRICT_REPO_PRIORITY: ++ return solv->strict_repo_priority; + default: + break; + } +@@ -1566,6 +1568,9 @@ solver_set_flag(Solver *solv, int flag, int value) + case SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED: + solv->only_namespace_recommended = value; + break; ++ case SOLVER_FLAG_STRICT_REPO_PRIORITY: ++ solv->strict_repo_priority = value; ++ break; + default: + break; + } +@@ -4062,6 +4067,11 @@ solver_solve(Solver *solv, Queue *job) + else + solv->recommendsrules = solv->recommendsrules_end = solv->nrules; + ++ if (solv->strict_repo_priority) ++ solver_addstrictrepopriorules(solv, &addedmap); ++ else ++ solv->strictrepopriorules = solv->strictrepopriorules_end = solv->nrules; ++ + if (1) + solver_addchoicerules(solv); + else +@@ -4077,7 +4087,19 @@ solver_solve(Solver *solv, Queue *job) + map_free(&installcandidatemap); + queue_free(&q); + +- POOL_DEBUG(SOLV_DEBUG_STATS, "%d pkg rules, 2 * %d update rules, %d job rules, %d infarch rules, %d dup rules, %d choice rules, %d best rules, %d yumobs rules\n", solv->pkgrules_end - 1, solv->updaterules_end - solv->updaterules, solv->jobrules_end - solv->jobrules, solv->infarchrules_end - solv->infarchrules, solv->duprules_end - solv->duprules, solv->choicerules_end - solv->choicerules, solv->bestrules_end - solv->bestrules, solv->yumobsrules_end - solv->yumobsrules); ++ POOL_DEBUG(SOLV_DEBUG_STATS, "%d pkg rules, 2 * %d update rules, %d job rules, %d infarch rules, %d dup rules, %d choice rules, %d best rules, %d yumobs rules\n" ++ "%d black rules, %d recommends rules, %d repo priority rules\n", ++ solv->pkgrules_end - 1, ++ solv->updaterules_end - solv->updaterules, ++ solv->jobrules_end - solv->jobrules, ++ solv->infarchrules_end - solv->infarchrules, ++ solv->duprules_end - solv->duprules, ++ solv->choicerules_end - solv->choicerules, ++ solv->bestrules_end - solv->bestrules, ++ solv->yumobsrules_end - solv->yumobsrules, ++ solv->blackrules_end - solv->blackrules, ++ solv->recommendsrules_end - solv->recommendsrules, ++ solv->strictrepopriorules_end - solv->strictrepopriorules); + POOL_DEBUG(SOLV_DEBUG_STATS, "overall rule memory used: %d K\n", solv->nrules * (int)sizeof(Rule) / 1024); + + /* create weak map */ +diff --git a/src/solver.h b/src/solver.h +index 2dec2590..5de13c9c 100644 +--- a/src/solver.h ++++ b/src/solver.h +@@ -79,6 +79,9 @@ struct s_Solver { + Id blackrules; /* rules from blacklisted packages */ + Id blackrules_end; + ++ Id strictrepopriorules; /* rules from strict priority repositories */ ++ Id strictrepopriorules_end; ++ + Id choicerules; /* choice rules (always weak) */ + Id choicerules_end; + Id *choicerules_info; /* the rule we used to generate the choice rule */ +@@ -175,6 +178,7 @@ struct s_Solver { + int strongrecommends; /* true: create weak rules for recommends */ + int install_also_updates; /* true: do not prune install job rules to installed packages */ + int only_namespace_recommended; /* true: only install packages recommended by namespace */ ++ int strict_repo_priority; /* true: only use packages from highest precedence/priority */ + + int process_orphans; /* true: do special orphan processing */ + Map dupmap; /* dup to those packages */ +@@ -326,6 +330,7 @@ typedef struct s_Solver Solver; + #define SOLVER_FLAG_STRONG_RECOMMENDS 25 + #define SOLVER_FLAG_INSTALL_ALSO_UPDATES 26 + #define SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED 27 ++#define SOLVER_FLAG_STRICT_REPO_PRIORITY 28 + + #define GET_USERINSTALLED_NAMES (1 << 0) /* package names instead of ids */ + #define GET_USERINSTALLED_INVERTED (1 << 1) /* autoinstalled */ +diff --git a/src/solverdebug.c b/src/solverdebug.c +index 0b2879b0..040d9e5d 100644 +--- a/src/solverdebug.c ++++ b/src/solverdebug.c +@@ -130,6 +130,8 @@ solver_printruleclass(Solver *solv, int type, Rule *r) + POOL_DEBUG(type, "YUMOBS "); + else if (p >= solv->blackrules && p < solv->blackrules_end) + POOL_DEBUG(type, "BLACK "); ++ else if (p >= solv->strictrepopriorules && p < solv->strictrepopriorules_end) ++ POOL_DEBUG(type, "PRIOS "); + else if (p >= solv->recommendsrules && p < solv->recommendsrules_end) + POOL_DEBUG(type, "RECOMMENDS "); + solver_printrule(solv, type, r); diff --git a/conda.recipe/libsolv/conda_variant_priorization.patch b/conda.recipe/libsolv/conda_variant_priorization.patch new file mode 100644 index 0000000000..6cdffcb400 --- /dev/null +++ b/conda.recipe/libsolv/conda_variant_priorization.patch @@ -0,0 +1,438 @@ +diff --git a/src/conda.c b/src/conda.c +index 21ad6bfb..408a236a 100644 +--- a/src/conda.c ++++ b/src/conda.c +@@ -134,7 +134,7 @@ solv_vercmp_conda(const char *s1, const char *q1, const char *s2, const char *q2 + return -1; + if (s1p - s1 > s2p - s2) + return 1; +- r = s1p - s1 ? strncmp(s1, s2, s1p - s1) : 0; ++ r = (s1p - s1) ? strncmp(s1, s2, s1p - s1) : 0; + if (r) + return r; + } +diff --git a/src/policy.c b/src/policy.c +index c02d2373..d6354cd2 100644 +--- a/src/policy.c ++++ b/src/policy.c +@@ -833,6 +833,79 @@ move_installed_to_front(Pool *pool, Queue *plist) + } + } + ++/* ++ * prune_to_best_version ++ * ++ * sort list of packages (given through plist) by name and evr ++ * return result through plist ++ */ ++void ++prune_to_best_version(Pool *pool, Queue *plist) ++{ ++#ifdef ENABLE_CONDA ++ if (pool->disttype == DISTTYPE_CONDA) ++ return prune_to_best_version_conda(pool, plist); ++#endif ++ ++ int i, j, r; ++ Solvable *s, *best; ++ ++ if (plist->count < 2) /* no need to prune for a single entry */ ++ return; ++ POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version %d\n", plist->count); ++ ++ /* sort by name first, prefer installed */ ++ solv_sort(plist->elements, plist->count, sizeof(Id), prune_to_best_version_sortcmp, pool); ++ ++ /* now find best 'per name' */ ++ best = 0; ++ for (i = j = 0; i < plist->count; i++) ++ { ++ s = pool->solvables + plist->elements[i]; ++ ++ POOL_DEBUG(SOLV_DEBUG_POLICY, "- %s [%d]%s\n", ++ pool_solvable2str(pool, s), plist->elements[i], ++ (pool->installed && s->repo == pool->installed) ? "I" : ""); ++ ++ if (!best) /* if no best yet, the current is best */ ++ { ++ best = s; ++ continue; ++ } ++ ++ /* name switch: finish group, re-init */ ++ if (best->name != s->name) /* new name */ ++ { ++ plist->elements[j++] = best - pool->solvables; /* move old best to front */ ++ best = s; /* take current as new best */ ++ continue; ++ } ++ ++ r = 0; ++ if (r == 0) ++ r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; ++#ifdef ENABLE_LINKED_PKGS ++ if (r == 0 && has_package_link(pool, s)) ++ r = pool_link_evrcmp(pool, best, s); ++#endif ++ if (r < 0) ++ best = s; ++ } ++ ++ plist->elements[j++] = best - pool->solvables; /* finish last group */ ++ plist->count = j; ++ ++ /* we reduced the list to one package per name, now look at ++ * package obsoletes */ ++ if (plist->count > 1) ++ { ++ if (plist->count == 2) ++ prune_obsoleted_2(pool, plist); ++ else ++ prune_obsoleted(pool, plist); ++ } ++} ++ + #ifdef ENABLE_CONDA + static int + pool_featurecountcmp(Pool *pool, Solvable *s1, Solvable *s2) +@@ -863,23 +936,221 @@ pool_buildflavorcmp(Pool *pool, Solvable *s1, Solvable *s2) + return 0; + return pool_evrcmp_str(pool, f1 ? f1 : "" , f2 ? f2 : "", EVRCMP_COMPARE); + } +-#endif ++ ++void intersect_selection(Pool* pool, Id dep, Queue* prev) ++{ ++ Queue tmp; ++ int i = 0, j = 0, isectidx = 0; ++ ++ queue_init(&tmp); ++ ++ Id* pp, p; ++ pp = pool_whatprovides_ptr(pool, dep); ++ while ((p = *pp++) != 0) ++ queue_push(&tmp, p); ++ ++ // set intersection, assuming sorted arrays ++ while (i < prev->count && j < tmp.count) ++ if (prev->elements[i] < tmp.elements[j]) ++ i++; ++ else if (tmp.elements[j] < prev->elements[i]) ++ j++; ++ else ++ { ++ if (isectidx != i) ++ prev->elements[isectidx] = prev->elements[i]; ++ i++, j++, isectidx++; ++ } ++ ++ prev->count = isectidx; ++ queue_free(&tmp); ++} ++ ++int check_deps_unequal(Pool* pool, Queue* q1, Queue* q2, Id name) ++{ ++ Id dep; ++ int i, j; ++ int found = 0; ++ for (i = 0; i < q1->count; ++i) ++ { ++ dep = q1->elements[i]; ++ if (ISRELDEP(dep) && GETRELDEP(pool, dep)->name == name) ++ { ++ for (j = 0; j < q2->count; ++j) ++ { ++ if (q2->elements[j] == dep) ++ { ++ found = 1; ++ break; ++ } ++ } ++ if (!found) ++ return 1; ++ ++ found = 0; ++ } ++ } ++ return 0; ++} ++ ++Id best_matching(Pool* pool, Queue* q, Id name, int* all_have_trackfeatures) ++{ ++ int first = 1; ++ Id dep, p, *pp; ++ ++ Queue selection; ++ queue_init(&selection); ++ ++ for (int i = 0; i < q->count; ++i) ++ { ++ dep = q->elements[i]; ++ if (!ISRELDEP(dep) || GETRELDEP(pool, dep)->name != name) continue; ++ ++ if (first) ++ { ++ pp = pool_whatprovides_ptr(pool, dep); ++ while ((p = *pp++) != 0) ++ queue_push(&selection, p); ++ first = 0; ++ } ++ else ++ intersect_selection(pool, dep, &selection); ++ } ++ ++ if (selection.count == 0) ++ return 0; ++ ++ Solvable *stmp, *best = pool_id2solvable(pool, selection.elements[0]); ++ int cmp; ++ ++ *all_have_trackfeatures = 1; ++ for (int i = 0; i < selection.count; ++i) ++ if (solvable_lookup_count(pool_id2solvable(pool, selection.elements[i]), ++ SOLVABLE_TRACK_FEATURES) == 0) ++ { ++ *all_have_trackfeatures = 0; ++ break; ++ } ++ ++ for (int i = 0; i < selection.count; ++i) ++ { ++ stmp = pool_id2solvable(pool, selection.elements[i]); ++ cmp = pool_evrcmp(pool, best->evr, stmp->evr, 0); ++ if (cmp < 0) best = stmp; ++ } ++ ++ return best->evr; ++} ++ ++int conda_compare_dependencies(Pool *pool, Solvable *s1, Solvable *s2) ++{ ++ int i, j, has_seen; ++ Queue q1, q2, seen; ++ ++ queue_init(&q1); ++ queue_init(&q2); ++ queue_init(&seen); ++ ++ solvable_lookup_deparray(s1, SOLVABLE_REQUIRES, &q1, -1); ++ solvable_lookup_deparray(s2, SOLVABLE_REQUIRES, &q2, -1); ++ ++ int comparison_result = 0; ++ ++ for (i = 0; i < q1.count; ++i) ++ { ++ Id x1 = q1.elements[i]; ++ has_seen = 0; ++ ++ if (!ISRELDEP(x1)) ++ continue; ++ ++ Reldep* rd1 = GETRELDEP(pool, x1); ++ for (j = 0; j < seen.count && has_seen == 0; ++j) ++ if (seen.elements[j] == rd1->name) ++ has_seen = 1; ++ ++ if (has_seen) ++ continue; ++ ++ // first make sure that deps are different between a & b ++ int deps_unequal = check_deps_unequal(pool, &q1, &q2, rd1->name); ++ if (!deps_unequal) ++ { ++ queue_push(&seen, rd1->name); ++ continue; ++ } ++ ++ int aht_1, aht_2; // all have track features check ++ Id b1 = best_matching(pool, &q1, rd1->name, &aht_1); ++ Id b2 = best_matching(pool, &q2, rd1->name, &aht_2); ++ ++ // one of both or both is not solvable... ++ // ignoring this case for now ++ if (b1 == 0 || b2 == 0) ++ continue; ++ ++ // if one has deps with track features, and the other does not, ++ // downweight the one with track features ++ if (aht_1 != aht_2) ++ comparison_result += (aht_1 - aht_2) * 100; ++ ++ comparison_result += pool_evrcmp(pool, b2, b1, 0); ++ } ++ ++ queue_free(&q1); ++ queue_free(&q2); ++ queue_free(&seen); ++ ++ return comparison_result; ++} ++ ++static int ++sort_by_best_dependencies(const void *ap, const void *bp, void *dp) ++{ ++ Pool* pool = (Pool*) dp; ++ ++ Id a = *(Id *)ap; ++ Id b = *(Id *)bp; ++ Solvable *sa, *sb; ++ ++ sa = pool->solvables + a; ++ sb = pool->solvables + b; ++ ++ int res = conda_compare_dependencies(pool, sa, sb); ++ if (res == 0) ++ { ++ // no differences, select later build ++ Repodata* ra = repo_last_repodata(sa->repo); ++ Repodata* rb = repo_last_repodata(sb->repo); ++ ++ unsigned long long bta = repodata_lookup_num(ra, a, SOLVABLE_BUILDTIME, 0ull); ++ unsigned long long btb = repodata_lookup_num(rb, b, SOLVABLE_BUILDTIME, 0ull); ++ ++ res = (btb > bta) ? 1 : -1; ++ POOL_DEBUG(SOLV_DEBUG_POLICY, "Fallback to timestamp comparison: %llu vs %llu: [%d]\n", bta, btb, res); ++ } ++ ++ POOL_DEBUG(SOLV_DEBUG_POLICY, "Selecting variant [%c] of (a) %s vs (b) %s (score: %d)\n", ++ (res < 0 ? 'a' : 'b'), pool_solvable2str(pool, sa), pool_solvable2str(pool, sb), res); ++ ++ return res; ++} + + /* +- * prune_to_best_version ++ * prune_to_best_version_conda + * + * sort list of packages (given through plist) by name and evr + * return result through plist + */ + void +-prune_to_best_version(Pool *pool, Queue *plist) ++prune_to_best_version_conda(Pool *pool, Queue *plist) + { + int i, j, r; + Solvable *s, *best; + +- if (plist->count < 2) /* no need to prune for a single entry */ ++ if (plist->count < 2) /* no need to prune for a single entry */ + return; +- POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version %d\n", plist->count); ++ POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version_conda %d\n", plist->count); + + /* sort by name first, prefer installed */ + solv_sort(plist->elements, plist->count, sizeof(Id), prune_to_best_version_sortcmp, pool); +@@ -891,10 +1162,10 @@ prune_to_best_version(Pool *pool, Queue *plist) + s = pool->solvables + plist->elements[i]; + + POOL_DEBUG(SOLV_DEBUG_POLICY, "- %s [%d]%s\n", +- pool_solvable2str(pool, s), plist->elements[i], +- (pool->installed && s->repo == pool->installed) ? "I" : ""); ++ pool_solvable2str(pool, s), plist->elements[i], ++ (pool->installed && s->repo == pool->installed) ? "I" : ""); + +- if (!best) /* if no best yet, the current is best */ ++ if (!best) /* if no best yet, the current is best */ + { + best = s; + continue; +@@ -904,49 +1175,54 @@ prune_to_best_version(Pool *pool, Queue *plist) + if (best->name != s->name) /* new name */ + { + plist->elements[j++] = best - pool->solvables; /* move old best to front */ +- best = s; /* take current as new best */ ++ best = s; /* take current as new best */ + continue; + } + + r = 0; +-#ifdef ENABLE_CONDA +- if (pool->disttype == DISTTYPE_CONDA) +- r = pool_featurecountcmp(pool, best, s); +-#endif ++ r = pool_featurecountcmp(pool, best, s); + if (r == 0) + r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; +-#ifdef ENABLE_LINKED_PKGS +- if (r == 0 && has_package_link(pool, s)) +- r = pool_link_evrcmp(pool, best, s); +-#endif +-#ifdef ENABLE_CONDA +- if (pool->disttype == DISTTYPE_CONDA) +- { +- if (r == 0) +- r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); +- if (r == 0) +- r = pool_buildversioncmp(pool, best, s); +- if (r == 0) +- r = pool_buildflavorcmp(pool, best, s); +- } +-#endif ++ if (r == 0) ++ r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); ++ if (r == 0) ++ r = pool_buildversioncmp(pool, best, s); ++ // this can be removed as this comparison doesn't effect anything ++ if (r == 0) ++ r = pool_buildflavorcmp(pool, best, s); + if (r < 0) +- best = s; ++ best = s; + } +- plist->elements[j++] = best - pool->solvables; /* finish last group */ +- plist->count = j; + +- /* we reduced the list to one package per name, now look at +- * package obsoletes */ +- if (plist->count > 1) ++ Queue q; ++ queue_init(&q); ++ for (i = 0; i < plist->count; i++) + { +- if (plist->count == 2) +- prune_obsoleted_2(pool, plist); +- else +- prune_obsoleted(pool, plist); ++ s = pool->solvables + plist->elements[i]; ++ r = pool_featurecountcmp(pool, best, s); ++ if (r == 0) ++ r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; ++ if (r == 0) ++ r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); ++ if (r == 0) ++ r = pool_buildversioncmp(pool, best, s); ++ if (r == 0) ++ queue_push(&q, s - pool->solvables); + } +-} + ++ if (q.count > 1) ++ { ++ // order by first-level deps ++ solv_sort(q.elements, q.count, sizeof(Id), sort_by_best_dependencies, pool); ++ } ++ ++ for (i = 0; i < q.count; ++i) ++ plist->elements[i] = q.elements[i]; ++ plist->count = q.count; ++ ++ queue_free(&q); ++} ++#endif // ENABLE_CONDA + + static int + sort_by_name_evr_sortcmp(const void *ap, const void *bp, void *dp) +diff --git a/src/policy.h b/src/policy.h +index 3ae1005a..a79483a4 100644 +--- a/src/policy.h ++++ b/src/policy.h +@@ -45,6 +45,9 @@ extern void pool_best_solvables(Pool *pool, Queue *plist, int flags); + extern void prune_to_best_version(Pool *pool, Queue *plist); + extern void policy_prefer_favored(Solver *solv, Queue *plist); + ++#ifdef ENABLE_CONDA ++extern void prune_to_best_version_conda(Pool *pool, Queue *plist); ++#endif + + #ifdef __cplusplus + } diff --git a/conda.recipe/libsolv/memcpy_to_memmove.patch b/conda.recipe/libsolv/memcpy_to_memmove.patch new file mode 100644 index 0000000000..2e398b8399 --- /dev/null +++ b/conda.recipe/libsolv/memcpy_to_memmove.patch @@ -0,0 +1,13 @@ +diff --git a/src/conda.c b/src/conda.c +index 21ad6bfb..6f6a65a6 100644 +--- a/src/conda.c ++++ b/src/conda.c +@@ -670,7 +670,7 @@ pool_conda_matchspec(Pool *pool, const char *name) + if (build) + { + *p++ = ' '; +- memcpy(p, build, buildend - build); ++ memmove(p, build, buildend - build); + p += buildend - build; + } + evrid = pool_strn2id(pool, version, p - version, 1); diff --git a/conda.recipe/libsolv/portfile.cmake b/conda.recipe/libsolv/portfile.cmake new file mode 100644 index 0000000000..52867ad11f --- /dev/null +++ b/conda.recipe/libsolv/portfile.cmake @@ -0,0 +1,57 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO openSUSE/libsolv + REF 0.7.19 + SHA512 dfcebea314d549a15bf5af19db775ff1b1850bfc6fb147b68fe094e43bf1541fcfe22d2f6c6607a6393e01905a086cea606d0b25da2e3ce376d100c4ef4fee00 + HEAD_REF master + PATCHES + win_static_build.patch + conda_variant_priorization.patch + add_strict_repo_prio_rule.patch + memcpy_to_memmove.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBS) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) + +if (NOT BUILD_DYNAMIC_LIBS) + set(DISABLE_SHARED ON) +else() + set(DISABLE_SHARED OFF) +endif() + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + conda ENABLE_CONDA +) + +if(WIN32) + list(APPEND FEATURE_OPTIONS "-DWITHOUT_COOKIEOPEN=ON") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + ${FEATURE_OPTIONS} + -DDISABLE_SHARED=${DISABLE_SHARED} + -DENABLE_STATIC=${BUILD_STATIC_LIBS} + -DMULTI_SEMANTICS=ON + -DBUILD_EXAMPLE_PROGRAMS=OFF + .. +) + + +vcpkg_install_cmake() +# vcpkg_fixup_cmake_targets() +# vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL ${SOURCE_PATH}/LICENSE.BSD DESTINATION ${CURRENT_PACKAGES_DIR}/share/libsolv RENAME copyright) + +vcpkg_test_cmake(PACKAGE_NAME libsolv) diff --git a/conda.recipe/libsolv/win_static_build.patch b/conda.recipe/libsolv/win_static_build.patch new file mode 100644 index 0000000000..1c80b1e968 --- /dev/null +++ b/conda.recipe/libsolv/win_static_build.patch @@ -0,0 +1,91 @@ +diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt +index f01c0238..48bdd1a1 100644 +--- a/ext/CMakeLists.txt ++++ b/ext/CMakeLists.txt +@@ -162,6 +162,9 @@ IF (WIN32) + ENDIF () + + SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") ++if (MSVC AND DISABLE_SHARED AND ENABLE_STATIC) ++ SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext_static") ++endif() + SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) + + INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index bbf30bac..17b65eb3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -62,6 +62,10 @@ IF (WIN32) + ENDIF (WIN32) + + SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") ++if (MSVC AND DISABLE_SHARED AND ENABLE_STATIC) ++ SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv_static") ++endif() ++ + SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) + + INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") +diff --git a/src/solvversion.c b/src/solvversion.c +index d66e1958..7124c93e 100644 +--- a/src/solvversion.c ++++ b/src/solvversion.c +@@ -7,7 +7,7 @@ + + #include "solvversion.h" + +-const char solv_version[] = LIBSOLV_VERSION_STRING; +-int solv_version_major = LIBSOLV_VERSION_MAJOR; +-int solv_version_minor = LIBSOLV_VERSION_MINOR; +-int solv_version_patch = LIBSOLV_VERSION_PATCH; ++SOLV_API const char solv_version[] = LIBSOLV_VERSION_STRING; ++SOLV_API int solv_version_major = LIBSOLV_VERSION_MAJOR; ++SOLV_API int solv_version_minor = LIBSOLV_VERSION_MINOR; ++SOLV_API int solv_version_patch = LIBSOLV_VERSION_PATCH; +diff --git a/src/solvversion.h.in b/src/solvversion.h.in +index 43b566a1..dea09dc9 100644 +--- a/src/solvversion.h.in ++++ b/src/solvversion.h.in +@@ -19,10 +19,17 @@ + #define LIBSOLV_VERSION_PATCH @LIBSOLV_PATCH@ + #define LIBSOLV_VERSION (LIBSOLV_VERSION_MAJOR * 10000 + LIBSOLV_VERSION_MINOR * 100 + LIBSOLV_VERSION_PATCH) + +-extern const char solv_version[]; +-extern int solv_version_major; +-extern int solv_version_minor; +-extern int solv_version_patch; ++#ifdef _WIN32 ++// include win32/config.h for SOLV_API ++#include "config.h" ++#else ++#define SOLV_API ++#endif ++ ++SOLV_API extern const char solv_version[]; ++SOLV_API extern int solv_version_major; ++SOLV_API extern int solv_version_minor; ++SOLV_API extern int solv_version_patch; + + #cmakedefine LIBSOLV_FEATURE_LINKED_PKGS + #cmakedefine LIBSOLV_FEATURE_COMPLEX_DEPS +diff --git a/win32/CMakeLists.txt b/win32/CMakeLists.txt +index 9a87af7b..161f0725 100644 +--- a/win32/CMakeLists.txt ++++ b/win32/CMakeLists.txt +@@ -1,4 +1,5 @@ + INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/win32) ++ + SET (WIN32_COMPAT_SOURCES + ${PROJECT_SOURCE_DIR}/win32/fnmatch.c + ${PROJECT_SOURCE_DIR}/win32/getopt.c +@@ -6,4 +7,6 @@ SET (WIN32_COMPAT_SOURCES + ${PROJECT_SOURCE_DIR}/win32/regexec.c + ${PROJECT_SOURCE_DIR}/win32/strfncs.c + ${PROJECT_SOURCE_DIR}/win32/tre-mem.c +-) +\ No newline at end of file ++) ++ ++INSTALL (FILES ${PROJECT_SOURCE_DIR}/win32/config.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") +\ No newline at end of file diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml new file mode 100644 index 0000000000..6072149d17 --- /dev/null +++ b/conda.recipe/meta.yaml @@ -0,0 +1,110 @@ +{% set version = "0.26.0" %} +{% set build_num = 0 %} + +package: + name: micromamba + version: {{ version }} + +source: + - url: https://github.com/mamba-org/mamba/archive/refs/tags/micromamba-{{ version }}.tar.gz + sha256: 19c1cec502536f5cbec82e2fc56db1c6337fb8b18ddc12472182f9df2e94cc40 + patches: + - libmamba.patch + +build: + number: {{ build_num }} + string: {{ build_num }} + ignore_run_exports_from: + - libcurl # [unix] + - libarchive # [unix] + - reproc-cpp # [unix] + - openssl # [unix] + - spdlog + - {{ compiler('c') }} # [linux] + - {{ compiler('cxx') }} # [linux] + - python # [win] + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - cmake # [unix] + - make # [unix] + - ninja # [win] + - vcpkg # [win] + - python # [win] + # force a recent curl version for windows + - curl >=7.75 # [win] + - zlib # [win] + host: + - cli11 >=2.2,<3 + - cpp-expected + - nlohmann_json + - spdlog + - termcolor-cpp + - yaml-cpp-static # [unix] + # we pin an older curl build for darwin-ssl support + - libcurl 7.76.1 *_0 # [osx] + - libcurl-static 7.76.1 *_0 # [osx] + - libcurl # [linux] + - libcurl-static # [linux] + - xz-static # [unix] + - libssh2-static # [unix] + - libarchive # [unix] + - krb5-static # [unix] + - libsolv-static # [unix] + - openssl {{ openssl }} # [unix] + - libopenssl-static {{ openssl }} # [unix] + - zstd-static # [unix] + - libnghttp2-static # [unix] + - lz4-c-static # [unix] + - reproc-static # [unix] + - reproc-cpp # [unix] + - reproc-cpp-static # [unix] + - winreg # [win] + +test: + commands: + - test -f $PREFIX/bin/micromamba # [unix] + - micromamba --help + - export TMPDIR="${TMPDIR:-/tmp}" # [unix and not (ppc64le or aarch64)] + - if [ ! -d "${TMPDIR}" ]; then mkdir -p "${TMPDIR}"; fi # [unix and not (ppc64le or aarch64)] + - stat $TMPDIR # [unix and not (ppc64le or aarch64)] + - export MAMBA_ROOT_PREFIX=$TMPDIR/mamba # [unix and not (ppc64le or aarch64)] + - micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 # [unix and not (ppc64le or aarch64)] + - $TMPDIR/testenv/bin/python --version # [unix and not (ppc64le or aarch64)] + - $TMPDIR/testenv/bin/python -c 'import ssl' # [unix and not (ppc64le or aarch64)] + +about: + home: https://github.com/mamba-org/mamba + license_file: + - LICENSE + - CURL_LICENSE.txt + - LIBARCHIVE_LICENSE.txt + - KRB5_LICENSE.txt + - LIBSOLV_LICENSE.txt + - LIBOPENSSL_LICENSE.txt + - LIBOPENSSL_3_LICENSE.txt + - CLI11_LICENSE.txt + - NLOHMANN_JSON_LICENSE.txt + - ZSTD_LICENSE.txt + - LIBLZ4_LICENSE.txt + - C_ARES_LICENSE.txt + - LIBEV_LICENSE.txt + - CPP_FILESYSTEM_LICENSE.txt + - LIBNGHTTP2_LICENSE.txt + - REPROC_LICENSE.txt + - TERMCOLOR_CPP_LICENSE.txt + - SPDLOG_LICENSE.txt + license: BSD-3-Clause AND MIT AND OpenSSL + license_family: BSD + summary: Micromamba is a tiny version of mamba, the fast conda package installer. + dev_url: https://github.com/mamba-org/mamba + +extra: + recipe-maintainers: + - wolfv + - SylvainCorlay + - JohanMabille + - mariusvniekerk + - adriendelsalle From c7d738aac4874cd70424df645a22b1a4f2a44985 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 11:58:43 +0200 Subject: [PATCH 02/49] add ci for pr --- .github/workflows/conda-build-linux.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 122e5c5786..86c6bfc820 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -3,6 +3,9 @@ on: push: branches: - main + pull_request: + branches: + - main jobs: linux-conda-build: name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" From 1c9d7fbf1bc473a962956c4dd117200b627c8d0a Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 12:01:01 +0200 Subject: [PATCH 03/49] remove ci, add base.sh --- .github/workflows/base.sh | 9 +++++++++ .github/workflows/linters.yml | 12 ++++++------ .github/workflows/main.yml | 12 ++++++------ .github/workflows/static_build.yml | 12 ++++++------ .github/workflows/test_micro.mamba.pm.yml | 4 ++-- 5 files changed, 29 insertions(+), 20 deletions(-) create mode 100755 .github/workflows/base.sh diff --git a/.github/workflows/base.sh b/.github/workflows/base.sh new file mode 100755 index 0000000000..e2de98cbb2 --- /dev/null +++ b/.github/workflows/base.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -eo pipefail + +export PYTHON_VERSION=$1 + +# Enable 'conda' command to make 'conda activate' work +CONDA_BASE=$(conda info --base) +source ${CONDA_BASE}/etc/profile.d/conda.sh diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 9f93f3d46a..5654b8bee8 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -1,12 +1,12 @@ name: Linters (Python, C++) on: - push: - branches: - - main - pull_request: - branches: - - main +# push: +# branches: +# - main +# pull_request: +# branches: +# - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25a7a55b4d..6a1d256afc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,12 +1,12 @@ name: CI on: - push: - branches: - - main - pull_request: - branches: - - main +# push: +# branches: +# - main +# pull_request: +# branches: +# - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 93650d00c1..e58bad0576 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -1,12 +1,12 @@ name: Fully static binary builds on: - push: - branches: - - main - pull_request: - branches: - - main +# push: +# branches: +# - main +# pull_request: +# branches: +# - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/test_micro.mamba.pm.yml b/.github/workflows/test_micro.mamba.pm.yml index 01d1a59841..15d72a42dd 100644 --- a/.github/workflows/test_micro.mamba.pm.yml +++ b/.github/workflows/test_micro.mamba.pm.yml @@ -1,8 +1,8 @@ name: Test micro.mamba.pm on: - schedule: - - cron: '0 10 * * *' +# schedule: +# - cron: '0 10 * * *' concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 8e32a8da7dac3ba120c716104e8da94cd2b6d6bf Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 12:29:04 +0200 Subject: [PATCH 04/49] Add macos + arm64 conda build --- .github/workflows/conda-build-linux.yml | 30 +++++++++++++++++++++++++ .github/workflows/macos-conda-build.sh | 15 +++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 .github/workflows/macos-conda-build.sh diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 86c6bfc820..34171381c0 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -17,6 +17,7 @@ jobs: matrix: CONDA_BUILD_YML: - linux_64_ + - linux_aarch64_ steps: - name: Pull image run: docker pull condaforge/mambaforge:latest @@ -30,3 +31,32 @@ jobs: uses: ./.github/actions/conda-build with: conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} + + macos-conda-build: + name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" + runs-on: macos-latest + env: + CI: True + CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} + strategy: + fail-fast: false + matrix: + CONDA_BUILD_YML: + - osx_64_ + - osx_arm64_ + steps: + - name: Checkout branch + uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + - name: Fetch full git history + run: git fetch --prune --unshallow + - uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169 + with: + miniforge-variant: Mambaforge + miniforge-version: 4.10.0-0 + use-mamba: true + channels: conda-forge + - name: Build conda package + shell: bash -l {0} + run: ./.github/workflows/macos-conda-build.sh diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh new file mode 100755 index 0000000000..89f6e84485 --- /dev/null +++ b/.github/workflows/macos-conda-build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -exo pipefail + +mamba install -y conda-build +# Don't test cross-compiled result (there is no emulation) and use the latest MacOS SDK. +if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then + CONDA_BUILD_ARGS="--no-test" + export CONDA_BUILD_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) + cat <> .ci_support/${CONDA_BUILD_YML}.yaml +CONDA_BUILD_SYSROOT: + - "${CONDA_BUILD_SYSROOT}" +EOF +fi +conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} From d17eccae0f4ced4be3888c935ae508d4063bdf70 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 13:24:38 +0200 Subject: [PATCH 05/49] add windows build --- .github/workflows/conda-build-linux.yml | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 34171381c0..711f6ff9b7 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -60,3 +60,32 @@ jobs: - name: Build conda package shell: bash -l {0} run: ./.github/workflows/macos-conda-build.sh + + windows-conda-build: + name: "Windows - conda-build - ${{ matrix.CONDA_BUILD_YML }}" + runs-on: windows-latest + env: + CI: True + CONDA_BUILD_YML: "${{ matrix.CONDA_BUILD_YML }}" + strategy: + fail-fast: false + matrix: + CONDA_BUILD_YML: + - win_64_ + steps: + - name: Checkout branch + uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + - name: Fetch full git history + run: git fetch --prune --unshallow + - uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169 + with: + miniforge-variant: Mambaforge + miniforge-version: 4.10.0-0 + use-mamba: true + - name: Build conda package + shell: pwsh + run: | + mamba install -n base -y conda-build + conda build -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe From 682d6a12ede2fa3b9469b310facfb8fa5cc42b5c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 13:36:26 +0200 Subject: [PATCH 06/49] windows-latest -> windows-2019 --- .github/workflows/conda-build-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 711f6ff9b7..2b67989993 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -63,7 +63,7 @@ jobs: windows-conda-build: name: "Windows - conda-build - ${{ matrix.CONDA_BUILD_YML }}" - runs-on: windows-latest + runs-on: windows-2019 env: CI: True CONDA_BUILD_YML: "${{ matrix.CONDA_BUILD_YML }}" From d083ca132abe60938cb90d2bd9625bb767cb89e3 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 13:56:28 +0200 Subject: [PATCH 07/49] tmate --- .github/workflows/conda-build-linux.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 2b67989993..bbd15dde53 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -8,6 +8,7 @@ on: - main jobs: linux-conda-build: + if: false name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest env: @@ -33,6 +34,7 @@ jobs: conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} macos-conda-build: + if: false name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: macos-latest env: @@ -84,6 +86,8 @@ jobs: miniforge-variant: Mambaforge miniforge-version: 4.10.0-0 use-mamba: true + - name: Debug + uses: mxschmitt/action-tmate@v3 - name: Build conda package shell: pwsh run: | From e35a4b7998fc8d23e2afa46e44c2f0d18e7e7f0c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 14:23:43 +0200 Subject: [PATCH 08/49] Update recipe --- .github/workflows/conda-build-linux.yml | 2 - .github/workflows/linters.yml | 48 -- .github/workflows/main.yml | 583 ---------------------- .github/workflows/static_build.yml | 140 ------ .github/workflows/test_micro.mamba.pm.yml | 53 -- conda.recipe/meta.yaml | 3 +- 6 files changed, 1 insertion(+), 828 deletions(-) delete mode 100644 .github/workflows/linters.yml delete mode 100644 .github/workflows/main.yml delete mode 100644 .github/workflows/static_build.yml delete mode 100644 .github/workflows/test_micro.mamba.pm.yml diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index bbd15dde53..23518e54e8 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -8,7 +8,6 @@ on: - main jobs: linux-conda-build: - if: false name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest env: @@ -34,7 +33,6 @@ jobs: conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} macos-conda-build: - if: false name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: macos-latest env: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml deleted file mode 100644 index 5654b8bee8..0000000000 --- a/.github/workflows/linters.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Linters (Python, C++) - -on: -# push: -# branches: -# - main -# pull_request: -# branches: -# - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Set up Python 3.8 - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Setup Miniconda - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: 'latest' - activate-environment: linters - python-version: 3.8 - auto-update-conda: true - - name: Config Channels - shell: pwsh - run: | - conda config --set always_yes yes - conda config --add channels conda-forge - - name: Install dependencies - shell: pwsh - run: | - conda install pre-commit - - name: Conda info - shell: pwsh - run: | - conda info -a - conda list - - name: Run all linters - shell: pwsh - run: | - pre-commit run --all-files --verbose --show-diff-on-failure diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 6a1d256afc..0000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,583 +0,0 @@ -name: CI - -on: -# push: -# branches: -# - main -# pull_request: -# branches: -# - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - libmamba_static: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./libmamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - - name: build libmamba-static - shell: bash -l {0} - run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DBUILD_LIBMAMBA=ON \ - -DBUILD_STATIC=ON \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja - - name: build cache statistics - run: sccache --show-stats - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - libmamba_cpp_tests: - needs: [libmamba_static] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./libmamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static-${{ matrix.os }} - - name: build and run libmamba C++ tests - shell: bash -l {0} - run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DBUILD_LIBMAMBA=ON \ - -DBUILD_SHARED=ON \ - -DBUILD_LIBMAMBA_TESTS=ON \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja testing_libmamba_lock - ninja test - - name: build cache statistics - run: sccache --show-stats - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - umamba_tests: - needs: [libmamba_static] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./micromamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static-${{ matrix.os }} - - name: build micromamba - shell: bash -l {0} - run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DBUILD_MICROMAMBA=ON \ - -DBUILD_LIBMAMBA=ON \ - -DBUILD_SHARED=ON \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja - - name: build cache statistics - run: sccache --show-stats - - name: install zsh, xonsh and fish in linux - if: matrix.os == 'ubuntu-latest' - shell: bash -l -eo pipefail {0} - run: | - sudo apt-get install zsh xonsh fish -y - - name: install xonsh and fish in mac - if: matrix.os == 'macos-latest' - shell: bash -l -eo pipefail {0} - run: | - brew install fish xonsh - - name: micromamba python based tests - shell: bash -l -eo pipefail {0} - run: | - export TEST_MAMBA_EXE=$(pwd)/build/micromamba/micromamba - micromamba activate build_env - pytest -v --capture=tee-sys micromamba/tests/ - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - mamba_python_tests: - needs: [libmamba_static] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - python_version: ["3.8"] - - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./mamba/environment-dev.yml - environment-name: build_env - cache-env: true - extra-specs: | - conda-build - python=${{ matrix.python_version }} - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static-${{ matrix.os }} - - name: run conda init - shell: bash -l {0} - run: conda init - - name: build libmamba Python bindings - shell: bash -l {0} - run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ - -DBUILD_LIBMAMBAPY=ON \ - -DBUILD_LIBMAMBA=ON \ - -DBUILD_SHARED=ON \ - -DBUILD_MAMBA_PACKAGE=ON \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja - ninja install - - name: install libmambapy - shell: bash -l {0} - run: | - micromamba activate build_env - pip install -e ./libmambapy/ --no-deps - - name: build cache statistics - run: sccache --show-stats - - name: install mamba - shell: bash -l {0} - run: | - micromamba activate build_env - pip install ./mamba[test] --no-deps - - name: run mamba tests suite - shell: bash -l {0} - run: | - micromamba activate build_env - pytest -v --capture=tee-sys mamba/tests - - name: run mamba create/update tests - shell: bash -l {0} - run: | - micromamba activate build_env - mamba create -n test_env xtensor -c conda-forge -y - mamba env create -f mamba/tests/test_env.yml - mamba env update -f mamba/tests/update_env.yml - - name: run mamba local channel test - shell: bash -l {0} - run: | - micromamba activate build_env - if [ "$RUNNER_OS" == "Linux" ]; then - mkdir -p $CONDA_PREFIX/conda-bld/linux-64 - wget -P $CONDA_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/linux-64/xtensor-0.21.8-hc9558a2_0.tar.bz2 - wget -P $CONDA_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/linux-64/xtl-0.6.21-h0efe328_0.tar.bz2 - else - mkdir -p $CONDA_PREFIX/conda-bld/osx-64 - wget -P $CONDA_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/osx-64/xtensor-0.21.8-h879752b_0.tar.bz2 - wget -P $CONDA_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/osx-64/xtl-0.6.21-h6516342_0.tar.bz2 - fi - conda index $CONDA_PREFIX/conda-bld - mamba create -n l_o_cal_test xtensor -c local -c conda-forge -y - - conda list -n l_o_cal_test - conda list -n l_o_cal_test | tail -n +3 > list.txt - if [ "$(grep -c "local" list.txt)" -ne 2 ]; then - exit 1 - fi - - name: Run server auth tests - shell: bash -l {0} -euo pipefail -x - run: | - micromamba activate build_env - cd mamba/tests - - if [[ "$(uname -s)" == "Linux" ]]; then - ./generate_gpg_keys.sh - pip install securesystemslib - fi - pip install git+https://github.com/conda/conda-content-trust.git@main - - ./testserver.sh - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - libmamba_static_win: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest] - - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./libmamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - - name: build libmamba-static - shell: cmd /C call {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - mkdir build - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DBUILD_LIBMAMBA=ON ^ - -DBUILD_STATIC=ON ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ - -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ - -GNinja - if %errorlevel% neq 0 exit /b %errorlevel% - ninja - - name: build cache statistics - run: sccache --show-stats - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - mamba_python_tests_win: - needs: [libmamba_static_win] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest] - python-version: ["3.7"] - - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./mamba/environment-dev.yml - environment-name: build_env - cache-env: true - extra-specs: | - conda-build - curl - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static_win-${{ matrix.os }} - - name: run conda init - shell: bash -l {0} - run: conda init - - name: build libmamba Python bindings - shell: cmd /C call {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - mkdir build - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DBUILD_LIBMAMBAPY=ON ^ - -DBUILD_LIBMAMBA=ON ^ - -DBUILD_SHARED=ON ^ - -DBUILD_MAMBA_PACKAGE=ON ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ - -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ - -GNinja - if %errorlevel% neq 0 exit /b %errorlevel% - ninja - if %errorlevel% neq 0 exit /b %errorlevel% - ninja install - - name: install libmambapy - shell: cmd /C call {0} - run: | - call micromamba activate build_env - pip install -e .\libmambapy\ --no-deps - - name: build cache statistics - run: sccache --show-stats - - name: install mamba - shell: bash -l {0} - run: | - python --version - pip install ./mamba[test] --no-deps - - name: run mamba tests suite - shell: bash -l {0} - run: pytest -v --capture=tee-sys mamba/tests - - name: Run create command - shell: bash -l {0} - run: mamba create -n test_env xtensor -c conda-forge -y - - name: Run env create command - shell: bash -l {0} - run: mamba env create -f mamba/tests/test_env.yml - - name: Run env update command - shell: bash -l {0} - run: mamba env update -f mamba/tests/update_env.yml - - name: Run local channel checks - shell: bash -l {0} - run: | - mkdir -p $CONDA_PREFIX/conda-bld/win-64 - echo $PATH - micromamba list - micromamba info - curl --version - curl https://anaconda.org/conda-forge/xtensor/0.21.7/download/win-64/xtensor-0.21.7-h7ef1ec2_0.tar.bz2 -L -o $CONDA_PREFIX/conda-bld/win-64/xtensor-0.21.7-h7ef1ec2_0.tar.bz2 - curl https://anaconda.org/conda-forge/xtl/0.6.21/download/win-64/xtl-0.6.21-h5362a0b_0.tar.bz2 -L -o $CONDA_PREFIX/conda-bld/win-64/xtl-0.6.21-h5362a0b_0.tar.bz2 - conda index $CONDA_PREFIX/conda-bld - mamba create -n l_o_cal_test xtensor -c local -c conda-forge -y - - conda list -n l_o_cal_test - # cut first couple of lines to remove prefix path - conda list -n l_o_cal_test | tail -n +3 > list.txt - if [ "$(grep -c "local" list.txt)" -ne 2 ]; then - exit 1 - fi - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - libmamba_cpp_tests_win: - needs: [libmamba_static_win] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest] - python-version: ["3.7"] - - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./libmamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static_win-${{ matrix.os }} - - name: build and run libmamba C++ tests - shell: cmd /C call {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - mkdir build - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DBUILD_LIBMAMBA_TESTS=ON ^ - -DBUILD_LIBMAMBA=ON ^ - -DBUILD_SHARED=ON ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ - -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ - -GNinja - if %errorlevel% neq 0 exit /b %errorlevel% - ninja install - if %errorlevel% neq 0 exit /b %errorlevel% - ninja test - - name: build cache statistics - run: sccache --show-stats - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - umamba_tests_win: - needs: [libmamba_static_win] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest] - python-version: ["3.7"] - - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./micromamba/environment-dev.yml - environment-name: build_env - cache-env: true - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - restore-keys: | - libmamba_static_win-${{ matrix.os }} - - name: build micromamba - shell: cmd /C call {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - mkdir build - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ - -DBUILD_MICROMAMBA=ON ^ - -DMICROMAMBA_LINKAGE=STATIC ^ - -DBUILD_LIBMAMBA=ON ^ - -DBUILD_STATIC=ON ^ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ - -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ - -GNinja - if %errorlevel% neq 0 exit /b %errorlevel% - ninja install - - name: check that micromamba runs - shell: cmd /C call {0} - run: | - call micromamba activate build_env - .\build\micromamba\micromamba.exe --help - - name: build cache statistics - run: sccache --show-stats - - name: tar micromamba artifact - run: tar -cvf umamba.tar build/micromamba/micromamba.exe - - uses: actions/upload-artifact@v2 - with: - name: _internal_micromamba_binary - path: umamba.tar - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs - - umamba_tests_win_cmd: - needs: [umamba_tests_win] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest] - python-version: ["3.7"] - - steps: - - uses: actions/checkout@v3 - - uses: actions/download-artifact@v2 - with: - name: _internal_micromamba_binary - - - name: untar micromamba artifact - shell: bash -l -eo pipefail {0} - run: | - tar -xvf umamba.tar - - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./micromamba/environment-dev.yml - environment-name: build_env - extra-specs: menuinst - - - name: micromamba python based tests with pwsh - shell: powershell - run: | - $env:PYTHONIOENCODING='UTF-8' - $env:MAMBA_ROOT_PREFIX = Join-Path -Path $pwd -ChildPath 'mambaroot' - $env:MAMBA_TEST_SHELL_TYPE='powershell' - - pytest -v --capture=tee-sys micromamba/tests/ - - # - name: micromamba python based tests - # shell: cmd /C call {0} - # run: | - # if %errorlevel% neq 0 exit /b %errorlevel% - # set PYTHONIOENCODING=UTF-8 - # if %errorlevel% neq 0 exit /b %errorlevel% - # set MAMBA_ROOT_PREFIX=%cd%\mambaroot - # if %errorlevel% neq 0 exit /b %errorlevel% - # set MAMBA_TEST_SHELL_TYPE=cmd.exe - # if %errorlevel% neq 0 exit /b %errorlevel% - # reg delete "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /f - # if %errorlevel% neq 0 exit /b %errorlevel% - # - # pytest -v --capture=tee-sys micromamba/tests/test_shell.py - - # - name: micromamba python based tests - # shell: bash -l -eo pipefail {0} - # run: | - # export PYTHONIOENCODING=UTF-8 - # export MAMBA_ROOT_PREFIX=~/mambaroot - # export MAMBA_TEST_SHELL_TYPE=bash - # - # pytest -v --capture=tee-sys micromamba/tests/test_shell.py - - - name: Cleanup - shell: bash -l {0} - if: always() - run: | - # Do not cache temporary envs with 'cache-env: true' - rm -rf $(micromamba info --json | jq -r '."env location"')/envs diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml deleted file mode 100644 index e58bad0576..0000000000 --- a/.github/workflows/static_build.yml +++ /dev/null @@ -1,140 +0,0 @@ -name: Fully static binary builds - -on: -# push: -# branches: -# - main -# pull_request: -# branches: -# - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - micromamba_full_static: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./micromamba/environment-dev.yml - environment-name: build_env - cache-env: true - - name: create build environment - run: micromamba install -y -n build_env -f ./libmamba/environment-static-dev.yml - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - - name: build micromamba - shell: bash -l {0} - run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DBUILD_LIBMAMBA=ON \ - -DBUILD_STATIC_DEPS=ON \ - -DBUILD_STATIC=ON \ - -DBUILD_MICROMAMBA=ON \ - -DMICROMAMBA_STATIC_DEPS=ON \ - -DMICROMAMBA_LINKAGE=FULL_STATIC \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja - - name: check that micromamba runs - shell: bash -l {0} - run: | - micromamba activate build_env - build/micromamba/micromamba --version - - name: build cache statistics - run: sccache --show-stats - - uses: actions/upload-artifact@v3 - with: - name: Fully static binary (${{ matrix.os }}) - path: build/micromamba/micromamba - - micromamba_full_static_win: - # Don't run this job branches because it is very slow - if: github.ref == 'refs/heads/main' - - # These build instructions are based on https://github.com/conda-forge/micromamba-feedstock - runs-on: windows-2019 - steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: ./libmamba/environment-static-dev-win.yml - environment-name: build_env - cache-env: true # this also caches the vcpkg builds - - name: build static windows dependencies with vcpkg - shell: cmd /C CALL {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - mkdir build - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - git clone https://github.com/conda-forge/micromamba-feedstock.git - if %errorlevel% neq 0 exit /b %errorlevel% - ROBOCOPY micromamba-feedstock/recipe/libsolv %VCPKG_ROOT%/ports/libsolv - @rem ROBOCOPY has 0 and 1 as successfull exit codes - if %errorlevel% neq 0 if %errorlevel% neq 1 exit /b %errorlevel% - SET VCPKG_BUILD_TYPE=release && vcpkg install libsolv[conda] --triplet x64-windows-static - if %errorlevel% neq 0 exit /b %errorlevel% - vcpkg install "libarchive[bzip2,lz4,lzma,lzo,openssl,zstd]" --triplet x64-windows-static - if %errorlevel% neq 0 exit /b %errorlevel% - vcpkg install curl --triplet x64-windows-static - if %errorlevel% neq 0 exit /b %errorlevel% - vcpkg install yaml-cpp --triplet x64-windows-static - if %errorlevel% neq 0 exit /b %errorlevel% - vcpkg install reproc --triplet x64-windows-static - if %errorlevel% neq 0 exit /b %errorlevel% - set CMAKE_PREFIX_PATH=%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH% - if %errorlevel% neq 0 exit /b %errorlevel% - - name: Apply libmamba.patch - run: | - cd libmamba - patch < ../build/micromamba-feedstock/recipe/libmamba.patch - shell: bash - - uses: hendrikmuhs/ccache-action@main - with: - variant: sccache - key: ${{ github.job }}-windows-2019 - - name: build micromamba - shell: cmd /C CALL {0} - run: | - call micromamba activate build_env - if %errorlevel% neq 0 exit /b %errorlevel% - cd build - if %errorlevel% neq 0 exit /b %errorlevel% - cmake .. ^ - -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ - -D CMAKE_PREFIX_PATH="%VCPKG_ROOT%\installed\x64-windows-static;%CMAKE_PREFIX_PATH%" ^ - -D CMAKE_BUILD_TYPE="Release" ^ - -D BUILD_LIBMAMBA=ON ^ - -D BUILD_STATIC_DEPS=ON ^ - -D BUILD_MICROMAMBA=ON ^ - -D MICROMAMBA_LINKAGE=FULL_STATIC ^ - -G "Ninja" - if %errorlevel% neq 0 exit /b %errorlevel% - ninja install - if %errorlevel% neq 0 exit /b %errorlevel% - sccache --show-stats - if %errorlevel% neq 0 exit /b %errorlevel% - .\micromamba\micromamba.exe --version - if %errorlevel% neq 0 exit /b %errorlevel% - .\micromamba\micromamba.exe --help - if %errorlevel% neq 0 exit /b %errorlevel% - - uses: actions/upload-artifact@v3 - with: - name: Fully static binary (windows-2019) - path: build/micromamba/micromamba.exe diff --git a/.github/workflows/test_micro.mamba.pm.yml b/.github/workflows/test_micro.mamba.pm.yml deleted file mode 100644 index 15d72a42dd..0000000000 --- a/.github/workflows/test_micro.mamba.pm.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Test micro.mamba.pm - -on: -# schedule: -# - cron: '0 10 * * *' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - issues: write - -defaults: - run: - shell: bash -el {0} - -jobs: - test_micro_mamba_pm: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - {os: ubuntu-latest, shell: bash, shell-source-param: -i} - - {os: macos-latest, shell: zsh, shell-source-param: -i} - - {os: macos-latest, shell: bash, shell-source-param: -l} - - {os: windows-latest, shell: bash, shell-source-param: -l} - steps: - - name: Install Micromamba (${{ matrix.os }}, ${{ matrix.shell }}) - run: | - # TODO: Update install.sh script for Windows - if [ ${{ matrix.os }} = windows-latest ]; then - mkdir -p ~/bin - curl -Ls https://micro.mamba.pm/api/micromamba/win-64/latest \ - | bunzip2 | tar xOf - Library/bin/micromamba.exe > ~/bin/micromamba.exe - else - curl http://micro.mamba.pm/install.sh | ${{ matrix.shell }} - fi - - name: Test Micromamba - # use either -l or -i to source .bash_profile or .bashrc/.zshrc - run: | - ${{ matrix.shell }} ${{ matrix.shell-source-param }} -ec micromamba - - uses: dblock/create-a-github-issue@2c9fa0d32c24d651281c37d21e5b49e333500fe8 - #if: failure() - if: false - with: - filename: .github/workflows/test_issue.md - update_existing: true - search_existing: all - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 6072149d17..12baac38aa 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -6,8 +6,7 @@ package: version: {{ version }} source: - - url: https://github.com/mamba-org/mamba/archive/refs/tags/micromamba-{{ version }}.tar.gz - sha256: 19c1cec502536f5cbec82e2fc56db1c6337fb8b18ddc12472182f9df2e94cc40 + - git_url: ../ patches: - libmamba.patch From 742669d1fc92b699f70f81a5983573493473e780 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 14:42:11 +0200 Subject: [PATCH 09/49] deactivate linux+macos --- .github/workflows/conda-build-linux.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 23518e54e8..bbd15dde53 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -8,6 +8,7 @@ on: - main jobs: linux-conda-build: + if: false name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest env: @@ -33,6 +34,7 @@ jobs: conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} macos-conda-build: + if: false name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: macos-latest env: From 00120772d74ea832453ddefe963e84e8140dd5aa Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 15:16:46 +0200 Subject: [PATCH 10/49] apply patch --- conda.recipe/meta.yaml | 4 +-- libmamba/CMakeLists.txt | 62 +++++------------------------------------ 2 files changed, 9 insertions(+), 57 deletions(-) diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 12baac38aa..09dc8d0901 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -7,8 +7,8 @@ package: source: - git_url: ../ - patches: - - libmamba.patch +# patches: +# - libmamba.patch build: number: {{ build_num }} diff --git a/libmamba/CMakeLists.txt b/libmamba/CMakeLists.txt index 6103bf9565..aa2995c10e 100644 --- a/libmamba/CMakeLists.txt +++ b/libmamba/CMakeLists.txt @@ -341,7 +341,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) find_package(CURL CONFIG REQUIRED) find_package(yaml-cpp CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) - find_package(LibLZMA CONFIG REQUIRED) + find_library(LIBLZMA_LIBRARIES lzma REQUIRED) + find_library(LZ4_LIBRARY NAMES lz4) find_library(LZO2_LIBRARY NAMES lzo2) find_package(zstd CONFIG REQUIRED) @@ -354,8 +355,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) find_package(tl-expected REQUIRED) find_library(LIBXML2_LIBRARY NAMES libxml2) - find_library(ICONV_LIBRARY NAMES libiconv) - find_library(CHARSET_LIBRARY NAMES libcharset) + find_library(ICONV_LIBRARY NAMES iconv) + find_library(CHARSET_LIBRARY NAMES charset) message("Found: ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY}") target_link_libraries(${target_name} PUBLIC @@ -364,14 +365,14 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY} - libzstd + zstd::libzstd_static ${LZ4_LIBRARY} ${LZO2_LIBRARY} ${BZIP2_LIBRARIES} ${LIBLZMA_LIBRARIES} CURL::libcurl nlohmann_json::nlohmann_json - ${YAML_CPP_LIBRARIES} + yaml-cpp ${LIBSOLV_BUILD_STATICRARIES} ${LIBSOLVEXT_BUILD_STATICRARIES} ${sodium_LIBRARY_RELEASE} @@ -509,53 +510,4 @@ endif () # Tests if (BUILD_TESTS) add_subdirectory(tests) -endif() - -# Installation -# ============ - -include(GNUInstallDirs) -include(CMakePackageConfigHelpers) - -set(LIBMAMBA_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for libmambaConfig.cmake") - -install(TARGETS ${libmamba_targets} - EXPORT ${PROJECT_NAME}-targets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - -install(DIRECTORY "${LIBMAMBA_INCLUDE_DIR}/" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - FILES_MATCHING - PATTERN "*.hpp" - PATTERN "*.h") - -# Makes the project importable from the build directory -export(EXPORT ${PROJECT_NAME}-targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake") - -# Configure 'mambaConfig.cmake' for a build tree -set(MAMBA_CONFIG_CODE "####### Expanded from \@MAMBA_CONFIG_CODE\@ #######\n") -set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}set(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake;\${CMAKE_MODULE_PATH}\")\n") -set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}##################################################") -configure_package_config_file(${PROJECT_NAME}Config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION ${PROJECT_BINARY_DIR}) - -# Configure 'mambaConfig.cmake' for an install tree -set(MAMBA_CONFIG_CODE "") -configure_package_config_file(${PROJECT_NAME}Config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) - - -write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake - VERSION ${MAMBA_VERSION_MAJOR}.${MAMBA_VERSION_MINOR}.${MAMBA_VERSION_PATCH} - COMPATIBILITY AnyNewerVersion) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake - DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) -install(EXPORT ${PROJECT_NAME}-targets - FILE ${PROJECT_NAME}Targets.cmake - DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) +endif() \ No newline at end of file From 3fc67115cc2e549a5950ead1a89e8aad8b6aed5c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 15:43:16 +0200 Subject: [PATCH 11/49] add patch to requirements --- .github/workflows/conda-build-linux.yml | 4 ++-- conda.recipe/meta.yaml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index bbd15dde53..f3fddbcd30 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -86,8 +86,8 @@ jobs: miniforge-variant: Mambaforge miniforge-version: 4.10.0-0 use-mamba: true - - name: Debug - uses: mxschmitt/action-tmate@v3 +# - name: Debug +# uses: mxschmitt/action-tmate@v3 - name: Build conda package shell: pwsh run: | diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 09dc8d0901..9464057efb 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -31,6 +31,7 @@ requirements: - make # [unix] - ninja # [win] - vcpkg # [win] + - patch # [win] - python # [win] # force a recent curl version for windows - curl >=7.75 # [win] From 1e11aae2fff8e86be1998095b6ac5801fcb1007b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 15:48:21 +0200 Subject: [PATCH 12/49] add m2-patch --- conda.recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 9464057efb..128cdc939e 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -31,7 +31,7 @@ requirements: - make # [unix] - ninja # [win] - vcpkg # [win] - - patch # [win] + - m2-patch # [win] - python # [win] # force a recent curl version for windows - curl >=7.75 # [win] From d830f24ebd1df0fbd78d23c3dfa9e4bf0d4df1fb Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 16:04:57 +0200 Subject: [PATCH 13/49] Add powerpc --- .github/workflows/conda-build-linux.yml | 4 ++-- .github/workflows/conda-build.sh | 7 ++++++- .github/workflows/macos-conda-build.sh | 10 +++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index f3fddbcd30..bfff976504 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -8,7 +8,6 @@ on: - main jobs: linux-conda-build: - if: false name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest env: @@ -19,6 +18,7 @@ jobs: CONDA_BUILD_YML: - linux_64_ - linux_aarch64_ + - linux_ppc64le_ steps: - name: Pull image run: docker pull condaforge/mambaforge:latest @@ -34,7 +34,6 @@ jobs: conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} macos-conda-build: - if: false name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: macos-latest env: @@ -64,6 +63,7 @@ jobs: run: ./.github/workflows/macos-conda-build.sh windows-conda-build: + if: false name: "Windows - conda-build - ${{ matrix.CONDA_BUILD_YML }}" runs-on: windows-2019 env: diff --git a/.github/workflows/conda-build.sh b/.github/workflows/conda-build.sh index 71ec92f494..67d7f19481 100755 --- a/.github/workflows/conda-build.sh +++ b/.github/workflows/conda-build.sh @@ -4,8 +4,13 @@ set -eo pipefail export CONDA_BUILD_YML=$1 +# add --no-test if we are not building for x86 +if [[ $CONDA_BUILD_YML != linux_64_ ]]; then + CONDA_BUILD_ARGS="--no-test" +fi + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" source ${SCRIPT_DIR}/base.sh $* conda activate base mamba install -y conda-build -conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe +conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh index 89f6e84485..4a8cb91baf 100755 --- a/.github/workflows/macos-conda-build.sh +++ b/.github/workflows/macos-conda-build.sh @@ -6,10 +6,10 @@ mamba install -y conda-build # Don't test cross-compiled result (there is no emulation) and use the latest MacOS SDK. if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then CONDA_BUILD_ARGS="--no-test" - export CONDA_BUILD_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) - cat <> .ci_support/${CONDA_BUILD_YML}.yaml -CONDA_BUILD_SYSROOT: - - "${CONDA_BUILD_SYSROOT}" -EOF +# export CONDA_BUILD_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) +# cat <> .ci_support/${CONDA_BUILD_YML}.yaml +#CONDA_BUILD_SYSROOT: +# - "${CONDA_BUILD_SYSROOT}" +#EOF fi conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} From ff12a50a88eb92ff9e4032617de55bee4d01504d Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:00:48 +0200 Subject: [PATCH 14/49] move to p-w-m --- .github/workflows/conda-build-linux.yml | 9 ++++----- .github/workflows/macos-conda-build.sh | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index bfff976504..4789e7da73 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -52,12 +52,11 @@ jobs: ref: ${{ github.head_ref }} - name: Fetch full git history run: git fetch --prune --unshallow - - uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169 + - uses: mamba-org/provision-with-micromamba@main with: - miniforge-variant: Mambaforge - miniforge-version: 4.10.0-0 - use-mamba: true - channels: conda-forge + environment-file: false + environment-name: mambabuild + extra-specs: boa - name: Build conda package shell: bash -l {0} run: ./.github/workflows/macos-conda-build.sh diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh index 4a8cb91baf..12e5263295 100755 --- a/.github/workflows/macos-conda-build.sh +++ b/.github/workflows/macos-conda-build.sh @@ -12,4 +12,4 @@ if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then # - "${CONDA_BUILD_SYSROOT}" #EOF fi -conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} +micromamba mambabuild -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} From f7cb57c8e7e40fd3b88af84f6207799de851200b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:02:08 +0200 Subject: [PATCH 15/49] conda-forge --- .github/workflows/conda-build-linux.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 4789e7da73..e508bf7388 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -54,6 +54,7 @@ jobs: run: git fetch --prune --unshallow - uses: mamba-org/provision-with-micromamba@main with: + channels: conda-forge environment-file: false environment-name: mambabuild extra-specs: boa From d156c84c129cb797235219b63a5988d08264dd81 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:06:07 +0200 Subject: [PATCH 16/49] conda mambabuild --- .github/workflows/macos-conda-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh index 12e5263295..635d164135 100755 --- a/.github/workflows/macos-conda-build.sh +++ b/.github/workflows/macos-conda-build.sh @@ -12,4 +12,4 @@ if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then # - "${CONDA_BUILD_SYSROOT}" #EOF fi -micromamba mambabuild -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} +conda mambabuild -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} From 6c6c2d5e00dfee7b1569af215cdef3449423903b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:20:29 +0200 Subject: [PATCH 17/49] linux no docker --- .github/workflows/conda-build-linux.yml | 50 ++++++++++++++++++------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index e508bf7388..469aae72f5 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -7,31 +7,57 @@ on: branches: - main jobs: +# linux-conda-build: +# name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" +# runs-on: ubuntu-latest +# env: +# CI: True +# strategy: +# fail-fast: true +# matrix: +# CONDA_BUILD_YML: +# - linux_64_ +# - linux_aarch64_ +# - linux_ppc64le_ +# steps: +# - name: Pull image +# run: docker pull condaforge/mambaforge:latest +# - name: Checkout branch +# uses: actions/checkout@v3 +# with: +# ref: ${{ github.head_ref }} +# - name: Fetch full git history +# run: git fetch --prune --unshallow +# - name: Run CI inside of container +# uses: ./.github/actions/conda-build +# with: +# conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} + linux-conda-build: name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest env: CI: True + CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} strategy: - fail-fast: true + fail-fast: false matrix: CONDA_BUILD_YML: - linux_64_ - linux_aarch64_ - linux_ppc64le_ steps: - - name: Pull image - run: docker pull condaforge/mambaforge:latest - name: Checkout branch uses: actions/checkout@v3 + - uses: mamba-org/provision-with-micromamba@main with: - ref: ${{ github.head_ref }} - - name: Fetch full git history - run: git fetch --prune --unshallow - - name: Run CI inside of container - uses: ./.github/actions/conda-build - with: - conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} + channels: conda-forge + environment-file: false + environment-name: mambabuild + extra-specs: boa + - name: Build conda package + shell: bash -l {0} + run: ./.github/workflows/conda-build.sh macos-conda-build: name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" @@ -48,10 +74,6 @@ jobs: steps: - name: Checkout branch uses: actions/checkout@v3 - with: - ref: ${{ github.head_ref }} - - name: Fetch full git history - run: git fetch --prune --unshallow - uses: mamba-org/provision-with-micromamba@main with: channels: conda-forge From be35ce17c64b830c144c66abba22a1651aee9b22 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:24:45 +0200 Subject: [PATCH 18/49] ? --- .github/workflows/conda-build.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/conda-build.sh b/.github/workflows/conda-build.sh index 67d7f19481..61f9553ad1 100755 --- a/.github/workflows/conda-build.sh +++ b/.github/workflows/conda-build.sh @@ -2,8 +2,6 @@ set -eo pipefail -export CONDA_BUILD_YML=$1 - # add --no-test if we are not building for x86 if [[ $CONDA_BUILD_YML != linux_64_ ]]; then CONDA_BUILD_ARGS="--no-test" From 9296a9ee65d103a5a76bcfd544466f046de4fdf2 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 17:33:42 +0200 Subject: [PATCH 19/49] tmate --- .github/workflows/conda-build-linux.yml | 28 ++----------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 469aae72f5..61840bd7e3 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -7,32 +7,6 @@ on: branches: - main jobs: -# linux-conda-build: -# name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" -# runs-on: ubuntu-latest -# env: -# CI: True -# strategy: -# fail-fast: true -# matrix: -# CONDA_BUILD_YML: -# - linux_64_ -# - linux_aarch64_ -# - linux_ppc64le_ -# steps: -# - name: Pull image -# run: docker pull condaforge/mambaforge:latest -# - name: Checkout branch -# uses: actions/checkout@v3 -# with: -# ref: ${{ github.head_ref }} -# - name: Fetch full git history -# run: git fetch --prune --unshallow -# - name: Run CI inside of container -# uses: ./.github/actions/conda-build -# with: -# conda_build_yml: ${{ matrix.CONDA_BUILD_YML }} - linux-conda-build: name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" runs-on: ubuntu-latest @@ -58,6 +32,8 @@ jobs: - name: Build conda package shell: bash -l {0} run: ./.github/workflows/conda-build.sh + - uses: mxschmitt/action-tmate@v3 + macos-conda-build: name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" From e7817c9de08c6a5f72f6fa7a83803053252935df Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 18:06:29 +0200 Subject: [PATCH 20/49] Improve CI --- .github/workflows/conda-build-linux.yml | 40 ++++++++++++++++++------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 61840bd7e3..9ab585eaaf 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -8,7 +8,7 @@ on: - main jobs: linux-conda-build: - name: "Linux - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" + name: "micromamba - ${{ matrix.TARGET }}" runs-on: ubuntu-latest env: CI: True @@ -16,10 +16,10 @@ jobs: strategy: fail-fast: false matrix: - CONDA_BUILD_YML: - - linux_64_ - - linux_aarch64_ - - linux_ppc64le_ + include: + - {CONDA_BUILD_YML: linux_64_, TARGET: linux-64} + - {CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64} + - {CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le} steps: - name: Checkout branch uses: actions/checkout@v3 @@ -32,11 +32,19 @@ jobs: - name: Build conda package shell: bash -l {0} run: ./.github/workflows/conda-build.sh - - uses: mxschmitt/action-tmate@v3 - + - name: Unpack micromamba package + shell: bash -l {0} + run: | + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} + tar -xvf micromamba-*.tar.bz2 + - name: Upload micromamba + uses: actions/upload-artifact@v2 + with: + name: micromamba-${{ matrix.TARGET }} + path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba macos-conda-build: - name: "MacOS - conda-build - Python ${{ matrix.CONDA_BUILD_YML }}" + name: "micromamba - ${{ matrix.TARGET }}" runs-on: macos-latest env: CI: True @@ -44,9 +52,9 @@ jobs: strategy: fail-fast: false matrix: - CONDA_BUILD_YML: - - osx_64_ - - osx_arm64_ + include: + - { CONDA_BUILD_YML: osx_64_, TARGET: osx-64 } + - { CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64 } steps: - name: Checkout branch uses: actions/checkout@v3 @@ -59,6 +67,16 @@ jobs: - name: Build conda package shell: bash -l {0} run: ./.github/workflows/macos-conda-build.sh + - name: Unpack micromamba package + shell: bash -l {0} + run: | + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} + tar -xvf micromamba-*.tar.bz2 + - name: Upload micromamba + uses: actions/upload-artifact@v2 + with: + name: micromamba-${{ matrix.TARGET }} + path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba windows-conda-build: if: false From 923e804fd3fde381a436c66d2c1be6812aac7e91 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 19:00:15 +0200 Subject: [PATCH 21/49] does this work? --- .github/actions/conda-build/action.yml | 14 --------- .github/workflows/conda-build-linux.yml | 40 ++++--------------------- .github/workflows/macos-conda-build.sh | 6 ---- 3 files changed, 5 insertions(+), 55 deletions(-) delete mode 100644 .github/actions/conda-build/action.yml diff --git a/.github/actions/conda-build/action.yml b/.github/actions/conda-build/action.yml deleted file mode 100644 index 8d732eb52c..0000000000 --- a/.github/actions/conda-build/action.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Run image -description: Run private container from GitHub Packages Registry after Docker login -inputs: - conda_build_yml: - description: "conda-build variant file" - required: true -runs: - using: 'docker' - image: condaforge/mambaforge:latest - args: - - /bin/bash - - "-l" - - "-c" - - "./.github/workflows/conda-build.sh ${{ inputs.conda_build_yml }}" diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 9ab585eaaf..dfd51487ef 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -1,4 +1,4 @@ -name: conda-build Linux +name: micromamba static build on: push: branches: @@ -31,12 +31,13 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: ./.github/workflows/conda-build.sh + run: conda mambabuild -m .ci_support/${{ CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != linux-64 && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} tar -xvf micromamba-*.tar.bz2 + chmod +x bin/micromamba - name: Upload micromamba uses: actions/upload-artifact@v2 with: @@ -66,46 +67,15 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: ./.github/workflows/macos-conda-build.sh + run: conda mambabuild -m .ci_support/${{ CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != osx-64 && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} tar -xvf micromamba-*.tar.bz2 + chmod +x bin/micromamba - name: Upload micromamba uses: actions/upload-artifact@v2 with: name: micromamba-${{ matrix.TARGET }} path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba - - windows-conda-build: - if: false - name: "Windows - conda-build - ${{ matrix.CONDA_BUILD_YML }}" - runs-on: windows-2019 - env: - CI: True - CONDA_BUILD_YML: "${{ matrix.CONDA_BUILD_YML }}" - strategy: - fail-fast: false - matrix: - CONDA_BUILD_YML: - - win_64_ - steps: - - name: Checkout branch - uses: actions/checkout@v3 - with: - ref: ${{ github.head_ref }} - - name: Fetch full git history - run: git fetch --prune --unshallow - - uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169 - with: - miniforge-variant: Mambaforge - miniforge-version: 4.10.0-0 - use-mamba: true -# - name: Debug -# uses: mxschmitt/action-tmate@v3 - - name: Build conda package - shell: pwsh - run: | - mamba install -n base -y conda-build - conda build -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh index 635d164135..aa23e3733f 100755 --- a/.github/workflows/macos-conda-build.sh +++ b/.github/workflows/macos-conda-build.sh @@ -2,14 +2,8 @@ set -exo pipefail -mamba install -y conda-build # Don't test cross-compiled result (there is no emulation) and use the latest MacOS SDK. if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then CONDA_BUILD_ARGS="--no-test" -# export CONDA_BUILD_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) -# cat <> .ci_support/${CONDA_BUILD_YML}.yaml -#CONDA_BUILD_SYSROOT: -# - "${CONDA_BUILD_SYSROOT}" -#EOF fi conda mambabuild -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} From 6930e435880d221366767f3993b8dacbd5c18743 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 19:01:46 +0200 Subject: [PATCH 22/49] fix workflow file --- .github/workflows/conda-build-linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index dfd51487ef..31aa9040d2 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -31,7 +31,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != linux-64 && '--no-test' || '' }} + run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != linux-64 && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | @@ -67,7 +67,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != osx-64 && '--no-test' || '' }} + run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != osx-64 && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | From 12fccfbbbc417940dc41dd4e3f36961a30ea098b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 19:02:20 +0200 Subject: [PATCH 23/49] fix workflow file 2 --- .github/workflows/conda-build-linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 31aa9040d2..33050d86de 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -31,7 +31,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != linux-64 && '--no-test' || '' }} + run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | @@ -67,7 +67,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != osx-64 && '--no-test' || '' }} + run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | From 964464c2721484b0985351a54a22659a9c725479 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:10:20 +0200 Subject: [PATCH 24/49] remove conda recipe --- .github/workflows/conda-build-linux.yml | 21 +- conda.recipe/CLI11_LICENSE.txt | 25 - conda.recipe/CPP_FILESYSTEM_LICENSE.txt | 19 - conda.recipe/CURL_LICENSE.txt | 11 - conda.recipe/C_ARES_LICENSE.txt | 15 - conda.recipe/KRB5_LICENSE.txt | 1286 ----------------- conda.recipe/LIBARCHIVE_LICENSE.txt | 66 - conda.recipe/LIBEV_LICENSE.txt | 37 - conda.recipe/LIBLZ4_LICENSE.txt | 24 - conda.recipe/LIBNGHTTP2_LICENSE.txt | 23 - conda.recipe/LIBOPENSSL_3_LICENSE.txt | 177 --- conda.recipe/LIBOPENSSL_LICENSE.txt | 124 -- conda.recipe/LIBSOLV_LICENSE.txt | 28 - conda.recipe/NLOHMANN_JSON_LICENSE.txt | 21 - conda.recipe/REPROC_LICENSE.txt | 21 - conda.recipe/SPDLOG_LICENSE.txt | 25 - conda.recipe/TERMCOLOR_CPP_LICENSE.txt | 31 - conda.recipe/ZSTD_LICENSE.txt | 30 - conda.recipe/bld.bat | 39 - conda.recipe/build.sh | 22 - conda.recipe/conda_build_config.yaml | 6 - conda.recipe/libmamba.patch | 98 -- conda.recipe/libsolv/CONTROL | 9 - .../libsolv/add_strict_repo_prio_rule.patch | 296 ---- .../libsolv/conda_variant_priorization.patch | 438 ------ conda.recipe/libsolv/memcpy_to_memmove.patch | 13 - conda.recipe/libsolv/portfile.cmake | 57 - conda.recipe/libsolv/win_static_build.patch | 91 -- conda.recipe/meta.yaml | 110 -- 29 files changed, 20 insertions(+), 3143 deletions(-) delete mode 100644 conda.recipe/CLI11_LICENSE.txt delete mode 100644 conda.recipe/CPP_FILESYSTEM_LICENSE.txt delete mode 100644 conda.recipe/CURL_LICENSE.txt delete mode 100644 conda.recipe/C_ARES_LICENSE.txt delete mode 100644 conda.recipe/KRB5_LICENSE.txt delete mode 100644 conda.recipe/LIBARCHIVE_LICENSE.txt delete mode 100644 conda.recipe/LIBEV_LICENSE.txt delete mode 100644 conda.recipe/LIBLZ4_LICENSE.txt delete mode 100644 conda.recipe/LIBNGHTTP2_LICENSE.txt delete mode 100644 conda.recipe/LIBOPENSSL_3_LICENSE.txt delete mode 100644 conda.recipe/LIBOPENSSL_LICENSE.txt delete mode 100644 conda.recipe/LIBSOLV_LICENSE.txt delete mode 100644 conda.recipe/NLOHMANN_JSON_LICENSE.txt delete mode 100644 conda.recipe/REPROC_LICENSE.txt delete mode 100644 conda.recipe/SPDLOG_LICENSE.txt delete mode 100644 conda.recipe/TERMCOLOR_CPP_LICENSE.txt delete mode 100644 conda.recipe/ZSTD_LICENSE.txt delete mode 100644 conda.recipe/bld.bat delete mode 100644 conda.recipe/build.sh delete mode 100644 conda.recipe/conda_build_config.yaml delete mode 100644 conda.recipe/libmamba.patch delete mode 100644 conda.recipe/libsolv/CONTROL delete mode 100644 conda.recipe/libsolv/add_strict_repo_prio_rule.patch delete mode 100644 conda.recipe/libsolv/conda_variant_priorization.patch delete mode 100644 conda.recipe/libsolv/memcpy_to_memmove.patch delete mode 100644 conda.recipe/libsolv/portfile.cmake delete mode 100644 conda.recipe/libsolv/win_static_build.patch delete mode 100644 conda.recipe/meta.yaml diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 33050d86de..712e2fbb07 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -23,6 +23,14 @@ jobs: steps: - name: Checkout branch uses: actions/checkout@v3 + - name: Checkout micromamba-feedstock + uses: actions/checkout@v3 + with: + repository: conda-forge/micromamba-feedstock + path: micromamba-feedstock + - name: Patch micromamba-feedstock + run: | + sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - uses: mamba-org/provision-with-micromamba@main with: channels: conda-forge @@ -31,7 +39,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | @@ -59,6 +67,17 @@ jobs: steps: - name: Checkout branch uses: actions/checkout@v3 + - name: Checkout micromamba-feedstock + uses: actions/checkout@v3 + with: + repository: conda-forge/micromamba-feedstock + path: micromamba-feedstock + - name: Patch micromamba-feedstock + run: | + sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/patches:/d' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/libmamba.patch/d' micromamba-feedstock/recipe/meta.yaml - uses: mamba-org/provision-with-micromamba@main with: channels: conda-forge diff --git a/conda.recipe/CLI11_LICENSE.txt b/conda.recipe/CLI11_LICENSE.txt deleted file mode 100644 index 17739d11c5..0000000000 --- a/conda.recipe/CLI11_LICENSE.txt +++ /dev/null @@ -1,25 +0,0 @@ -CLI11 1.8 Copyright (c) 2017-2019 University of Cincinnati, developed by Henry -Schreiner under NSF AWARD 1414736. All rights reserved. - -Redistribution and use in source and binary forms of CLI11, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -3. Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/CPP_FILESYSTEM_LICENSE.txt b/conda.recipe/CPP_FILESYSTEM_LICENSE.txt deleted file mode 100644 index 8b24faa71d..0000000000 --- a/conda.recipe/CPP_FILESYSTEM_LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018, Steffen Schümann - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/conda.recipe/CURL_LICENSE.txt b/conda.recipe/CURL_LICENSE.txt deleted file mode 100644 index ab7ceb34c0..0000000000 --- a/conda.recipe/CURL_LICENSE.txt +++ /dev/null @@ -1,11 +0,0 @@ -COPYRIGHT AND PERMISSION NOTICE - -Copyright (c) 1996 - 2020, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. - -All rights reserved. - -Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. diff --git a/conda.recipe/C_ARES_LICENSE.txt b/conda.recipe/C_ARES_LICENSE.txt deleted file mode 100644 index ad6bb52b72..0000000000 --- a/conda.recipe/C_ARES_LICENSE.txt +++ /dev/null @@ -1,15 +0,0 @@ -# c-ares license - -Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS -file. - -Copyright 1998 by the Massachusetts Institute of Technology. - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided that -the above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, and that -the name of M.I.T. not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. -M.I.T. makes no representations about the suitability of this software for any -purpose. It is provided "as is" without express or implied warranty. diff --git a/conda.recipe/KRB5_LICENSE.txt b/conda.recipe/KRB5_LICENSE.txt deleted file mode 100644 index 45bb7a6ad5..0000000000 --- a/conda.recipe/KRB5_LICENSE.txt +++ /dev/null @@ -1,1286 +0,0 @@ -Copyright |copy| 1985-2020 by the Massachusetts Institute of Technology. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Downloading of this software may constitute an export of cryptographic -software from the United States of America that is subject to the -United States Export Administration Regulations (EAR), 15 CFR 730-774. -Additional laws or regulations may apply. It is the responsibility of -the person or entity contemplating export to comply with all -applicable export laws and regulations, including obtaining any -required license from the U.S. government. - -The U.S. government prohibits export of encryption source code to -certain countries and individuals, including, but not limited to, the -countries of Cuba, Iran, North Korea, Sudan, Syria, and residents and -nationals of those countries. - -Documentation components of this software distribution are licensed -under a Creative Commons Attribution-ShareAlike 3.0 Unported License. -(https://creativecommons.org/licenses/by-sa/3.0/) - -Individual source code files are copyright MIT, Cygnus Support, -Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, -FundsXpress, and others. - -Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, -and Zephyr are trademarks of the Massachusetts Institute of Technology -(MIT). No commercial use of these trademarks may be made without -prior written permission of MIT. - -"Commercial use" means use of a name in a product or other for-profit -manner. It does NOT prevent a commercial firm from referring to the -MIT trademarks in order to convey information (although in doing so, -recognition of their trademark status should be given). - -------------------- - -The following copyright and permission notice applies to the -OpenVision Kerberos Administration system located in -``kadmin/create``, ``kadmin/dbutil``, ``kadmin/passwd``, -``kadmin/server``, ``lib/kadm5``, and portions of -``lib/rpc``: - - Copyright, OpenVision Technologies, Inc., 1993-1996, All Rights Reserved - - WARNING: Retrieving the OpenVision Kerberos Administration system source - code, as described below, indicates your acceptance of the following - terms. If you do not agree to the following terms, do not retrieve the - OpenVision Kerberos administration system. - - You may freely use and distribute the Source Code and Object Code - compiled from it, with or without modification, but this Source Code is - provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY, INCLUDING, WITHOUT - LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A - PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER EXPRESS OR IMPLIED. - IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY FOR ANY LOST PROFITS, - LOSS OF DATA OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR - FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS - AGREEMENT, INCLUDING, WITHOUT LIMITATION, THOSE RESULTING FROM THE USE - OF THE SOURCE CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR - ANY OTHER REASON. - - OpenVision retains all copyrights in the donated Source Code. OpenVision - also retains copyright to derivative works of the Source Code, whether - created by OpenVision or by a third party. The OpenVision copyright - notice must be preserved if derivative works are made based on the - donated Source Code. - - OpenVision Technologies, Inc. has donated this Kerberos Administration - system to MIT for inclusion in the standard Kerberos 5 distribution. - This donation underscores our commitment to continuing Kerberos - technology development and our gratitude for the valuable work which has - been performed by MIT and the Kerberos community. - -------------------- - - Portions contributed by Matt Crawford ``crawdad@fnal.gov`` were work - performed at Fermi National Accelerator Laboratory, which is operated - by Universities Research Association, Inc., under contract - DE-AC02-76CHO3000 with the U.S. Department of Energy. - -------------------- - -Portions of ``src/lib/crypto`` have the following copyright: - - Copyright |copy| 1998 by the FundsXpress, INC. - - All rights reserved. - - Export of this software from the United States of America may require - a specific license from the United States Government. It is the - responsibility of any person or organization contemplating export to - obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of FundsXpress. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. FundsXpress makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - - THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -------------------- - -The implementation of the AES encryption algorithm in -``src/lib/crypto/builtin/aes`` has the following copyright: - - | Copyright |copy| 2001, Dr Brian Gladman ``brg@gladman.uk.net``, - Worcester, UK. - | All rights reserved. - - LICENSE TERMS - - The free distribution and use of this software in both source and binary - form is allowed (with or without changes) provided that: - - 1. distributions of this source code include the above copyright - notice, this list of conditions and the following disclaimer; - 2. distributions in binary form include the above copyright - notice, this list of conditions and the following disclaimer - in the documentation and/or other associated materials; - 3. the copyright holder's name is not used to endorse products - built using this software without specific written permission. - - DISCLAIMER - - This software is provided 'as is' with no explcit or implied warranties - in respect of any properties, including, but not limited to, correctness - and fitness for purpose. - -------------------- - -Portions contributed by Red Hat, including the pre-authentication -plug-in framework and the NSS crypto implementation, contain the -following copyright: - - | Copyright |copy| 2006 Red Hat, Inc. - | Portions copyright |copy| 2006 Massachusetts Institute of Technology - | All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Red Hat, Inc., nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - -The bundled verto source code is subject to the following license: - - Copyright 2011 Red Hat, Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -------------------- - -The MS-KKDCP client implementation has the following copyright: - - Copyright 2013,2014 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - -The implementations of GSSAPI mechglue in GSSAPI-SPNEGO in -``src/lib/gssapi``, including the following files: - -.. parsed-literal:: - - lib/gssapi/generic/gssapi_err_generic.et - lib/gssapi/mechglue/g_accept_sec_context.c - lib/gssapi/mechglue/g_acquire_cred.c - lib/gssapi/mechglue/g_canon_name.c - lib/gssapi/mechglue/g_compare_name.c - lib/gssapi/mechglue/g_context_time.c - lib/gssapi/mechglue/g_delete_sec_context.c - lib/gssapi/mechglue/g_dsp_name.c - lib/gssapi/mechglue/g_dsp_status.c - lib/gssapi/mechglue/g_dup_name.c - lib/gssapi/mechglue/g_exp_sec_context.c - lib/gssapi/mechglue/g_export_name.c - lib/gssapi/mechglue/g_glue.c - lib/gssapi/mechglue/g_imp_name.c - lib/gssapi/mechglue/g_imp_sec_context.c - lib/gssapi/mechglue/g_init_sec_context.c - lib/gssapi/mechglue/g_initialize.c - lib/gssapi/mechglue/g_inquire_context.c - lib/gssapi/mechglue/g_inquire_cred.c - lib/gssapi/mechglue/g_inquire_names.c - lib/gssapi/mechglue/g_process_context.c - lib/gssapi/mechglue/g_rel_buffer.c - lib/gssapi/mechglue/g_rel_cred.c - lib/gssapi/mechglue/g_rel_name.c - lib/gssapi/mechglue/g_rel_oid_set.c - lib/gssapi/mechglue/g_seal.c - lib/gssapi/mechglue/g_sign.c - lib/gssapi/mechglue/g_store_cred.c - lib/gssapi/mechglue/g_unseal.c - lib/gssapi/mechglue/g_userok.c - lib/gssapi/mechglue/g_utils.c - lib/gssapi/mechglue/g_verify.c - lib/gssapi/mechglue/gssd_pname_to_uid.c - lib/gssapi/mechglue/mglueP.h - lib/gssapi/mechglue/oid_ops.c - lib/gssapi/spnego/gssapiP_spnego.h - lib/gssapi/spnego/spnego_mech.c - -and the initial implementation of incremental propagation, including -the following new or changed files: - -.. parsed-literal:: - - include/iprop_hdr.h - kadmin/server/ipropd_svc.c - lib/kdb/iprop.x - lib/kdb/kdb_convert.c - lib/kdb/kdb_log.c - lib/kdb/kdb_log.h - lib/krb5/error_tables/kdb5_err.et - kprop/kpropd_rpc.c - kprop/kproplog.c - -are subject to the following license: - - Copyright |copy| 2004 Sun Microsystems, Inc. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -------------------- - -Kerberos V5 includes documentation and software developed at the -University of California at Berkeley, which includes this copyright -notice: - - | Copyright |copy| 1983 Regents of the University of California. - | All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -------------------- - -Portions contributed by Novell, Inc., including the LDAP database -backend, are subject to the following license: - - | Copyright |copy| 2004-2005, Novell, Inc. - | All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * The copyright holder's name is not used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -------------------- - -Portions funded by Sandia National Laboratory -and developed by the University of Michigan's -Center for Information Technology Integration, -including the PKINIT implementation, are subject -to the following license: - - | COPYRIGHT |copy| 2006-2007 - | THE REGENTS OF THE UNIVERSITY OF MICHIGAN - | ALL RIGHTS RESERVED - - Permission is granted to use, copy, create derivative works - and redistribute this software and such derivative works - for any purpose, so long as the name of The University of - Michigan is not used in any advertising or publicity - pertaining to the use of distribution of this software - without specific, written prior authorization. If the - above copyright notice or any other identification of the - University of Michigan is included in any copy of any - portion of this software, then the disclaimer below must - also be included. - - THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION - FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY - PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF - MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE - REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE - FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR - CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING - OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN - IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES. - -------------------- - -The pkcs11.h file included in the PKINIT code has the -following license: - - | Copyright 2006 g10 Code GmbH - | Copyright 2006 Andreas Jellinghaus - - This file is free software; as a special exception the author gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. - -------------------- - -Portions contributed by Apple Inc. are subject to the following license: - - Copyright 2004-2008 Apple Inc. All Rights Reserved. - - Export of this software from the United States of America may require - a specific license from the United States Government. It is the - responsibility of any person or organization contemplating export to - obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of Apple Inc. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. Apple Inc. makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - - THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -------------------- - -The implementations of UTF-8 string handling in src/util/support and -src/lib/krb5/unicode are subject to the following copyright and -permission notice: - - | The OpenLDAP Public License - | Version 2.8, 17 August 2003 - - Redistribution and use of this software and associated documentation - ("Software"), with or without modification, are permitted provided - that the following conditions are met: - - 1. Redistributions in source form must retain copyright statements - and notices, - 2. Redistributions in binary form must reproduce applicable copyright - statements and notices, this list of conditions, and the following - disclaimer in the documentation and/or other materials provided - with the distribution, and - 3. Redistributions must contain a verbatim copy of this document. - - The OpenLDAP Foundation may revise this license from time to time. - Each revision is distinguished by a version number. You may use - this Software under terms of this license revision or under the - terms of any subsequent revision of the license. - - THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS - CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) - OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - The names of the authors and copyright holders must not be used in - advertising or otherwise to promote the sale, use or other dealing - in this Software without specific, written prior permission. Title - to copyright in this Software shall at all times remain with copyright - holders. - - OpenLDAP is a registered trademark of the OpenLDAP Foundation. - - Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, - California, USA. All Rights Reserved. Permission to copy and - distribute verbatim copies of this document is granted. - -------------------- - -Marked test programs in src/lib/krb5/krb have the following copyright: - - | Copyright |copy| 2006 Kungliga Tekniska Högskola - | (Royal Institute of Technology, Stockholm, Sweden). - | All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of KTH nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - -The KCM Mach RPC definition file used on macOS has the following copyright: - - | Copyright |copy| 2009 Kungliga Tekniska Högskola - | (Royal Institute of Technology, Stockholm, Sweden). - | All rights reserved. - - Portions Copyright |copy| 2009 Apple Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the Institute nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -------------------- - -Portions of the RPC implementation in src/lib/rpc and src/include/gssrpc -have the following copyright and permission notice: - - Copyright |copy| 2010, Oracle America, Inc. - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. Neither the name of the "Oracle America, Inc." nor the names of - its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - - Copyright |copy| 2006,2007,2009 - NTT (Nippon Telegraph and Telephone Corporation). All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY NTT "AS IS" AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - - Copyright 2000 by Carnegie Mellon University - - All Rights Reserved - - Permission to use, copy, modify, and distribute this software and its - documentation for any purpose and without fee is hereby granted, - provided that the above copyright notice appear in all copies and that - both that copyright notice and this permission notice appear in - supporting documentation, and that the name of Carnegie Mellon - University not be used in advertising or publicity pertaining to - distribution of the software without specific, written prior - permission. - - CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO - THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR - ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -------------------- - - Copyright |copy| 2002 Naval Research Laboratory (NRL/CCS) - - Permission to use, copy, modify and distribute this software and its - documentation is hereby granted, provided that both the copyright - notice and this permission notice appear in all copies of the software, - derivative works or modified versions, and any portions thereof. - - NRL ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND - DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER - RESULTING FROM THE USE OF THIS SOFTWARE. - -------------------- - - Copyright |copy| 1991, 1992, 1994 by Cygnus Support. - - Permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation. - Cygnus Support makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - -------------------- - - Copyright |copy| 2006 Secure Endpoints Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -------------------- - -Portions of the implementation of the Fortuna-like PRNG are subject to -the following notice: - - | Copyright |copy| 2005 Marko Kreen - | All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -.. - - Copyright |copy| 1994 by the University of Southern California - - EXPORT OF THIS SOFTWARE from the United States of America may - require a specific license from the United States Government. - It is the responsibility of any person or organization contemplating - export to obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to copy, modify, and distribute - this software and its documentation in source and binary forms is - hereby granted, provided that any documentation or other materials - related to such distribution or use acknowledge that the software - was developed by the University of Southern California. - - DISCLAIMER OF WARRANTY. THIS SOFTWARE IS PROVIDED "AS IS". The - University of Southern California MAKES NO REPRESENTATIONS OR - WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not - limitation, the University of Southern California MAKES NO - REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY - PARTICULAR PURPOSE. The University of Southern - California shall not be held liable for any liability nor for any - direct, indirect, or consequential damages with respect to any - claim by the user or distributor of the ksu software. - -------------------- - - | Copyright |copy| 1995 - | The President and Fellows of Harvard University - - This code is derived from software contributed to Harvard by - Jeremy Rassen. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - - This product includes software developed by the University of - California, Berkeley and its contributors. - - 4. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -------------------- - - | Copyright |copy| 2008 by the Massachusetts Institute of Technology. - | Copyright 1995 by Richard P. Basch. All Rights Reserved. - | Copyright 1995 by Lehman Brothers, Inc. All Rights Reserved. - - Export of this software from the United States of America may - require a specific license from the United States Government. - It is the responsibility of any person or organization contemplating - export to obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of Richard P. Basch, Lehman Brothers and M.I.T. not be used - in advertising or publicity pertaining to distribution of the software - without specific, written prior permission. Richard P. Basch, - Lehman Brothers and M.I.T. make no representations about the suitability - of this software for any purpose. It is provided "as is" without - express or implied warranty. - -------------------- - -The following notice applies to ``src/lib/krb5/krb/strptime.c`` and -``src/include/k5-queue.h``. - - | Copyright |copy| 1997, 1998 The NetBSD Foundation, Inc. - | All rights reserved. - - This code was contributed to The NetBSD Foundation by Klaus Klein. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - - This product includes software developed by the NetBSD - Foundation, Inc. and its contributors. - - 4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -------------------- - -The following notice applies to Unicode library files in -``src/lib/krb5/unicode``: - - | Copyright 1997, 1998, 1999 Computing Research Labs, - | New Mexico State University - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT - OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR - THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -------------------- - -The following notice applies to ``src/util/support/strlcpy.c``: - - Copyright |copy| 1998 Todd C. Miller ``Todd.Miller@courtesan.com`` - - Permission to use, copy, modify, and distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -------------------- - -The following notice applies to ``src/util/profile/argv_parse.c`` and -``src/util/profile/argv_parse.h``: - - Copyright 1999 by Theodore Ts'o. - - Permission to use, copy, modify, and distribute this software for - any purpose with or without fee is hereby granted, provided that - the above copyright notice and this permission notice appear in all - copies. THE SOFTWARE IS PROVIDED "AS IS" AND THEODORE TS'O (THE - AUTHOR) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER - RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR - IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (Isn't - it sick that the U.S. culture of lawsuit-happy lawyers requires - this kind of disclaimer?) - -------------------- - -The following notice applies to SWIG-generated code in -``src/util/profile/profile_tcl.c``: - - Copyright |copy| 1999-2000, The University of Chicago - - This file may be freely redistributed without license or fee provided - this copyright message remains intact. - -------------------- - -The following notice applies to portiions of ``src/lib/rpc`` and -``src/include/gssrpc``: - - Copyright |copy| 2000 The Regents of the University of Michigan. - All rights reserved. - - Copyright |copy| 2000 Dug Song ``dugsong@UMICH.EDU``. - All rights reserved, all wrongs reversed. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the University nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - -Implementations of the MD4 algorithm are subject to the following -notice: - - Copyright |copy| 1990, RSA Data Security, Inc. All rights reserved. - - License to copy and use this software is granted provided that - it is identified as the "RSA Data Security, Inc. MD4 Message - Digest Algorithm" in all material mentioning or referencing this - software or this function. - - License is also granted to make and use derivative works - provided that such works are identified as "derived from the RSA - Data Security, Inc. MD4 Message Digest Algorithm" in all - material mentioning or referencing the derived work. - - RSA Data Security, Inc. makes no representations concerning - either the merchantability of this software or the suitability - of this software for any particular purpose. It is provided "as - is" without express or implied warranty of any kind. - - These notices must be retained in any copies of any part of this - documentation and/or software. - -------------------- - -Implementations of the MD5 algorithm are subject to the following -notice: - - Copyright |copy| 1990, RSA Data Security, Inc. All rights reserved. - - License to copy and use this software is granted provided that - it is identified as the "RSA Data Security, Inc. MD5 Message- - Digest Algorithm" in all material mentioning or referencing this - software or this function. - - License is also granted to make and use derivative works - provided that such works are identified as "derived from the RSA - Data Security, Inc. MD5 Message-Digest Algorithm" in all - material mentioning or referencing the derived work. - - RSA Data Security, Inc. makes no representations concerning - either the merchantability of this software or the suitability - of this software for any particular purpose. It is provided "as - is" without express or implied warranty of any kind. - - These notices must be retained in any copies of any part of this - documentation and/or software. - -------------------- - -The following notice applies to ``src/lib/crypto/crypto_tests/t_mddriver.c``: - - Copyright |copy| 1990-2, RSA Data Security, Inc. Created 1990. All - rights reserved. - - RSA Data Security, Inc. makes no representations concerning either - the merchantability of this software or the suitability of this - software for any particular purpose. It is provided "as is" - without express or implied warranty of any kind. - - These notices must be retained in any copies of any part of this - documentation and/or software. - -------------------- - -Portions of ``src/lib/krb5`` are subject to the following notice: - - | Copyright |copy| 1994 CyberSAFE Corporation. - | Copyright 1990,1991,2007,2008 by the Massachusetts - Institute of Technology. - | All Rights Reserved. - - Export of this software from the United States of America may - require a specific license from the United States Government. - It is the responsibility of any person or organization contemplating - export to obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of M.I.T. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. Furthermore if you modify this software you must label - your software as modified software and not distribute it in such a - fashion that it might be confused with the original M.I.T. software. - Neither M.I.T., the Open Computing Security Group, nor - CyberSAFE Corporation make any representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - -------------------- - -Portions contributed by PADL Software are subject to the following -license: - - Copyright (c) 2011, PADL Software Pty Ltd. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of PADL Software nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY PADL SOFTWARE AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL PADL SOFTWARE OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -------------------- - -The bundled libev source code is subject to the following license: - - All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Alternatively, the contents of this package may be used under the terms - of the GNU General Public License ("GPL") version 2 or any later version, - in which case the provisions of the GPL are applicable instead of the - above. If you wish to allow the use of your version of this package only - under the terms of the GPL and not to allow others to use your version of - this file under the BSD license, indicate your decision by deleting the - provisions above and replace them with the notice and other provisions - required by the GPL in this and the other files of this package. If you do - not delete the provisions above, a recipient may use your version of this - file under either the BSD or the GPL. - -------------------- - -Files copied from the Intel AESNI Sample Library are subject to the -following license: - - Copyright |copy| 2010, Intel Corporation - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above - copyright notice, this list of conditions and the following - disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials - provided with the distribution. - * Neither the name of Intel Corporation nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -------------------- - -The following notice applies to -``src/ccapi/common/win/OldCC/autolock.hxx``: - - Copyright (C) 1998 by Danilo Almeida. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - -------------------- - -The following notice applies to portions of -``src/plugins/preauth/spake/edwards25519.c`` and -``src/plugins/preauth/spake/edwards25519_tables.h``: - -The MIT License (MIT) - -Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - -------------------- - -The following notice applies to portions of -``src/plugins/preauth/spake/edwards25519.c``: - -Copyright (c) 2015-2016, Google Inc. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/conda.recipe/LIBARCHIVE_LICENSE.txt b/conda.recipe/LIBARCHIVE_LICENSE.txt deleted file mode 100644 index 14bbefa0d5..0000000000 --- a/conda.recipe/LIBARCHIVE_LICENSE.txt +++ /dev/null @@ -1,66 +0,0 @@ -The libarchive distribution as a whole is Copyright by Tim Kientzle -and is subject to the copyright notice reproduced at the bottom of -this file. - -Each individual file in this distribution should have a clear -copyright/licensing statement at the beginning of the file. If any do -not, please let me know and I will rectify it. The following is -intended to summarize the copyright status of the individual files; -the actual statements in the files are controlling. - -* Except as listed below, all C sources (including .c and .h files) - and documentation files are subject to the copyright notice reproduced - at the bottom of this file. - -* The following source files are also subject in whole or in part to - a 3-clause UC Regents copyright; please read the individual source - files for details: - libarchive/archive_entry.c - libarchive/archive_read_support_filter_compress.c - libarchive/archive_write_add_filter_compress.c - libarchive/mtree.5 - -* The following source files are in the public domain: - libarchive/archive_getdate.c - -* The following source files are triple-licensed with the ability to choose - from CC0 1.0 Universal, OpenSSL or Apache 2.0 licenses: - libarchive/archive_blake2.h - libarchive/archive_blake2_impl.h - libarchive/archive_blake2s_ref.c - libarchive/archive_blake2sp_ref.c - -* The build files---including Makefiles, configure scripts, - and auxiliary scripts used as part of the compile process---have - widely varying licensing terms. Please check individual files before - distributing them to see if those restrictions apply to you. - -I intend for all new source code to use the license below and hope over -time to replace code with other licenses with new implementations that -do use the license below. The varying licensing of the build scripts -seems to be an unavoidable mess. - - -Copyright (c) 2003-2018 -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer - in this position and unchanged. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/LIBEV_LICENSE.txt b/conda.recipe/LIBEV_LICENSE.txt deleted file mode 100644 index 2fdabd48af..0000000000 --- a/conda.recipe/LIBEV_LICENSE.txt +++ /dev/null @@ -1,37 +0,0 @@ -All files in libev are -Copyright (c)2007,2008,2009,2010,2011,2012,2013 Marc Alexander Lehmann. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Alternatively, the contents of this package may be used under the terms -of the GNU General Public License ("GPL") version 2 or any later version, -in which case the provisions of the GPL are applicable instead of the -above. If you wish to allow the use of your version of this package only -under the terms of the GPL and not to allow others to use your version of -this file under the BSD license, indicate your decision by deleting the -provisions above and replace them with the notice and other provisions -required by the GPL in this and the other files of this package. If you do -not delete the provisions above, a recipient may use your version of this -file under either the BSD or the GPL. diff --git a/conda.recipe/LIBLZ4_LICENSE.txt b/conda.recipe/LIBLZ4_LICENSE.txt deleted file mode 100644 index 74c2cdd7d5..0000000000 --- a/conda.recipe/LIBLZ4_LICENSE.txt +++ /dev/null @@ -1,24 +0,0 @@ -LZ4 Library -Copyright (c) 2011-2016, Yann Collet -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/LIBNGHTTP2_LICENSE.txt b/conda.recipe/LIBNGHTTP2_LICENSE.txt deleted file mode 100644 index 80201792ec..0000000000 --- a/conda.recipe/LIBNGHTTP2_LICENSE.txt +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License - -Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa -Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/conda.recipe/LIBOPENSSL_3_LICENSE.txt b/conda.recipe/LIBOPENSSL_3_LICENSE.txt deleted file mode 100644 index 49cc83d2ee..0000000000 --- a/conda.recipe/LIBOPENSSL_3_LICENSE.txt +++ /dev/null @@ -1,177 +0,0 @@ - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/conda.recipe/LIBOPENSSL_LICENSE.txt b/conda.recipe/LIBOPENSSL_LICENSE.txt deleted file mode 100644 index 5b5ccdc968..0000000000 --- a/conda.recipe/LIBOPENSSL_LICENSE.txt +++ /dev/null @@ -1,124 +0,0 @@ - - LICENSE ISSUES - ============== - - The OpenSSL toolkit stays under a double license, i.e. both the conditions of - the OpenSSL License and the original SSLeay license apply to the toolkit. - See below for the actual license texts. - - OpenSSL License - --------------- - -/* ==================================================================== - * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - - Original SSLeay License - ----------------------- - -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ diff --git a/conda.recipe/LIBSOLV_LICENSE.txt b/conda.recipe/LIBSOLV_LICENSE.txt deleted file mode 100644 index 82bdbc994d..0000000000 --- a/conda.recipe/LIBSOLV_LICENSE.txt +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2019, SUSE LLC - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of Novell nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/NLOHMANN_JSON_LICENSE.txt b/conda.recipe/NLOHMANN_JSON_LICENSE.txt deleted file mode 100644 index ae171d5682..0000000000 --- a/conda.recipe/NLOHMANN_JSON_LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013-2020 Niels Lohmann - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/conda.recipe/REPROC_LICENSE.txt b/conda.recipe/REPROC_LICENSE.txt deleted file mode 100644 index 80ebfacf55..0000000000 --- a/conda.recipe/REPROC_LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Daan De Meyer - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/conda.recipe/SPDLOG_LICENSE.txt b/conda.recipe/SPDLOG_LICENSE.txt deleted file mode 100644 index 4abea13580..0000000000 --- a/conda.recipe/SPDLOG_LICENSE.txt +++ /dev/null @@ -1,25 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Gabi Melman. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - --- NOTE: Third party dependency used by this software -- -This software depends on the fmt lib (MIT License), -and users must comply to its license: https://github.com/fmtlib/fmt/blob/master/LICENSE.rst diff --git a/conda.recipe/TERMCOLOR_CPP_LICENSE.txt b/conda.recipe/TERMCOLOR_CPP_LICENSE.txt deleted file mode 100644 index e2a9f53226..0000000000 --- a/conda.recipe/TERMCOLOR_CPP_LICENSE.txt +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) 2013, Ihor Kalnytskyi. -All rights reserved. - -Redistribution and use in source and binary forms of the software as well -as documentation, with or without modification, are permitted provided -that the following conditions are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -* The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT -NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/conda.recipe/ZSTD_LICENSE.txt b/conda.recipe/ZSTD_LICENSE.txt deleted file mode 100644 index a793a80289..0000000000 --- a/conda.recipe/ZSTD_LICENSE.txt +++ /dev/null @@ -1,30 +0,0 @@ -BSD License - -For Zstandard software - -Copyright (c) 2016-present, Facebook, Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/conda.recipe/bld.bat b/conda.recipe/bld.bat deleted file mode 100644 index cc2acf444c..0000000000 --- a/conda.recipe/bld.bat +++ /dev/null @@ -1,39 +0,0 @@ -mkdir build -if %errorlevel% NEQ 0 exit /b %errorlevel% -cd build - -ROBOCOPY %RECIPE_DIR%\libsolv %VCPKG_ROOT%\ports\libsolv -@rem ROBOCOPY has 0 and 1 as successfull exit codes -if %errorlevel% NEQ 0 if %errorlevel% NEQ 1 exit /b %errorlevel% - -@rem Looks like the .vcpkg-root file is missing in vcpkg package -TYPE NUL > %VCPKG_ROOT%\.vcpkg-root - -SET VCPKG_BUILD_TYPE=release -vcpkg install libsolv[conda] --triplet x64-windows-static -if %errorlevel% NEQ 0 exit /b %errorlevel% -vcpkg install "libarchive[bzip2,lz4,lzma,lzo,openssl,zstd]" --triplet x64-windows-static -if %errorlevel% NEQ 0 exit /b %errorlevel% -vcpkg install curl --triplet x64-windows-static -if %errorlevel% NEQ 0 exit /b %errorlevel% -vcpkg install yaml-cpp --triplet x64-windows-static -if %errorlevel% NEQ 0 exit /b %errorlevel% -vcpkg install reproc --triplet x64-windows-static -if %errorlevel% NEQ 0 exit /b %errorlevel% - -SET "CXXFLAGS=%CXXFLAGS% /showIncludes" -SET CMAKE_PREFIX_PATH=%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH% - -cmake .. ^ - -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ - -D CMAKE_PREFIX_PATH="%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH%" ^ - -D CMAKE_BUILD_TYPE="Release" ^ - -D BUILD_LIBMAMBA=ON ^ - -D BUILD_STATIC_DEPS=ON ^ - -D BUILD_MICROMAMBA=ON ^ - -D MICROMAMBA_LINKAGE=FULL_STATIC ^ - -G "Ninja" -if %errorlevel% NEQ 0 exit /b %errorlevel% - -ninja install --verbose -if %errorlevel% NEQ 0 exit /b %errorlevel% diff --git a/conda.recipe/build.sh b/conda.recipe/build.sh deleted file mode 100644 index 48a84c93e3..0000000000 --- a/conda.recipe/build.sh +++ /dev/null @@ -1,22 +0,0 @@ -mkdir build -cd build - -# Conda's binary relocation can result in string changing which can result in errors like -# > warning: command substitution: ignored null byte in input -# https://github.com/mamba-org/mamba/issues/1517 -export CXXFLAGS="${CXXFLAGS} -fno-merge-constants" -export CFLAGS="${CFLAGS} -fno-merge-constants" -export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY=1" - -cmake ${CMAKE_ARGS} .. \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_BUILD_TYPE="Release" \ - -DBUILD_LIBMAMBA=ON \ - -DBUILD_STATIC_DEPS=ON \ - -DBUILD_MICROMAMBA=ON \ - -DMICROMAMBA_LINKAGE=FULL_STATIC - -make -j${CPU_COUNT} -make install - -${STRIP:-strip} ${PREFIX}/bin/micromamba diff --git a/conda.recipe/conda_build_config.yaml b/conda.recipe/conda_build_config.yaml deleted file mode 100644 index 51bdcaa825..0000000000 --- a/conda.recipe/conda_build_config.yaml +++ /dev/null @@ -1,6 +0,0 @@ -libarchive: -- '3.3' -c_compiler: # [win] -- vs2019 # [win] -cxx_compiler: # [win] -- vs2019 # [win] diff --git a/conda.recipe/libmamba.patch b/conda.recipe/libmamba.patch deleted file mode 100644 index a6c5e28f68..0000000000 --- a/conda.recipe/libmamba.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/libmamba/CMakeLists.txt b/libmamba/CMakeLists.txt -index e9ca7c9..a02905d 100644 ---- a/libmamba/CMakeLists.txt -+++ b/libmamba/CMakeLists.txt -@@ -271,7 +271,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) - find_package(CURL CONFIG REQUIRED) - find_package(yaml-cpp CONFIG REQUIRED) - find_package(nlohmann_json CONFIG REQUIRED) -- find_package(LibLZMA CONFIG REQUIRED) -+ find_library(LIBLZMA_LIBRARIES lzma REQUIRED) -+ - find_library(LZ4_LIBRARY NAMES lz4) - find_library(LZO2_LIBRARY NAMES lzo2) - find_package(zstd CONFIG REQUIRED) -@@ -283,8 +284,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) - find_package(reproc++ CONFIG REQUIRED) - - find_library(LIBXML2_LIBRARY NAMES libxml2) -- find_library(ICONV_LIBRARY NAMES libiconv) -- find_library(CHARSET_LIBRARY NAMES libcharset) -+ find_library(ICONV_LIBRARY NAMES iconv) -+ find_library(CHARSET_LIBRARY NAMES charset) - message("Found: ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY}") - - target_link_libraries(${target_name} PUBLIC -@@ -293,14 +294,14 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) - ${LIBXML2_LIBRARY} - ${ICONV_LIBRARY} - ${CHARSET_LIBRARY} -- libzstd -+ zstd::libzstd_static - ${LZ4_LIBRARY} - ${LZO2_LIBRARY} - ${BZIP2_LIBRARIES} - ${LIBLZMA_LIBRARIES} - CURL::libcurl - nlohmann_json::nlohmann_json -- ${YAML_CPP_LIBRARIES} -+ yaml-cpp - ${LIBSOLV_BUILD_STATICRARIES} - ${LIBSOLVEXT_BUILD_STATICRARIES} - ${sodium_LIBRARY_RELEASE} -@@ -435,53 +436,4 @@ endif () - # Tests - if (BUILD_TESTS) - add_subdirectory(tests) --endif() -- --# Installation --# ============ -- --include(GNUInstallDirs) --include(CMakePackageConfigHelpers) -- --set(LIBMAMBA_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for libmambaConfig.cmake") -- --install(TARGETS ${libmamba_targets} -- EXPORT ${PROJECT_NAME}-targets -- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -- --install(DIRECTORY "${LIBMAMBA_INCLUDE_DIR}/" -- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" -- FILES_MATCHING -- PATTERN "*.hpp" -- PATTERN "*.h") -- --# Makes the project importable from the build directory --export(EXPORT ${PROJECT_NAME}-targets -- FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake") -- --# Configure 'mambaConfig.cmake' for a build tree --set(MAMBA_CONFIG_CODE "####### Expanded from \@MAMBA_CONFIG_CODE\@ #######\n") --set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}set(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake;\${CMAKE_MODULE_PATH}\")\n") --set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}##################################################") --configure_package_config_file(${PROJECT_NAME}Config.cmake.in -- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" -- INSTALL_DESTINATION ${PROJECT_BINARY_DIR}) -- --# Configure 'mambaConfig.cmake' for an install tree --set(MAMBA_CONFIG_CODE "") --configure_package_config_file(${PROJECT_NAME}Config.cmake.in -- "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake" -- INSTALL_DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) -- -- --write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake -- VERSION ${MAMBA_VERSION_MAJOR}.${MAMBA_VERSION_MINOR}.${MAMBA_VERSION_PATCH} -- COMPATIBILITY AnyNewerVersion) --install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake -- ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake -- DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) --install(EXPORT ${PROJECT_NAME}-targets -- FILE ${PROJECT_NAME}Targets.cmake -- DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) -+endif() -\ No newline at end of file diff --git a/conda.recipe/libsolv/CONTROL b/conda.recipe/libsolv/CONTROL deleted file mode 100644 index 8f5f1d342d..0000000000 --- a/conda.recipe/libsolv/CONTROL +++ /dev/null @@ -1,9 +0,0 @@ -Source: libsolv -Version: 0.7.18 -Description: Library for solving packages and reading repositories -Homepage: https://github.com/openSUSE/libsolv -Default-Features: conda -Supports: !uwp - -Feature: conda -Description: Conda support diff --git a/conda.recipe/libsolv/add_strict_repo_prio_rule.patch b/conda.recipe/libsolv/add_strict_repo_prio_rule.patch deleted file mode 100644 index 8750da1ffd..0000000000 --- a/conda.recipe/libsolv/add_strict_repo_prio_rule.patch +++ /dev/null @@ -1,296 +0,0 @@ -diff --git a/src/problems.c b/src/problems.c -index a6b9394f..a4960ef4 100644 ---- a/src/problems.c -+++ b/src/problems.c -@@ -1068,10 +1068,10 @@ solver_take_solution(Solver *solv, Id problem, Id solution, Queue *job) - */ - - static void --findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp, Id *blkrp, Map *rseen) -+findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, Id *jobrp, Id *blkrp, Id *scprp, Map *rseen) - { - Id rid, d; -- Id lreqr, lconr, lsysr, ljobr, lblkr; -+ Id lreqr, lconr, lsysr, ljobr, lblkr, lscpr; - Rule *r; - Id jobassert = 0; - int i, reqset = 0; /* 0: unset, 1: installed, 2: jobassert, 3: assert */ -@@ -1093,7 +1093,7 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, - - /* the problem rules are somewhat ordered from "near to the problem" to - * "near to the job" */ -- lreqr = lconr = lsysr = ljobr = lblkr = 0; -+ lreqr = lconr = lsysr = ljobr = lblkr = lscpr = 0; - while ((rid = solv->learnt_pool.elements[idx++]) != 0) - { - assert(rid > 0); -@@ -1102,7 +1102,7 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, - if (MAPTST(rseen, rid - solv->learntrules)) - continue; - MAPSET(rseen, rid - solv->learntrules); -- findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr, &lblkr, rseen); -+ findproblemrule_internal(solv, solv->learnt_why.elements[rid - solv->learntrules], &lreqr, &lconr, &lsysr, &ljobr, &lblkr, &lscpr, rseen); - } - else if ((rid >= solv->jobrules && rid < solv->jobrules_end) || (rid >= solv->infarchrules && rid < solv->infarchrules_end) || (rid >= solv->duprules && rid < solv->duprules_end) || (rid >= solv->bestrules && rid < solv->bestrules_end) || (rid >= solv->yumobsrules && rid < solv->yumobsrules_end)) - { -@@ -1119,6 +1119,11 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, - if (!*blkrp) - *blkrp = rid; - } -+ else if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) -+ { -+ if (!*scprp) -+ *scprp = rid; -+ } - else - { - assert(rid < solv->pkgrules_end); -@@ -1183,6 +1188,8 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, - *sysrp = lsysr; - if (!*blkrp && lblkr) - *blkrp = lblkr; -+ if (!*scprp && lscpr) -+ *scprp = lscpr; - } - - /* -@@ -1197,12 +1204,12 @@ findproblemrule_internal(Solver *solv, Id idx, Id *reqrp, Id *conrp, Id *sysrp, - Id - solver_findproblemrule(Solver *solv, Id problem) - { -- Id reqr, conr, sysr, jobr, blkr; -+ Id reqr, conr, sysr, jobr, blkr, srpr; - Id idx = solv->problems.elements[2 * problem - 2]; - Map rseen; -- reqr = conr = sysr = jobr = blkr = 0; -+ reqr = conr = sysr = jobr = blkr = srpr = 0; - map_init(&rseen, solv->learntrules ? solv->nrules - solv->learntrules : 0); -- findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr, &blkr, &rseen); -+ findproblemrule_internal(solv, idx, &reqr, &conr, &sysr, &jobr, &blkr, &srpr, &rseen); - map_free(&rseen); - /* check if the request is about a not-installed package requiring a installed - * package conflicting with the non-installed package. In that case return the conflict */ -@@ -1232,6 +1239,8 @@ solver_findproblemrule(Solver *solv, Id problem) - return conr; /* some conflict */ - if (blkr) - return blkr; /* a blacklisted package */ -+ if (srpr) -+ return srpr; /* a strict repo priority */ - if (sysr) - return sysr; /* an update rule */ - if (jobr) -@@ -1350,6 +1359,8 @@ solver_problemruleinfo2str(Solver *solv, SolverRuleinfo type, Id source, Id targ - return pool_tmpappend(pool, s, pool_dep2str(pool, dep), 0); - case SOLVER_RULE_BLACK: - return pool_tmpjoin(pool, "package ", pool_solvid2str(pool, source), " can only be installed by a direct request"); -+ case SOLVER_RULE_STRICT_REPO_PRIORITY: -+ return pool_tmpjoin(pool, "package '", pool_solvid2str(pool, source), "' is excluded by strict repo priority"); - case SOLVER_RULE_PKG_CONSTRAINS: - s = pool_tmpjoin(pool, "package ", pool_solvid2str(pool, source), 0); - s = pool_tmpappend(pool, s, " has constraint ", pool_dep2str(pool, dep)); -diff --git a/src/rules.c b/src/rules.c -index b1b5f09c..0dcce68e 100644 ---- a/src/rules.c -+++ b/src/rules.c -@@ -2992,6 +2992,12 @@ solver_ruleinfo(Solver *solv, Id rid, Id *fromp, Id *top, Id *depp) - *fromp = -r->p; - return SOLVER_RULE_BLACK; - } -+ if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) -+ { -+ if (fromp) -+ *fromp = -r->p; -+ return SOLVER_RULE_STRICT_REPO_PRIORITY; -+ } - if (rid >= solv->choicerules && rid < solv->choicerules_end) - return SOLVER_RULE_CHOICE; - if (rid >= solv->recommendsrules && rid < solv->recommendsrules_end) -@@ -3028,8 +3034,8 @@ solver_ruleclass(Solver *solv, Id rid) - return SOLVER_RULE_CHOICE; - if (rid >= solv->recommendsrules && rid < solv->recommendsrules_end) - return SOLVER_RULE_RECOMMENDS; -- if (rid >= solv->blackrules && rid < solv->blackrules_end) -- return SOLVER_RULE_BLACK; -+ if (rid >= solv->strictrepopriorules && rid < solv->strictrepopriorules_end) -+ return SOLVER_RULE_STRICT_REPO_PRIORITY; - if (rid >= solv->learntrules && rid < solv->nrules) - return SOLVER_RULE_LEARNT; - return SOLVER_RULE_UNKNOWN; -@@ -4135,6 +4141,54 @@ solver_addrecommendsrules(Solver *solv) - solv->recommendsrules_end = solv->nrules; - } - -+/* add rules to exclude solvables provided by lower -+ * precedence repositories */ -+void solver_addstrictrepopriorules(struct s_Solver *solv, Map *addedmap) -+{ -+ Pool *pool = solv->pool; -+ Solvable *s; -+ Id p, p2, pp2; -+ Map priomap; -+ int max_prio; -+ -+ map_init_clone(&priomap, addedmap); -+ solv->strictrepopriorules = solv->nrules; -+ -+ FOR_POOL_SOLVABLES(p) -+ { -+ if (!MAPTST(&priomap, p)) -+ continue; -+ -+ s = pool->solvables + p; -+ max_prio = s->repo->priority; -+ FOR_PROVIDES(p2, pp2, s->name) -+ { -+ Solvable *s2 = pool->solvables + p2; -+ if (s->name != s2->name) -+ { -+ MAPCLR(&priomap, p2); -+ continue; -+ } -+ if (s2->repo->priority > max_prio) -+ max_prio = s2->repo->priority; -+ } -+ -+ FOR_PROVIDES(p2, pp2, s->name) -+ { -+ Solvable *s2 = pool->solvables + p2; -+ if (!MAPTST(&priomap, p2)) -+ continue; -+ MAPCLR(&priomap, p2); -+ if (pool->installed && s2->repo == pool->installed) -+ continue; -+ if (s2->repo->priority < max_prio) -+ solver_addrule(solv, -p2, 0, 0); -+ } -+ } -+ solv->strictrepopriorules_end = solv->nrules; -+ map_free(&priomap); -+} -+ - void - solver_breakorphans(Solver *solv) - { -diff --git a/src/rules.h b/src/rules.h -index 3fcede07..043d0a0b 100644 ---- a/src/rules.h -+++ b/src/rules.h -@@ -74,7 +74,8 @@ typedef enum { - SOLVER_RULE_BEST = 0x900, - SOLVER_RULE_YUMOBS = 0xa00, - SOLVER_RULE_RECOMMENDS = 0xb00, -- SOLVER_RULE_BLACK = 0xc00 -+ SOLVER_RULE_BLACK = 0xc00, -+ SOLVER_RULE_STRICT_REPO_PRIORITY = 0xd00 - } SolverRuleinfo; - - #define SOLVER_RULE_TYPEMASK 0xff00 -@@ -142,6 +143,9 @@ extern void solver_addblackrules(struct s_Solver *solv); - /* recommends rules */ - extern void solver_addrecommendsrules(struct s_Solver *solv); - -+/* channel priority rules */ -+extern void solver_addstrictrepopriorules(struct s_Solver *solv, Map *addedmap); -+ - /* policy rule disabling/reenabling */ - extern void solver_disablepolicyrules(struct s_Solver *solv); - extern void solver_reenablepolicyrules(struct s_Solver *solv, int jobidx); -diff --git a/src/solver.c b/src/solver.c -index 89a2ed10..25ff2d40 100644 ---- a/src/solver.c -+++ b/src/solver.c -@@ -1473,6 +1473,8 @@ solver_get_flag(Solver *solv, int flag) - return solv->install_also_updates; - case SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED: - return solv->only_namespace_recommended; -+ case SOLVER_FLAG_STRICT_REPO_PRIORITY: -+ return solv->strict_repo_priority; - default: - break; - } -@@ -1566,6 +1568,9 @@ solver_set_flag(Solver *solv, int flag, int value) - case SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED: - solv->only_namespace_recommended = value; - break; -+ case SOLVER_FLAG_STRICT_REPO_PRIORITY: -+ solv->strict_repo_priority = value; -+ break; - default: - break; - } -@@ -4062,6 +4067,11 @@ solver_solve(Solver *solv, Queue *job) - else - solv->recommendsrules = solv->recommendsrules_end = solv->nrules; - -+ if (solv->strict_repo_priority) -+ solver_addstrictrepopriorules(solv, &addedmap); -+ else -+ solv->strictrepopriorules = solv->strictrepopriorules_end = solv->nrules; -+ - if (1) - solver_addchoicerules(solv); - else -@@ -4077,7 +4087,19 @@ solver_solve(Solver *solv, Queue *job) - map_free(&installcandidatemap); - queue_free(&q); - -- POOL_DEBUG(SOLV_DEBUG_STATS, "%d pkg rules, 2 * %d update rules, %d job rules, %d infarch rules, %d dup rules, %d choice rules, %d best rules, %d yumobs rules\n", solv->pkgrules_end - 1, solv->updaterules_end - solv->updaterules, solv->jobrules_end - solv->jobrules, solv->infarchrules_end - solv->infarchrules, solv->duprules_end - solv->duprules, solv->choicerules_end - solv->choicerules, solv->bestrules_end - solv->bestrules, solv->yumobsrules_end - solv->yumobsrules); -+ POOL_DEBUG(SOLV_DEBUG_STATS, "%d pkg rules, 2 * %d update rules, %d job rules, %d infarch rules, %d dup rules, %d choice rules, %d best rules, %d yumobs rules\n" -+ "%d black rules, %d recommends rules, %d repo priority rules\n", -+ solv->pkgrules_end - 1, -+ solv->updaterules_end - solv->updaterules, -+ solv->jobrules_end - solv->jobrules, -+ solv->infarchrules_end - solv->infarchrules, -+ solv->duprules_end - solv->duprules, -+ solv->choicerules_end - solv->choicerules, -+ solv->bestrules_end - solv->bestrules, -+ solv->yumobsrules_end - solv->yumobsrules, -+ solv->blackrules_end - solv->blackrules, -+ solv->recommendsrules_end - solv->recommendsrules, -+ solv->strictrepopriorules_end - solv->strictrepopriorules); - POOL_DEBUG(SOLV_DEBUG_STATS, "overall rule memory used: %d K\n", solv->nrules * (int)sizeof(Rule) / 1024); - - /* create weak map */ -diff --git a/src/solver.h b/src/solver.h -index 2dec2590..5de13c9c 100644 ---- a/src/solver.h -+++ b/src/solver.h -@@ -79,6 +79,9 @@ struct s_Solver { - Id blackrules; /* rules from blacklisted packages */ - Id blackrules_end; - -+ Id strictrepopriorules; /* rules from strict priority repositories */ -+ Id strictrepopriorules_end; -+ - Id choicerules; /* choice rules (always weak) */ - Id choicerules_end; - Id *choicerules_info; /* the rule we used to generate the choice rule */ -@@ -175,6 +178,7 @@ struct s_Solver { - int strongrecommends; /* true: create weak rules for recommends */ - int install_also_updates; /* true: do not prune install job rules to installed packages */ - int only_namespace_recommended; /* true: only install packages recommended by namespace */ -+ int strict_repo_priority; /* true: only use packages from highest precedence/priority */ - - int process_orphans; /* true: do special orphan processing */ - Map dupmap; /* dup to those packages */ -@@ -326,6 +330,7 @@ typedef struct s_Solver Solver; - #define SOLVER_FLAG_STRONG_RECOMMENDS 25 - #define SOLVER_FLAG_INSTALL_ALSO_UPDATES 26 - #define SOLVER_FLAG_ONLY_NAMESPACE_RECOMMENDED 27 -+#define SOLVER_FLAG_STRICT_REPO_PRIORITY 28 - - #define GET_USERINSTALLED_NAMES (1 << 0) /* package names instead of ids */ - #define GET_USERINSTALLED_INVERTED (1 << 1) /* autoinstalled */ -diff --git a/src/solverdebug.c b/src/solverdebug.c -index 0b2879b0..040d9e5d 100644 ---- a/src/solverdebug.c -+++ b/src/solverdebug.c -@@ -130,6 +130,8 @@ solver_printruleclass(Solver *solv, int type, Rule *r) - POOL_DEBUG(type, "YUMOBS "); - else if (p >= solv->blackrules && p < solv->blackrules_end) - POOL_DEBUG(type, "BLACK "); -+ else if (p >= solv->strictrepopriorules && p < solv->strictrepopriorules_end) -+ POOL_DEBUG(type, "PRIOS "); - else if (p >= solv->recommendsrules && p < solv->recommendsrules_end) - POOL_DEBUG(type, "RECOMMENDS "); - solver_printrule(solv, type, r); diff --git a/conda.recipe/libsolv/conda_variant_priorization.patch b/conda.recipe/libsolv/conda_variant_priorization.patch deleted file mode 100644 index 6cdffcb400..0000000000 --- a/conda.recipe/libsolv/conda_variant_priorization.patch +++ /dev/null @@ -1,438 +0,0 @@ -diff --git a/src/conda.c b/src/conda.c -index 21ad6bfb..408a236a 100644 ---- a/src/conda.c -+++ b/src/conda.c -@@ -134,7 +134,7 @@ solv_vercmp_conda(const char *s1, const char *q1, const char *s2, const char *q2 - return -1; - if (s1p - s1 > s2p - s2) - return 1; -- r = s1p - s1 ? strncmp(s1, s2, s1p - s1) : 0; -+ r = (s1p - s1) ? strncmp(s1, s2, s1p - s1) : 0; - if (r) - return r; - } -diff --git a/src/policy.c b/src/policy.c -index c02d2373..d6354cd2 100644 ---- a/src/policy.c -+++ b/src/policy.c -@@ -833,6 +833,79 @@ move_installed_to_front(Pool *pool, Queue *plist) - } - } - -+/* -+ * prune_to_best_version -+ * -+ * sort list of packages (given through plist) by name and evr -+ * return result through plist -+ */ -+void -+prune_to_best_version(Pool *pool, Queue *plist) -+{ -+#ifdef ENABLE_CONDA -+ if (pool->disttype == DISTTYPE_CONDA) -+ return prune_to_best_version_conda(pool, plist); -+#endif -+ -+ int i, j, r; -+ Solvable *s, *best; -+ -+ if (plist->count < 2) /* no need to prune for a single entry */ -+ return; -+ POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version %d\n", plist->count); -+ -+ /* sort by name first, prefer installed */ -+ solv_sort(plist->elements, plist->count, sizeof(Id), prune_to_best_version_sortcmp, pool); -+ -+ /* now find best 'per name' */ -+ best = 0; -+ for (i = j = 0; i < plist->count; i++) -+ { -+ s = pool->solvables + plist->elements[i]; -+ -+ POOL_DEBUG(SOLV_DEBUG_POLICY, "- %s [%d]%s\n", -+ pool_solvable2str(pool, s), plist->elements[i], -+ (pool->installed && s->repo == pool->installed) ? "I" : ""); -+ -+ if (!best) /* if no best yet, the current is best */ -+ { -+ best = s; -+ continue; -+ } -+ -+ /* name switch: finish group, re-init */ -+ if (best->name != s->name) /* new name */ -+ { -+ plist->elements[j++] = best - pool->solvables; /* move old best to front */ -+ best = s; /* take current as new best */ -+ continue; -+ } -+ -+ r = 0; -+ if (r == 0) -+ r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; -+#ifdef ENABLE_LINKED_PKGS -+ if (r == 0 && has_package_link(pool, s)) -+ r = pool_link_evrcmp(pool, best, s); -+#endif -+ if (r < 0) -+ best = s; -+ } -+ -+ plist->elements[j++] = best - pool->solvables; /* finish last group */ -+ plist->count = j; -+ -+ /* we reduced the list to one package per name, now look at -+ * package obsoletes */ -+ if (plist->count > 1) -+ { -+ if (plist->count == 2) -+ prune_obsoleted_2(pool, plist); -+ else -+ prune_obsoleted(pool, plist); -+ } -+} -+ - #ifdef ENABLE_CONDA - static int - pool_featurecountcmp(Pool *pool, Solvable *s1, Solvable *s2) -@@ -863,23 +936,221 @@ pool_buildflavorcmp(Pool *pool, Solvable *s1, Solvable *s2) - return 0; - return pool_evrcmp_str(pool, f1 ? f1 : "" , f2 ? f2 : "", EVRCMP_COMPARE); - } --#endif -+ -+void intersect_selection(Pool* pool, Id dep, Queue* prev) -+{ -+ Queue tmp; -+ int i = 0, j = 0, isectidx = 0; -+ -+ queue_init(&tmp); -+ -+ Id* pp, p; -+ pp = pool_whatprovides_ptr(pool, dep); -+ while ((p = *pp++) != 0) -+ queue_push(&tmp, p); -+ -+ // set intersection, assuming sorted arrays -+ while (i < prev->count && j < tmp.count) -+ if (prev->elements[i] < tmp.elements[j]) -+ i++; -+ else if (tmp.elements[j] < prev->elements[i]) -+ j++; -+ else -+ { -+ if (isectidx != i) -+ prev->elements[isectidx] = prev->elements[i]; -+ i++, j++, isectidx++; -+ } -+ -+ prev->count = isectidx; -+ queue_free(&tmp); -+} -+ -+int check_deps_unequal(Pool* pool, Queue* q1, Queue* q2, Id name) -+{ -+ Id dep; -+ int i, j; -+ int found = 0; -+ for (i = 0; i < q1->count; ++i) -+ { -+ dep = q1->elements[i]; -+ if (ISRELDEP(dep) && GETRELDEP(pool, dep)->name == name) -+ { -+ for (j = 0; j < q2->count; ++j) -+ { -+ if (q2->elements[j] == dep) -+ { -+ found = 1; -+ break; -+ } -+ } -+ if (!found) -+ return 1; -+ -+ found = 0; -+ } -+ } -+ return 0; -+} -+ -+Id best_matching(Pool* pool, Queue* q, Id name, int* all_have_trackfeatures) -+{ -+ int first = 1; -+ Id dep, p, *pp; -+ -+ Queue selection; -+ queue_init(&selection); -+ -+ for (int i = 0; i < q->count; ++i) -+ { -+ dep = q->elements[i]; -+ if (!ISRELDEP(dep) || GETRELDEP(pool, dep)->name != name) continue; -+ -+ if (first) -+ { -+ pp = pool_whatprovides_ptr(pool, dep); -+ while ((p = *pp++) != 0) -+ queue_push(&selection, p); -+ first = 0; -+ } -+ else -+ intersect_selection(pool, dep, &selection); -+ } -+ -+ if (selection.count == 0) -+ return 0; -+ -+ Solvable *stmp, *best = pool_id2solvable(pool, selection.elements[0]); -+ int cmp; -+ -+ *all_have_trackfeatures = 1; -+ for (int i = 0; i < selection.count; ++i) -+ if (solvable_lookup_count(pool_id2solvable(pool, selection.elements[i]), -+ SOLVABLE_TRACK_FEATURES) == 0) -+ { -+ *all_have_trackfeatures = 0; -+ break; -+ } -+ -+ for (int i = 0; i < selection.count; ++i) -+ { -+ stmp = pool_id2solvable(pool, selection.elements[i]); -+ cmp = pool_evrcmp(pool, best->evr, stmp->evr, 0); -+ if (cmp < 0) best = stmp; -+ } -+ -+ return best->evr; -+} -+ -+int conda_compare_dependencies(Pool *pool, Solvable *s1, Solvable *s2) -+{ -+ int i, j, has_seen; -+ Queue q1, q2, seen; -+ -+ queue_init(&q1); -+ queue_init(&q2); -+ queue_init(&seen); -+ -+ solvable_lookup_deparray(s1, SOLVABLE_REQUIRES, &q1, -1); -+ solvable_lookup_deparray(s2, SOLVABLE_REQUIRES, &q2, -1); -+ -+ int comparison_result = 0; -+ -+ for (i = 0; i < q1.count; ++i) -+ { -+ Id x1 = q1.elements[i]; -+ has_seen = 0; -+ -+ if (!ISRELDEP(x1)) -+ continue; -+ -+ Reldep* rd1 = GETRELDEP(pool, x1); -+ for (j = 0; j < seen.count && has_seen == 0; ++j) -+ if (seen.elements[j] == rd1->name) -+ has_seen = 1; -+ -+ if (has_seen) -+ continue; -+ -+ // first make sure that deps are different between a & b -+ int deps_unequal = check_deps_unequal(pool, &q1, &q2, rd1->name); -+ if (!deps_unequal) -+ { -+ queue_push(&seen, rd1->name); -+ continue; -+ } -+ -+ int aht_1, aht_2; // all have track features check -+ Id b1 = best_matching(pool, &q1, rd1->name, &aht_1); -+ Id b2 = best_matching(pool, &q2, rd1->name, &aht_2); -+ -+ // one of both or both is not solvable... -+ // ignoring this case for now -+ if (b1 == 0 || b2 == 0) -+ continue; -+ -+ // if one has deps with track features, and the other does not, -+ // downweight the one with track features -+ if (aht_1 != aht_2) -+ comparison_result += (aht_1 - aht_2) * 100; -+ -+ comparison_result += pool_evrcmp(pool, b2, b1, 0); -+ } -+ -+ queue_free(&q1); -+ queue_free(&q2); -+ queue_free(&seen); -+ -+ return comparison_result; -+} -+ -+static int -+sort_by_best_dependencies(const void *ap, const void *bp, void *dp) -+{ -+ Pool* pool = (Pool*) dp; -+ -+ Id a = *(Id *)ap; -+ Id b = *(Id *)bp; -+ Solvable *sa, *sb; -+ -+ sa = pool->solvables + a; -+ sb = pool->solvables + b; -+ -+ int res = conda_compare_dependencies(pool, sa, sb); -+ if (res == 0) -+ { -+ // no differences, select later build -+ Repodata* ra = repo_last_repodata(sa->repo); -+ Repodata* rb = repo_last_repodata(sb->repo); -+ -+ unsigned long long bta = repodata_lookup_num(ra, a, SOLVABLE_BUILDTIME, 0ull); -+ unsigned long long btb = repodata_lookup_num(rb, b, SOLVABLE_BUILDTIME, 0ull); -+ -+ res = (btb > bta) ? 1 : -1; -+ POOL_DEBUG(SOLV_DEBUG_POLICY, "Fallback to timestamp comparison: %llu vs %llu: [%d]\n", bta, btb, res); -+ } -+ -+ POOL_DEBUG(SOLV_DEBUG_POLICY, "Selecting variant [%c] of (a) %s vs (b) %s (score: %d)\n", -+ (res < 0 ? 'a' : 'b'), pool_solvable2str(pool, sa), pool_solvable2str(pool, sb), res); -+ -+ return res; -+} - - /* -- * prune_to_best_version -+ * prune_to_best_version_conda - * - * sort list of packages (given through plist) by name and evr - * return result through plist - */ - void --prune_to_best_version(Pool *pool, Queue *plist) -+prune_to_best_version_conda(Pool *pool, Queue *plist) - { - int i, j, r; - Solvable *s, *best; - -- if (plist->count < 2) /* no need to prune for a single entry */ -+ if (plist->count < 2) /* no need to prune for a single entry */ - return; -- POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version %d\n", plist->count); -+ POOL_DEBUG(SOLV_DEBUG_POLICY, "prune_to_best_version_conda %d\n", plist->count); - - /* sort by name first, prefer installed */ - solv_sort(plist->elements, plist->count, sizeof(Id), prune_to_best_version_sortcmp, pool); -@@ -891,10 +1162,10 @@ prune_to_best_version(Pool *pool, Queue *plist) - s = pool->solvables + plist->elements[i]; - - POOL_DEBUG(SOLV_DEBUG_POLICY, "- %s [%d]%s\n", -- pool_solvable2str(pool, s), plist->elements[i], -- (pool->installed && s->repo == pool->installed) ? "I" : ""); -+ pool_solvable2str(pool, s), plist->elements[i], -+ (pool->installed && s->repo == pool->installed) ? "I" : ""); - -- if (!best) /* if no best yet, the current is best */ -+ if (!best) /* if no best yet, the current is best */ - { - best = s; - continue; -@@ -904,49 +1175,54 @@ prune_to_best_version(Pool *pool, Queue *plist) - if (best->name != s->name) /* new name */ - { - plist->elements[j++] = best - pool->solvables; /* move old best to front */ -- best = s; /* take current as new best */ -+ best = s; /* take current as new best */ - continue; - } - - r = 0; --#ifdef ENABLE_CONDA -- if (pool->disttype == DISTTYPE_CONDA) -- r = pool_featurecountcmp(pool, best, s); --#endif -+ r = pool_featurecountcmp(pool, best, s); - if (r == 0) - r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; --#ifdef ENABLE_LINKED_PKGS -- if (r == 0 && has_package_link(pool, s)) -- r = pool_link_evrcmp(pool, best, s); --#endif --#ifdef ENABLE_CONDA -- if (pool->disttype == DISTTYPE_CONDA) -- { -- if (r == 0) -- r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); -- if (r == 0) -- r = pool_buildversioncmp(pool, best, s); -- if (r == 0) -- r = pool_buildflavorcmp(pool, best, s); -- } --#endif -+ if (r == 0) -+ r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); -+ if (r == 0) -+ r = pool_buildversioncmp(pool, best, s); -+ // this can be removed as this comparison doesn't effect anything -+ if (r == 0) -+ r = pool_buildflavorcmp(pool, best, s); - if (r < 0) -- best = s; -+ best = s; - } -- plist->elements[j++] = best - pool->solvables; /* finish last group */ -- plist->count = j; - -- /* we reduced the list to one package per name, now look at -- * package obsoletes */ -- if (plist->count > 1) -+ Queue q; -+ queue_init(&q); -+ for (i = 0; i < plist->count; i++) - { -- if (plist->count == 2) -- prune_obsoleted_2(pool, plist); -- else -- prune_obsoleted(pool, plist); -+ s = pool->solvables + plist->elements[i]; -+ r = pool_featurecountcmp(pool, best, s); -+ if (r == 0) -+ r = best->evr != s->evr ? pool_evrcmp(pool, best->evr, s->evr, EVRCMP_COMPARE) : 0; -+ if (r == 0) -+ r = (best->repo ? best->repo->subpriority : 0) - (s->repo ? s->repo->subpriority : 0); -+ if (r == 0) -+ r = pool_buildversioncmp(pool, best, s); -+ if (r == 0) -+ queue_push(&q, s - pool->solvables); - } --} - -+ if (q.count > 1) -+ { -+ // order by first-level deps -+ solv_sort(q.elements, q.count, sizeof(Id), sort_by_best_dependencies, pool); -+ } -+ -+ for (i = 0; i < q.count; ++i) -+ plist->elements[i] = q.elements[i]; -+ plist->count = q.count; -+ -+ queue_free(&q); -+} -+#endif // ENABLE_CONDA - - static int - sort_by_name_evr_sortcmp(const void *ap, const void *bp, void *dp) -diff --git a/src/policy.h b/src/policy.h -index 3ae1005a..a79483a4 100644 ---- a/src/policy.h -+++ b/src/policy.h -@@ -45,6 +45,9 @@ extern void pool_best_solvables(Pool *pool, Queue *plist, int flags); - extern void prune_to_best_version(Pool *pool, Queue *plist); - extern void policy_prefer_favored(Solver *solv, Queue *plist); - -+#ifdef ENABLE_CONDA -+extern void prune_to_best_version_conda(Pool *pool, Queue *plist); -+#endif - - #ifdef __cplusplus - } diff --git a/conda.recipe/libsolv/memcpy_to_memmove.patch b/conda.recipe/libsolv/memcpy_to_memmove.patch deleted file mode 100644 index 2e398b8399..0000000000 --- a/conda.recipe/libsolv/memcpy_to_memmove.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/conda.c b/src/conda.c -index 21ad6bfb..6f6a65a6 100644 ---- a/src/conda.c -+++ b/src/conda.c -@@ -670,7 +670,7 @@ pool_conda_matchspec(Pool *pool, const char *name) - if (build) - { - *p++ = ' '; -- memcpy(p, build, buildend - build); -+ memmove(p, build, buildend - build); - p += buildend - build; - } - evrid = pool_strn2id(pool, version, p - version, 1); diff --git a/conda.recipe/libsolv/portfile.cmake b/conda.recipe/libsolv/portfile.cmake deleted file mode 100644 index 52867ad11f..0000000000 --- a/conda.recipe/libsolv/portfile.cmake +++ /dev/null @@ -1,57 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO openSUSE/libsolv - REF 0.7.19 - SHA512 dfcebea314d549a15bf5af19db775ff1b1850bfc6fb147b68fe094e43bf1541fcfe22d2f6c6607a6393e01905a086cea606d0b25da2e3ce376d100c4ef4fee00 - HEAD_REF master - PATCHES - win_static_build.patch - conda_variant_priorization.patch - add_strict_repo_prio_rule.patch - memcpy_to_memmove.patch -) - -string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBS) -string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) - -if (NOT BUILD_DYNAMIC_LIBS) - set(DISABLE_SHARED ON) -else() - set(DISABLE_SHARED OFF) -endif() - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - conda ENABLE_CONDA -) - -if(WIN32) - list(APPEND FEATURE_OPTIONS "-DWITHOUT_COOKIEOPEN=ON") -endif() - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - ${FEATURE_OPTIONS} - -DDISABLE_SHARED=${DISABLE_SHARED} - -DENABLE_STATIC=${BUILD_STATIC_LIBS} - -DMULTI_SEMANTICS=ON - -DBUILD_EXAMPLE_PROGRAMS=OFF - .. -) - - -vcpkg_install_cmake() -# vcpkg_fixup_cmake_targets() -# vcpkg_copy_pdbs() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") -endif() - -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") - -file(INSTALL ${SOURCE_PATH}/LICENSE.BSD DESTINATION ${CURRENT_PACKAGES_DIR}/share/libsolv RENAME copyright) - -vcpkg_test_cmake(PACKAGE_NAME libsolv) diff --git a/conda.recipe/libsolv/win_static_build.patch b/conda.recipe/libsolv/win_static_build.patch deleted file mode 100644 index 1c80b1e968..0000000000 --- a/conda.recipe/libsolv/win_static_build.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt -index f01c0238..48bdd1a1 100644 ---- a/ext/CMakeLists.txt -+++ b/ext/CMakeLists.txt -@@ -162,6 +162,9 @@ IF (WIN32) - ENDIF () - - SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") -+if (MSVC AND DISABLE_SHARED AND ENABLE_STATIC) -+ SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext_static") -+endif() - SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) - - INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index bbf30bac..17b65eb3 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -62,6 +62,10 @@ IF (WIN32) - ENDIF (WIN32) - - SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") -+if (MSVC AND DISABLE_SHARED AND ENABLE_STATIC) -+ SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv_static") -+endif() -+ - SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) - - INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -diff --git a/src/solvversion.c b/src/solvversion.c -index d66e1958..7124c93e 100644 ---- a/src/solvversion.c -+++ b/src/solvversion.c -@@ -7,7 +7,7 @@ - - #include "solvversion.h" - --const char solv_version[] = LIBSOLV_VERSION_STRING; --int solv_version_major = LIBSOLV_VERSION_MAJOR; --int solv_version_minor = LIBSOLV_VERSION_MINOR; --int solv_version_patch = LIBSOLV_VERSION_PATCH; -+SOLV_API const char solv_version[] = LIBSOLV_VERSION_STRING; -+SOLV_API int solv_version_major = LIBSOLV_VERSION_MAJOR; -+SOLV_API int solv_version_minor = LIBSOLV_VERSION_MINOR; -+SOLV_API int solv_version_patch = LIBSOLV_VERSION_PATCH; -diff --git a/src/solvversion.h.in b/src/solvversion.h.in -index 43b566a1..dea09dc9 100644 ---- a/src/solvversion.h.in -+++ b/src/solvversion.h.in -@@ -19,10 +19,17 @@ - #define LIBSOLV_VERSION_PATCH @LIBSOLV_PATCH@ - #define LIBSOLV_VERSION (LIBSOLV_VERSION_MAJOR * 10000 + LIBSOLV_VERSION_MINOR * 100 + LIBSOLV_VERSION_PATCH) - --extern const char solv_version[]; --extern int solv_version_major; --extern int solv_version_minor; --extern int solv_version_patch; -+#ifdef _WIN32 -+// include win32/config.h for SOLV_API -+#include "config.h" -+#else -+#define SOLV_API -+#endif -+ -+SOLV_API extern const char solv_version[]; -+SOLV_API extern int solv_version_major; -+SOLV_API extern int solv_version_minor; -+SOLV_API extern int solv_version_patch; - - #cmakedefine LIBSOLV_FEATURE_LINKED_PKGS - #cmakedefine LIBSOLV_FEATURE_COMPLEX_DEPS -diff --git a/win32/CMakeLists.txt b/win32/CMakeLists.txt -index 9a87af7b..161f0725 100644 ---- a/win32/CMakeLists.txt -+++ b/win32/CMakeLists.txt -@@ -1,4 +1,5 @@ - INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/win32) -+ - SET (WIN32_COMPAT_SOURCES - ${PROJECT_SOURCE_DIR}/win32/fnmatch.c - ${PROJECT_SOURCE_DIR}/win32/getopt.c -@@ -6,4 +7,6 @@ SET (WIN32_COMPAT_SOURCES - ${PROJECT_SOURCE_DIR}/win32/regexec.c - ${PROJECT_SOURCE_DIR}/win32/strfncs.c - ${PROJECT_SOURCE_DIR}/win32/tre-mem.c --) -\ No newline at end of file -+) -+ -+INSTALL (FILES ${PROJECT_SOURCE_DIR}/win32/config.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") -\ No newline at end of file diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml deleted file mode 100644 index 128cdc939e..0000000000 --- a/conda.recipe/meta.yaml +++ /dev/null @@ -1,110 +0,0 @@ -{% set version = "0.26.0" %} -{% set build_num = 0 %} - -package: - name: micromamba - version: {{ version }} - -source: - - git_url: ../ -# patches: -# - libmamba.patch - -build: - number: {{ build_num }} - string: {{ build_num }} - ignore_run_exports_from: - - libcurl # [unix] - - libarchive # [unix] - - reproc-cpp # [unix] - - openssl # [unix] - - spdlog - - {{ compiler('c') }} # [linux] - - {{ compiler('cxx') }} # [linux] - - python # [win] - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - cmake # [unix] - - make # [unix] - - ninja # [win] - - vcpkg # [win] - - m2-patch # [win] - - python # [win] - # force a recent curl version for windows - - curl >=7.75 # [win] - - zlib # [win] - host: - - cli11 >=2.2,<3 - - cpp-expected - - nlohmann_json - - spdlog - - termcolor-cpp - - yaml-cpp-static # [unix] - # we pin an older curl build for darwin-ssl support - - libcurl 7.76.1 *_0 # [osx] - - libcurl-static 7.76.1 *_0 # [osx] - - libcurl # [linux] - - libcurl-static # [linux] - - xz-static # [unix] - - libssh2-static # [unix] - - libarchive # [unix] - - krb5-static # [unix] - - libsolv-static # [unix] - - openssl {{ openssl }} # [unix] - - libopenssl-static {{ openssl }} # [unix] - - zstd-static # [unix] - - libnghttp2-static # [unix] - - lz4-c-static # [unix] - - reproc-static # [unix] - - reproc-cpp # [unix] - - reproc-cpp-static # [unix] - - winreg # [win] - -test: - commands: - - test -f $PREFIX/bin/micromamba # [unix] - - micromamba --help - - export TMPDIR="${TMPDIR:-/tmp}" # [unix and not (ppc64le or aarch64)] - - if [ ! -d "${TMPDIR}" ]; then mkdir -p "${TMPDIR}"; fi # [unix and not (ppc64le or aarch64)] - - stat $TMPDIR # [unix and not (ppc64le or aarch64)] - - export MAMBA_ROOT_PREFIX=$TMPDIR/mamba # [unix and not (ppc64le or aarch64)] - - micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 # [unix and not (ppc64le or aarch64)] - - $TMPDIR/testenv/bin/python --version # [unix and not (ppc64le or aarch64)] - - $TMPDIR/testenv/bin/python -c 'import ssl' # [unix and not (ppc64le or aarch64)] - -about: - home: https://github.com/mamba-org/mamba - license_file: - - LICENSE - - CURL_LICENSE.txt - - LIBARCHIVE_LICENSE.txt - - KRB5_LICENSE.txt - - LIBSOLV_LICENSE.txt - - LIBOPENSSL_LICENSE.txt - - LIBOPENSSL_3_LICENSE.txt - - CLI11_LICENSE.txt - - NLOHMANN_JSON_LICENSE.txt - - ZSTD_LICENSE.txt - - LIBLZ4_LICENSE.txt - - C_ARES_LICENSE.txt - - LIBEV_LICENSE.txt - - CPP_FILESYSTEM_LICENSE.txt - - LIBNGHTTP2_LICENSE.txt - - REPROC_LICENSE.txt - - TERMCOLOR_CPP_LICENSE.txt - - SPDLOG_LICENSE.txt - license: BSD-3-Clause AND MIT AND OpenSSL - license_family: BSD - summary: Micromamba is a tiny version of mamba, the fast conda package installer. - dev_url: https://github.com/mamba-org/mamba - -extra: - recipe-maintainers: - - wolfv - - SylvainCorlay - - JohanMabille - - mariusvniekerk - - adriendelsalle From b76c2f41b0882deca888f0697787c9b23e119e35 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:13:24 +0200 Subject: [PATCH 25/49] fix macos --- .github/workflows/conda-build-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml index 712e2fbb07..44995a0987 100644 --- a/.github/workflows/conda-build-linux.yml +++ b/.github/workflows/conda-build-linux.yml @@ -86,7 +86,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml conda.recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} + run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | From e14b8e4a089d3706b181c435195f85c447718b91 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:18:33 +0200 Subject: [PATCH 26/49] revert stuff --- .ci_support/README | 6 - .ci_support/linux_64_.yaml | 29 -- .ci_support/linux_aarch64_.yaml | 33 -- .ci_support/linux_ppc64le_.yaml | 29 -- .ci_support/osx_64_.yaml | 29 -- .ci_support/osx_arm64_.yaml | 29 -- .ci_support/win_64_.yaml | 14 - .github/workflows/base.sh | 9 - .github/workflows/conda-build.sh | 14 - .github/workflows/linters.yml | 48 ++ .github/workflows/macos-conda-build.sh | 9 - .github/workflows/main.yml | 583 ++++++++++++++++++++++ .github/workflows/static_build.yml | 140 ++++++ .github/workflows/test_micro.mamba.pm.yml | 53 ++ libmamba/CMakeLists.txt | 62 ++- 15 files changed, 879 insertions(+), 208 deletions(-) delete mode 100644 .ci_support/README delete mode 100644 .ci_support/linux_64_.yaml delete mode 100644 .ci_support/linux_aarch64_.yaml delete mode 100644 .ci_support/linux_ppc64le_.yaml delete mode 100644 .ci_support/osx_64_.yaml delete mode 100644 .ci_support/osx_arm64_.yaml delete mode 100644 .ci_support/win_64_.yaml delete mode 100755 .github/workflows/base.sh delete mode 100755 .github/workflows/conda-build.sh create mode 100644 .github/workflows/linters.yml delete mode 100755 .github/workflows/macos-conda-build.sh create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/static_build.yml create mode 100644 .github/workflows/test_micro.mamba.pm.yml diff --git a/.ci_support/README b/.ci_support/README deleted file mode 100644 index a47316be6a..0000000000 --- a/.ci_support/README +++ /dev/null @@ -1,6 +0,0 @@ -This file is automatically generated by conda-smithy. If any -particular build configuration is expected, but it is not found, -please make sure all dependencies are satisfiable. To add/modify any -matrix elements, you should create/change conda-smithy's input -recipe/conda_build_config.yaml and re-render the recipe, rather than -editing these files directly. diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml deleted file mode 100644 index 5c8347e2c0..0000000000 --- a/.ci_support/linux_64_.yaml +++ /dev/null @@ -1,29 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '10' -cdt_name: -- cos6 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '10' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -libarchive: -- '3.3' -libcurl: -- '7' -openssl: -- 1.1.1 -spdlog: -- '1.10' -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml deleted file mode 100644 index a8ed87ce23..0000000000 --- a/.ci_support/linux_aarch64_.yaml +++ /dev/null @@ -1,33 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -c_compiler: -- gcc -c_compiler_version: -- '10' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '10' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -libarchive: -- '3.3' -libcurl: -- '7' -openssl: -- 1.1.1 -spdlog: -- '1.10' -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml deleted file mode 100644 index 9f4e23fb9d..0000000000 --- a/.ci_support/linux_ppc64le_.yaml +++ /dev/null @@ -1,29 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '10' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '10' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -libarchive: -- '3.3' -libcurl: -- '7' -openssl: -- 1.1.1 -spdlog: -- '1.10' -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml deleted file mode 100644 index d0906738f4..0000000000 --- a/.ci_support/osx_64_.yaml +++ /dev/null @@ -1,29 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.9' -c_compiler: -- clang -c_compiler_version: -- '14' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- clangxx -cxx_compiler_version: -- '14' -libarchive: -- '3.3' -libcurl: -- '7' -macos_machine: -- x86_64-apple-darwin13.4.0 -openssl: -- 1.1.1 -spdlog: -- '1.10' -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml deleted file mode 100644 index 848d020617..0000000000 --- a/.ci_support/osx_arm64_.yaml +++ /dev/null @@ -1,29 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '14' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- clangxx -cxx_compiler_version: -- '14' -libarchive: -- '3.3' -libcurl: -- '7' -macos_machine: -- arm64-apple-darwin20.0.0 -openssl: -- 1.1.1 -spdlog: -- '1.10' -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index 25eb76a10c..0000000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,14 +0,0 @@ -c_compiler: -- vs2019 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cxx_compiler: -- vs2019 -spdlog: -- '1.10' -target_platform: -- win-64 -zlib: -- '1.2' diff --git a/.github/workflows/base.sh b/.github/workflows/base.sh deleted file mode 100755 index e2de98cbb2..0000000000 --- a/.github/workflows/base.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -eo pipefail - -export PYTHON_VERSION=$1 - -# Enable 'conda' command to make 'conda activate' work -CONDA_BASE=$(conda info --base) -source ${CONDA_BASE}/etc/profile.d/conda.sh diff --git a/.github/workflows/conda-build.sh b/.github/workflows/conda-build.sh deleted file mode 100755 index 61f9553ad1..0000000000 --- a/.github/workflows/conda-build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -eo pipefail - -# add --no-test if we are not building for x86 -if [[ $CONDA_BUILD_YML != linux_64_ ]]; then - CONDA_BUILD_ARGS="--no-test" -fi - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -source ${SCRIPT_DIR}/base.sh $* -conda activate base -mamba install -y conda-build -conda build -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml new file mode 100644 index 0000000000..9f93f3d46a --- /dev/null +++ b/.github/workflows/linters.yml @@ -0,0 +1,48 @@ +name: Linters (Python, C++) + +on: + push: + branches: + - main + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v2 + with: + miniconda-version: 'latest' + activate-environment: linters + python-version: 3.8 + auto-update-conda: true + - name: Config Channels + shell: pwsh + run: | + conda config --set always_yes yes + conda config --add channels conda-forge + - name: Install dependencies + shell: pwsh + run: | + conda install pre-commit + - name: Conda info + shell: pwsh + run: | + conda info -a + conda list + - name: Run all linters + shell: pwsh + run: | + pre-commit run --all-files --verbose --show-diff-on-failure diff --git a/.github/workflows/macos-conda-build.sh b/.github/workflows/macos-conda-build.sh deleted file mode 100755 index aa23e3733f..0000000000 --- a/.github/workflows/macos-conda-build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -exo pipefail - -# Don't test cross-compiled result (there is no emulation) and use the latest MacOS SDK. -if grep -q "osx-arm64" .ci_support/${CONDA_BUILD_YML}.yaml; then - CONDA_BUILD_ARGS="--no-test" -fi -conda mambabuild -m .ci_support/${CONDA_BUILD_YML}.yaml conda.recipe ${CONDA_BUILD_ARGS:-} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..25a7a55b4d --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,583 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + libmamba_static: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./libmamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + - name: build libmamba-static + shell: bash -l {0} + run: | + micromamba activate build_env + mkdir build + cd build + cmake .. -DBUILD_LIBMAMBA=ON \ + -DBUILD_STATIC=ON \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -GNinja + ninja + - name: build cache statistics + run: sccache --show-stats + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + libmamba_cpp_tests: + needs: [libmamba_static] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./libmamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static-${{ matrix.os }} + - name: build and run libmamba C++ tests + shell: bash -l {0} + run: | + micromamba activate build_env + mkdir build + cd build + cmake .. -DBUILD_LIBMAMBA=ON \ + -DBUILD_SHARED=ON \ + -DBUILD_LIBMAMBA_TESTS=ON \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -GNinja + ninja testing_libmamba_lock + ninja test + - name: build cache statistics + run: sccache --show-stats + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + umamba_tests: + needs: [libmamba_static] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./micromamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static-${{ matrix.os }} + - name: build micromamba + shell: bash -l {0} + run: | + micromamba activate build_env + mkdir build + cd build + cmake .. -DBUILD_MICROMAMBA=ON \ + -DBUILD_LIBMAMBA=ON \ + -DBUILD_SHARED=ON \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -GNinja + ninja + - name: build cache statistics + run: sccache --show-stats + - name: install zsh, xonsh and fish in linux + if: matrix.os == 'ubuntu-latest' + shell: bash -l -eo pipefail {0} + run: | + sudo apt-get install zsh xonsh fish -y + - name: install xonsh and fish in mac + if: matrix.os == 'macos-latest' + shell: bash -l -eo pipefail {0} + run: | + brew install fish xonsh + - name: micromamba python based tests + shell: bash -l -eo pipefail {0} + run: | + export TEST_MAMBA_EXE=$(pwd)/build/micromamba/micromamba + micromamba activate build_env + pytest -v --capture=tee-sys micromamba/tests/ + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + mamba_python_tests: + needs: [libmamba_static] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + python_version: ["3.8"] + + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./mamba/environment-dev.yml + environment-name: build_env + cache-env: true + extra-specs: | + conda-build + python=${{ matrix.python_version }} + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static-${{ matrix.os }} + - name: run conda init + shell: bash -l {0} + run: conda init + - name: build libmamba Python bindings + shell: bash -l {0} + run: | + micromamba activate build_env + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ + -DBUILD_LIBMAMBAPY=ON \ + -DBUILD_LIBMAMBA=ON \ + -DBUILD_SHARED=ON \ + -DBUILD_MAMBA_PACKAGE=ON \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -GNinja + ninja + ninja install + - name: install libmambapy + shell: bash -l {0} + run: | + micromamba activate build_env + pip install -e ./libmambapy/ --no-deps + - name: build cache statistics + run: sccache --show-stats + - name: install mamba + shell: bash -l {0} + run: | + micromamba activate build_env + pip install ./mamba[test] --no-deps + - name: run mamba tests suite + shell: bash -l {0} + run: | + micromamba activate build_env + pytest -v --capture=tee-sys mamba/tests + - name: run mamba create/update tests + shell: bash -l {0} + run: | + micromamba activate build_env + mamba create -n test_env xtensor -c conda-forge -y + mamba env create -f mamba/tests/test_env.yml + mamba env update -f mamba/tests/update_env.yml + - name: run mamba local channel test + shell: bash -l {0} + run: | + micromamba activate build_env + if [ "$RUNNER_OS" == "Linux" ]; then + mkdir -p $CONDA_PREFIX/conda-bld/linux-64 + wget -P $CONDA_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/linux-64/xtensor-0.21.8-hc9558a2_0.tar.bz2 + wget -P $CONDA_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/linux-64/xtl-0.6.21-h0efe328_0.tar.bz2 + else + mkdir -p $CONDA_PREFIX/conda-bld/osx-64 + wget -P $CONDA_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/osx-64/xtensor-0.21.8-h879752b_0.tar.bz2 + wget -P $CONDA_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/osx-64/xtl-0.6.21-h6516342_0.tar.bz2 + fi + conda index $CONDA_PREFIX/conda-bld + mamba create -n l_o_cal_test xtensor -c local -c conda-forge -y + + conda list -n l_o_cal_test + conda list -n l_o_cal_test | tail -n +3 > list.txt + if [ "$(grep -c "local" list.txt)" -ne 2 ]; then + exit 1 + fi + - name: Run server auth tests + shell: bash -l {0} -euo pipefail -x + run: | + micromamba activate build_env + cd mamba/tests + + if [[ "$(uname -s)" == "Linux" ]]; then + ./generate_gpg_keys.sh + pip install securesystemslib + fi + pip install git+https://github.com/conda/conda-content-trust.git@main + + ./testserver.sh + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + libmamba_static_win: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./libmamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + - name: build libmamba-static + shell: cmd /C call {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir build + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ + -DBUILD_LIBMAMBA=ON ^ + -DBUILD_STATIC=ON ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ + -GNinja + if %errorlevel% neq 0 exit /b %errorlevel% + ninja + - name: build cache statistics + run: sccache --show-stats + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + mamba_python_tests_win: + needs: [libmamba_static_win] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + python-version: ["3.7"] + + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./mamba/environment-dev.yml + environment-name: build_env + cache-env: true + extra-specs: | + conda-build + curl + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static_win-${{ matrix.os }} + - name: run conda init + shell: bash -l {0} + run: conda init + - name: build libmamba Python bindings + shell: cmd /C call {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir build + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ + -DBUILD_LIBMAMBAPY=ON ^ + -DBUILD_LIBMAMBA=ON ^ + -DBUILD_SHARED=ON ^ + -DBUILD_MAMBA_PACKAGE=ON ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ + -GNinja + if %errorlevel% neq 0 exit /b %errorlevel% + ninja + if %errorlevel% neq 0 exit /b %errorlevel% + ninja install + - name: install libmambapy + shell: cmd /C call {0} + run: | + call micromamba activate build_env + pip install -e .\libmambapy\ --no-deps + - name: build cache statistics + run: sccache --show-stats + - name: install mamba + shell: bash -l {0} + run: | + python --version + pip install ./mamba[test] --no-deps + - name: run mamba tests suite + shell: bash -l {0} + run: pytest -v --capture=tee-sys mamba/tests + - name: Run create command + shell: bash -l {0} + run: mamba create -n test_env xtensor -c conda-forge -y + - name: Run env create command + shell: bash -l {0} + run: mamba env create -f mamba/tests/test_env.yml + - name: Run env update command + shell: bash -l {0} + run: mamba env update -f mamba/tests/update_env.yml + - name: Run local channel checks + shell: bash -l {0} + run: | + mkdir -p $CONDA_PREFIX/conda-bld/win-64 + echo $PATH + micromamba list + micromamba info + curl --version + curl https://anaconda.org/conda-forge/xtensor/0.21.7/download/win-64/xtensor-0.21.7-h7ef1ec2_0.tar.bz2 -L -o $CONDA_PREFIX/conda-bld/win-64/xtensor-0.21.7-h7ef1ec2_0.tar.bz2 + curl https://anaconda.org/conda-forge/xtl/0.6.21/download/win-64/xtl-0.6.21-h5362a0b_0.tar.bz2 -L -o $CONDA_PREFIX/conda-bld/win-64/xtl-0.6.21-h5362a0b_0.tar.bz2 + conda index $CONDA_PREFIX/conda-bld + mamba create -n l_o_cal_test xtensor -c local -c conda-forge -y + + conda list -n l_o_cal_test + # cut first couple of lines to remove prefix path + conda list -n l_o_cal_test | tail -n +3 > list.txt + if [ "$(grep -c "local" list.txt)" -ne 2 ]; then + exit 1 + fi + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + libmamba_cpp_tests_win: + needs: [libmamba_static_win] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + python-version: ["3.7"] + + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./libmamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static_win-${{ matrix.os }} + - name: build and run libmamba C++ tests + shell: cmd /C call {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir build + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ + -DBUILD_LIBMAMBA_TESTS=ON ^ + -DBUILD_LIBMAMBA=ON ^ + -DBUILD_SHARED=ON ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ + -GNinja + if %errorlevel% neq 0 exit /b %errorlevel% + ninja install + if %errorlevel% neq 0 exit /b %errorlevel% + ninja test + - name: build cache statistics + run: sccache --show-stats + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + umamba_tests_win: + needs: [libmamba_static_win] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + python-version: ["3.7"] + + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./micromamba/environment-dev.yml + environment-name: build_env + cache-env: true + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + restore-keys: | + libmamba_static_win-${{ matrix.os }} + - name: build micromamba + shell: cmd /C call {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir build + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + cmake .. -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^ + -DBUILD_MICROMAMBA=ON ^ + -DMICROMAMBA_LINKAGE=STATIC ^ + -DBUILD_LIBMAMBA=ON ^ + -DBUILD_STATIC=ON ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ + -GNinja + if %errorlevel% neq 0 exit /b %errorlevel% + ninja install + - name: check that micromamba runs + shell: cmd /C call {0} + run: | + call micromamba activate build_env + .\build\micromamba\micromamba.exe --help + - name: build cache statistics + run: sccache --show-stats + - name: tar micromamba artifact + run: tar -cvf umamba.tar build/micromamba/micromamba.exe + - uses: actions/upload-artifact@v2 + with: + name: _internal_micromamba_binary + path: umamba.tar + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs + + umamba_tests_win_cmd: + needs: [umamba_tests_win] + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest] + python-version: ["3.7"] + + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v2 + with: + name: _internal_micromamba_binary + + - name: untar micromamba artifact + shell: bash -l -eo pipefail {0} + run: | + tar -xvf umamba.tar + + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./micromamba/environment-dev.yml + environment-name: build_env + extra-specs: menuinst + + - name: micromamba python based tests with pwsh + shell: powershell + run: | + $env:PYTHONIOENCODING='UTF-8' + $env:MAMBA_ROOT_PREFIX = Join-Path -Path $pwd -ChildPath 'mambaroot' + $env:MAMBA_TEST_SHELL_TYPE='powershell' + + pytest -v --capture=tee-sys micromamba/tests/ + + # - name: micromamba python based tests + # shell: cmd /C call {0} + # run: | + # if %errorlevel% neq 0 exit /b %errorlevel% + # set PYTHONIOENCODING=UTF-8 + # if %errorlevel% neq 0 exit /b %errorlevel% + # set MAMBA_ROOT_PREFIX=%cd%\mambaroot + # if %errorlevel% neq 0 exit /b %errorlevel% + # set MAMBA_TEST_SHELL_TYPE=cmd.exe + # if %errorlevel% neq 0 exit /b %errorlevel% + # reg delete "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /f + # if %errorlevel% neq 0 exit /b %errorlevel% + # + # pytest -v --capture=tee-sys micromamba/tests/test_shell.py + + # - name: micromamba python based tests + # shell: bash -l -eo pipefail {0} + # run: | + # export PYTHONIOENCODING=UTF-8 + # export MAMBA_ROOT_PREFIX=~/mambaroot + # export MAMBA_TEST_SHELL_TYPE=bash + # + # pytest -v --capture=tee-sys micromamba/tests/test_shell.py + + - name: Cleanup + shell: bash -l {0} + if: always() + run: | + # Do not cache temporary envs with 'cache-env: true' + rm -rf $(micromamba info --json | jq -r '."env location"')/envs diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml new file mode 100644 index 0000000000..93650d00c1 --- /dev/null +++ b/.github/workflows/static_build.yml @@ -0,0 +1,140 @@ +name: Fully static binary builds + +on: + push: + branches: + - main + pull_request: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + micromamba_full_static: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./micromamba/environment-dev.yml + environment-name: build_env + cache-env: true + - name: create build environment + run: micromamba install -y -n build_env -f ./libmamba/environment-static-dev.yml + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }} + - name: build micromamba + shell: bash -l {0} + run: | + micromamba activate build_env + mkdir build + cd build + cmake .. -DBUILD_LIBMAMBA=ON \ + -DBUILD_STATIC_DEPS=ON \ + -DBUILD_STATIC=ON \ + -DBUILD_MICROMAMBA=ON \ + -DMICROMAMBA_STATIC_DEPS=ON \ + -DMICROMAMBA_LINKAGE=FULL_STATIC \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -GNinja + ninja + - name: check that micromamba runs + shell: bash -l {0} + run: | + micromamba activate build_env + build/micromamba/micromamba --version + - name: build cache statistics + run: sccache --show-stats + - uses: actions/upload-artifact@v3 + with: + name: Fully static binary (${{ matrix.os }}) + path: build/micromamba/micromamba + + micromamba_full_static_win: + # Don't run this job branches because it is very slow + if: github.ref == 'refs/heads/main' + + # These build instructions are based on https://github.com/conda-forge/micromamba-feedstock + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + - name: create build environment + uses: mamba-org/provision-with-micromamba@main + with: + environment-file: ./libmamba/environment-static-dev-win.yml + environment-name: build_env + cache-env: true # this also caches the vcpkg builds + - name: build static windows dependencies with vcpkg + shell: cmd /C CALL {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir build + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + git clone https://github.com/conda-forge/micromamba-feedstock.git + if %errorlevel% neq 0 exit /b %errorlevel% + ROBOCOPY micromamba-feedstock/recipe/libsolv %VCPKG_ROOT%/ports/libsolv + @rem ROBOCOPY has 0 and 1 as successfull exit codes + if %errorlevel% neq 0 if %errorlevel% neq 1 exit /b %errorlevel% + SET VCPKG_BUILD_TYPE=release && vcpkg install libsolv[conda] --triplet x64-windows-static + if %errorlevel% neq 0 exit /b %errorlevel% + vcpkg install "libarchive[bzip2,lz4,lzma,lzo,openssl,zstd]" --triplet x64-windows-static + if %errorlevel% neq 0 exit /b %errorlevel% + vcpkg install curl --triplet x64-windows-static + if %errorlevel% neq 0 exit /b %errorlevel% + vcpkg install yaml-cpp --triplet x64-windows-static + if %errorlevel% neq 0 exit /b %errorlevel% + vcpkg install reproc --triplet x64-windows-static + if %errorlevel% neq 0 exit /b %errorlevel% + set CMAKE_PREFIX_PATH=%VCPKG_ROOT%\installed\x64-windows-static\;%CMAKE_PREFIX_PATH% + if %errorlevel% neq 0 exit /b %errorlevel% + - name: Apply libmamba.patch + run: | + cd libmamba + patch < ../build/micromamba-feedstock/recipe/libmamba.patch + shell: bash + - uses: hendrikmuhs/ccache-action@main + with: + variant: sccache + key: ${{ github.job }}-windows-2019 + - name: build micromamba + shell: cmd /C CALL {0} + run: | + call micromamba activate build_env + if %errorlevel% neq 0 exit /b %errorlevel% + cd build + if %errorlevel% neq 0 exit /b %errorlevel% + cmake .. ^ + -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -D CMAKE_PREFIX_PATH="%VCPKG_ROOT%\installed\x64-windows-static;%CMAKE_PREFIX_PATH%" ^ + -D CMAKE_BUILD_TYPE="Release" ^ + -D BUILD_LIBMAMBA=ON ^ + -D BUILD_STATIC_DEPS=ON ^ + -D BUILD_MICROMAMBA=ON ^ + -D MICROMAMBA_LINKAGE=FULL_STATIC ^ + -G "Ninja" + if %errorlevel% neq 0 exit /b %errorlevel% + ninja install + if %errorlevel% neq 0 exit /b %errorlevel% + sccache --show-stats + if %errorlevel% neq 0 exit /b %errorlevel% + .\micromamba\micromamba.exe --version + if %errorlevel% neq 0 exit /b %errorlevel% + .\micromamba\micromamba.exe --help + if %errorlevel% neq 0 exit /b %errorlevel% + - uses: actions/upload-artifact@v3 + with: + name: Fully static binary (windows-2019) + path: build/micromamba/micromamba.exe diff --git a/.github/workflows/test_micro.mamba.pm.yml b/.github/workflows/test_micro.mamba.pm.yml new file mode 100644 index 0000000000..01d1a59841 --- /dev/null +++ b/.github/workflows/test_micro.mamba.pm.yml @@ -0,0 +1,53 @@ +name: Test micro.mamba.pm + +on: + schedule: + - cron: '0 10 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +defaults: + run: + shell: bash -el {0} + +jobs: + test_micro_mamba_pm: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - {os: ubuntu-latest, shell: bash, shell-source-param: -i} + - {os: macos-latest, shell: zsh, shell-source-param: -i} + - {os: macos-latest, shell: bash, shell-source-param: -l} + - {os: windows-latest, shell: bash, shell-source-param: -l} + steps: + - name: Install Micromamba (${{ matrix.os }}, ${{ matrix.shell }}) + run: | + # TODO: Update install.sh script for Windows + if [ ${{ matrix.os }} = windows-latest ]; then + mkdir -p ~/bin + curl -Ls https://micro.mamba.pm/api/micromamba/win-64/latest \ + | bunzip2 | tar xOf - Library/bin/micromamba.exe > ~/bin/micromamba.exe + else + curl http://micro.mamba.pm/install.sh | ${{ matrix.shell }} + fi + - name: Test Micromamba + # use either -l or -i to source .bash_profile or .bashrc/.zshrc + run: | + ${{ matrix.shell }} ${{ matrix.shell-source-param }} -ec micromamba + - uses: dblock/create-a-github-issue@2c9fa0d32c24d651281c37d21e5b49e333500fe8 + #if: failure() + if: false + with: + filename: .github/workflows/test_issue.md + update_existing: true + search_existing: all + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/libmamba/CMakeLists.txt b/libmamba/CMakeLists.txt index aa2995c10e..6103bf9565 100644 --- a/libmamba/CMakeLists.txt +++ b/libmamba/CMakeLists.txt @@ -341,8 +341,7 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) find_package(CURL CONFIG REQUIRED) find_package(yaml-cpp CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) - find_library(LIBLZMA_LIBRARIES lzma REQUIRED) - + find_package(LibLZMA CONFIG REQUIRED) find_library(LZ4_LIBRARY NAMES lz4) find_library(LZO2_LIBRARY NAMES lzo2) find_package(zstd CONFIG REQUIRED) @@ -355,8 +354,8 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) find_package(tl-expected REQUIRED) find_library(LIBXML2_LIBRARY NAMES libxml2) - find_library(ICONV_LIBRARY NAMES iconv) - find_library(CHARSET_LIBRARY NAMES charset) + find_library(ICONV_LIBRARY NAMES libiconv) + find_library(CHARSET_LIBRARY NAMES libcharset) message("Found: ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY}") target_link_libraries(${target_name} PUBLIC @@ -365,14 +364,14 @@ macro(libmamba_create_target target_name linkage deps_linkage output_name) ${LIBXML2_LIBRARY} ${ICONV_LIBRARY} ${CHARSET_LIBRARY} - zstd::libzstd_static + libzstd ${LZ4_LIBRARY} ${LZO2_LIBRARY} ${BZIP2_LIBRARIES} ${LIBLZMA_LIBRARIES} CURL::libcurl nlohmann_json::nlohmann_json - yaml-cpp + ${YAML_CPP_LIBRARIES} ${LIBSOLV_BUILD_STATICRARIES} ${LIBSOLVEXT_BUILD_STATICRARIES} ${sodium_LIBRARY_RELEASE} @@ -510,4 +509,53 @@ endif () # Tests if (BUILD_TESTS) add_subdirectory(tests) -endif() \ No newline at end of file +endif() + +# Installation +# ============ + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +set(LIBMAMBA_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for libmambaConfig.cmake") + +install(TARGETS ${libmamba_targets} + EXPORT ${PROJECT_NAME}-targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +install(DIRECTORY "${LIBMAMBA_INCLUDE_DIR}/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + FILES_MATCHING + PATTERN "*.hpp" + PATTERN "*.h") + +# Makes the project importable from the build directory +export(EXPORT ${PROJECT_NAME}-targets + FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake") + +# Configure 'mambaConfig.cmake' for a build tree +set(MAMBA_CONFIG_CODE "####### Expanded from \@MAMBA_CONFIG_CODE\@ #######\n") +set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}set(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake;\${CMAKE_MODULE_PATH}\")\n") +set(MAMBA_CONFIG_CODE "${MAMBA_CONFIG_CODE}##################################################") +configure_package_config_file(${PROJECT_NAME}Config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION ${PROJECT_BINARY_DIR}) + +# Configure 'mambaConfig.cmake' for an install tree +set(MAMBA_CONFIG_CODE "") +configure_package_config_file(${PROJECT_NAME}Config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) + + +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + VERSION ${MAMBA_VERSION_MAJOR}.${MAMBA_VERSION_MINOR}.${MAMBA_VERSION_PATCH} + COMPATIBILITY AnyNewerVersion) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) +install(EXPORT ${PROJECT_NAME}-targets + FILE ${PROJECT_NAME}Targets.cmake + DESTINATION ${LIBMAMBA_CMAKECONFIG_INSTALL_DIR}) From ef908962ec6e46016e6245b8ce41ce6eca518113 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:25:33 +0200 Subject: [PATCH 27/49] move to static_build.yml --- .github/workflows/conda-build-linux.yml | 100 -------------------- .github/workflows/static_build.yml | 121 ++++++++++++++++-------- 2 files changed, 82 insertions(+), 139 deletions(-) delete mode 100644 .github/workflows/conda-build-linux.yml diff --git a/.github/workflows/conda-build-linux.yml b/.github/workflows/conda-build-linux.yml deleted file mode 100644 index 44995a0987..0000000000 --- a/.github/workflows/conda-build-linux.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: micromamba static build -on: - push: - branches: - - main - pull_request: - branches: - - main -jobs: - linux-conda-build: - name: "micromamba - ${{ matrix.TARGET }}" - runs-on: ubuntu-latest - env: - CI: True - CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} - strategy: - fail-fast: false - matrix: - include: - - {CONDA_BUILD_YML: linux_64_, TARGET: linux-64} - - {CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64} - - {CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le} - steps: - - name: Checkout branch - uses: actions/checkout@v3 - - name: Checkout micromamba-feedstock - uses: actions/checkout@v3 - with: - repository: conda-forge/micromamba-feedstock - path: micromamba-feedstock - - name: Patch micromamba-feedstock - run: | - sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - - uses: mamba-org/provision-with-micromamba@main - with: - channels: conda-forge - environment-file: false - environment-name: mambabuild - extra-specs: boa - - name: Build conda package - shell: bash -l {0} - run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} - - name: Unpack micromamba package - shell: bash -l {0} - run: | - cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} - tar -xvf micromamba-*.tar.bz2 - chmod +x bin/micromamba - - name: Upload micromamba - uses: actions/upload-artifact@v2 - with: - name: micromamba-${{ matrix.TARGET }} - path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba - - macos-conda-build: - name: "micromamba - ${{ matrix.TARGET }}" - runs-on: macos-latest - env: - CI: True - CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} - strategy: - fail-fast: false - matrix: - include: - - { CONDA_BUILD_YML: osx_64_, TARGET: osx-64 } - - { CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64 } - steps: - - name: Checkout branch - uses: actions/checkout@v3 - - name: Checkout micromamba-feedstock - uses: actions/checkout@v3 - with: - repository: conda-forge/micromamba-feedstock - path: micromamba-feedstock - - name: Patch micromamba-feedstock - run: | - sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml - sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml - sed -i '' '/patches:/d' micromamba-feedstock/recipe/meta.yaml - sed -i '' '/libmamba.patch/d' micromamba-feedstock/recipe/meta.yaml - - uses: mamba-org/provision-with-micromamba@main - with: - channels: conda-forge - environment-file: false - environment-name: mambabuild - extra-specs: boa - - name: Build conda package - shell: bash -l {0} - run: conda mambabuild -m .ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} - - name: Unpack micromamba package - shell: bash -l {0} - run: | - cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} - tar -xvf micromamba-*.tar.bz2 - chmod +x bin/micromamba - - name: Upload micromamba - uses: actions/upload-artifact@v2 - with: - name: micromamba-${{ matrix.TARGET }} - path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 93650d00c1..4c00421f5b 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -13,58 +13,101 @@ concurrency: cancel-in-progress: true jobs: - micromamba_full_static: - runs-on: ${{ matrix.os }} + linux-conda-build: + name: "micromamba - ${{ matrix.TARGET }}" + runs-on: ubuntu-latest + env: + CI: True + CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} strategy: + fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + include: + - { CONDA_BUILD_YML: linux_64_, TARGET: linux-64 } + - { CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64 } + - { CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le } steps: - - uses: actions/checkout@v3 - - name: create build environment - uses: mamba-org/provision-with-micromamba@main + - name: Checkout branch + uses: actions/checkout@v3 + - name: Checkout micromamba-feedstock + uses: actions/checkout@v3 with: - environment-file: ./micromamba/environment-dev.yml - environment-name: build_env - cache-env: true - - name: create build environment - run: micromamba install -y -n build_env -f ./libmamba/environment-static-dev.yml - - uses: hendrikmuhs/ccache-action@main + repository: conda-forge/micromamba-feedstock + path: micromamba-feedstock + - name: Patch micromamba-feedstock + run: | + sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml + - uses: mamba-org/provision-with-micromamba@main with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }} - - name: build micromamba + channels: conda-forge + environment-file: false + environment-name: mambabuild + extra-specs: boa + - name: Build conda package + shell: bash -l {0} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} + - name: Unpack micromamba package shell: bash -l {0} run: | - micromamba activate build_env - mkdir build - cd build - cmake .. -DBUILD_LIBMAMBA=ON \ - -DBUILD_STATIC_DEPS=ON \ - -DBUILD_STATIC=ON \ - -DBUILD_MICROMAMBA=ON \ - -DMICROMAMBA_STATIC_DEPS=ON \ - -DMICROMAMBA_LINKAGE=FULL_STATIC \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -GNinja - ninja - - name: check that micromamba runs + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} + tar -xvf micromamba-*.tar.bz2 + chmod +x bin/micromamba + - name: Upload micromamba + uses: actions/upload-artifact@v2 + with: + name: micromamba-${{ matrix.TARGET }} + path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba + + macos-conda-build: + name: "micromamba - ${{ matrix.TARGET }}" + runs-on: macos-latest + env: + CI: True + CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} + strategy: + fail-fast: false + matrix: + include: + - { CONDA_BUILD_YML: osx_64_, TARGET: osx-64 } + - { CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64 } + steps: + - name: Checkout branch + uses: actions/checkout@v3 + - name: Checkout micromamba-feedstock + uses: actions/checkout@v3 + with: + repository: conda-forge/micromamba-feedstock + path: micromamba-feedstock + - name: Patch micromamba-feedstock + run: | + sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/patches:/d' micromamba-feedstock/recipe/meta.yaml + sed -i '' '/libmamba.patch/d' micromamba-feedstock/recipe/meta.yaml + - uses: mamba-org/provision-with-micromamba@main + with: + channels: conda-forge + environment-file: false + environment-name: mambabuild + extra-specs: boa + - name: Build conda package + shell: bash -l {0} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} + - name: Unpack micromamba package shell: bash -l {0} run: | - micromamba activate build_env - build/micromamba/micromamba --version - - name: build cache statistics - run: sccache --show-stats - - uses: actions/upload-artifact@v3 + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} + tar -xvf micromamba-*.tar.bz2 + chmod +x bin/micromamba + - name: Upload micromamba + uses: actions/upload-artifact@v2 with: - name: Fully static binary (${{ matrix.os }}) - path: build/micromamba/micromamba + name: micromamba-${{ matrix.TARGET }} + path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba micromamba_full_static_win: - # Don't run this job branches because it is very slow - if: github.ref == 'refs/heads/main' - # These build instructions are based on https://github.com/conda-forge/micromamba-feedstock + name: "micromamba - win-64" runs-on: windows-2019 steps: - uses: actions/checkout@v3 From 53160673e5c1d0e8a3b0a03824a25fd190c55be9 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:26:27 +0200 Subject: [PATCH 28/49] change name --- .github/workflows/static_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 4c00421f5b..4fe22c65c9 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -1,4 +1,4 @@ -name: Fully static binary builds +name: micromamba static builds on: push: @@ -179,5 +179,5 @@ jobs: if %errorlevel% neq 0 exit /b %errorlevel% - uses: actions/upload-artifact@v3 with: - name: Fully static binary (windows-2019) + name: micromamba-win-64 path: build/micromamba/micromamba.exe From 120c22fb66bba1b04c0ddcaae63b71f424b2665b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 20:27:01 +0200 Subject: [PATCH 29/49] change name --- .github/workflows/static_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 4fe22c65c9..770132bba3 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -1,4 +1,4 @@ -name: micromamba static builds +name: Micromamba static builds on: push: From 517834d6cd440eafbf87d8fc978559b45556051d Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Sun, 2 Oct 2022 21:30:10 +0200 Subject: [PATCH 30/49] is windows ci caching working? From e0c8a50c8c161d5aa5913088f4f8f51769ea8f1c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 10:43:08 +0200 Subject: [PATCH 31/49] Deduplicate code --- .github/workflows/static_build.yml | 57 ++++++------------------------ 1 file changed, 10 insertions(+), 47 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 770132bba3..bfd68ab375 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -13,9 +13,9 @@ concurrency: cancel-in-progress: true jobs: - linux-conda-build: + conda-build: name: "micromamba - ${{ matrix.TARGET }}" - runs-on: ubuntu-latest + runs-on: ${{ matrix.OS }} env: CI: True CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} @@ -23,9 +23,11 @@ jobs: fail-fast: false matrix: include: - - { CONDA_BUILD_YML: linux_64_, TARGET: linux-64 } - - { CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64 } - - { CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le } + - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_64_, TARGET: linux-64, BUILD: linux-64 } + - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64, BUILD: linux-64 } + - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le, BUILD: linux-64 } + - { OS: macos-latest, CONDA_BUILD_YML: osx_64_, TARGET: osx-64, BUILD: osx-64 } + - { OS: macos-latest, CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64, BUILD: osx-64 } steps: - name: Checkout branch uses: actions/checkout@v3 @@ -35,50 +37,11 @@ jobs: repository: conda-forge/micromamba-feedstock path: micromamba-feedstock - name: Patch micromamba-feedstock + if: ${{ matrix.OS == 'ubuntu-latest' }} run: | sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - - uses: mamba-org/provision-with-micromamba@main - with: - channels: conda-forge - environment-file: false - environment-name: mambabuild - extra-specs: boa - - name: Build conda package - shell: bash -l {0} - run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'linux-64' && '--no-test' || '' }} - - name: Unpack micromamba package - shell: bash -l {0} - run: | - cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} - tar -xvf micromamba-*.tar.bz2 - chmod +x bin/micromamba - - name: Upload micromamba - uses: actions/upload-artifact@v2 - with: - name: micromamba-${{ matrix.TARGET }} - path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba - - macos-conda-build: - name: "micromamba - ${{ matrix.TARGET }}" - runs-on: macos-latest - env: - CI: True - CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} - strategy: - fail-fast: false - matrix: - include: - - { CONDA_BUILD_YML: osx_64_, TARGET: osx-64 } - - { CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64 } - steps: - - name: Checkout branch - uses: actions/checkout@v3 - - name: Checkout micromamba-feedstock - uses: actions/checkout@v3 - with: - repository: conda-forge/micromamba-feedstock - path: micromamba-feedstock - name: Patch micromamba-feedstock + if: ${{ matrix.OS == 'macos-latest' }} run: | sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml @@ -92,7 +55,7 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != 'osx-64' && '--no-test' || '' }} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != matrix.BUILD && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | From d197c5d5063e3c7fb2c20c1a62a22a9826eb2ef4 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 15:54:08 +0200 Subject: [PATCH 32/49] code review, debug test build --- .github/workflows/static_build.yml | 44 ++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index bfd68ab375..53f1ab669d 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -14,20 +14,20 @@ concurrency: jobs: conda-build: - name: "micromamba - ${{ matrix.TARGET }}" - runs-on: ${{ matrix.OS }} + name: "micromamba - ${{ matrix.target }}" + runs-on: ${{ matrix.os }} env: CI: True - CONDA_BUILD_YML: ${{ matrix.CONDA_BUILD_YML }} + CONDA_BUILD_YML: ${{ matrix.conda-build-yml }} strategy: fail-fast: false matrix: include: - - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_64_, TARGET: linux-64, BUILD: linux-64 } - - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_aarch64_, TARGET: linux-aarch64, BUILD: linux-64 } - - { OS: ubuntu-latest, CONDA_BUILD_YML: linux_ppc64le_, TARGET: linux-ppc64le, BUILD: linux-64 } - - { OS: macos-latest, CONDA_BUILD_YML: osx_64_, TARGET: osx-64, BUILD: osx-64 } - - { OS: macos-latest, CONDA_BUILD_YML: osx_arm64_, TARGET: osx-arm64, BUILD: osx-64 } + - { os: ubuntu-latest, conda-build-yml: linux_64_.yaml, target: linux-64, host: linux-64 } + - { os: ubuntu-latest, conda-build-yml: linux_aarch64_.yaml, target: linux-aarch64, host: linux-64 } + - { os: ubuntu-latest, conda-build-yml: linux_ppc64le_.yaml, target: linux-ppc64le, host: linux-64 } + - { os: macos-latest, conda-build-yml: osx_64_.yaml, target: osx-64, host: osx-64 } + - { os: macos-latest, conda-build-yml: osx_arm64_.yaml, target: osx-arm64, host: osx-64 } steps: - name: Checkout branch uses: actions/checkout@v3 @@ -37,11 +37,11 @@ jobs: repository: conda-forge/micromamba-feedstock path: micromamba-feedstock - name: Patch micromamba-feedstock - if: ${{ matrix.OS == 'ubuntu-latest' }} + if: ${{ matrix.os == 'ubuntu-latest' }} run: | sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - name: Patch micromamba-feedstock - if: ${{ matrix.OS == 'macos-latest' }} + if: ${{ matrix.os == 'macos-latest' }} run: | sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml @@ -55,18 +55,18 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.CONDA_BUILD_YML }}.yaml micromamba-feedstock/recipe ${{ matrix.TARGET != matrix.BUILD && '--no-test' || '' }} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.conda-build-yml }} micromamba-feedstock/recipe ${{ matrix.target != matrix.host && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | - cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.TARGET }} + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.target }} tar -xvf micromamba-*.tar.bz2 chmod +x bin/micromamba - name: Upload micromamba uses: actions/upload-artifact@v2 with: - name: micromamba-${{ matrix.TARGET }} - path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.TARGET }}/bin/micromamba + name: micromamba-${{ matrix.target }} + path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.target }}/bin/micromamba micromamba_full_static_win: # These build instructions are based on https://github.com/conda-forge/micromamba-feedstock @@ -144,3 +144,19 @@ jobs: with: name: micromamba-win-64 path: build/micromamba/micromamba.exe + + test-build: + name: "Test micromamba on ${{ matrix.target }}" + needs: conda-build + runs-on: ubuntu-latest + strategy: + matrix: + target: + - linux-aarch64 + - linux-ppc64le + steps: + - name: Download a single artifact + uses: actions/download-artifact@v3 + with: + name: micromamba-${{ matrix.target }} + - uses: mxschmitt/action-tmate@v3 From e185a2c9e3f16a3290442e53c6490aba06621f03 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 16:28:35 +0200 Subject: [PATCH 33/49] add run-on-arch-action --- .github/workflows/static_build.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 53f1ab669d..6e0e43b0f1 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -152,11 +152,24 @@ jobs: strategy: matrix: target: - - linux-aarch64 - - linux-ppc64le + - aarch64 + - ppc64le steps: - name: Download a single artifact uses: actions/download-artifact@v3 with: - name: micromamba-${{ matrix.target }} - - uses: mxschmitt/action-tmate@v3 + name: micromamba-linux-${{ matrix.target }} + - name: Test micromamba executable + uses: uraimo/run-on-arch-action@v2 + with: + arch: ${{ matrix.target }} + distro: ubuntu_latest + dockerRunArgs: | + -v "${PWD}:/artifacts" + run: | + cd /artifacts + ls -lah + ./micromamba --version + ./micromamba --help + ./micromamba +# - uses: mxschmitt/action-tmate@v3 From 4542290a60bc1a1422cea4b9dcd0fc8d83cc110e Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 16:29:05 +0200 Subject: [PATCH 34/49] disable macos test temporarily --- .github/workflows/static_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 6e0e43b0f1..e4123ce713 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -26,8 +26,8 @@ jobs: - { os: ubuntu-latest, conda-build-yml: linux_64_.yaml, target: linux-64, host: linux-64 } - { os: ubuntu-latest, conda-build-yml: linux_aarch64_.yaml, target: linux-aarch64, host: linux-64 } - { os: ubuntu-latest, conda-build-yml: linux_ppc64le_.yaml, target: linux-ppc64le, host: linux-64 } - - { os: macos-latest, conda-build-yml: osx_64_.yaml, target: osx-64, host: osx-64 } - - { os: macos-latest, conda-build-yml: osx_arm64_.yaml, target: osx-arm64, host: osx-64 } +# - { os: macos-latest, conda-build-yml: osx_64_.yaml, target: osx-64, host: osx-64 } +# - { os: macos-latest, conda-build-yml: osx_arm64_.yaml, target: osx-arm64, host: osx-64 } steps: - name: Checkout branch uses: actions/checkout@v3 From bdb15dcd98f815da782558c5bd3e6cbb04c02cac Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 16:52:43 +0200 Subject: [PATCH 35/49] chmod +x --- .github/workflows/static_build.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index e4123ce713..735767beac 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -61,7 +61,6 @@ jobs: run: | cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.target }} tar -xvf micromamba-*.tar.bz2 - chmod +x bin/micromamba - name: Upload micromamba uses: actions/upload-artifact@v2 with: @@ -146,7 +145,7 @@ jobs: path: build/micromamba/micromamba.exe test-build: - name: "Test micromamba on ${{ matrix.target }}" + name: "Test micromamba on linux-${{ matrix.target }}" needs: conda-build runs-on: ubuntu-latest strategy: @@ -168,7 +167,7 @@ jobs: -v "${PWD}:/artifacts" run: | cd /artifacts - ls -lah + chmod +x micromamba ./micromamba --version ./micromamba --help ./micromamba From 47fa2a9a0f259dfb44b29b6ec9341d8df0878f2f Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 17:02:30 +0200 Subject: [PATCH 36/49] move run-on-arch-action to step before --- .github/workflows/static_build.yml | 73 ++++++++++++++++++------------ 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 735767beac..7feb186cf9 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -61,11 +61,28 @@ jobs: run: | cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.target }} tar -xvf micromamba-*.tar.bz2 + mkdir -p ${{ github.workspace }}/artifacts + cp bin/micromamba ${{ github.workspace }}/artifacts + - name: Test micromamba on emulated target architecture + if: ${{ matrix.target != matrix.host && matrix.os == 'ubuntu-latest' }} + uses: uraimo/run-on-arch-action@v2 + with: + arch: ${{ matrix.target }} + distro: ubuntu_latest + dockerRunArgs: | # todo does ${PWD} replaced by ${{ github.workspace }} work? + -v "${PWD}/artifacts:/artifacts" + run: | + cd /artifacts + ls -lah +# chmod +x micromamba + ./micromamba --version + ./micromamba --help + ./micromamba - name: Upload micromamba uses: actions/upload-artifact@v2 with: name: micromamba-${{ matrix.target }} - path: ~/micromamba-root/envs/mambabuild/conda-bld/${{ matrix.target }}/bin/micromamba + path: ${{ github.workspace }}/artifacts/micromamba micromamba_full_static_win: # These build instructions are based on https://github.com/conda-forge/micromamba-feedstock @@ -144,31 +161,31 @@ jobs: name: micromamba-win-64 path: build/micromamba/micromamba.exe - test-build: - name: "Test micromamba on linux-${{ matrix.target }}" - needs: conda-build - runs-on: ubuntu-latest - strategy: - matrix: - target: - - aarch64 - - ppc64le - steps: - - name: Download a single artifact - uses: actions/download-artifact@v3 - with: - name: micromamba-linux-${{ matrix.target }} - - name: Test micromamba executable - uses: uraimo/run-on-arch-action@v2 - with: - arch: ${{ matrix.target }} - distro: ubuntu_latest - dockerRunArgs: | - -v "${PWD}:/artifacts" - run: | - cd /artifacts - chmod +x micromamba - ./micromamba --version - ./micromamba --help - ./micromamba +# test-build: +# name: "Test micromamba on linux-${{ matrix.target }}" +# needs: conda-build +# runs-on: ubuntu-latest +# strategy: +# matrix: +# target: +# - aarch64 +# - ppc64le +# steps: +# - name: Download a single artifact +# uses: actions/download-artifact@v3 +# with: +# name: micromamba-linux-${{ matrix.target }} +# - name: Test micromamba executable +# uses: uraimo/run-on-arch-action@v2 +# with: +# arch: ${{ matrix.target }} +# distro: ubuntu_latest +# dockerRunArgs: | +# -v "${PWD}:/artifacts" +# run: | +# cd /artifacts +# chmod +x micromamba +# ./micromamba --version +# ./micromamba --help +# ./micromamba # - uses: mxschmitt/action-tmate@v3 From 4048121c6406a4c4ae6429cb150ced9a2e77f688 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 17:05:46 +0200 Subject: [PATCH 37/49] does it work? --- .github/workflows/static_build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 7feb186cf9..4a19edc496 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -74,7 +74,6 @@ jobs: run: | cd /artifacts ls -lah -# chmod +x micromamba ./micromamba --version ./micromamba --help ./micromamba From 2bfa7947c41290977e15b8338a536d9c31b3737c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 18:49:38 +0200 Subject: [PATCH 38/49] and this? --- .github/workflows/static_build.yml | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 4a19edc496..8dcd8dd3fa 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -14,20 +14,19 @@ concurrency: jobs: conda-build: - name: "micromamba - ${{ matrix.target }}" + name: "micromamba - ${{ matrix.platform }}-${{ matrix.arch }}" runs-on: ${{ matrix.os }} env: CI: True - CONDA_BUILD_YML: ${{ matrix.conda-build-yml }} strategy: fail-fast: false matrix: include: - - { os: ubuntu-latest, conda-build-yml: linux_64_.yaml, target: linux-64, host: linux-64 } - - { os: ubuntu-latest, conda-build-yml: linux_aarch64_.yaml, target: linux-aarch64, host: linux-64 } - - { os: ubuntu-latest, conda-build-yml: linux_ppc64le_.yaml, target: linux-ppc64le, host: linux-64 } -# - { os: macos-latest, conda-build-yml: osx_64_.yaml, target: osx-64, host: osx-64 } -# - { os: macos-latest, conda-build-yml: osx_arm64_.yaml, target: osx-arm64, host: osx-64 } + - { os: ubuntu-latest, platform: linux, arch: 64 } + - { os: ubuntu-latest, platform: linux, arch: aarch64 } + - { os: ubuntu-latest, platform: linux, arch: ppc64le } +# - { os: macos-latest, platform: osx, arch: 64 } +# - { os: macos-latest, platform: osx, arch: arm64 } steps: - name: Checkout branch uses: actions/checkout@v3 @@ -37,11 +36,11 @@ jobs: repository: conda-forge/micromamba-feedstock path: micromamba-feedstock - name: Patch micromamba-feedstock - if: ${{ matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.platform == 'linux' }} run: | sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - name: Patch micromamba-feedstock - if: ${{ matrix.os == 'macos-latest' }} + if: ${{ matrix.platform == 'osx' }} run: | sed -i '' -E 's/url:.*/git_url: ..\/..\//' micromamba-feedstock/recipe/meta.yaml sed -i '' '/sha256:/d' micromamba-feedstock/recipe/meta.yaml @@ -55,19 +54,19 @@ jobs: extra-specs: boa - name: Build conda package shell: bash -l {0} - run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.conda-build-yml }} micromamba-feedstock/recipe ${{ matrix.target != matrix.host && '--no-test' || '' }} + run: conda mambabuild -m micromamba-feedstock/.ci_support/${{ matrix.platform }}_${{ matrix.arch }}_.yaml micromamba-feedstock/recipe ${{ matrix.arch != '64' && '--no-test' || '' }} - name: Unpack micromamba package shell: bash -l {0} run: | - cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.target }} + cd $MAMBA_ROOT_PREFIX/envs/mambabuild/conda-bld/${{ matrix.platform }}-${{ matrix.arch }} tar -xvf micromamba-*.tar.bz2 mkdir -p ${{ github.workspace }}/artifacts cp bin/micromamba ${{ github.workspace }}/artifacts - name: Test micromamba on emulated target architecture - if: ${{ matrix.target != matrix.host && matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.arch != '64' && matrix.platform == 'linux' }} uses: uraimo/run-on-arch-action@v2 with: - arch: ${{ matrix.target }} + arch: ${{ matrix.arch }} distro: ubuntu_latest dockerRunArgs: | # todo does ${PWD} replaced by ${{ github.workspace }} work? -v "${PWD}/artifacts:/artifacts" @@ -160,7 +159,7 @@ jobs: name: micromamba-win-64 path: build/micromamba/micromamba.exe -# test-build: +# test-build: todo remove # name: "Test micromamba on linux-${{ matrix.target }}" # needs: conda-build # runs-on: ubuntu-latest From d1266895f9f4c4519ce79d094aed2468a0e75333 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 19:17:47 +0200 Subject: [PATCH 39/49] ${{ github.workspace }} --- .github/workflows/static_build.yml | 31 +----------------------------- 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 8dcd8dd3fa..fc248e0549 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -69,7 +69,7 @@ jobs: arch: ${{ matrix.arch }} distro: ubuntu_latest dockerRunArgs: | # todo does ${PWD} replaced by ${{ github.workspace }} work? - -v "${PWD}/artifacts:/artifacts" + -v "${{ github.workspace }}/artifacts:/artifacts" run: | cd /artifacts ls -lah @@ -158,32 +158,3 @@ jobs: with: name: micromamba-win-64 path: build/micromamba/micromamba.exe - -# test-build: todo remove -# name: "Test micromamba on linux-${{ matrix.target }}" -# needs: conda-build -# runs-on: ubuntu-latest -# strategy: -# matrix: -# target: -# - aarch64 -# - ppc64le -# steps: -# - name: Download a single artifact -# uses: actions/download-artifact@v3 -# with: -# name: micromamba-linux-${{ matrix.target }} -# - name: Test micromamba executable -# uses: uraimo/run-on-arch-action@v2 -# with: -# arch: ${{ matrix.target }} -# distro: ubuntu_latest -# dockerRunArgs: | -# -v "${PWD}:/artifacts" -# run: | -# cd /artifacts -# chmod +x micromamba -# ./micromamba --version -# ./micromamba --help -# ./micromamba -# - uses: mxschmitt/action-tmate@v3 From db185d225c39890f71771904fc9fcc7d687fedb8 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 20:08:42 +0200 Subject: [PATCH 40/49] readd macos --- .github/workflows/static_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index fc248e0549..5e5d86b53f 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -25,8 +25,8 @@ jobs: - { os: ubuntu-latest, platform: linux, arch: 64 } - { os: ubuntu-latest, platform: linux, arch: aarch64 } - { os: ubuntu-latest, platform: linux, arch: ppc64le } -# - { os: macos-latest, platform: osx, arch: 64 } -# - { os: macos-latest, platform: osx, arch: arm64 } + - { os: macos-latest, platform: osx, arch: 64 } + - { os: macos-latest, platform: osx, arch: arm64 } steps: - name: Checkout branch uses: actions/checkout@v3 @@ -68,7 +68,7 @@ jobs: with: arch: ${{ matrix.arch }} distro: ubuntu_latest - dockerRunArgs: | # todo does ${PWD} replaced by ${{ github.workspace }} work? + dockerRunArgs: | -v "${{ github.workspace }}/artifacts:/artifacts" run: | cd /artifacts @@ -79,7 +79,7 @@ jobs: - name: Upload micromamba uses: actions/upload-artifact@v2 with: - name: micromamba-${{ matrix.target }} + name: micromamba-${{ matrix.platform }}-${{ matrix.arch }} path: ${{ github.workspace }}/artifacts/micromamba micromamba_full_static_win: From 7c41a12e769b6b720429ef5b4c5f8ef4f4c8df13 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 20:09:41 +0200 Subject: [PATCH 41/49] remove line --- .github/workflows/static_build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 5e5d86b53f..c818a413da 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -72,7 +72,6 @@ jobs: -v "${{ github.workspace }}/artifacts:/artifacts" run: | cd /artifacts - ls -lah ./micromamba --version ./micromamba --help ./micromamba From 9be6d2a7cf4bc34eccdd788058c20fd1e44b7dff Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 20:11:06 +0200 Subject: [PATCH 42/49] update tests --- .github/workflows/static_build.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index c818a413da..4dc84e4388 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -72,9 +72,10 @@ jobs: -v "${{ github.workspace }}/artifacts:/artifacts" run: | cd /artifacts - ./micromamba --version - ./micromamba --help - ./micromamba + micromamba --version + micromamba --help + micromamba + micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 with: From fe73df6a2160c71c84554bab74aaa8b09c6b1a3b Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 21:48:47 +0200 Subject: [PATCH 43/49] fix tests? --- .github/workflows/static_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 4dc84e4388..e204e3f28b 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -72,10 +72,10 @@ jobs: -v "${{ github.workspace }}/artifacts:/artifacts" run: | cd /artifacts - micromamba --version - micromamba --help - micromamba - micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 + ./micromamba --version + ./micromamba --help + ./micromamba + ./micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 with: From 52bab4b78cf1b71fbc8e53dd069bb8b3754bb94e Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Mon, 3 Oct 2022 22:58:41 +0200 Subject: [PATCH 44/49] remove unbound variable --- .github/workflows/static_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index e204e3f28b..ea27fad90a 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -75,7 +75,7 @@ jobs: ./micromamba --version ./micromamba --help ./micromamba - ./micromamba create -p $TMPDIR/testenv --override-channels -c conda-forge --yes python=3.9 + ./micromamba create -p /tmp/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 with: From 97cc2812fcd5a6ed111e250c11389fa3ef00549d Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Tue, 4 Oct 2022 00:01:08 +0200 Subject: [PATCH 45/49] install ca-certificates --- .github/workflows/static_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index ea27fad90a..fa7eab8a5d 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -75,6 +75,7 @@ jobs: ./micromamba --version ./micromamba --help ./micromamba + apt install ca-certificates ./micromamba create -p /tmp/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 From 454f654b7658beb619e6f833edfc29c9162bc74a Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Tue, 4 Oct 2022 00:20:35 +0200 Subject: [PATCH 46/49] apt update --- .github/workflows/static_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index fa7eab8a5d..aba16dacbd 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -75,7 +75,7 @@ jobs: ./micromamba --version ./micromamba --help ./micromamba - apt install ca-certificates + apt update && apt install ca-certificates ./micromamba create -p /tmp/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 From 3eeeb380f111ab1fae7ade9f462126ce313b38a8 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Tue, 4 Oct 2022 00:53:21 +0200 Subject: [PATCH 47/49] remove micromamba create test --- .github/workflows/static_build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index aba16dacbd..c818a413da 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -75,8 +75,6 @@ jobs: ./micromamba --version ./micromamba --help ./micromamba - apt update && apt install ca-certificates - ./micromamba create -p /tmp/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 with: From 0f307b2b7828a6411d524b40efe676bd0215f374 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Tue, 4 Oct 2022 09:52:30 +0200 Subject: [PATCH 48/49] add comment, does apt -y work? --- .github/workflows/static_build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index c818a413da..66e2f1b847 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -35,6 +35,7 @@ jobs: with: repository: conda-forge/micromamba-feedstock path: micromamba-feedstock + # replace the url: ... until the libmamba.patch line with git_url: ../.. - name: Patch micromamba-feedstock if: ${{ matrix.platform == 'linux' }} run: | @@ -75,6 +76,8 @@ jobs: ./micromamba --version ./micromamba --help ./micromamba + apt update && apt install -y ca-certificates + ./micromamba create -p /tmp/testenv --override-channels -c conda-forge --yes python=3.9 - name: Upload micromamba uses: actions/upload-artifact@v2 with: From 3e9acf3225c0274992bfbdc5e59ff99d58d1cc33 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Tue, 4 Oct 2022 10:29:27 +0200 Subject: [PATCH 49/49] easier to read sed command --- .github/workflows/static_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml index 66e2f1b847..740050ee56 100644 --- a/.github/workflows/static_build.yml +++ b/.github/workflows/static_build.yml @@ -39,7 +39,7 @@ jobs: - name: Patch micromamba-feedstock if: ${{ matrix.platform == 'linux' }} run: | - sed -i -E ':a; N; $!ba; s/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml + sed -i -E -z 's/url:.*libmamba.patch/git_url: ..\/..\//g' micromamba-feedstock/recipe/meta.yaml - name: Patch micromamba-feedstock if: ${{ matrix.platform == 'osx' }} run: |