diff --git a/0001-Add-back-conda-and-conda_env-entry-point.patch b/0001-Add-back-conda-and-conda_env-entry-point.patch new file mode 100644 index 0000000..c91e727 --- /dev/null +++ b/0001-Add-back-conda-and-conda_env-entry-point.patch @@ -0,0 +1,29 @@ +From ce24f4787ea5647be849590f7eff6f6c1951b504 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 12 Sep 2021 21:04:40 +0200 +Subject: [PATCH 1/2] Add back conda and conda_env entry point + +Partially reverts 0ccc029997e0dc0a28420a89e0cb39c08ff0b738. +'conda init' is designed to fail and emit a warning. Go back +to the normal init. +--- + setup.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 84ecb55cca..bb3db39c4d 100644 +--- a/setup.py ++++ b/setup.py +@@ -86,7 +86,8 @@ setup( + }, + entry_points={ + 'console_scripts': [ +- 'conda=conda.cli.main_pip:main', ++ 'conda=conda.cli.main:main', ++ 'conda-env = conda_env.cli.main:main', + ], + }, + install_requires=install_requires, +-- +2.32.0 + diff --git a/0001-Fix-toolz-imports.patch b/0001-Fix-toolz-imports.patch new file mode 100644 index 0000000..c4b288f --- /dev/null +++ b/0001-Fix-toolz-imports.patch @@ -0,0 +1,98 @@ +From 5115316f1cb11b2e5fcc687361b0c9a04dfe62fb Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Sun, 18 Oct 2020 15:43:33 -0600 +Subject: [PATCH] Fix toolz imports + +--- + conda/plan.py | 2 +- + conda_env/env.py | 5 +---- + tests/base/test_context.py | 2 +- + tests/core/test_path_actions.py | 2 +- + tests/test_activate.py | 2 +- + tests/test_create.py | 2 +- + 6 files changed, 6 insertions(+), 9 deletions(-) + +diff --git a/conda/plan.py b/conda/plan.py +index e0c2ec6..b87c9dc 100644 +--- a/conda/plan.py ++++ b/conda/plan.py +@@ -371,7 +371,7 @@ def _plan_from_actions(actions, index): # pragma: no cover + def _inject_UNLINKLINKTRANSACTION(plan, index, prefix, axn, specs): # pragma: no cover + from os.path import isdir + from .models.dist import Dist +- from ._vendor.toolz.itertoolz import groupby ++ from ._vendor.toolz import groupby + from .instructions import LINK, PROGRESSIVEFETCHEXTRACT, UNLINK, UNLINKLINKTRANSACTION + from .core.package_cache_data import ProgressiveFetchExtract + from .core.link import PrefixSetup, UnlinkLinkTransaction +diff --git a/conda_env/env.py b/conda_env/env.py +index 4e83f88..09eb1a1 100644 +--- a/conda_env/env.py ++++ b/conda_env/env.py +@@ -22,10 +22,7 @@ from conda.models.prefix_graph import PrefixGraph + from . import compat, exceptions + from conda.history import History + +-try: +- from cytoolz.itertoolz import concatv, groupby +-except ImportError: # pragma: no cover +- from conda._vendor.toolz.itertoolz import concatv, groupby # NOQA ++from conda._vendor.toolz import concatv, groupby # NOQA + + + VALID_KEYS = ('name', 'dependencies', 'prefix', 'channels', 'variables') +diff --git a/tests/base/test_context.py b/tests/base/test_context.py +index 264e2dc..ae0e256 100644 +--- a/tests/base/test_context.py ++++ b/tests/base/test_context.py +@@ -11,7 +11,7 @@ import pytest + + from conda._vendor.auxlib.collection import AttrDict + from conda._vendor.auxlib.ish import dals +-from conda._vendor.toolz.itertoolz import concat ++from conda._vendor.toolz import concat + from conda.base.constants import PathConflict, ChannelPriority + from conda.base.context import context, reset_context, conda_tests_ctxt_mgmt_def_pol + from conda.common.compat import odict, iteritems +diff --git a/tests/core/test_path_actions.py b/tests/core/test_path_actions.py +index 02b5c5f..c9e55ba 100644 +--- a/tests/core/test_path_actions.py ++++ b/tests/core/test_path_actions.py +@@ -11,7 +11,7 @@ from uuid import uuid4 + import pytest + + from conda._vendor.auxlib.collection import AttrDict +-from conda._vendor.toolz.itertoolz import groupby ++from conda._vendor.toolz import groupby + from conda.base.context import context + from conda.common.compat import PY2, on_win + from conda.common.path import get_bin_directory_short_path, get_python_noarch_target_path, \ +diff --git a/tests/test_activate.py b/tests/test_activate.py +index d319cd0..99658d4 100644 +--- a/tests/test_activate.py ++++ b/tests/test_activate.py +@@ -16,7 +16,7 @@ import json + from conda import __version__ as conda_version + from conda import CONDA_PACKAGE_ROOT + from conda._vendor.auxlib.ish import dals +-from conda._vendor.toolz.itertoolz import concatv ++from conda._vendor.toolz import concatv + from conda.activate import CmdExeActivator, CshActivator, FishActivator, PosixActivator, \ + PowerShellActivator, XonshActivator, activator_map, _build_activator_cls, \ + main as activate_main, native_path_to_unix +diff --git a/tests/test_create.py b/tests/test_create.py +index 2d230dc..3265623 100644 +--- a/tests/test_create.py ++++ b/tests/test_create.py +@@ -6,7 +6,7 @@ from datetime import datetime + from glob import glob + + from conda._vendor.auxlib.compat import Utf8NamedTemporaryFile +-from conda._vendor.toolz.itertoolz import groupby ++from conda._vendor.toolz import groupby + from conda.gateways.disk.permissions import make_read_only + from conda.models.channel import Channel + from conda.resolve import Resolve +-- +2.29.0.rc2 + diff --git a/0001-conda_sys_prefix.patch.patch b/0001-conda_sys_prefix.patch.patch deleted file mode 100644 index 6e2c646..0000000 --- a/0001-conda_sys_prefix.patch.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7eeb6a32d2004bc20a156dd8920964c107e99321 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Tue, 30 Jul 2024 18:00:00 -0600 -Subject: [PATCH 1/2] conda_sys_prefix.patch - ---- - conda/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/conda/__init__.py b/conda/__init__.py -index 4245cae..a436b1d 100644 ---- a/conda/__init__.py -+++ b/conda/__init__.py -@@ -54,7 +54,7 @@ __summary__ = __doc__ - __url__ = "https://github.com/conda/conda" - - if os.getenv("CONDA_ROOT") is None: -- os.environ["CONDA_ROOT"] = sys.prefix -+ os.environ["CONDA_ROOT"] = '/usr/share/conda' - - #: The conda package directory. - CONDA_PACKAGE_ROOT = abspath(dirname(__file__)) --- -2.45.2 - diff --git a/0002-Go-back-to-ruamel_yaml.patch b/0002-Go-back-to-ruamel_yaml.patch new file mode 100644 index 0000000..7890f54 --- /dev/null +++ b/0002-Go-back-to-ruamel_yaml.patch @@ -0,0 +1,30 @@ +From 4eefe365897af2fcd91b47433140f994777ebd31 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 12 Sep 2021 21:12:27 +0200 +Subject: [PATCH] Go back to ruamel.yaml + +What a mess conda is! +--- + conda.recipe/run_test.sh | 2 +- + setup.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index cd9c5715b0..56bb5bbeaf 100644 +--- a/setup.py ++++ b/setup.py +@@ -37,9 +37,9 @@ install_requires = [ + ] + + if os.getenv('CONDA_BUILD', None) == '1': +- install_requires.append("ruamel_yaml_conda >=0.11.14") ++ install_requires.append("ruamel.yaml >=0.11.14") + else: +- install_requires.append("ruamel_yaml_conda >=0.11.14") ++ install_requires.append("ruamel.yaml >=0.11.14") + + + def package_files(*root_directories): +-- +2.32.0 + diff --git a/0002-Use-main-entry-point-for-conda-and-re-add-conda-env-.patch b/0002-Use-main-entry-point-for-conda-and-re-add-conda-env-.patch deleted file mode 100644 index 3d3d298..0000000 --- a/0002-Use-main-entry-point-for-conda-and-re-add-conda-env-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f8f9a23a2a7540ec39cab9606f8b95aa8b346b65 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Mon, 24 Nov 2025 17:30:20 -0700 -Subject: [PATCH 2/2] Use main entry point for conda and re-add conda-env entry - ---- - pyproject.toml | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/pyproject.toml b/pyproject.toml -index 7c8f24f..049859b 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -51,7 +51,8 @@ readme = "README.md" - requires-python = ">=3.10" - - [project.scripts] --conda = "conda.cli.main_pip:main" -+conda = "conda.cli.main:main" -+conda-env = "conda_env.cli.main:main" - - [project.urls] - changelog = "https://github.com/conda/conda/blob/main/CHANGELOG.md" --- -2.51.1 - diff --git a/0003-Drop-fs-path-encoding-manipulation-under-python2.patch b/0003-Drop-fs-path-encoding-manipulation-under-python2.patch new file mode 100644 index 0000000..b588744 --- /dev/null +++ b/0003-Drop-fs-path-encoding-manipulation-under-python2.patch @@ -0,0 +1,23 @@ +commit 1f21cf4dd33e4d62f3dca93294bfa5508a2591ab +Author: rpm-build +Date: Sat Mar 30 20:59:05 2019 -0600 + + [PATCH] Drop fs path encoding manipulation under python2 + +diff --git a/conda/activate.py b/conda/activate.py +index e515c0e..3632a61 100644 +--- a/conda/activate.py ++++ b/conda/activate.py +@@ -63,11 +63,7 @@ class _Activator(object): + def __init__(self, arguments=None): + self._raw_arguments = arguments + +- if PY2: +- self.environ = {ensure_fs_path_encoding(k): ensure_fs_path_encoding(v) +- for k, v in iteritems(os.environ)} +- else: +- self.environ = os.environ.copy() ++ self.environ = os.environ.copy() + + # Once Python2 dies odargs can become kwargs again since dicts are ordered since 3.6. + def get_export_unset_vars(self, odargs): diff --git a/0004-Do-not-try-to-run-usr-bin-python.patch b/0004-Do-not-try-to-run-usr-bin-python.patch index f747eb0..4afd0f1 100644 --- a/0004-Do-not-try-to-run-usr-bin-python.patch +++ b/0004-Do-not-try-to-run-usr-bin-python.patch @@ -1,25 +1,42 @@ -diff -up conda-24.9.1/conda/common/path/python.py.python conda-24.9.1/conda/common/path/python.py ---- conda-24.9.1/conda/common/path/python.py.python 2024-10-01 15:11:32.000000000 -0600 -+++ conda-24.9.1/conda/common/path/python.py 2024-10-07 21:43:44.951895698 -0600 -@@ -5,6 +5,7 @@ - from __future__ import annotations - - import re -+import sys +From cccc709c085890633be767a44465229d049d5941 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 13 Feb 2019 13:06:36 +0100 +Subject: [PATCH] Do not try to run /usr/bin/python + +On modern linux distros, /usr/bin/python will usually either +refer to python2 or not exists at all. Use sys.executable to +run subprocess calls with the same python executable as the +parent process. +--- + conda/common/path.py | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/conda/common/path.py b/conda/common/path.py +index b51f7f272d..06e0b4bc9a 100644 +--- a/conda/common/path.py ++++ b/conda/common/path.py +@@ -6,6 +6,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera + from functools import reduce from logging import getLogger - from os.path import join, split, splitext - -@@ -52,9 +53,11 @@ def parse_entry_point_def(ep_definition) + import os ++import sys + from os.path import abspath, basename, expanduser, expandvars, join, normcase, split, splitext + import re + import subprocess +@@ -155,9 +156,11 @@ def parse_entry_point_def(ep_definition): def get_python_short_path(python_version=None): if on_win: return "python.exe" -- if python_version and "." not in python_version: +- if python_version and '.' not in python_version: + if not python_version: + return sys.executable + if '.' not in python_version: - python_version = ".".join(python_version) -- return join("bin", "python%s" % (python_version or "")) + python_version = '.'.join(python_version) +- return join("bin", "python%s" % (python_version or '')) + return join("bin", "python" + python_version) def get_python_site_packages_short_path(python_version): +-- +2.19.2 + diff --git a/0005-Fix-failing-tests-in-test_api.py.patch b/0005-Fix-failing-tests-in-test_api.py.patch index b5e2f95..7434f7b 100644 --- a/0005-Fix-failing-tests-in-test_api.py.patch +++ b/0005-Fix-failing-tests-in-test_api.py.patch @@ -1,5 +1,21 @@ +From 4bc8b4ec9579e7c015a6ad5b41031c850596e0fb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 21 Sep 2018 10:23:39 +0200 +Subject: [PATCH] Fix failing tests in test_api.py +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Based on commit 0722e2edc93ae818bddd18f23be5b18c3a2a1d55 by +Kale Franz . + +Signed-off-by: Zbigniew Jędrzejewski-Szmek +--- + tests/test_api.py | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + diff --git a/tests/test_api.py b/tests/test_api.py -index dd6a7b9..c60d1a1 100644 +index 3ca97be734..e866e82fd3 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -224,7 +224,7 @@ def test_PackageCacheData_return_value_contract(): @@ -11,7 +27,7 @@ index dd6a7b9..c60d1a1 100644 first_writable_result = PackageCacheData.first_writable() assert isinstance(first_writable_result, PackageCacheData) -@@ -265,13 +265,14 @@ def test_PrefixData_contract(): +@@ -269,20 +269,21 @@ def test_PrefixData_contract(): def test_PrefixData_return_value_contract(): pd = PrefixData(context.conda_prefix) @@ -23,17 +39,16 @@ index dd6a7b9..c60d1a1 100644 + get_result = pd.get(PackageRecord.from_objects(single_prefix_rec)) + assert isinstance(get_result, PrefixRecord) -- query_result = pd.query("openssl") +- query_result = pd.query('openssl') - assert isinstance(query_result, tuple) - assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in query_result) -+ query_result = pd.query("openssl") ++ query_result = pd.query('openssl') + assert isinstance(query_result, tuple) + assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in query_result) iter_records_result = pd.iter_records() assert isiterable(iter_records_result) -@@ -280,7 +281,7 @@ def test_PrefixData_return_value_contract(): - ) + assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in iter_records_result) is_writable_result = pd.is_writable - assert is_writable_result is True or is_writable_result is False @@ -41,3 +56,6 @@ index dd6a7b9..c60d1a1 100644 reload_result = pd.reload() assert isinstance(reload_result, PrefixData) +-- +2.19.2 + diff --git a/0006-shell-assume-shell-plugins-are-in-etc.patch b/0006-shell-assume-shell-plugins-are-in-etc.patch index 68c60df..790aeb6 100644 --- a/0006-shell-assume-shell-plugins-are-in-etc.patch +++ b/0006-shell-assume-shell-plugins-are-in-etc.patch @@ -1,72 +1,32 @@ diff --git a/conda/activate.py b/conda/activate.py -index f79a03f..951bed4 100644 +index e1b1812..567140f 100644 --- a/conda/activate.py +++ b/conda/activate.py -@@ -914,13 +914,7 @@ class PosixActivator(_Activator): - set_var_tmpl = "%s='%s'" - run_script_tmpl = ". \"`cygpath '%s'`\"" if on_win else '. "%s"' +@@ -825,7 +825,7 @@ class PosixActivator(_Activator): + self.set_var_tmpl = "%s='%s'" + self.run_script_tmpl = '. "%s"' -- hook_source_path = Path( -- CONDA_PACKAGE_ROOT, -- "shell", -- "etc", -- "profile.d", -- "conda.sh", -- ) -+ hook_source_path = Path("/etc/profile.d/conda.sh") - inline_hook_source = True +- self.hook_source_path = join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.sh') ++ self.hook_source_path = '/etc/profile.d/conda.sh' - def _update_prompt(self, set_vars, conda_prompt_modifier): -@@ -956,13 +950,7 @@ class CshActivator(_Activator): - set_var_tmpl = "set %s='%s'" - run_script_tmpl = "source \"`cygpath '%s'`\"" if on_win else 'source "%s"' + super(PosixActivator, self).__init__(arguments) -- hook_source_path = Path( -- CONDA_PACKAGE_ROOT, -- "shell", -- "etc", -- "profile.d", -- "conda.csh", -- ) -+ hook_source_path = Path("/etc/profile.d/conda.csh") - # TCSH/CSH removes newlines when doing command substitution (see `man tcsh`), - # source conda.csh directly and use line terminators to separate commands - inline_hook_source = False -@@ -1001,7 +989,7 @@ class XonshActivator(_Activator): - else 'source-bash --suppress-skip-message -n "%s"' - ) +@@ -882,7 +882,7 @@ class CshActivator(_Activator): + self.set_var_tmpl = "set %s='%s'" + self.run_script_tmpl = 'source "%s"' -- hook_source_path = Path(CONDA_PACKAGE_ROOT, "shell", "conda.xsh") -+ hook_source_path = Path("/etc/profile.d/conda.xsh") - inline_hook_source = True +- self.hook_source_path = join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'profile.d', 'conda.csh') ++ self.hook_source_path = '/etc/profile.d/conda.csh' - def template_path_var(self, key: str, value: str) -> str: -@@ -1055,14 +1043,7 @@ class FishActivator(_Activator): - set_var_tmpl = 'set -g %s "%s"' - run_script_tmpl = 'source "%s"' + super(CshActivator, self).__init__(arguments) -- hook_source_path = Path( -- CONDA_PACKAGE_ROOT, -- "shell", -- "etc", -- "fish", -- "conf.d", -- "conda.fish", -- ) -+ hook_source_path = Path("/etc/fish/conf.d/conda.fish") - inline_hook_source = True +@@ -993,8 +993,7 @@ class FishActivator(_Activator): + self.set_var_tmpl = 'set -g %s "%s"' + self.run_script_tmpl = 'source "%s"' +- self.hook_source_path = join(CONDA_PACKAGE_ROOT, 'shell', 'etc', 'fish', 'conf.d', +- 'conda.fish') ++ self.hook_source_path = '/etc/fish/conf.d/conda.fish' -diff --git a/conda/base/context.py b/conda/base/context.py -index adf6d6e..612ea4a 100644 ---- a/conda/base/context.py -+++ b/conda/base/context.py -@@ -848,7 +848,7 @@ class Context(Configuration): - def av_data_dir(self) -> PathType: - """Where critical artifact verification data (e.g., various public keys) can be found.""" - # TODO (AV): Find ways to make this user configurable? -- return join(self.conda_prefix, "etc", "conda") -+ return '/etc/conda' + super(FishActivator, self).__init__(arguments) - @property - def signing_metadata_url_base(self) -> str | None: diff --git a/11658.patch b/11658.patch new file mode 100644 index 0000000..1dbbf9f --- /dev/null +++ b/11658.patch @@ -0,0 +1,88 @@ +From 90dbad6b08c7006dc8af2dca0937e45cc57389bb Mon Sep 17 00:00:00 2001 +From: Christopher Howard +Date: Tue, 26 Jul 2022 14:19:31 -0400 +Subject: [PATCH 1/3] add usedforsecurity=False for hashlib.md5 for FIPS + compliance + +--- + conda/core/subdir_data.py | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/conda/core/subdir_data.py b/conda/core/subdir_data.py +index 80f24cc58d6..b0957329aad 100644 +--- a/conda/core/subdir_data.py ++++ b/conda/core/subdir_data.py +@@ -905,8 +905,11 @@ def cache_fn_url(url, repodata_fn=REPODATA_FN): + # are looking for the cache under keys without this. + if repodata_fn != REPODATA_FN: + url += repodata_fn +- md5 = hashlib.md5(ensure_binary(url)).hexdigest() +- return '%s.json' % (md5[:8],) ++ try: ++ md5 = hashlib.md5(ensure_binary(url)) ++ except ValueError: ++ md5 = hashlib.md5(ensure_binary(url), usedforsecurity=False) ++ return '%s.json' % (md5.hexdigest()[:8],) + + + def add_http_value_to_dict(resp, http_key, d, dict_key): + +From 5614fe05036d833139a6cabca2ec7dff3868c78b Mon Sep 17 00:00:00 2001 +From: Christopher Howard +Date: Tue, 26 Jul 2022 14:38:59 -0400 +Subject: [PATCH 2/3] Add news for FIPS support fix + +--- + news/11658-add-fips-md5-support | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + create mode 100644 news/11658-add-fips-md5-support + +diff --git a/news/11658-add-fips-md5-support b/news/11658-add-fips-md5-support +new file mode 100644 +index 00000000000..8c7275302a5 +--- /dev/null ++++ b/news/11658-add-fips-md5-support +@@ -0,0 +1,19 @@ ++### Enhancements ++ ++* ++ ++### Bug fixes ++ ++* Fix MD5 hash generation for FIPS-enabled systems (#11658) ++ ++### Deprecations ++ ++* ++ ++### Docs ++ ++* ++ ++### Other ++ ++* + +From 7bd0dddad07c480a6dd29da1f32971f8ef2da17e Mon Sep 17 00:00:00 2001 +From: Christopher Howard +Date: Wed, 27 Jul 2022 09:33:18 -0400 +Subject: [PATCH 3/3] Add TODO for FIPS MD5 refactor when Python 3.9+ + +--- + conda/core/subdir_data.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/conda/core/subdir_data.py b/conda/core/subdir_data.py +index b0957329aad..7ab4a1d4f6a 100644 +--- a/conda/core/subdir_data.py ++++ b/conda/core/subdir_data.py +@@ -905,6 +905,9 @@ def cache_fn_url(url, repodata_fn=REPODATA_FN): + # are looking for the cache under keys without this. + if repodata_fn != REPODATA_FN: + url += repodata_fn ++ ++ # TODO: remove try-except when conda only supports Python 3.9+, as ++ # `usedforsecurity=False` was added in 3.9. + try: + md5 = hashlib.md5(ensure_binary(url)) + except ValueError: diff --git a/changelog b/changelog deleted file mode 100644 index bbd1d34..0000000 --- a/changelog +++ /dev/null @@ -1,202 +0,0 @@ -* Wed Jul 21 2021 Fedora Release Engineering - 4.10.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 4.10.1-2 -- Rebuilt for Python 3.10 - -* Thu Apr 15 2021 Orion Poplawski - 4.10.1-1 -- Update to 4.10.1 - -* Fri Apr 02 2021 Orion Poplawski - 4.10.0-1 -- Update to 4.10.0 - -* Tue Jan 26 2021 Orion Poplawski - 4.9.2-3 -- Add patch to support python 3.10 - -* Tue Jan 26 2021 Fedora Release Engineering - 4.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Nov 11 2020 Orion Poplawski - 4.9.2-1 -- Update to 4.9.2 - -* Tue Oct 27 2020 Orion Poplawski - 4.9.1-1 -- Update to 4.9.1 - -* Sun Oct 18 2020 Orion Poplawski - 4.9.0-1 -- Update to 4.9.0 - -* Mon Sep 21 2020 Orion Poplawski - 4.8.5-2 -- Add note to description about base environment - -* Mon Sep 14 2020 Orion Poplawski - 4.8.5-1 -- Update to 4.8.5 -- Install conda.fish (bz#1878306) - -* Sat Aug 08 2020 Orion Poplawski - 4.8.4-1 -- Update to 4.8.4 - -* Sat Aug 01 2020 Fedora Release Engineering - 4.8.3-4 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 4.8.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue May 26 2020 Miro Hrončok - 4.8.3-2 -- Rebuilt for Python 3.9 - -* Sun Mar 15 2020 Orion Poplawski - 4.8.3-1 -- Update to 4.8.3 - -* Tue Feb 4 2020 Zbigniew Jędrzejewski-Szmek - 4.8.2-2 -- Fix import for python3.9 compatiblity (#1797691) - -* Tue Jan 28 2020 Orion Poplawski - 4.8.2-1 -- Update to 4.8.2 (#1785658) -- Obtain bash completion file from github - tartansandal/conda-bash-completion - -* Mon Jan 20 2020 Orion Poplawski - 4.8.0-2 -- Install bash completion file (bz#1791068) - -* Sat Dec 14 2019 Orion Poplawski - 4.8.0-1 -- Update to 4.8.0 -- Make "conda shell.bash hook" work (bz#1737165) -- Unbundle more libraries - -* Sat Sep 14 2019 Orion Poplawski - 4.7.12-1 -- Update to 4.7.12 - -* Mon Aug 19 2019 Miro Hrončok - 4.7.11-2 -- Rebuilt for Python 3.8 - -* Fri Aug 16 2019 Orion Poplawski - 4.7.11-1 -- Update to 4.7.11 -- Use system py-cpuinfo - -* Fri Aug 16 2019 Orion Poplawski - 4.7.10-2 -- Cleanup requires some (drop crypto, yaml; add pyOpenSSL; - add versions for requests and ruamel-yaml - -* Sat Aug 3 2019 Zbigniew Jędrzejewski-Szmek - 4.7.10-1 -- Fix 'conda shell.* hook' invocations (#1737165) - -* Wed Jul 31 2019 Orion Poplawski - 4.7.10-1 -- Update to 4.7.10 - -* Mon Jul 29 2019 Zbigniew Jędrzejewski-Szmek - 4.7.6-1 -- Update to latest version (#1678578) - -* Wed Jul 24 2019 Fedora Release Engineering - 4.7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jun 11 2019 Orion Poplawski - 4.7.2-1 -- Update to 4.7.2 - -* Sun Jun 9 2019 Orion Poplawski - 4.7.1-1 -- Update to 4.7.1 - -* Tue Apr 16 2019 Orion Poplawski - 4.6.13-1 -- Update to 4.6.13 - -* Thu Apr 4 2019 Orion Poplawski - 4.6.11-1 -- Update to 4.6.11 - -* Tue Apr 2 2019 Orion Poplawski - 4.6.9-2 -- Fix conda profile scripts -- Do not build for python2 on EPEL -- Ignore test failures on EPEL7 - -* Sat Mar 30 2019 Orion Poplawski - 4.6.9-1 -- Update to 4.6.9 - -* Wed Feb 13 2019 Zbigniew Jędrzejewski-Szmek - 4.6.5-1 -- Update to latest upstream version (#1668145) - -* Thu Jan 31 2019 Fedora Release Engineering - 4.5.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 31 2018 Orion Poplawski - 4.5.12-1 -- Update to 4.5.12 - -* Mon Dec 31 2018 Orion Poplawski - 4.5.11-2 -- EPEL7 compatability - -* Fri Sep 21 2018 Zbigniew Jędrzejewski-Szmek - 4.5.11-1 -- Update to latest stable version (#1570217) -- Disable python2 subpackage on F30+ - -* Fri Jul 13 2018 Zbigniew Jędrzejewski-Szmek - 4.4.11-4 -- Pull in python[23]-cytoolz to replace bundled toolz - -* Thu Jul 12 2018 Fedora Release Engineering - 4.4.11-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 4.4.11-3 -- Rebuilt for Python 3.7 - -* Wed Apr 18 2018 Orion Poplawski - 4.4.11-2 -- Set _CONDA_ROOT in /etc/profile.d/conda.csh -- Fix python2 requires -- Require pycosat >= 0.6.3 - -* Sat Apr 14 2018 Zbigniew Jędrzejewski-Szmek - 4.4.11-1 -- Update to latest upstream version in the 4.4.x branch (#1544046) - -* Wed Feb 7 2018 Zbigniew Jędrzejewski-Szmek - 4.4.9-1 -- Update to v4.4.9 (#1542874) -- conda-activate binary rpm is retired. The new way to activate the environment - is to say 'conda activate'. See - https://github.com/conda/conda/releases/tag/4.4.0 for more information. - -* Wed Feb 07 2018 Iryna Shcherbina - 4.3.24-5 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Wed Feb 07 2018 Fedora Release Engineering - 4.3.24-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-3 -- Install just one version of the executables (python 2 or 3) - -* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-2 -- Add all licenses to the License tag -- Add Provides: bundled(...) for all the "vendored" dependencies -- Update descriptions and simplify the spec file a bit -- Move condarc.d directory under /usr/share/conda - -* Thu Aug 3 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-1 -- Update to latest version -- Switch /usr/bin/conda to python3 - -* Thu Jul 21 2016 Orion Poplawski - 4.1.6-1 -- Update to 4.1.6 - -* Thu Dec 31 2015 Orion Poplawski - 3.19.0-1 -- Update to 3.19.0 - -* Thu Dec 31 2015 Orion Poplawski - 3.18.8-2 -- Add python 3 version - -* Mon Dec 7 2015 Orion Poplawski - 3.18.8-1 -- Update to 3.18.8 - -* Thu Sep 24 2015 Orion Poplawski - 3.17.0-6 -- Do not create broken symlinks if activate/deactivate are not installed -- Do not create /usr/conda-meta to prevent accidental installs into system - -* Thu Sep 24 2015 Orion Poplawski - 3.17.0-5 -- Non-bootstrap build - -* Wed Sep 23 2015 Orion Poplawski - 3.17.0-4 -- Add patch to support rootless mode -- Require python-crypto -- Create /usr/conda-meta, /usr/.condarc, /var/cache/conda - -* Tue Sep 22 2015 Orion Poplawski - 3.17.0-3 -- Require python-requests, python-yaml - -* Tue Sep 22 2015 Orion Poplawski - 3.17.0-2 -- Add patch to allow overriding pkgs_dirs in .condarc - -* Mon Sep 21 2015 Orion Poplawski - 3.17.0-1 -- Initial package diff --git a/conda b/conda index 37bab57..0309bad 100644 --- a/conda +++ b/conda @@ -37,9 +37,8 @@ function __comp_conda_ensure_root() { : import conda : print(os.path.dirname(conda.__file__)) " - script="${script// : /}" # don't assume an active base environment - CONDA_SOURCE=$(conda activate base; python -c "$script") + CONDA_SOURCE=$(conda activate base; python -c "${script// : /}") fi } @@ -52,49 +51,40 @@ function __comp_conda_commands () { echo activate deactivate # check commands from full anaconda install - for f in "$CONDA_SOURCE"/cli/main_*.py + for f in $CONDA_SOURCE/cli/main_*.py do # skip pip -- not a sub-command - [[ "$f" == */main_pip.py ]] && continue - if [[ "$f" =~ .*_([a-z]+)\.py$ ]]; then - echo "${BASH_REMATCH[1]}" - fi + [[ $f == */main_pip.py ]] && continue + \expr match "$f" '.*_\([a-z]\+\)\.py$' done # check extra pluggins - for f in "$CONDA_ROOT"/bin/conda-* + for f in $CONDA_ROOT/bin/conda-* do if [[ -x "$f" && ! -d "$f" ]] then - if [[ "$f" =~ .*/conda-(.*) ]]; then - echo "${BASH_REMATCH[1]}" - fi + \expr match "$f" '^.*/conda-\(.*\)' fi done } function __comp_conda_env_commands() { - for f in "$CONDA_SOURCE"/../conda_env/cli/main_*.py + for f in $CONDA_SOURCE/../conda_env/cli/main_*.py do - [[ "$f" == */main_vars.py ]] && continue - if [[ "$f" =~ .*_([a-z]+)\.py$ ]]; then - echo "${BASH_REMATCH[1]}" - fi + \expr match "$f" '.*_\([a-z]\+\)\.py$' done } function __comp_conda_envs() { \local script=" - : from __future__ import print_function - : import json, os, sys - : from os.path import isdir, join + : from __future__ import print_function; + : import json, os, sys; + : from os.path import isdir, join; : print('\n'.join( : d for ed in json.load(sys.stdin)['envs_dirs'] if isdir(ed) - : for d in os.listdir(ed) if isdir(join(ed, d))) - : ) + : for d in os.listdir(ed) if isdir(join(ed, d)))); " - script="${script// : /}" - conda config --json --show envs_dirs | $CONDA_PYTHON_EXE -c "$script" + conda config --json --show envs_dirs | python -c "${script// : /}" } function __comp_conda_packages() { @@ -105,13 +95,13 @@ function __comp_conda_cmds_str() { # get a list of commands, skipping options \local cmd \local -a cmds - for cmd in "$@"; do + for cmd in $*; do case "$cmd" in -*) continue ;; - *) cmds+=("$cmd") ;; + *) cmds+=($cmd) ;; esac done - echo "${cmds[@]}" + echo "${cmds[*]}" } # helper for debugging issues with the cache @@ -145,7 +135,7 @@ function __comp_conda_option_lookup() { else word_list=${__comp_conda_cache[$cmd_key]} fi - echo "$word_list" + echo $word_list } # cache conda subcommand help lookups for the duration of the shell @@ -159,7 +149,6 @@ __comp_conda_ensure_root 2>/dev/null || : _comp_conda() { - # shellcheck disable=SC2034 \local cur prev words cword _init_completion || return @@ -168,7 +157,7 @@ _comp_conda() \local word_list cmd_str if [[ $cur == -* ]]; then # get the current list of commands as a string sans options - cmd_str=$(__comp_conda_cmds_str "${words[@]}") + cmd_str="$(__comp_conda_cmds_str ${words[@]})" word_list=$(__comp_conda_option_lookup "$cmd_str") else case "$prev" in @@ -179,12 +168,8 @@ _comp_conda() word_list=$(__comp_conda_env_commands 2>/dev/null) ;; activate) - if [[ $cur == */* ]] - then - _filedir -d # environment directories - else - word_list=$(__comp_conda_envs 2>/dev/null) - fi + _filedir -d # environment directories + word_list=$(__comp_conda_envs 2>/dev/null) ;; remove|uninstall|upgrade|update) word_list=$(__comp_conda_packages 2>/dev/null) @@ -208,9 +193,7 @@ _comp_conda() esac fi if [[ -n $word_list ]]; then - # append completion suggestions to COMPREPLY - mapfile -t -O "${#COMPREPLY[@]}" COMPREPLY < \ - <(compgen -W "$word_list" -- "$cur") + COMPREPLY+=( $(compgen -W "$word_list" -- "$cur") ) fi } && complete -F _comp_conda conda diff --git a/conda-32bit.patch b/conda-32bit.patch new file mode 100644 index 0000000..b40d819 --- /dev/null +++ b/conda-32bit.patch @@ -0,0 +1,20 @@ +diff -up conda-4.8.4/tests/core/test_solve.py.32bit conda-4.8.4/tests/core/test_solve.py +--- conda-4.8.4/tests/core/test_solve.py.32bit 2020-08-06 15:02:52.000000000 -0600 ++++ conda-4.8.4/tests/core/test_solve.py 2020-08-07 19:12:28.240154100 -0600 +@@ -284,14 +284,14 @@ def test_cuda_fail_1(tmpdir): + if sys.platform == "darwin": + plat = "osx-64" + elif sys.platform == "linux": +- plat = "linux-64" ++ plat = "linux-%s" % platform.architecture()[0][0:2] + elif sys.platform == "win32": + if platform.architecture()[0] == "32bit": + plat = "win-32" + else: + plat = "win-64" + else: +- plat = "linux-64" ++ plat = "linux-%s" % platform.architecture()[0][0:2] + + assert str(exc.value).strip() == dals("""The following specifications were found to be incompatible with your system: + diff --git a/conda-cpuinfo.patch b/conda-cpuinfo.patch new file mode 100644 index 0000000..506333b --- /dev/null +++ b/conda-cpuinfo.patch @@ -0,0 +1,12 @@ +diff -up conda-4.7.11/conda/base/context.py.cpuinfo conda-4.7.11/conda/base/context.py +--- conda-4.7.11/conda/base/context.py.cpuinfo 2019-08-06 13:23:55.000000000 -0600 ++++ conda-4.7.11/conda/base/context.py 2019-08-16 21:31:01.947610667 -0600 +@@ -1328,7 +1328,7 @@ conda_tests_ctxt_mgmt_def_pol = replace_ + @memoize + def _get_cpu_info(): + # DANGER: This is rather slow +- from .._vendor.cpuinfo import get_cpu_info ++ from cpuinfo import get_cpu_info + return frozendict(get_cpu_info()) + + diff --git a/conda.spec b/conda.spec index 5e7e2c3..c8857ae 100644 --- a/conda.spec +++ b/conda.spec @@ -1,38 +1,51 @@ %bcond_without tests Name: conda -Version: 25.11.1 -Release: %autorelease +Version: 4.10.3 +Release: 2%{?dist} Summary: Cross-platform, Python-agnostic binary package manager -License: BSD-3-Clause AND Apache-2.0 -# The conda code is BSD-3-Clause -# adapters/ftp.py is Apache-2.0 +License: BSD and ASL 2.0 and LGPLv2+ and MIT +# The conda code is BSD +# progressbar is LGPLv2+ +# six is MIT/X11 +# adapters/ftp.py is ASL 2.0 URL: http://conda.pydata.org/docs/ Source0: https://github.com/conda/conda/archive/%{version}/%{name}-%{version}.tar.gz # bash completion script moved to a separate project -Source1: https://raw.githubusercontent.com/tartansandal/conda-bash-completion/1.7/conda -Patch0: 0001-conda_sys_prefix.patch.patch -# Use main entry point for conda and re-add conda-env entry point, no need to run conda init -Patch1: 0002-Use-main-entry-point-for-conda-and-re-add-conda-env-.patch +Source1: https://raw.githubusercontent.com/tartansandal/conda-bash-completion/1.5/conda +Patch0: conda_sys_prefix.patch +Patch1: conda_gateways_disk_create.patch +# Use usedforsecurity=False for hashlib.md5 for FIPS compliance +# https://bugzilla.redhat.com/show_bug.cgi?id=2326223 +Patch2: https://github.com/conda/conda/pull/11658.patch +# Use system cpuinfo +Patch3: conda-cpuinfo.patch +# Fix tests on 32bit +# https://github.com/conda/conda/pull/9759 +Patch4: conda-32bit.patch +Patch10001: 0001-Fix-toolz-imports.patch +Patch10003: 0003-Drop-fs-path-encoding-manipulation-under-python2.patch Patch10004: 0004-Do-not-try-to-run-usr-bin-python.patch Patch10005: 0005-Fix-failing-tests-in-test_api.py.patch Patch10006: 0006-shell-assume-shell-plugins-are-in-etc.patch +Patch10007: 0001-Add-back-conda-and-conda_env-entry-point.patch +Patch10008: 0002-Go-back-to-ruamel_yaml.patch BuildArch: noarch BuildRequires: pkgconfig(bash-completion) %global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '/etc/bash_completion.d') BuildRequires: sed -# For man pages -BuildRequires: python-conda-sphinx-theme Requires: python%{python3_pkgversion}-conda = %{version}-%{release} # Removed upstream in favour of calling "conda activate" in version 4.4.0 Obsoletes: conda-activate < 4.4 +%?python_enable_dependency_generator + %global _description %{expand: Conda is a cross-platform, Python-agnostic binary package manager. It @@ -48,54 +61,82 @@ can only use conda to create and manage new environments.} %description %_description - -%package tests -Summary: conda tests - -%description tests -Data for conda tests. Set CONDA_TEST_DATA_DIR to -%{_datadir}/conda/tests/data. +%global _py3_reqs \ + python%{python3_pkgversion}-cpuinfo \ + python%{python3_pkgversion}-conda-package-handling >= 1.3.0 \ + python%{python3_pkgversion}-distro >= 1.0.4 \ + python%{python3_pkgversion}-frozendict >= 1.2 \ + python%{python3_pkgversion}-pycosat >= 0.6.3 \ + python%{python3_pkgversion}-pyOpenSSL >= 16.2.0 \ + python%{python3_pkgversion}-pyyaml \ + python%{python3_pkgversion}-requests >= 2.18.4 \ + python%{python3_pkgversion}-ruamel-yaml >= 0.11.14 \ + python%{python3_pkgversion}-tqdm >= 4.22.0 \ + python%{python3_pkgversion}-urllib3 >= 1.19.1 +%global py3_reqs %(c="%_py3_reqs"; echo "$c" | xargs) %package -n python%{python3_pkgversion}-conda Summary: %{summary} BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: %py3_reqs +# When this is present, vendored toolz should not be used +%if 0%{?fedora} || 0%{?rhel} >= 8 +# EPEL7 does not have new enough cytoolz +BuildRequires: python%{python3_pkgversion}-cytoolz >= 0.8.2 +%endif # For tests +%if 0%{?fedora} BuildRequires: python-unversioned-command -BuildRequires: python%{python3_pkgversion}-boltons -BuildRequires: python%{python3_pkgversion}-boto3 -BuildRequires: python%{python3_pkgversion}-conda-libmamba-solver -BuildRequires: python%{python3_pkgversion}-flask -BuildRequires: python%{python3_pkgversion}-jsonpatch -BuildRequires: python%{python3_pkgversion}-libmambapy -BuildRequires: python%{python3_pkgversion}-pexpect -BuildRequires: python%{python3_pkgversion}-pytest-mock -BuildRequires: python%{python3_pkgversion}-pytest-rerunfailures -BuildRequires: python%{python3_pkgversion}-pytest-split +%endif +BuildRequires: python%{python3_pkgversion}-mock +BuildRequires: python%{python3_pkgversion}-pytest-cov BuildRequires: python%{python3_pkgversion}-pytest-timeout -BuildRequires: python%{python3_pkgversion}-pytest-xprocess BuildRequires: python%{python3_pkgversion}-responses -# conda uses a modified version of auxlib -Provides: bundled(python%{python3_pkgversion}-auxlib) = 0.0.43 +Requires: %py3_reqs +%if 0%{?fedora} || 0%{?rhel} >= 8 +# EPEL does not have new enough cytoolz +Requires: python%{python3_pkgversion}-cytoolz >= 0.8.2 +%endif +Provides: bundled(python%{python3_pkgversion}-appdirs) = 1.2.0 +Provides: bundled(python%{python3_pkgversion}-auxlib) +Provides: bundled(python%{python3_pkgversion}-boltons) = 18.0.0 +Provides: bundled(python%{python3_pkgversion}-six) = 1.10.0 +Provides: bundled(python%{python3_pkgversion}-toolz) = 0.8.2 + +%{?python_provide:%python_provide python%{python3_pkgversion}-conda} %description -n python%{python3_pkgversion}-conda %_description %prep %autosetup -p1 -# Re-enable dep on conda-libmamba-solver -sed -i -e '/"conda-libmamba-solver/s/# *//' pyproject.toml +sed -r -i 's/^(__version__ = ).*/\1"%{version}"/' conda/__init__.py -# Do not restrict upper bound of ruamel-yaml -sed -i -e '/ruamel.yaml/s/,<[0-9.]*//' pyproject.toml +# delete interpreter line, the user can always call the file +# explicitly as python3 /usr/lib/python3.6/site-packages/conda/_vendor/appdirs.py +# or so. +sed -r -i '1 {/#![/]usr[/]bin[/]env/d}' conda/_vendor/appdirs.py -# pytest-split/xdoctest not packaged, store-duration not needed -sed -i -e '/splitting-algorithm/d' -e '/store-durations/d' -e '/xdoctest/d' pyproject.toml +# Use Fedora's cpuinfo since it supports more arches +rm conda/_vendor/cpuinfo.py -# Unpackaged - really only applicable for macOS/Windows? -sed -i -e '/"truststore *>/d' pyproject.toml +# Replaced by cytools, byte compilation fails under python3.7 +%if 0%{?fedora} || 0%{?rhel} >= 8 +# EPEL does not have new enough cytoolz +# We need to keep __init__.py which does the dispatch between vendored and non-vendored +rm conda/_vendor/toolz/[a-zA-Z]* +%endif + +# Use system versions +# TODO - urllib3 - results in test failures: https://github.com/conda/conda/issues/9512 +#rm -r conda/_vendor/{distro.py,frozendict.py,tqdm,urllib3} +#find conda -name \*.py | xargs sed -i -e 's/^\( *\)from .*_vendor\.\(\(distro\|frozendict\|tqdm\|urllib3\).*\) import/\1from \2 import/' +rm -r conda/_vendor/{distro.py,frozendict.py,tqdm} +find conda -name \*.py | xargs sed -i -e 's/^\( *\)from .*_vendor\.\(\(distro\|frozendict\|tqdm\).*\) import/\1from \2 import/' %ifnarch x86_64 # Tests on 32-bit @@ -106,47 +147,32 @@ cp -a tests/data/conda_format_repo/{linux-64,%{python3_platform}} sed -i -e s/linux-64/%{python3_platform}/ tests/data/conda_format_repo/%{python3_platform}/*json %endif -# Do not run coverage in pytest -sed -i -e '/"--cov/d' pyproject.toml - -%generate_buildrequires -# When not testing, we don't need runtime dependencies. -# Normally, we would still BuildRequire them to not accidentally build an uninstallable package, -# but there is a runtime dependency loop with python3-conda-libmamba-solver. -%pyproject_buildrequires %{!?with_tests:-R} %build -%pyproject_wheel +# build conda executable +%py3_build %install -%pyproject_install -#py3_shebang_fix %{buildroot}%{python3_sitelib}/conda/shell/bin/conda -%pyproject_save_files conda* +# install conda executable +%py3_install -mkdir -p %{buildroot}%{_sysconfdir}/conda/condarc.d mkdir -p %{buildroot}%{_datadir}/conda/condarc.d cat >%{buildroot}%{_datadir}/conda/condarc.d/defaults.yaml <= 9 +py.test-%{python3_version} -vv -m "not integration" \ --deselect=tests/test_cli.py::TestJson::test_list \ - --deselect=tests/test_cli.py::test_run_returns_int \ - --deselect=tests/test_cli.py::test_run_returns_nonzero_errorlevel \ - --deselect=tests/test_cli.py::test_run_returns_zero_errorlevel \ - --deselect=tests/test_cli.py::test_run_readonly_env \ - --deselect=tests/test_install.py::test_conda_pip_interop_dependency_satisfied_by_pip \ - --deselect=tests/test_install.py::test_install_from_extracted_package \ - --deselect=tests/test_install.py::test_install_mkdir \ - --deselect=tests/test_misc.py::test_explicit_missing_cache_entries \ - --ignore=tests/env/specs/test_binstar.py \ - --deselect=tests/base/test_context.py::test_default_activation_prefix \ - --deselect=tests/cli/test_cli_install.py::test_frozen_env_cep22[libmamba] \ - --deselect=tests/cli/test_cli_install.py::test_frozen_env_cep22[classic] \ - --deselect=tests/cli/test_common.py::test_validate_subdir_config \ - --deselect=tests/cli/test_common.py::test_validate_subdir_config_invalid_subdir \ - --deselect=tests/cli/test_main.py::test_main_sourced_unix_shells_no_line_ending_fix[bash-expected_patterns0] \ - --deselect=tests/cli/test_main.py::test_main_sourced_unix_shells_no_line_ending_fix[zsh-expected_patterns1] \ - --deselect=tests/cli/test_main.py::test_main_sourced_unix_shells_no_line_ending_fix[fish-expected_patterns2] \ - --deselect=tests/cli/test_main.py::test_main_sourced_unix_shells_no_line_ending_fix[xonsh-expected_patterns5] \ - --deselect=tests/cli/test_main_export.py::test_export_preserves_channels_from_installed_packages \ - --deselect=tests/cli/test_main_export.py::test_export_package_alphabetical_ordering \ - --deselect=tests/cli/test_main_export.py::test_export_no_builds_format \ - --deselect=tests/cli/test_main_export.py::test_export_regular_format_consistency \ - --deselect=tests/cli/test_main_export.py::test_export_pip_dependencies_handling[environment-yaml-yaml_safe_load] \ - --deselect=tests/cli/test_main_export.py::test_export_pip_dependencies_handling[environment-json-loads] \ - --deselect=tests/cli/test_main_export.py::test_export_with_pip_dependencies_integration[YAML--yaml_safe_load] \ - --deselect=tests/cli/test_main_export.py::test_export_with_pip_dependencies_integration[JSON---format=json-loads] \ - --deselect=tests/cli/test_main_export.py::test_export_explicit_format_validation_errors \ - --deselect=tests/cli/test_main_export.py::test_export_multiple_platforms \ - --deselect=tests/cli/test_main_export.py::test_export_single_platform_different_platform \ - --deselect=tests/cli/test_main_install.py::test_build_version_shows_as_changed \ - --deselect=tests/cli/test_main_list.py::test_fields_all \ - --deselect=tests/cli/test_main_list.py::test_fields_invalid \ - --deselect=tests/cli/test_main_list.py::test_exit_codes \ - --deselect=tests/cli/test_main_update.py::test_update \ - --deselect=tests/cli/test_main_update.py::test_dont_update_packages_with_version_constraints \ - --deselect=tests/core/test_prefix_data.py::test_get_packages_behavior_with_interoperability \ - --deselect=tests/core/test_prefix_data.py::test_empty_environment_package_methods \ - --deselect=tests/core/test_prefix_data.py::test_pinned_specs_conda_meta_pinned \ - --deselect=tests/core/test_prefix_data.py::test_unset_reserved_env_vars \ - --deselect=tests/core/test_prefix_data.py::test_warn_setting_reserved_env_vars \ - --deselect=tests/core/test_solve.py::test_pinned_specs_conda_meta_pinned[libmamba] \ - --deselect=tests/core/test_solve.py::test_pinned_specs_condarc[libmamba] \ - --deselect=tests/core/test_solve.py::test_pinned_specs_all[libmamba] \ - --deselect=tests/env/installers/test_conda_installer_explicit.py::test_installer_installs_explicit \ - --deselect=tests/env/specs/test_explicit.py::test_environment \ - --deselect=tests/env/test_create.py::test_create_env_from_non_existent_plugin \ - --deselect=tests/models/test_environment.py::test_extrapolate \ - --deselect=tests/models/test_environment.py::test_explicit_packages \ - --deselect=tests/plugins/subcommands/doctor/test_health_checks.py::test_pinned_will_formatted_check \ - --deselect=tests/plugins/subcommands/doctor/test_health_checks.py::test_file_locking_supported[True] \ - --deselect=tests/plugins/subcommands/doctor/test_health_checks.py::test_file_locking_supported[False] \ - --deselect=tests/plugins/subcommands/doctor/test_health_checks.py::test_file_locking_not_supported \ - --deselect=tests/plugins/test_transaction_hooks.py::test_transaction_hooks_invoked \ - --deselect=tests/plugins/test_transaction_hooks.py::test_pre_transaction_raises_exception \ - --deselect=tests/plugins/test_transaction_hooks.py::test_post_transaction_raises_exception \ - --deselect=tests/cli/test_all_commands.py::test_denylist_channels \ - --deselect='tests/cli/test_common.py::test_is_active_prefix[active_prefix-True]' \ - --deselect=tests/cli/test_config.py::test_conda_config_describe \ - --deselect=tests/cli/test_config.py::test_conda_config_validate \ - --deselect=tests/cli/test_config.py::test_conda_config_validate_sslverify_truststore \ - --deselect=tests/cli/test_conda_argparse.py::test_list_through_python_api \ - --deselect=tests/cli/test_main_clean.py \ - --deselect=tests/cli/test_main_info.py::test_info_python_output \ - --deselect=tests/cli/test_main_info.py::test_info_conda_json \ - --deselect=tests/cli/test_main_info.py::test_info_json \ - --deselect=tests/cli/test_main_install.py::test_conda_pip_interop_dependency_satisfied_by_pip \ - --deselect=tests/cli/test_main_install.py::test_install_from_extracted_package \ - --deselect=tests/cli/test_main_install.py::test_install_mkdir \ - --deselect=tests/cli/test_main_list.py::test_list \ - --deselect=tests/cli/test_main_list.py::test_list_reverse \ - --deselect=tests/cli/test_main_notices.py::test_notices_appear_once_when_running_decorated_commands \ - --deselect=tests/cli/test_main_notices.py::test_notices_cannot_read_cache_files \ - --deselect=tests/cli/test_main_remove.py::test_remove_all \ - --deselect=tests/cli/test_main_remove.py::test_remove_all_keep_env \ - --deselect=tests/cli/test_main_rename.py \ - --deselect=tests/cli/test_main_run.py \ - --deselect=tests/cli/test_subcommands.py::test_create[libmamba] \ - --deselect=tests/cli/test_subcommands.py::test_doctor \ - --deselect=tests/cli/test_subcommands.py::test_env_create \ - --deselect=tests/cli/test_subcommands.py::test_env_update \ - --deselect=tests/cli/test_subcommands.py::test_init \ - --deselect=tests/cli/test_subcommands.py::test_install \ - --deselect=tests/cli/test_subcommands.py::test_list \ - --deselect=tests/cli/test_subcommands.py::test_notices \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[remove] \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[uninstall] \ - --deselect=tests/cli/test_subcommands.py::test_rename \ - --deselect=tests/cli/test_subcommands.py::test_run \ - --deselect=tests/cli/test_subcommands.py::test_search \ - --deselect=tests/cli/test_subcommands.py::test_update[libmamba-update] \ - --deselect=tests/cli/test_subcommands.py::test_update[libmamba-upgrade] \ - --deselect=tests/cli/test_subcommands.py::test_update[update] \ - --deselect=tests/cli/test_subcommands.py::test_update[upgrade] \ + --deselect=tests/test_cli.py::TestRun::test_run_returns_int \ + --deselect=tests/test_cli.py::TestRun::test_run_returns_nonzero_errorlevel \ + --deselect=tests/test_cli.py::TestRun::test_run_returns_zero_errorlevel \ --deselect=tests/core/test_package_cache_data.py::test_ProgressiveFetchExtract_prefers_conda_v2_format \ --deselect=tests/core/test_subdir_data.py::test_subdir_data_prefers_conda_to_tar_bz2 \ --deselect=tests/core/test_subdir_data.py::test_use_only_tar_bz2 \ --deselect=tests/core/test_initialize.py \ - --deselect=tests/core/test_solve.py::test_cuda_fail_1 \ - --deselect=tests/core/test_solve.py::test_conda_downgrade[libmamba] \ - --deselect=tests/core/test_solve.py::test_python2_update[libmamba] \ - --deselect=tests/core/test_solve.py::test_update_deps_2[libmamba] \ - --deselect=tests/core/test_solve.py::test_fast_update_with_update_modifier_not_set[libmamba] \ - --deselect=tests/core/test_solve.py::test_timestamps_1[libmamba] \ - --deselect=tests/core/test_solve.py::test_remove_with_constrained_dependencies[libmamba] \ - --deselect=tests/env/test_create.py::test_create_env_json[example/environment.yml] \ - --deselect=tests/env/test_create.py::test_create_env_json[example/environment_with_pip.yml] \ - --deselect=tests/env/test_create.py::test_create_update_remote_env_file \ - --deselect=tests/env/test_create.py::test_protected_dirs_error_for_env_create \ - --deselect=tests/gateways/test_jlap.py::test_download_and_hash \ - --deselect=tests/gateways/test_jlap.py::test_jlap_fetch_ssl[True] \ - --deselect=tests/gateways/test_jlap.py::test_jlap_fetch_ssl[False] \ - --deselect=tests/test_plan.py::test_pinned_specs_conda_meta_pinned \ - --deselect=tests/test_plan.py::test_pinned_specs_condarc \ - --deselect=tests/test_plan.py::test_pinned_specs_all \ - --deselect=tests/cli/test_subcommands.py::test_compare[libmamba] \ - --deselect=tests/cli/test_subcommands.py::test_package[libmamba] \ - --deselect=tests/cli/test_subcommands.py::test_remove[libmamba-remove] \ - --deselect=tests/cli/test_subcommands.py::test_remove[libmamba-uninstall] \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[libmamba-remove] \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[libmamba-uninstall] \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[classic-remove] \ - --deselect=tests/cli/test_subcommands.py::test_remove_all_json[classic-uninstall] \ - --deselect=tests/cli/test_subcommands.py::test_update[classic-update] \ - --deselect=tests/cli/test_subcommands.py::test_update[classic-upgrade] \ - --deselect=tests/cli/test_subcommands.py::test_env_remove[libmamba] \ - --deselect=tests/cli/test_subcommands.py::test_env_config_vars[libmamba] \ - --deselect=tests/core/test_subdir_data.py::test_subdir_data_coverage \ - --deselect=tests/models/test_prefix_graph.py::test_prefix_graph_1[libmamba] \ - --deselect=tests/models/test_prefix_graph.py::test_prefix_graph_2[libmamba] \ - --deselect=tests/models/test_prefix_graph.py::test_remove_youngest_descendant_nodes_with_specs[libmamba] \ - --deselect=tests/models/test_prefix_graph.py::test_deep_cyclical_dependency[libmamba] \ - --deselect=tests/plugins/test_pre_solves.py::test_pre_solve_invoked \ - --deselect=tests/plugins/test_post_solves.py::test_post_solve_action_raises_exception \ - --deselect=tests/plugins/test_post_solves.py::test_post_solve_invoked \ - --deselect=tests/plugins/subcommands/doctor/test_cli.py::test_conda_doctor_happy_path \ - --deselect=tests/plugins/subcommands/doctor/test_cli.py::test_conda_doctor_happy_path_verbose \ - --deselect=tests/plugins/subcommands/doctor/test_cli.py::test_conda_doctor_with_test_environment \ - --deselect=tests/plugins/test_health_checks.py::test_health_check_ran \ - --deselect=tests/plugins/test_subcommands.py::test_help \ - --deselect=tests/core/test_prefix_data.py::test_get_environment_env_vars \ - --deselect=tests/core/test_prefix_data.py::test_set_unset_environment_env_vars \ - --deselect=tests/core/test_prefix_data.py::test_set_unset_environment_env_vars_no_exist \ - --deselect=tests/testing/test_fixtures.py::test_tmp_env \ - --deselect=tests/testing/test_fixtures.py::test_session_tmp_env \ - --deselect=tests/testing/test_fixtures.py::test_env \ - --deselect=tests/testing/test_fixtures.py::test_tmp_channel \ - --ignore=tests/trust \ - conda tests + --deselect=tests/core/test_solve.py::test_cuda_fail_1 +%else +# Whitespace differences +# tests/cli/test_config.py::test_channels_* +# tests/cli/test_config.py::test_set_*key +# tests/cli/test_config.py::test_add_key +# tests/common/test_yaml.py::test_yaml_complex +rm tests/gateways/test_subprocess.py +py.test-%{python3_version} -vv -m "not integration" \ + -k 'not (test_list or test_run_returns_int or test_run_returns_nonzero_errorlevel or test_run_returns_zero_errorlevel or test_ProgressiveFetchExtract_prefers_conda_v2_format or test_subdir_data_prefers_conda_to_tar_bz2 or test_use_only_tar_bz2 or test_cuda_fail_1 or InitializeTests or test_channels_prepend or test_channels_prepend_duplicate or test_channels_append or test_channels_append_duplicate or test_channels_remove or test_set_key or test_set_map_key or test_add_key or test_yaml_complex or test_set_unconfigured_key)' +%endif %endif + %files -%{_sysconfdir}/conda/ %{_bindir}/conda %{_bindir}/conda-env %{bash_completionsdir}/conda -# TODO - better ownership for fish/vendor_conf.d -%dir %{_datadir}/fish/vendor_conf.d -%{_datadir}/fish/vendor_conf.d/conda.fish +# TODO - better ownership/requires for fish +%dir /etc/fish +%dir /etc/fish/conf.d +/etc/fish/conf.d/conda.fish /etc/profile.d/conda.sh /etc/profile.d/conda.csh -%files tests -%{_datadir}/conda/tests/ - -%files -n python%{python3_pkgversion}-conda -f %pyproject_files -%doc CHANGELOG.md README.md +%files -n python%{python3_pkgversion}-conda +%license LICENSE.txt +%doc CHANGELOG.md README.rst +%{python3_sitelib}/conda/ +%{python3_sitelib}/conda_env/ +%{python3_sitelib}/*.egg-info +%exclude %{python3_sitelib}/test_data/ %{_localstatedir}/cache/conda/ -%dir %{_datadir}/conda/ -%{_datadir}/conda/condarc.d/ +%{_datadir}/conda/ %changelog -%autochangelog +* Sun Nov 17 2024 Orion Poplawski - 4.10.3-2 +- Use usedforsecurity=False for hashlib.md5 for FIPS compliance (rhbz#2326223) + +* Sun Sep 12 2021 Zbigniew Jędrzejewski-Szmek - 4.10.3-1 +- Update to 4.10.3 + +* Fri Jun 04 2021 Python Maint - 4.10.1-2 +- Rebuilt for Python 3.10 + +* Thu Apr 15 2021 Orion Poplawski - 4.10.1-1 +- Update to 4.10.1 + +* Fri Apr 02 2021 Orion Poplawski - 4.10.0-1 +- Update to 4.10.0 + +* Tue Jan 26 2021 Orion Poplawski - 4.9.2-3 +- Add patch to support python 3.10 + +* Tue Jan 26 2021 Fedora Release Engineering - 4.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Nov 11 2020 Orion Poplawski - 4.9.2-1 +- Update to 4.9.2 + +* Tue Oct 27 2020 Orion Poplawski - 4.9.1-1 +- Update to 4.9.1 + +* Sun Oct 18 2020 Orion Poplawski - 4.9.0-1 +- Update to 4.9.0 + +* Mon Sep 21 2020 Orion Poplawski - 4.8.5-2 +- Add note to description about base environment + +* Mon Sep 14 2020 Orion Poplawski - 4.8.5-1 +- Update to 4.8.5 +- Install conda.fish (bz#1878306) + +* Sat Aug 08 2020 Orion Poplawski - 4.8.4-1 +- Update to 4.8.4 + +* Sat Aug 01 2020 Fedora Release Engineering - 4.8.3-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 4.8.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 4.8.3-2 +- Rebuilt for Python 3.9 + +* Sun Mar 15 2020 Orion Poplawski - 4.8.3-1 +- Update to 4.8.3 + +* Tue Feb 4 2020 Zbigniew Jędrzejewski-Szmek - 4.8.2-2 +- Fix import for python3.9 compatiblity (#1797691) + +* Tue Jan 28 2020 Orion Poplawski - 4.8.2-1 +- Update to 4.8.2 (#1785658) +- Obtain bash completion file from github - tartansandal/conda-bash-completion + +* Mon Jan 20 2020 Orion Poplawski - 4.8.0-2 +- Install bash completion file (bz#1791068) + +* Sat Dec 14 2019 Orion Poplawski - 4.8.0-1 +- Update to 4.8.0 +- Make "conda shell.bash hook" work (bz#1737165) +- Unbundle more libraries + +* Sat Sep 14 2019 Orion Poplawski - 4.7.12-1 +- Update to 4.7.12 + +* Mon Aug 19 2019 Miro Hrončok - 4.7.11-2 +- Rebuilt for Python 3.8 + +* Fri Aug 16 2019 Orion Poplawski - 4.7.11-1 +- Update to 4.7.11 +- Use system py-cpuinfo + +* Fri Aug 16 2019 Orion Poplawski - 4.7.10-2 +- Cleanup requires some (drop crypto, yaml; add pyOpenSSL; + add versions for requests and ruamel-yaml + +* Sat Aug 3 2019 Zbigniew Jędrzejewski-Szmek - 4.7.10-1 +- Fix 'conda shell.* hook' invocations (#1737165) + +* Wed Jul 31 2019 Orion Poplawski - 4.7.10-1 +- Update to 4.7.10 + +* Mon Jul 29 2019 Zbigniew Jędrzejewski-Szmek - 4.7.6-1 +- Update to latest version (#1678578) + +* Wed Jul 24 2019 Fedora Release Engineering - 4.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 11 2019 Orion Poplawski - 4.7.2-1 +- Update to 4.7.2 + +* Sun Jun 9 2019 Orion Poplawski - 4.7.1-1 +- Update to 4.7.1 + +* Tue Apr 16 2019 Orion Poplawski - 4.6.13-1 +- Update to 4.6.13 + +* Thu Apr 4 2019 Orion Poplawski - 4.6.11-1 +- Update to 4.6.11 + +* Tue Apr 2 2019 Orion Poplawski - 4.6.9-2 +- Fix conda profile scripts +- Do not build for python2 on EPEL +- Ignore test failures on EPEL7 + +* Sat Mar 30 2019 Orion Poplawski - 4.6.9-1 +- Update to 4.6.9 + +* Wed Feb 13 2019 Zbigniew Jędrzejewski-Szmek - 4.6.5-1 +- Update to latest upstream version (#1668145) + +* Thu Jan 31 2019 Fedora Release Engineering - 4.5.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Dec 31 2018 Orion Poplawski - 4.5.12-1 +- Update to 4.5.12 + +* Mon Dec 31 2018 Orion Poplawski - 4.5.11-2 +- EPEL7 compatability + +* Fri Sep 21 2018 Zbigniew Jędrzejewski-Szmek - 4.5.11-1 +- Update to latest stable version (#1570217) +- Disable python2 subpackage on F30+ + +* Fri Jul 13 2018 Zbigniew Jędrzejewski-Szmek - 4.4.11-4 +- Pull in python[23]-cytoolz to replace bundled toolz + +* Thu Jul 12 2018 Fedora Release Engineering - 4.4.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 4.4.11-3 +- Rebuilt for Python 3.7 + +* Wed Apr 18 2018 Orion Poplawski - 4.4.11-2 +- Set _CONDA_ROOT in /etc/profile.d/conda.csh +- Fix python2 requires +- Require pycosat >= 0.6.3 + +* Sat Apr 14 2018 Zbigniew Jędrzejewski-Szmek - 4.4.11-1 +- Update to latest upstream version in the 4.4.x branch (#1544046) + +* Wed Feb 7 2018 Zbigniew Jędrzejewski-Szmek - 4.4.9-1 +- Update to v4.4.9 (#1542874) +- conda-activate binary rpm is retired. The new way to activate the environment + is to say 'conda activate'. See + https://github.com/conda/conda/releases/tag/4.4.0 for more information. + +* Wed Feb 07 2018 Iryna Shcherbina - 4.3.24-5 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Feb 07 2018 Fedora Release Engineering - 4.3.24-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-3 +- Install just one version of the executables (python 2 or 3) + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-2 +- Add all licenses to the License tag +- Add Provides: bundled(...) for all the "vendored" dependencies +- Update descriptions and simplify the spec file a bit +- Move condarc.d directory under /usr/share/conda + +* Thu Aug 3 2017 Zbigniew Jędrzejewski-Szmek - 4.3.24-1 +- Update to latest version +- Switch /usr/bin/conda to python3 + +* Thu Jul 21 2016 Orion Poplawski - 4.1.6-1 +- Update to 4.1.6 + +* Thu Dec 31 2015 Orion Poplawski - 3.19.0-1 +- Update to 3.19.0 + +* Thu Dec 31 2015 Orion Poplawski - 3.18.8-2 +- Add python 3 version + +* Mon Dec 7 2015 Orion Poplawski - 3.18.8-1 +- Update to 3.18.8 + +* Thu Sep 24 2015 Orion Poplawski - 3.17.0-6 +- Do not create broken symlinks if activate/deactivate are not installed +- Do not create /usr/conda-meta to prevent accidental installs into system + +* Thu Sep 24 2015 Orion Poplawski - 3.17.0-5 +- Non-bootstrap build + +* Wed Sep 23 2015 Orion Poplawski - 3.17.0-4 +- Add patch to support rootless mode +- Require python-crypto +- Create /usr/conda-meta, /usr/.condarc, /var/cache/conda + +* Tue Sep 22 2015 Orion Poplawski - 3.17.0-3 +- Require python-requests, python-yaml + +* Tue Sep 22 2015 Orion Poplawski - 3.17.0-2 +- Add patch to allow overriding pkgs_dirs in .condarc + +* Mon Sep 21 2015 Orion Poplawski - 3.17.0-1 +- Initial package diff --git a/conda_gateways_disk_create.patch b/conda_gateways_disk_create.patch new file mode 100644 index 0000000..713698f --- /dev/null +++ b/conda_gateways_disk_create.patch @@ -0,0 +1,22 @@ +diff -up conda-4.7.0/conda/gateways/disk/create.py.orig conda-4.7.0/conda/gateways/disk/create.py +--- conda-4.7.0/conda/gateways/disk/create.py.orig 2019-05-17 11:08:48.000000000 -0600 ++++ conda-4.7.0/conda/gateways/disk/create.py 2019-05-18 19:46:11.428298209 -0600 +@@ -28,7 +28,7 @@ from ...base.context import context + from ...common.compat import on_win + from ...common.path import ensure_pad, expand, win_path_double_escape, win_path_ok + from ...common.serialize import json_dump +-from ...exceptions import BasicClobberError, CondaOSError, maybe_raise ++from ...exceptions import BasicClobberError, CondaOSError, maybe_raise, NotWritableError + from ...models.enums import FileMode, LinkType + + +@@ -438,6 +438,9 @@ def create_package_cache_directory(pkgs_ + sudo_safe = expand(pkgs_dir).startswith(expand('~')) + touch(join(pkgs_dir, PACKAGE_CACHE_MAGIC_FILE), mkdir=True, sudo_safe=sudo_safe) + touch(join(pkgs_dir, 'urls'), sudo_safe=sudo_safe) ++ except NotWritableError: ++ log.trace("cannot create package cache directory '%s'", pkgs_dir) ++ return False + except (IOError, OSError) as e: + if e.errno in (EACCES, EPERM, EROFS): + log.trace("cannot create package cache directory '%s'", pkgs_dir) diff --git a/conda_sys_prefix.patch b/conda_sys_prefix.patch new file mode 100644 index 0000000..6ea6485 --- /dev/null +++ b/conda_sys_prefix.patch @@ -0,0 +1,14 @@ +diff --git a/conda/__init__.py b/conda/__init__.py +index 342f3ce..debf943 100644 +--- a/conda/__init__.py ++++ b/conda/__init__.py +@@ -35,8 +35,7 @@ __copyright__ = "Copyright (c) 2012, Anaconda, Inc." + __summary__ = __doc__ + __url__ = "https://github.com/conda/conda" + +-if os.getenv('CONDA_ROOT') is None: +- os.environ[str('CONDA_ROOT')] = sys.prefix ++os.environ['CONDA_ROOT'] = '/usr/share/conda' + + CONDA_PACKAGE_ROOT = abspath(dirname(__file__)) + diff --git a/sources b/sources index 28be694..64c0855 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (conda-25.11.1.tar.gz) = ce04c8805ca51047cf1e1ebb945fcce1fbb559fe472d4f5fb4217d49b93b67c8e38baf735c6a9244b31d559247ec10d46e1e33caf8ac7fedc105ce3645121609 +SHA512 (conda-4.10.3.tar.gz) = 1f12506229975a04920745eaca2a06d3ef4b2ef76a7bd78473f156dfc64f16b63f0303a2a14cfa25cdb25081de2a24e451cc401184d7a4f77174292b901224c6