From 57d54134729bef1c4ff0f714606c704882a99f4f Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Sun, 25 Aug 2019 17:59:42 -0500 Subject: [PATCH 1/8] update patches reworked patches taken from PR #268, thanks @mingwandroid Drop 0003-Win32-distutils-Also-look-for-executable.bat.patch 0015-Fix-cross-compilation-on-Debian-based-distros.patch which no no longer needed --- recipe/meta.yaml | 36 +++-- ...-Anaconda-Distribution-version-logic.patch | 20 +-- ...arch-x86_64-to-UnicCCompiler-ld_args.patch | 8 +- ...-Change-FD_SETSIZE-from-512-to-2048.patch} | 8 +- ...stutils-Also-look-for-executable.bat.patch | 61 --------- ...dd-support-to-cygwinccompiler-for-V.patch} | 8 +- ...not-pass-g-to-GCC-when-not-Py_DEBUG.patch} | 16 +-- ...6-Support-cross-compiling-byte-code.patch} | 56 ++++---- ...indows-GCC-interop-needed-by-RPy2-a.patch} | 8 +- ...sroot-usr-lib-include-if-sysroot-is.patch} | 33 ++++- ...ir_option-Use-1st-word-of-CC-as-com.patch} | 8 +- ...010-Win32-Do-not-download-externals.patch} | 14 +- ...CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch} | 12 +- ...so-that-it-looks-in-sys.prefix-lib-.patch} | 10 +- ...sable-new-dtags-in-unixccompiler.py.patch} | 10 +- ...lookup-unless-CONDA_PY_ALLOW_REG_PA.patch} | 12 +- ...-compilation-on-Debian-based-distros.patch | 26 ---- ...nssl.patch => 0015-Unvendor-openssl.patch} | 52 ++++---- ...ite3.patch => 0016-Unvendor-sqlite3.patch} | 50 +++---- ...ange-from-https-github.com-python-cp.patch | 46 +++++++ ...d-CondaEcosystemModifyDllSearchPath.patch} | 123 +++++++++++------- ...ange-from-https-github.com-python-cp.patch | 30 ----- 22 files changed, 312 insertions(+), 335 deletions(-) rename recipe/patches/{0004-Win32-Change-FD_SETSIZE-from-512-to-2048.patch => 0003-Win32-Change-FD_SETSIZE-from-512-to-2048.patch} (75%) delete mode 100644 recipe/patches/0003-Win32-distutils-Also-look-for-executable.bat.patch rename recipe/patches/{0005-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch => 0004-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch} (79%) rename recipe/patches/{0006-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch => 0005-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch} (72%) rename recipe/patches/{0007-Support-cross-compiling-byte-code.patch => 0006-Support-cross-compiling-byte-code.patch} (79%) rename recipe/patches/{0008-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch => 0007-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch} (87%) rename recipe/patches/{0009-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch => 0008-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch} (51%) rename recipe/patches/{0010-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch => 0009-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch} (85%) rename recipe/patches/{0011-Win32-Do-not-download-externals.patch => 0010-Win32-Do-not-download-externals.patch} (71%) rename recipe/patches/{0012-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch => 0011-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch} (92%) rename recipe/patches/{0013-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch => 0012-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch} (92%) rename recipe/patches/{0014-Disable-new-dtags-in-unixccompiler.py.patch => 0013-Disable-new-dtags-in-unixccompiler.py.patch} (92%) rename recipe/patches/{0016-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch => 0014-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch} (76%) delete mode 100644 recipe/patches/0015-Fix-cross-compilation-on-Debian-based-distros.patch rename recipe/patches/{0017-Unvendor-openssl.patch => 0015-Unvendor-openssl.patch} (78%) rename recipe/patches/{0018-Unvendor-sqlite3.patch => 0016-Unvendor-sqlite3.patch} (82%) create mode 100644 recipe/patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch rename recipe/patches/{0020-Add-CondaEcosystemModifyDllSearchPath.patch => 0018-Add-CondaEcosystemModifyDllSearchPath.patch} (86%) delete mode 100644 recipe/patches/0019-venv-Revert-a-change-from-https-github.com-python-cp.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 045872eba..f2cc9df55 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,26 +16,22 @@ source: patches: - patches/0001-Add-Anaconda-Distribution-version-logic.patch - patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch - - patches/0003-Win32-distutils-Also-look-for-executable.bat.patch - - patches/0004-Win32-Change-FD_SETSIZE-from-512-to-2048.patch - - patches/0005-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch - - patches/0006-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch - - patches/0007-Support-cross-compiling-byte-code.patch - - patches/0008-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch - - patches/0009-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch - - patches/0010-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch - - patches/0011-Win32-Do-not-download-externals.patch - - patches/0012-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch - - patches/0013-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch - - patches/0014-Disable-new-dtags-in-unixccompiler.py.patch - - patches/0015-Fix-cross-compilation-on-Debian-based-distros.patch - - patches/0016-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch - - patches/0017-Unvendor-openssl.patch - - patches/0018-Unvendor-sqlite3.patch - # https://bugs.python.org/issue35644 - - patches/0019-venv-Revert-a-change-from-https-github.com-python-cp.patch - # undefined reference to `CondaEcosystemGetWarnings' - # - patches/0020-Add-CondaEcosystemModifyDllSearchPath.patch + - patches/0003-Win32-Change-FD_SETSIZE-from-512-to-2048.patch + - patches/0004-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch + - patches/0005-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch + - patches/0006-Support-cross-compiling-byte-code.patch + - patches/0007-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch + - patches/0008-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch + - patches/0009-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch + - patches/0010-Win32-Do-not-download-externals.patch + - patches/0011-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch + - patches/0012-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch + - patches/0013-Disable-new-dtags-in-unixccompiler.py.patch + - patches/0014-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch + - patches/0015-Unvendor-openssl.patch + - patches/0016-Unvendor-sqlite3.patch + - patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch + - patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch # TODO :: Depend on our own packages for these: - url: https://github.com/python/cpython-source-deps/archive/xz-5.2.2.zip # [win] folder: externals/xz-5.2.2 # [win] diff --git a/recipe/patches/0001-Add-Anaconda-Distribution-version-logic.patch b/recipe/patches/0001-Add-Anaconda-Distribution-version-logic.patch index 61ed5396c..a463a8fe9 100644 --- a/recipe/patches/0001-Add-Anaconda-Distribution-version-logic.patch +++ b/recipe/patches/0001-Add-Anaconda-Distribution-version-logic.patch @@ -1,17 +1,17 @@ -From 3d32581253d96c99a146825fae40d836715c5703 Mon Sep 17 00:00:00 2001 +From e7a9c3cb0dc4f3b36fcf72d34220153be7f865ea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 15 Aug 2017 22:34:16 +0100 -Subject: [PATCH 01/20] Add Anaconda Distribution version logic +Subject: [PATCH 01/18] Add Anaconda Distribution version logic --- Include/pylifecycle.h | 1 + Lib/platform.py | 1 + Modules/main.c | 2 +- - Python/getversion.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ + Python/getversion.c | 47 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h -index 1df114a..512a4ac 100644 +index 1df114a73d..512a4ac2c4 100644 --- a/Include/pylifecycle.h +++ b/Include/pylifecycle.h @@ -50,6 +50,7 @@ int _Py_CheckPython3(void); @@ -23,10 +23,10 @@ index 1df114a..512a4ac 100644 PyAPI_FUNC(const char *) Py_GetPlatform(void); PyAPI_FUNC(const char *) Py_GetCopyright(void); diff --git a/Lib/platform.py b/Lib/platform.py -index 2ab68ae..665ef58 100755 +index 6fbb7b08c5..a12f639453 100755 --- a/Lib/platform.py +++ b/Lib/platform.py -@@ -922,6 +922,7 @@ def processor(): +@@ -943,6 +943,7 @@ def processor(): _sys_version_parser = re.compile( r'([\w.+]+)\s*' # "version" @@ -35,10 +35,10 @@ index 2ab68ae..665ef58 100755 r'(?:,\s*([\w ]*)' # ", builddate" r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)" diff --git a/Modules/main.c b/Modules/main.c -index 197c9b3..a80f60f 100644 +index b8a1c9b79c..e0dcd026ed 100644 --- a/Modules/main.c +++ b/Modules/main.c -@@ -473,7 +473,7 @@ pymain_header(const _PyCoreConfig *config) +@@ -206,7 +206,7 @@ pymain_header(const PyConfig *config) return; } @@ -48,7 +48,7 @@ index 197c9b3..a80f60f 100644 fprintf(stderr, "%s\n", COPYRIGHT); } diff --git a/Python/getversion.c b/Python/getversion.c -index c32b6f9..b5dfffb 100644 +index c32b6f9d60..b5dfffb606 100644 --- a/Python/getversion.c +++ b/Python/getversion.c @@ -2,9 +2,56 @@ @@ -109,5 +109,5 @@ index c32b6f9..b5dfffb 100644 Py_GetVersion(void) { -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch b/recipe/patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch index 914aeeffc..b7180ec08 100644 --- a/recipe/patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch +++ b/recipe/patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch @@ -1,14 +1,14 @@ -From 1863dfafa4e0a1d155aacb8ba16da27bcaf09dfa Mon Sep 17 00:00:00 2001 +From 9f67b1e8549790b748f0765969330debe9159192 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 08:48:16 +0100 -Subject: [PATCH 02/20] Darwin: Add -arch x86_64 to UnicCCompiler ld_args +Subject: [PATCH 02/18] Darwin: Add -arch x86_64 to UnicCCompiler ld_args --- Lib/distutils/unixccompiler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py -index d10a78d..87b3aed 100644 +index d10a78da31..87b3aedde9 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -200,6 +200,7 @@ class UnixCCompiler(CCompiler): @@ -20,5 +20,5 @@ index d10a78d..87b3aed 100644 self.spawn(linker + ld_args) except DistutilsExecError as msg: -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0004-Win32-Change-FD_SETSIZE-from-512-to-2048.patch b/recipe/patches/0003-Win32-Change-FD_SETSIZE-from-512-to-2048.patch similarity index 75% rename from recipe/patches/0004-Win32-Change-FD_SETSIZE-from-512-to-2048.patch rename to recipe/patches/0003-Win32-Change-FD_SETSIZE-from-512-to-2048.patch index 2d22fe12b..e55701222 100644 --- a/recipe/patches/0004-Win32-Change-FD_SETSIZE-from-512-to-2048.patch +++ b/recipe/patches/0003-Win32-Change-FD_SETSIZE-from-512-to-2048.patch @@ -1,7 +1,7 @@ -From fe0aee0e158adbb9bab103f2a8a52e9b54d1be57 Mon Sep 17 00:00:00 2001 +From 815c26bb939fee0c20b2f13cb45d034f794f24e1 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:53:55 +0100 -Subject: [PATCH 04/20] Win32: Change FD_SETSIZE from 512 to 2048 +Subject: [PATCH 03/18] Win32: Change FD_SETSIZE from 512 to 2048 https://github.com/ContinuumIO/anaconda-issues/issues/1241 --- @@ -9,7 +9,7 @@ https://github.com/ContinuumIO/anaconda-issues/issues/1241 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c -index 88130a1..17332f2 100644 +index ed71d8b0d5..eb338ce677 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -33,7 +33,7 @@ @@ -22,5 +22,5 @@ index 88130a1..17332f2 100644 #if defined(HAVE_POLL_H) -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0003-Win32-distutils-Also-look-for-executable.bat.patch b/recipe/patches/0003-Win32-distutils-Also-look-for-executable.bat.patch deleted file mode 100644 index 94e03bcdb..000000000 --- a/recipe/patches/0003-Win32-distutils-Also-look-for-executable.bat.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 705382fb16fda08ac00e7fc2a4b6b46da18ee2cf Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 16 Aug 2017 11:07:08 +0100 -Subject: [PATCH 03/20] Win32: distutils: Also look for executable.bat - -This patch should probably not exist, or at least be -rewritten. See the comments. ---- - Lib/distutils/spawn.py | 34 +++++++++++++++++++++++++--------- - 1 file changed, 25 insertions(+), 9 deletions(-) - -diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py -index 5387688..ae9cb8e 100644 ---- a/Lib/distutils/spawn.py -+++ b/Lib/distutils/spawn.py -@@ -176,17 +176,33 @@ def find_executable(executable, path=None): - path = os.environ.get('PATH', os.defpath) - - paths = path.split(os.pathsep) -- base, ext = os.path.splitext(executable) -- -- if (sys.platform == 'win32') and (ext != '.exe'): -- executable = executable + '.exe' -+ # base, ext = os.path.splitext(executable) -+ -+ if sys.platform == 'win32': -+ # This should probably be: -+ # try: -+ # exts = os.environ['PATHEXT'].lower().split(';')+[''] -+ # except: -+ # exts = ['.exe.', '.bat', ''] -+ # but IMHO: -+ # 1. The original `ext` should appear as the first entry. -+ # 2. We should be adding `exts` to `base`, not `executable` -+ # 3. Why even bother? We do not add '.sh' for Unix. -+ exts = ['.exe', '.bat', ''] -+ else: -+ exts = [''] - - if not os.path.isfile(executable): -- for p in paths: -- f = os.path.join(p, executable) -- if os.path.isfile(f): -- # the file exists, we have a shot at spawn working -- return f -+ for ext in exts: -+ newexe = executable + ext -+ if os.path.isfile(newexe): -+ return newexe -+ else: -+ for p in paths: -+ f = os.path.join(p, newexe) -+ if os.path.isfile(f): -+ # the file exists, we have a shot at spawn working -+ return f - return None - else: - return executable --- -2.7.4 - diff --git a/recipe/patches/0005-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch b/recipe/patches/0004-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch similarity index 79% rename from recipe/patches/0005-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch rename to recipe/patches/0004-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch index 26a2b0b25..668d84e5d 100644 --- a/recipe/patches/0005-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch +++ b/recipe/patches/0004-Win32-distutils-Add-support-to-cygwinccompiler-for-V.patch @@ -1,7 +1,7 @@ -From f372176b075226b121328057a5f0d48d422b3147 Mon Sep 17 00:00:00 2001 +From 5d008d40ca2b34d383ac17a2e963909cf372a1a8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:59:00 +0100 -Subject: [PATCH 05/20] Win32: distutils: Add support to cygwinccompiler for +Subject: [PATCH 04/18] Win32: distutils: Add support to cygwinccompiler for VS>=2015 Really this is for mingw-w64 though @@ -10,7 +10,7 @@ Really this is for mingw-w64 though 1 file changed, 3 insertions(+) diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py -index 6c5d777..48013e1 100644 +index 6c5d77746b..48013e1000 100644 --- a/Lib/distutils/cygwinccompiler.py +++ b/Lib/distutils/cygwinccompiler.py @@ -82,6 +82,9 @@ def get_msvcr(): @@ -24,5 +24,5 @@ index 6c5d777..48013e1 100644 raise ValueError("Unknown MS Compiler version %s " % msc_ver) -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0006-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch b/recipe/patches/0005-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch similarity index 72% rename from recipe/patches/0006-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch rename to recipe/patches/0005-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch index b62616b75..8214741e5 100644 --- a/recipe/patches/0006-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch +++ b/recipe/patches/0005-Do-not-pass-g-to-GCC-when-not-Py_DEBUG.patch @@ -1,7 +1,7 @@ -From 4858271dcec9214640c3b485b6a85a1a75121fa2 Mon Sep 17 00:00:00 2001 +From d37fe90dcbdbd6cdffa58a4bc322bd9d83c610a8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 11:45:28 +0100 -Subject: [PATCH 06/20] Do not pass -g to GCC when not Py_DEBUG +Subject: [PATCH 05/18] Do not pass -g to GCC when not Py_DEBUG This bloats our exe and our modules a lot. --- @@ -10,10 +10,10 @@ This bloats our exe and our modules a lot. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure b/configure -index d0ef8a6..98b0af0 100755 +index 3cd9b8866c..266f9e55b3 100755 --- a/configure +++ b/configure -@@ -4219,9 +4219,9 @@ if test "$ac_test_CFLAGS" = set; then +@@ -4218,9 +4218,9 @@ if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -25,7 +25,7 @@ index d0ef8a6..98b0af0 100755 fi else if test "$GCC" = yes; then -@@ -6870,7 +6870,7 @@ then +@@ -6901,7 +6901,7 @@ then OPT="-g -O0 -Wall" fi else @@ -35,10 +35,10 @@ index d0ef8a6..98b0af0 100755 ;; *) diff --git a/configure.ac b/configure.ac -index 73ee71c..3523c17 100644 +index a2088897fc..51b3849e04 100644 --- a/configure.ac +++ b/configure.ac -@@ -1509,7 +1509,7 @@ then +@@ -1532,7 +1532,7 @@ then OPT="-g -O0 -Wall" fi else @@ -48,5 +48,5 @@ index 73ee71c..3523c17 100644 ;; *) -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0007-Support-cross-compiling-byte-code.patch b/recipe/patches/0006-Support-cross-compiling-byte-code.patch similarity index 79% rename from recipe/patches/0007-Support-cross-compiling-byte-code.patch rename to recipe/patches/0006-Support-cross-compiling-byte-code.patch index 8cb47d715..57f4c9413 100644 --- a/recipe/patches/0007-Support-cross-compiling-byte-code.patch +++ b/recipe/patches/0006-Support-cross-compiling-byte-code.patch @@ -1,20 +1,20 @@ -From f60350660259e9f0fbf666858ba95c64989e9361 Mon Sep 17 00:00:00 2001 +From 6e92fc0ff5d7a53f425abd9dd759dd7fd0fa0ce0 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 12:17:33 +0100 -Subject: [PATCH 07/20] Support cross-compiling byte-code +Subject: [PATCH 06/18] Support cross-compiling byte-code https://bugs.python.org/issue22724 --- - Makefile.pre.in | 15 ++++++++------- + Makefile.pre.in | 21 +++++++++++++++------ configure | 4 +++- configure.ac | 4 +++- - 3 files changed, 14 insertions(+), 9 deletions(-) + 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 8042e8e..f3f98eb 100644 +index 6a9f4b5270..8b39b95c08 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -242,6 +242,7 @@ BUILDPYTHON= python$(BUILDEXE) +@@ -245,6 +245,7 @@ BUILDPYTHON= python$(BUILDEXE) PYTHON_FOR_REGEN=@PYTHON_FOR_REGEN@ UPDATE_FILE=@PYTHON_FOR_REGEN@ $(srcdir)/Tools/scripts/update_file.py @@ -22,7 +22,7 @@ index 8042e8e..f3f98eb 100644 PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@ BUILD_GNU_TYPE= @build@ -@@ -560,7 +561,7 @@ $(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) +@@ -565,7 +566,7 @@ $(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) platform: $(BUILDPYTHON) pybuilddir.txt @@ -31,7 +31,7 @@ index 8042e8e..f3f98eb 100644 # Create build directory and generate the sysconfig build-time data there. # pybuilddir.txt contains the name of the build dir and is used for -@@ -571,7 +572,7 @@ platform: $(BUILDPYTHON) pybuilddir.txt +@@ -576,7 +577,7 @@ platform: $(BUILDPYTHON) pybuilddir.txt # or removed in case of failure. pybuilddir.txt: $(BUILDPYTHON) @echo "none" > ./pybuilddir.txt @@ -40,7 +40,7 @@ index 8042e8e..f3f98eb 100644 if test $$? -ne 0 ; then \ echo "generate-posix-vars failed" ; \ rm -f ./pybuilddir.txt ; \ -@@ -602,7 +603,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o +@@ -607,7 +608,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ @@ -49,7 +49,7 @@ index 8042e8e..f3f98eb 100644 # Build static library -@@ -1146,7 +1147,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKI +@@ -1172,7 +1173,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKI upgrade) ensurepip="--upgrade" ;; \ install|*) ensurepip="" ;; \ esac; \ @@ -58,7 +58,7 @@ index 8042e8e..f3f98eb 100644 $$ensurepip --root=$(DESTDIR)/ ; \ fi -@@ -1156,7 +1157,7 @@ altinstall: commoninstall +@@ -1182,7 +1183,7 @@ altinstall: commoninstall upgrade) ensurepip="--altinstall --upgrade" ;; \ install|*) ensurepip="--altinstall" ;; \ esac; \ @@ -67,7 +67,7 @@ index 8042e8e..f3f98eb 100644 $$ensurepip --root=$(DESTDIR)/ ; \ fi -@@ -1558,7 +1559,7 @@ libainstall: @DEF_MAKE_RULE@ python-config +@@ -1594,7 +1595,7 @@ libainstall: @DEF_MAKE_RULE@ python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods @@ -76,20 +76,26 @@ index 8042e8e..f3f98eb 100644 --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ -@@ -1642,7 +1643,7 @@ frameworkinstallextras: - # This installs a few of the useful scripts in Tools/scripts - scriptsinstall: - SRCDIR=$(srcdir) $(RUNSHARED) \ -- $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ +@@ -1675,6 +1676,14 @@ frameworkaltinstallunixtools: + frameworkinstallextras: + cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)" + ++# This installs a few of the useful scripts in Tools/scripts ++scriptsinstall: ++ SRCDIR=$(srcdir) $(RUNSHARED) \ + $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ - --root=$(DESTDIR)/ ++ --prefix=$(prefix) \ ++ --install-scripts=$(BINDIR) \ ++ --root=$(DESTDIR)/ ++ + # Build the toplevel Makefile + Makefile.pre: $(srcdir)/Makefile.pre.in config.status + CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status diff --git a/configure b/configure -index 98b0af0..4cb9171 100755 +index 266f9e55b3..c1901a0755 100755 --- a/configure +++ b/configure -@@ -750,6 +750,7 @@ CONFIG_ARGS +@@ -753,6 +753,7 @@ CONFIG_ARGS SOVERSION VERSION PYTHON_FOR_BUILD @@ -97,7 +103,7 @@ index 98b0af0..4cb9171 100755 PYTHON_FOR_REGEN host_os host_vendor -@@ -2944,7 +2945,8 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; } +@@ -2940,7 +2941,8 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 $as_echo "$interp" >&6; } @@ -108,7 +114,7 @@ index 98b0af0..4cb9171 100755 elif test "$cross_compiling" = maybe; then as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5 diff --git a/configure.ac b/configure.ac -index 3523c17..ab35b88 100644 +index 51b3849e04..aee54645e8 100644 --- a/configure.ac +++ b/configure.ac @@ -75,13 +75,15 @@ if test "$cross_compiling" = yes; then @@ -129,5 +135,5 @@ index 3523c17..ab35b88 100644 dnl Ensure that if prefix is specified, it does not end in a slash. If -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0008-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch b/recipe/patches/0007-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch similarity index 87% rename from recipe/patches/0008-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch rename to recipe/patches/0007-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch index 4d5f6a7ce..b74f4fe35 100644 --- a/recipe/patches/0008-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch +++ b/recipe/patches/0007-Win32-Fixes-for-Windows-GCC-interop-needed-by-RPy2-a.patch @@ -1,7 +1,7 @@ -From 6677825bab90d347179e8db4cd12567ac5a82781 Mon Sep 17 00:00:00 2001 +From eaf29fd2d803c9699387dd85563dba5d40f902e8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 16 Aug 2017 12:23:02 +0100 -Subject: [PATCH 08/20] Win32: Fixes for Windows GCC interop needed by RPy2 and +Subject: [PATCH 07/18] Win32: Fixes for Windows GCC interop needed by RPy2 and CVXOPT We must pass -DMS_WIN32 or -DMS_WIN64 @@ -10,7 +10,7 @@ We must pass -DMS_WIN32 or -DMS_WIN64 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py -index 48013e1..339c278 100644 +index 48013e1000..339c2782f0 100644 --- a/Lib/distutils/cygwinccompiler.py +++ b/Lib/distutils/cygwinccompiler.py @@ -302,9 +302,13 @@ class Mingw32CCompiler(CygwinCCompiler): @@ -31,5 +31,5 @@ index 48013e1..339c278 100644 linker_so='%s %s %s' % (self.linker_dll, shared_option, -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0009-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch b/recipe/patches/0008-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch similarity index 51% rename from recipe/patches/0009-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch rename to recipe/patches/0008-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch index c9850da7c..0538bd1f1 100644 --- a/recipe/patches/0009-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch +++ b/recipe/patches/0008-Darwin-Look-in-sysroot-usr-lib-include-if-sysroot-is.patch @@ -1,18 +1,37 @@ -From d6f2ebcc4360928fb962b35ff959725a094d447e Mon Sep 17 00:00:00 2001 +From 8d1e329f780470855d98b6a2a36fed06106d4999 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 20 Aug 2017 00:22:22 +0100 -Subject: [PATCH 09/20] Darwin: Look in ${sysroot}/usr/{lib,include} if sysroot +Subject: [PATCH 08/18] Darwin: Look in ${sysroot}/usr/{lib,include} if sysroot is set --- - setup.py | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) + setup.py | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index c278f08..31bcda6 100644 +index 6cbbec9e12..3be02cb32b 100644 --- a/setup.py +++ b/setup.py -@@ -636,7 +636,13 @@ class PyBuildExt(build_ext): +@@ -138,12 +138,18 @@ def macosx_sdk_root(): + The SDK paths used by Apple-supplied tool chains depend on the + setting of various variables; see the xcrun man page for more info. + """ ++ + global MACOS_SDK_ROOT + ++ # This *not* cached in-case we need to change it dynamically ++ if 'CONDA_BUILD_SYSROOT' in os.environ: ++ return os.environ['CONDA_BUILD_SYSROOT'] ++ + # If already called, return cached result. + if MACOS_SDK_ROOT: + return MACOS_SDK_ROOT + ++ + cflags = sysconfig.get_config_var('CFLAGS') + m = re.search(r'-isysroot\s+(\S+)', cflags) + if m is not None: +@@ -674,7 +680,13 @@ class PyBuildExt(build_ext): # lib_dirs and inc_dirs are used to search for files; # if a file is found in one of those directories, it can # be assumed that no additional -I,-L directives are needed. @@ -28,5 +47,5 @@ index c278f08..31bcda6 100644 self.inc_dirs = self.compiler.include_dirs + system_include_dirs else: -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0010-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch b/recipe/patches/0009-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch similarity index 85% rename from recipe/patches/0010-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch rename to recipe/patches/0009-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch index 7d91307c5..84650599d 100644 --- a/recipe/patches/0010-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch +++ b/recipe/patches/0009-runtime_library_dir_option-Use-1st-word-of-CC-as-com.patch @@ -1,7 +1,7 @@ -From c0f74aee7b262cac8501db5289af84f655db97d2 Mon Sep 17 00:00:00 2001 +From f6dac1630ea4e904e057cc4bd6b69a5aed5ab2f8 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 5 Oct 2017 02:00:41 +0100 -Subject: [PATCH 10/20] runtime_library_dir_option: Use 1st word of CC as +Subject: [PATCH 09/18] runtime_library_dir_option: Use 1st word of CC as compiler Previous, 'CC' got passed to os.path.basename, so any paths in it after @@ -12,7 +12,7 @@ not get detected as gcc (or whatever it actually is). 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py -index 87b3aed..78a4665 100644 +index 87b3aedde9..78a4665c91 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -232,7 +232,7 @@ class UnixCCompiler(CCompiler): @@ -25,5 +25,5 @@ index 87b3aed..78a4665 100644 # MacOSX's linker doesn't understand the -R flag at all return "-L" + dir -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0011-Win32-Do-not-download-externals.patch b/recipe/patches/0010-Win32-Do-not-download-externals.patch similarity index 71% rename from recipe/patches/0011-Win32-Do-not-download-externals.patch rename to recipe/patches/0010-Win32-Do-not-download-externals.patch index 5ee9bf7c6..e07e75fcf 100644 --- a/recipe/patches/0011-Win32-Do-not-download-externals.patch +++ b/recipe/patches/0010-Win32-Do-not-download-externals.patch @@ -1,17 +1,17 @@ -From 7992739362be51046295848ed64686a62df713cc Mon Sep 17 00:00:00 2001 +From d668f52fee10f6bf931c7fbe02b9e72ea5db7e53 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 7 Sep 2017 11:35:47 +0100 -Subject: [PATCH 11/20] Win32: Do not download externals +Subject: [PATCH 10/18] Win32: Do not download externals --- PCbuild/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PCbuild/build.bat b/PCbuild/build.bat -index 88f7fc4..705b244 100644 +index bce599329e..58c46635b8 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat -@@ -88,7 +88,7 @@ if "%IncludeExternals%"=="" set IncludeExternals=true +@@ -91,7 +91,7 @@ if "%IncludeCTypes%"=="" set IncludeCTypes=true if "%IncludeSSL%"=="" set IncludeSSL=true if "%IncludeTkinter%"=="" set IncludeTkinter=true @@ -20,6 +20,6 @@ index 88f7fc4..705b244 100644 if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" ( if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" NEQ "AMD64" ( --- -2.7.4 - +-- +2.20.1 (Apple Git-117) + diff --git a/recipe/patches/0012-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch b/recipe/patches/0011-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch similarity index 92% rename from recipe/patches/0012-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch rename to recipe/patches/0011-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch index 3076ad5ea..9c02991cc 100644 --- a/recipe/patches/0012-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch +++ b/recipe/patches/0011-Add-support-for-_CONDA_PYTHON_SYSCONFIGDATA_NAME-if-.patch @@ -1,7 +1,7 @@ -From 8d96db9742f5ac04bdd5fa7abb8fed768dc25617 Mon Sep 17 00:00:00 2001 +From cc99a38db23b842573cdfe2a9f24194f5b12b611 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 3 Dec 2017 17:31:27 +0000 -Subject: [PATCH 12/20] Add support for _CONDA_PYTHON_SYSCONFIGDATA_NAME if +Subject: [PATCH 11/18] Add support for _CONDA_PYTHON_SYSCONFIGDATA_NAME if _PYTHON_SYSCONFIGDATA_NAME is not set and ignore {_CONDA,}_PYTHON_SYSCONFIGDATA_NAME if it does not exist @@ -14,10 +14,10 @@ manually). 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index a349467..77444cb 100644 +index b51629eb94..849f98f929 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -427,11 +427,13 @@ def _init_posix(): +@@ -433,11 +433,13 @@ def _init_posix(): """Initialize the module as appropriate for POSIX systems.""" # _sysconfigdata is generated at build time, see the sysconfig module name = os.environ.get('_PYTHON_SYSCONFIGDATA_NAME', @@ -37,7 +37,7 @@ index a349467..77444cb 100644 build_time_vars = _temp.build_time_vars global _config_vars diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index cc8c796..b9ecd5c 100644 +index e76e6927cb..83f462fc7c 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -343,13 +343,21 @@ def get_makefile_filename(): @@ -79,5 +79,5 @@ index cc8c796..b9ecd5c 100644 build_time_vars = _temp.build_time_vars vars.update(build_time_vars) -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0013-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch b/recipe/patches/0012-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch similarity index 92% rename from recipe/patches/0013-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch rename to recipe/patches/0012-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch index 19e69fa43..163d0c3ce 100644 --- a/recipe/patches/0013-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch +++ b/recipe/patches/0012-Fix-find_library-so-that-it-looks-in-sys.prefix-lib-.patch @@ -1,7 +1,7 @@ -From e9aa48d66915b628272551233395fd31d74360f9 Mon Sep 17 00:00:00 2001 +From 8a42e6262d9be70ec5b62deeb4255f20ac04c4f3 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Tue, 5 Dec 2017 22:47:59 +0000 -Subject: [PATCH 13/20] Fix find_library so that it looks in sys.prefix/lib +Subject: [PATCH 12/18] Fix find_library so that it looks in sys.prefix/lib first --- @@ -10,7 +10,7 @@ Subject: [PATCH 13/20] Fix find_library so that it looks in sys.prefix/lib 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Lib/ctypes/macholib/dyld.py b/Lib/ctypes/macholib/dyld.py -index c158e67..a4770ec 100644 +index c158e672f0..a4770ecf5c 100644 --- a/Lib/ctypes/macholib/dyld.py +++ b/Lib/ctypes/macholib/dyld.py @@ -88,6 +88,10 @@ def dyld_executable_path_search(name, executable_path=None): @@ -25,7 +25,7 @@ index c158e67..a4770ec 100644 yield os.path.join(executable_path, name[len('@executable_path/'):]) diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py -index 97973bc..1340ad7 100644 +index 97973bce00..1340ad7c25 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -70,7 +70,8 @@ if os.name == "nt": @@ -72,5 +72,5 @@ index 97973bc..1340ad7 100644 ################################################################ # test code -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0014-Disable-new-dtags-in-unixccompiler.py.patch b/recipe/patches/0013-Disable-new-dtags-in-unixccompiler.py.patch similarity index 92% rename from recipe/patches/0014-Disable-new-dtags-in-unixccompiler.py.patch rename to recipe/patches/0013-Disable-new-dtags-in-unixccompiler.py.patch index 1e762db91..a62dbc2dc 100644 --- a/recipe/patches/0014-Disable-new-dtags-in-unixccompiler.py.patch +++ b/recipe/patches/0013-Disable-new-dtags-in-unixccompiler.py.patch @@ -1,7 +1,7 @@ -From b9207cdf94b69ea9452c905856d9c49bea85916a Mon Sep 17 00:00:00 2001 +From 7bc510a4d319081422bcd1588ced50ee36cedd8e Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sun, 29 Apr 2018 16:10:42 +0100 -Subject: [PATCH 14/20] Disable new-dtags in unixccompiler.py +Subject: [PATCH 13/18] Disable new-dtags in unixccompiler.py They prevent isolation from system libraries and the HPC 'modules' system by giving precedence to LD_LIBRARY_PATH. We never want our libraries to @@ -21,7 +21,7 @@ itself, MSVC). 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py -index eef702c..2d8d61d 100644 +index eef702cf01..2d8d61df03 100644 --- a/Lib/distutils/tests/test_unixccompiler.py +++ b/Lib/distutils/tests/test_unixccompiler.py @@ -59,7 +59,7 @@ class UnixCCompilerTestCase(unittest.TestCase): @@ -43,7 +43,7 @@ index eef702c..2d8d61d 100644 # GCC GNULD with fully qualified configuration prefix # see #7617 diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py -index 78a4665..efacb63 100644 +index 78a4665c91..efacb6301e 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -248,12 +248,12 @@ class UnixCCompiler(CCompiler): @@ -63,5 +63,5 @@ index 78a4665..efacb63 100644 # No idea how --enable-new-dtags would be passed on to # ld if this system was using GNU ld. Don't know if a -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0016-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch b/recipe/patches/0014-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch similarity index 76% rename from recipe/patches/0016-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch rename to recipe/patches/0014-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch index 7855c53f7..ec8845897 100644 --- a/recipe/patches/0016-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch +++ b/recipe/patches/0014-Disable-registry-lookup-unless-CONDA_PY_ALLOW_REG_PA.patch @@ -1,7 +1,7 @@ -From 96f25583649a6026660f8787f52d99d0c8c2c243 Mon Sep 17 00:00:00 2001 +From 16a8cf42465854f7a2ffde8bbbe67b2aa7f53cea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Sat, 27 Oct 2018 18:48:30 +0100 -Subject: [PATCH 16/20] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS +Subject: [PATCH 14/18] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS is not 0 --- @@ -9,10 +9,10 @@ Subject: [PATCH 16/20] Disable registry lookup unless CONDA_PY_ALLOW_REG_PATHS 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/PC/getpathp.c b/PC/getpathp.c -index 76d3a08..4c3cd11 100644 +index 7465d314b0..fb861f852a 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c -@@ -770,9 +770,19 @@ calculate_module_search_path(const _PyCoreConfig *core_config, +@@ -781,9 +781,19 @@ calculate_module_search_path(const PyConfig *config, { int skiphome = calculate->home==NULL ? 0 : 1; #ifdef Py_ENABLE_SHARED @@ -33,7 +33,7 @@ index 76d3a08..4c3cd11 100644 + /* We only use the default relative PYTHONPATH if we haven't anything better to use! */ - int skipdefault = (core_config->module_search_path_env != NULL || + int skipdefault = (config->pythonpath_env != NULL || -- -2.7.4 +2.20.1 (Apple Git-117) diff --git a/recipe/patches/0015-Fix-cross-compilation-on-Debian-based-distros.patch b/recipe/patches/0015-Fix-cross-compilation-on-Debian-based-distros.patch deleted file mode 100644 index 70c34e0bd..000000000 --- a/recipe/patches/0015-Fix-cross-compilation-on-Debian-based-distros.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 525fd12ec432de983487deec9a30d81b71b5fbad Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Sun, 26 Aug 2018 17:10:08 +0100 -Subject: [PATCH 15/20] Fix cross-compilation on Debian-based distros - ---- - setup.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index 31bcda6..630ff3b 100644 ---- a/setup.py -+++ b/setup.py -@@ -615,7 +615,8 @@ class PyBuildExt(build_ext): - # only change this for cross builds for 3.3, issues on Mageia - if CROSS_COMPILING: - self.add_cross_compiling_paths() -- self.add_multiarch_paths() -+ else: -+ self.add_multiarch_paths() - self.add_ldflags_cppflags() - - def init_inc_lib_dirs(self): --- -2.7.4 - diff --git a/recipe/patches/0017-Unvendor-openssl.patch b/recipe/patches/0015-Unvendor-openssl.patch similarity index 78% rename from recipe/patches/0017-Unvendor-openssl.patch rename to recipe/patches/0015-Unvendor-openssl.patch index 725e71a85..bac4b6447 100644 --- a/recipe/patches/0017-Unvendor-openssl.patch +++ b/recipe/patches/0015-Unvendor-openssl.patch @@ -1,7 +1,7 @@ -From de2fa80a92e2eb344f10ba0a2b79fe6c07b9ed43 Mon Sep 17 00:00:00 2001 +From 5999b0e8d192ff749dc720afe1ac001d81062d1f Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sat, 24 Nov 2018 20:38:02 -0600 -Subject: [PATCH 17/20] Unvendor openssl +Subject: [PATCH 15/18] Unvendor openssl --- PCbuild/_ssl.vcxproj | 3 --- @@ -13,10 +13,10 @@ Subject: [PATCH 17/20] Unvendor openssl 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj -index 0bfc6d4..b56310f 100644 +index 4907f49b66..b2c23d5e8c 100644 --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj -@@ -83,9 +83,6 @@ +@@ -99,9 +99,6 @@ @@ -27,7 +27,7 @@ index 0bfc6d4..b56310f 100644 diff --git a/PCbuild/_ssl.vcxproj.filters b/PCbuild/_ssl.vcxproj.filters -index dfb8b6a..4328fd6 100644 +index bd46b60984..1384aeff1f 100644 --- a/PCbuild/_ssl.vcxproj.filters +++ b/PCbuild/_ssl.vcxproj.filters @@ -9,9 +9,6 @@ @@ -41,7 +41,7 @@ index dfb8b6a..4328fd6 100644 diff --git a/PCbuild/openssl.props b/PCbuild/openssl.props -index 4b8d5df..3644653 100644 +index a7e16793c7..af1350cae7 100644 --- a/PCbuild/openssl.props +++ b/PCbuild/openssl.props @@ -5,7 +5,7 @@ @@ -54,15 +54,15 @@ index 4b8d5df..3644653 100644 diff --git a/PCbuild/python.props b/PCbuild/python.props -index ee2de98..25af54f 100644 +index ba68ce334b..a44df6aa52 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props -@@ -53,9 +53,9 @@ - $(ExternalsDir)sqlite-3.21.0.0\ - $(ExternalsDir)bzip2-1.0.6\ - $(ExternalsDir)xz-5.2.2\ -- $(ExternalsDir)openssl-1.1.0j\ -- $(ExternalsDir)openssl-bin-1.1.0j\$(ArchName)\ +@@ -62,9 +62,9 @@ + $(ExternalsDir)libffi\ + $(ExternalsDir)libffi\$(ArchName)\ + $(libffiOutDir)include +- $(ExternalsDir)openssl-1.1.1c\ +- $(ExternalsDir)openssl-bin-1.1.1c\$(ArchName)\ - $(opensslOutDir)include + $(OPENSSL_DIR)\ + $(opensslDir)bin @@ -71,33 +71,33 @@ index ee2de98..25af54f 100644 $(ExternalsDir)\zlib-1.2.11\ diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj -index f4d0761..dcf33fe 100644 +index e37bcfb0b6..5de2270fa9 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj -@@ -88,6 +88,9 @@ +@@ -105,6 +105,9 @@ -+ -+ _CRT_SECURE_NO_WARNINGS;$(PreprocessorDefinitions) -+ ++ ++ _CRT_SECURE_NO_WARNINGS;$(PreprocessorDefinitions) ++ diff --git a/PCbuild/pythonw.vcxproj b/PCbuild/pythonw.vcxproj -index e1bbf4c..0f63804 100644 +index e7216dec3a..ab572d2020 100644 --- a/PCbuild/pythonw.vcxproj +++ b/PCbuild/pythonw.vcxproj -@@ -81,6 +81,9 @@ +@@ -97,6 +97,9 @@ -+ -+ _CRT_SECURE_NO_WARNINGS;$(PreprocessorDefinitions) -+ ++ ++ _CRT_SECURE_NO_WARNINGS;$(PreprocessorDefinitions) ++ --- -2.7.4 - +-- +2.20.1 (Apple Git-117) + diff --git a/recipe/patches/0018-Unvendor-sqlite3.patch b/recipe/patches/0016-Unvendor-sqlite3.patch similarity index 82% rename from recipe/patches/0018-Unvendor-sqlite3.patch rename to recipe/patches/0016-Unvendor-sqlite3.patch index fa1e908d6..b7b191d86 100644 --- a/recipe/patches/0018-Unvendor-sqlite3.patch +++ b/recipe/patches/0016-Unvendor-sqlite3.patch @@ -1,7 +1,7 @@ -From 30d6de643c970c64145e79c17c03ee5c1052ce17 Mon Sep 17 00:00:00 2001 +From 1c3ab7d64a681b19a76ab0c20e714a335075deda Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Mon, 10 Dec 2018 12:22:37 -0600 -Subject: [PATCH 18/20] Unvendor sqlite3 +Subject: [PATCH 16/18] Unvendor sqlite3 --- PCbuild/_sqlite3.vcxproj | 9 ++++----- @@ -11,10 +11,10 @@ Subject: [PATCH 18/20] Unvendor sqlite3 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj -index 5f1877f..b896b45 100644 +index 7e0062692b..3e7b2262e8 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj -@@ -77,9 +77,12 @@ +@@ -93,9 +93,12 @@ @@ -22,13 +22,13 @@ index 5f1877f..b896b45 100644 + $(sqlite3Dir)\include;%(AdditionalIncludeDirectories) MODULE_NAME="sqlite3";%(PreprocessorDefinitions) -+ -+ $(sqlite3Dir)\lib\sqlite3.lib;%(AdditionalDependencies) -+ ++ ++ $(sqlite3Dir)\lib\sqlite3.lib;%(AdditionalDependencies) ++ -@@ -111,10 +114,6 @@ +@@ -127,10 +130,6 @@ {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false @@ -40,10 +40,10 @@ index 5f1877f..b896b45 100644 diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln -index 68e9a43..601b7d5 100644 +index 6dc0139bc4..2f58d8ab24 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln -@@ -55,8 +55,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "..\PC\bdis +@@ -57,8 +57,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "..\PC\bdis EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcxproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}" EndProject @@ -53,23 +53,23 @@ index 68e9a43..601b7d5 100644 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}" diff --git a/PCbuild/python.props b/PCbuild/python.props -index 25af54f..8a3bae8 100644 +index a44df6aa52..11ff31c12d 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props -@@ -50,7 +50,7 @@ +@@ -56,7 +56,7 @@ $(EXTERNALS_DIR) $([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`)) $(ExternalsDir)\ -- $(ExternalsDir)sqlite-3.21.0.0\ +- $(ExternalsDir)sqlite-3.28.0.0\ + $(SQLITE3_DIR)\ $(ExternalsDir)bzip2-1.0.6\ $(ExternalsDir)xz-5.2.2\ - $(OPENSSL_DIR)\ + $(ExternalsDir)libffi\ diff --git a/PCbuild/sqlite3.vcxproj b/PCbuild/sqlite3.vcxproj -index 5c67a7f..f588e38 100644 +index 90b4d3108f..6deeafd422 100644 --- a/PCbuild/sqlite3.vcxproj +++ b/PCbuild/sqlite3.vcxproj -@@ -72,12 +72,12 @@ +@@ -88,12 +88,12 @@ <_ProjectFileVersion>10.0.30319.1 @@ -79,15 +79,15 @@ index 5c67a7f..f588e38 100644 - $(_SqliteVersion.Split(`;`)[3]) - $(_SqliteVersion.Split(`;`)[4]) - $(_SqliteVersion.Split(`;`)[5]) -+ <_SqliteVersion>$(SQLITE3_VERSION) -+ $(_SqliteVersion) -+ $(_SqliteVersion.Split(`.`)[1]) -+ $(_SqliteVersion.Split(`.`)[2]) -+ $(_SqliteVersion.Split(`.`)[3]) -+ $(_SqliteVersion.Split(`.`)[4]) ++ <_SqliteVersion>$(SQLITE3_VERSION) ++ $(_SqliteVersion) ++ $(_SqliteVersion.Split(`.`)[1]) ++ $(_SqliteVersion.Split(`.`)[2]) ++ $(_SqliteVersion.Split(`.`)[3]) ++ $(_SqliteVersion.Split(`.`)[4]) --- -2.7.4 - +-- +2.20.1 (Apple Git-117) + diff --git a/recipe/patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch b/recipe/patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch new file mode 100644 index 000000000..4ce121dc0 --- /dev/null +++ b/recipe/patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch @@ -0,0 +1,46 @@ +From 5b278931201364823a364dc4820bad4795c71b74 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Wed, 2 Jan 2019 21:38:48 +0000 +Subject: [PATCH 17/18] venv: Revert a change from + https://github.com/python/cpython/commit/1c3de541e64f75046b20cdd27bada1557e550bcd + https://bugs.python.org/issue35644 + +If copier(context.executable, path) is not also called on Windows (as it was in Python 3.7.1) then the venv\Scripts dir will not contain a Python exe + +Also, on Anaconda Distribution, python.exe lives in sys.prefix. +--- + Lib/venv/__init__.py | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py +index caa7285b8c..1a370800ff 100644 +--- a/Lib/venv/__init__.py ++++ b/Lib/venv/__init__.py +@@ -211,7 +211,12 @@ class EnvBuilder: + basename = 'venvwlauncher' + src = os.path.join(os.path.dirname(src), basename + ext) + else: +- src = srcfn ++ if basename.startswith('python'): ++ scripts = sys.prefix ++ else: ++ scripts = os.path.join(os.path.dirname(__file__), "scripts", "nt") ++ src = os.path.join(scripts, basename + ext) ++ + if not os.path.exists(src): + if not bad_src: + logger.warning('Unable to copy %r', src) +@@ -229,9 +234,9 @@ class EnvBuilder: + binpath = context.bin_path + path = context.env_exe + copier = self.symlink_or_copy ++ copier(context.executable, path) + dirname = context.python_dir + if os.name != 'nt': +- copier(context.executable, path) + if not os.path.islink(path): + os.chmod(path, 0o755) + for suffix in ('python', 'python3'): +-- +2.20.1 (Apple Git-117) + diff --git a/recipe/patches/0020-Add-CondaEcosystemModifyDllSearchPath.patch b/recipe/patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch similarity index 86% rename from recipe/patches/0020-Add-CondaEcosystemModifyDllSearchPath.patch rename to recipe/patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch index d722d086b..7adaa8c5c 100644 --- a/recipe/patches/0020-Add-CondaEcosystemModifyDllSearchPath.patch +++ b/recipe/patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch @@ -1,7 +1,7 @@ -From 98521f5d2e02bd32b77d56948a0d69d99239bebd Mon Sep 17 00:00:00 2001 +From 26b094b700a83a75f1317f1fb01aaab8424e2ae2 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 25 Jan 2019 22:54:57 +0000 -Subject: [PATCH 20/20] Add CondaEcosystemModifyDllSearchPath() +Subject: [PATCH 18/18] Add CondaEcosystemModifyDllSearchPath() This changes the DLL search order so that C:\Windows\System32 does not get searched in before entries in PATH. @@ -9,26 +9,51 @@ get searched in before entries in PATH. Reviewed by Kai Tietz 7.2.2019 Updated a bit to include other directories. + +meh --- - Modules/main.c | 378 ++++++++++++++++++++++++++++++++++++++++++++++++++- - Python/coreconfig.c | 4 + - Python/dynload_win.c | 4 + - 3 files changed, 385 insertions(+), 1 deletion(-) + Modules/main.c | 394 ++++++++++++++++++++++++++++++++++++++++++- + Python/dynload_win.c | 18 +- + 2 files changed, 408 insertions(+), 4 deletions(-) diff --git a/Modules/main.c b/Modules/main.c -index a80f60f..c825c5a 100644 +index e0dcd026ed..cf36c114af 100644 --- a/Modules/main.c +++ b/Modules/main.c -@@ -31,6 +31,8 @@ +@@ -20,6 +20,10 @@ + #endif + #ifdef MS_WINDOWS + # include /* STATUS_CONTROL_C_EXIT */ ++# include ++# include ++# include ++# include + #endif + /* End of includes for exit_sigint() */ + +@@ -31,6 +35,9 @@ extern "C" { #endif -+char *CondaEcosystemGetWarnings(); ++extern char *CondaEcosystemGetWarnings(); ++extern int CondaEcosystemModifyDllSearchPath_Init(int argc, wchar_t *argv[]); + - /* --- PyMainInterpreter ------------------------------------------ */ + /* --- pymain_init() ---------------------------------------------- */ + + static PyStatus +@@ -38,6 +45,11 @@ pymain_init(const _PyArgv *args) + { + PyStatus status; - void -@@ -473,7 +475,7 @@ pymain_header(const _PyCoreConfig *config) ++#ifdef MS_WINDOWS ++ /* LoadAndUnloadTestDLL(L"libiomp5md.dll"); */ ++ CondaEcosystemModifyDllSearchPath_Init(pymain->argc, pymain->wchar_argv); ++ /* LoadAndUnloadTestDLL(L"libiomp5md.dll"); */ ++#endif + status = _PyRuntime_Initialize(); + if (_PyStatus_EXCEPTION(status)) { + return status; +@@ -206,7 +218,7 @@ pymain_header(const PyConfig *config) return; } @@ -37,7 +62,7 @@ index a80f60f..c825c5a 100644 if (config->site_import) { fprintf(stderr, "%s\n", COPYRIGHT); } -@@ -867,9 +869,383 @@ exit_sigint(void) +@@ -661,6 +673,386 @@ Py_RunMain(void) } @@ -230,6 +255,12 @@ index a80f60f..c825c5a 100644 +} + +int CondaEcosystemModifyDllSearchPath(int add_windows_directory, int add_cwd) { ++ /* Returns: ++ ++ -1: CONDA_DLL_SEARCH_MODIFICATION_ENABLE unset. ++ 0: Success (this can mean that no changes were made, i.e. no calls to the kernel functions were performed). ++ 1: Failed to find kernel functions necessary (i.e. your Windows is too old). ++ */ + int debug_it = _wgetenv(L"CONDA_DLL_SEARCH_MODIFICATION_DEBUG") ? 1 : 0; + const wchar_t *path_env = _wgetenv(L"PATH"); + wchar_t current_working_directory[1024]; @@ -250,7 +281,7 @@ index a80f60f..c825c5a 100644 + return 1; + + if (_wgetenv(L"CONDA_DLL_SEARCH_MODIFICATION_ENABLE") == NULL) -+ return 0; ++ return -1; + if (_wgetenv(L"CONDA_DLL_SEARCH_MODIFICATION_NEVER_ADD_WINDOWS_DIRECTORY")) + add_windows_directory = 0; + if (_wgetenv(L"CONDA_DLL_SEARCH_MODIFICATION_NEVER_ADD_CWD")) @@ -407,50 +438,46 @@ index a80f60f..c825c5a 100644 + + return 0; +} ++#else ++char* CondaEcosystemGetWarnings() ++{ ++ return ""; ++} +#endif + + static int pymain_main(_PyArgv *args) { -+#ifdef MS_WINDOWS -+ /* LoadAndUnloadTestDLL(L"libiomp5md.dll"); */ -+ CondaEcosystemModifyDllSearchPath_Init(pymain->argc, pymain->wchar_argv); -+ /* LoadAndUnloadTestDLL(L"libiomp5md.dll"); */ -+#endif - _PyInitError err; - - PyInterpreterState *interp; -diff --git a/Python/coreconfig.c b/Python/coreconfig.c -index ba5abb6..dbc4140 100644 ---- a/Python/coreconfig.c -+++ b/Python/coreconfig.c -@@ -19,6 +19,10 @@ - # ifdef HAVE_FCNTL_H - # include /* O_BINARY */ - # endif -+# include -+# include -+# include -+# include - #endif - - diff --git a/Python/dynload_win.c b/Python/dynload_win.c -index 36918c3..ddb8d64 100644 +index 457d47f5ee..a9ad1819af 100644 --- a/Python/dynload_win.c +++ b/Python/dynload_win.c -@@ -217,6 +217,10 @@ dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, - #endif - /* We use LoadLibraryEx so Windows looks for dependent DLLs - in directory of pathname first. */ +@@ -220,9 +220,21 @@ dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, + AddDllDirectory function. We add SEARCH_DLL_LOAD_DIR to + ensure DLLs adjacent to the PYD are preferred. */ + Py_BEGIN_ALLOW_THREADS +- hDLL = LoadLibraryExW(wpathname, NULL, +- LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | +- LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); + /* This resyncs values in PATH to AddDllDirectory() */ + extern int CondaEcosystemModifyDllSearchPath(int, int); -+ CondaEcosystemModifyDllSearchPath(1, 1); -+ - /* XXX This call doesn't exist in Windows CE */ - Py_BEGIN_ALLOW_THREADS - hDLL = LoadLibraryExW(wpathname, NULL, ++ int conda_dll_search_modifications_result = CondaEcosystemModifyDllSearchPath(1, 1); ++ if (conda_dll_search_modifications_result == -1) { ++ /* Use CPython upstream's code. ++ hDLL = LoadLibraryExW(wpathname, NULL, ++ LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | ++ LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); ++ } else { ++ /* Use conda's thermo-nuclear device (which we should make more fine-grained with ++ many more env. var switches. */ ++ hDLL = LoadLibraryExW(wpathname, NULL, ++ LOAD_WITH_ALTERED_SEARCH_PATH); ++ ++ } + Py_END_ALLOW_THREADS + #if HAVE_SXS + _Py_DeactivateActCtx(cookie); -- -2.7.4 +2.20.1 diff --git a/recipe/patches/0019-venv-Revert-a-change-from-https-github.com-python-cp.patch b/recipe/patches/0019-venv-Revert-a-change-from-https-github.com-python-cp.patch deleted file mode 100644 index a55e6cbbc..000000000 --- a/recipe/patches/0019-venv-Revert-a-change-from-https-github.com-python-cp.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3f1dc6a7d2e4bc9c529fecdd2b757dfecfd5a183 Mon Sep 17 00:00:00 2001 -From: Ray Donnelly -Date: Wed, 2 Jan 2019 21:38:48 +0000 -Subject: [PATCH 19/20] venv: Revert a change from - https://github.com/python/cpython/commit/1c3de541e64f75046b20cdd27bada1557e550bcd - https://bugs.python.org/issue35644 - -If copier(context.executable, path) is not also called on Windows (as it was in Python 3.7.1) then the venv\Scripts dir will not contain a Python exe ---- - Lib/venv/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py -index 5e6d375..ad04678 100644 ---- a/Lib/venv/__init__.py -+++ b/Lib/venv/__init__.py -@@ -208,9 +208,9 @@ class EnvBuilder: - binpath = context.bin_path - path = context.env_exe - copier = self.symlink_or_copy -+ copier(context.executable, path) - dirname = context.python_dir - if os.name != 'nt': -- copier(context.executable, path) - if not os.path.islink(path): - os.chmod(path, 0o755) - for suffix in ('python', 'python3'): --- -2.7.4 - From c0474105d6a7527dce0945d415da76c441b1a181 Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Sun, 25 Aug 2019 18:58:32 -0500 Subject: [PATCH 2/8] update meta.yaml to 3.8.0b3 --- recipe/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f2cc9df55..62943ad70 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,5 @@ -{% set base_version = "3.7.3" %} -{% set version = "3.8.0" %} -{% set version_pre = "3.8.0a3" %} +{% set base_version = "3.8.0" %} +{% set version = "3.8.0b3" %} {% set linkage_nature = os.environ.get('PY_INTERP_LINKAGE_NATURE', '') %} {% if linkage_nature != '' %} {% set linkage_nature = "_" ~ linkage_nature %} @@ -8,11 +7,11 @@ package: name: python - version: {{ version_pre }} + version: {{ version }} source: - - url: https://www.python.org/ftp/python/{{ version }}/Python-{{ version_pre }}.tar.xz - sha256: 2c5bcc2596e1dd14ab8c5292f6c2421cbb5e295d7e7a8039e22c604248c351f5 + - url: https://www.python.org/ftp/python/{{ base_version }}/Python-{{ version }}.tar.xz + sha256: cd7a81efcc9f82e20f9d6a41fd6f9859ddc2a082dcbc3fa62932e53b6f41980f patches: - patches/0001-Add-Anaconda-Distribution-version-logic.patch - patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch From 48cf46a8d90b0a6a70187c0aaece2497508ba096 Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Sun, 25 Aug 2019 21:47:01 -0500 Subject: [PATCH 3/8] adjust search path for config static library --- recipe/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index cd0e55aa5..aa62212fa 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -334,7 +334,7 @@ pushd ${PREFIX} strip -S lib/libpython${VER}m.a fi fi - CONFIG_LIBPYTHON=$(find lib/python${VER}/config-${VER}${DBG}m* -name "libpython${VER}m.a") + CONFIG_LIBPYTHON=$(find lib/python${VER}/config-${VER}${DBG}* -name "libpython${VER}m.a") if [[ -f lib/libpython${VER}m.a ]] && [[ -f ${CONFIG_LIBPYTHON} ]]; then chmod +w ${CONFIG_LIBPYTHON} rm ${CONFIG_LIBPYTHON} From 93572b0831bfbe9763ac60faafa8d65fb352914c Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Sun, 25 Aug 2019 22:02:22 -0500 Subject: [PATCH 4/8] disable patch --- recipe/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 62943ad70..65a25afa8 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -30,7 +30,8 @@ source: - patches/0015-Unvendor-openssl.patch - patches/0016-Unvendor-sqlite3.patch - patches/0017-venv-Revert-a-change-from-https-github.com-python-cp.patch - - patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch + # TODO re-enable + #- patches/0018-Add-CondaEcosystemModifyDllSearchPath.patch # TODO :: Depend on our own packages for these: - url: https://github.com/python/cpython-source-deps/archive/xz-5.2.2.zip # [win] folder: externals/xz-5.2.2 # [win] From 83e3b81f03d2d6cc8fe95544f8b7cc420bd39b35 Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Wed, 2 Oct 2019 16:45:57 +0000 Subject: [PATCH 5/8] MNT: Re-rendered with conda-build 3.18.9, conda-smithy 3.4.8, and conda-forge-pinning 2019.10.01 --- .appveyor.yml | 2 + .azure-pipelines/azure-pipelines-linux.yml | 13 +++-- .azure-pipelines/azure-pipelines-osx.yml | 5 +- .azure-pipelines/azure-pipelines-win.yml | 3 +- .azure-pipelines/build_steps.sh | 13 +++-- .azure-pipelines/run_docker_build.sh | 11 +++- ..._aarch64_target_platformlinux-aarch64.yaml | 2 +- ..._ppc64le_target_platformlinux-ppc64le.yaml | 2 +- .../linux_target_platformlinux-64.yaml | 2 +- .ci_support/osx_target_platformosx-64.yaml | 6 +- .circleci/config.yml | 4 +- .gitattributes | 15 +++++ .github/CODEOWNERS | 1 + .github/CONTRIBUTING.md | 15 ----- .github/ISSUE_TEMPLATE.md | 25 -------- .github/PULL_REQUEST_TEMPLATE.md | 18 ------ build-locally.py | 58 +++++++++++++++++++ 17 files changed, 112 insertions(+), 83 deletions(-) create mode 100644 .github/CODEOWNERS delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/ISSUE_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100755 build-locally.py diff --git a/.appveyor.yml b/.appveyor.yml index 6dec65c6f..ee9f60077 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -20,6 +20,7 @@ platform: - x64 install: + - cmd: set "CI=appveyor" # If there is a newer build queued for the same PR, cancel this one. - cmd: | powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/master/recipe/conda_forge_ci_setup/ff_ci_pr_build.py', 'ff_ci_pr_build.py')" @@ -47,4 +48,5 @@ build: off test_script: - conda.exe build recipe -m .ci_support\%CONFIG%.yaml deploy_script: + - set "GIT_BRANCH=%APPVEYOR_REPO_BRANCH%" - cmd: upload_package .\ .\recipe .ci_support\%CONFIG%.yaml \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 32928c38b..4f5141fd3 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -13,18 +13,16 @@ jobs: linux_aarch64_target_platformlinux-aarch64: CONFIG: linux_aarch64_target_platformlinux-aarch64 UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 linux_ppc64le_target_platformlinux-ppc64le: CONFIG: linux_ppc64le_target_platformlinux-ppc64le UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-ppc64le linux_target_platformlinux-64: CONFIG: linux_target_platformlinux-64 UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-comp7 steps: - - script: | - sudo pip install --upgrade pip - sudo pip install setuptools shyaml - displayName: Install dependencies - # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | @@ -33,7 +31,10 @@ jobs: condition: not(startsWith(variables['CONFIG'], 'linux_64')) displayName: Configure binfmt_misc - - script: .azure-pipelines/run_docker_build.sh + - script: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + .azure-pipelines/run_docker_build.sh displayName: Run docker build env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index a8072aa3b..4f5c9185b 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -35,7 +35,7 @@ jobs: - script: | source activate base - conda install -n base -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build shyaml + conda install -n base -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build displayName: 'Add conda-forge-ci-setup=2' - script: | @@ -43,7 +43,7 @@ jobs: echo "Configuring conda." setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - + export CI=azure source run_conda_forge_build_setup conda update --yes --quiet --override-channels -c conda-forge -c defaults --all env: { @@ -68,6 +68,7 @@ jobs: - script: | source activate base + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml displayName: Upload recipe env: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 009260505..9b1d15aa1 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -68,8 +68,8 @@ jobs: # Configure the VM. - script: | + set "CI=azure" run_conda_forge_build_setup - displayName: conda-forge build setup @@ -95,6 +95,7 @@ jobs: condition: not(contains(variables['CONFIG'], 'vs2008')) - script: | + set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" upload_package .\ .\recipe .ci_support\%CONFIG%.yaml env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) diff --git a/.azure-pipelines/build_steps.sh b/.azure-pipelines/build_steps.sh index fb1b9c71d..e8ee3a1e9 100755 --- a/.azure-pipelines/build_steps.sh +++ b/.azure-pipelines/build_steps.sh @@ -7,15 +7,15 @@ set -xeuo pipefail export PYTHONUNBUFFERED=1 -export FEEDSTOCK_ROOT=/home/conda/feedstock_root -export RECIPE_ROOT=/home/conda/recipe_root -export CI_SUPPORT=/home/conda/feedstock_root/.ci_support +export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" +export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" +export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" cat >~/.condarc < -Issue: - -
-Environment (conda list): -
- -``` -$ conda list - -``` -
- -
-Details about conda and system ( conda info ): -
- -``` -$ conda info - -``` -
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ba618a2ad..000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,18 +0,0 @@ - -Checklist -* [ ] Used a fork of the feedstock to propose changes -* [ ] Bumped the build number (if the version is unchanged) -* [ ] Reset the build number to `0` (if the version changed) -* [ ] [Re-rendered]( https://conda-forge.org/docs/maintainer/updating_pkgs.html#rerendering-feedstocks ) with the latest `conda-smithy` (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering) -* [ ] Ensured the license file is being packaged. - - - - diff --git a/build-locally.py b/build-locally.py new file mode 100755 index 000000000..51d6a6e55 --- /dev/null +++ b/build-locally.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# +# This file has been generated by conda-smithy in order to build the recipe +# locally. +# +import os +import glob +import subprocess +from argparse import ArgumentParser + + +def setup_environment(ns): + os.environ["CONFIG"] = ns.config + os.environ["UPLOAD_PACKAGES"] = "False" + + +def run_docker_build(ns): + script = glob.glob(".*/run_docker_build.sh")[0] + subprocess.check_call(script) + +def verify_config(ns): + valid_configs = {os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")} + print(f"valid configs are {valid_configs}") + if ns.config in valid_configs: + print("Using " + ns.config + " configuration") + return + elif len(valid_configs) == 1: + ns.config = valid_configs.pop() + print("Found " + ns.config + " configuration") + elif ns.config is None: + print("config not selected, please choose from the following:\n") + selections = list(enumerate(sorted(valid_configs), 1)) + for i, c in selections: + print(f"{i}. {c}") + s = input("\n> ") + idx = int(s) - 1 + ns.config = selections[idx][1] + print(f"selected {ns.config}") + else: + raise ValueError("config " + ns.config + " is not valid") + # Remove the following, as implemented + if not ns.config.startswith('linux'): + raise ValueError(f"only Linux configs currently supported, got {ns.config}") + + +def main(args=None): + p = ArgumentParser("build-locally") + p.add_argument("config", default=None, nargs="?") + + ns = p.parse_args(args=args) + verify_config(ns) + setup_environment(ns) + + run_docker_build(ns) + + +if __name__ == "__main__": + main() From 5907f1c137066a2e67c6514a1e5cd2951cab3c57 Mon Sep 17 00:00:00 2001 From: "Christopher J. Wright" Date: Mon, 14 Oct 2019 10:55:15 -0400 Subject: [PATCH 6/8] try rc1 --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 65a25afa8..97e63eec9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set base_version = "3.8.0" %} -{% set version = "3.8.0b3" %} +{% set version = "3.8.0rc1" %} {% set linkage_nature = os.environ.get('PY_INTERP_LINKAGE_NATURE', '') %} {% if linkage_nature != '' %} {% set linkage_nature = "_" ~ linkage_nature %} From 8e8f020285188251655b0895dbb63821cf0ad812 Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Mon, 14 Oct 2019 14:59:20 +0000 Subject: [PATCH 7/8] MNT: Re-rendered with conda-build 3.18.9, conda-smithy 3.6.0, and conda-forge-pinning 2019.10.11 --- .appveyor.yml | 52 ------------------- .azure-pipelines/azure-pipelines-linux.yml | 2 +- .azure-pipelines/azure-pipelines-osx.yml | 2 +- .azure-pipelines/azure-pipelines-win.yml | 3 +- .gitattributes | 10 ++-- {.azure-pipelines => .scripts}/build_steps.sh | 0 .../run_docker_build.sh | 0 README.md | 7 --- build-locally.py | 15 ++++-- 9 files changed, 20 insertions(+), 71 deletions(-) delete mode 100644 .appveyor.yml rename {.azure-pipelines => .scripts}/build_steps.sh (100%) rename {.azure-pipelines => .scripts}/run_docker_build.sh (100%) diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index ee9f60077..000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,52 +0,0 @@ -# This file was automatically generated by conda-smithy. To update a component of this -# file, make changes to conda-forge.yml and/or recipe/meta.yaml, and run -# "conda smithy rerender". -# -*- mode: yaml -*- - -environment: - - BINSTAR_TOKEN: - # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - secure: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1 - - matrix: - - CONFIG: win_c_compilervs2015cxx_compilervs2015target_platformwin-64vc14 - CONDA_INSTALL_LOCN: C:\Miniconda36-x64 - - -# We always use a 64-bit machine, but can build x86 distributions -# with the TARGET_ARCH variable. -platform: - - x64 - -install: - - cmd: set "CI=appveyor" - # If there is a newer build queued for the same PR, cancel this one. - - cmd: | - powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/master/recipe/conda_forge_ci_setup/ff_ci_pr_build.py', 'ff_ci_pr_build.py')" - "%CONDA_INSTALL_LOCN%\python.exe" ff_ci_pr_build.py -v --ci "appveyor" "%APPVEYOR_ACCOUNT_NAME%/%APPVEYOR_PROJECT_SLUG%" "%APPVEYOR_BUILD_NUMBER%" "%APPVEYOR_PULL_REQUEST_NUMBER%" - del ff_ci_pr_build.py - - # Cygwin's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) - - cmd: rmdir C:\cygwin /s /q - - # Add path, activate `conda` and update conda. - - cmd: call %CONDA_INSTALL_LOCN%\Scripts\activate.bat - - cmd: conda.exe update --yes --quiet conda - - - cmd: set PYTHONUNBUFFERED=1 - - # Configure the VM. - # Tell conda we want an updated version of conda-forge-ci-setup and conda-build - - cmd: conda.exe install -n root -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build - - cmd: setup_conda_rc .\ .\recipe .\.ci_support\%CONFIG%.yaml - - cmd: run_conda_forge_build_setup - -# Skip .NET project specific build phase. -build: off - -test_script: - - conda.exe build recipe -m .ci_support\%CONFIG%.yaml -deploy_script: - - set "GIT_BRANCH=%APPVEYOR_REPO_BRANCH%" - - cmd: upload_package .\ .\recipe .ci_support\%CONFIG%.yaml \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 4f5141fd3..de57a4fee 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -34,7 +34,7 @@ jobs: - script: | export CI=azure export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - .azure-pipelines/run_docker_build.sh + .scripts/run_docker_build.sh displayName: Run docker build env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 4f5c9185b..1ce45b206 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -70,7 +70,7 @@ jobs: source activate base export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml - displayName: Upload recipe + displayName: Upload package env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) condition: not(eq(variables['UPLOAD_PACKAGES'], 'False')) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 9b1d15aa1..6917cde6e 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -13,7 +13,7 @@ jobs: win_c_compilervs2015cxx_compilervs2015target_platformwin-64vc14: CONFIG: win_c_compilervs2015cxx_compilervs2015target_platformwin-64vc14 CONDA_BLD_PATH: D:\\bld\\ - UPLOAD_PACKAGES: False + UPLOAD_PACKAGES: True steps: # TODO: Fast finish on azure pipelines? - script: | @@ -97,6 +97,7 @@ jobs: - script: | set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" upload_package .\ .\recipe .ci_support\%CONFIG%.yaml + displayName: Upload package env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) condition: not(eq(variables['UPLOAD_PACKAGES'], 'False')) diff --git a/.gitattributes b/.gitattributes index e7c7437e4..86ff93771 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,14 +9,16 @@ bld.bat text eol=crlf # github helper pieces to make some files not show up in diffs automatically .azure-pipelines/* linguist-generated=true .circleci/* linguist-generated=true +.drone/* linguist-generated=true +.drone.yml linguist-generated=true .github/* linguist-generated=true .travis/* linguist-generated=true -.appveyor.yml linguist-generated=true -.gitattributes linguist-generated=true +.appveyor.yml linguist-generated=true +.gitattributes linguist-generated=true .gitignore linguist-generated=true .travis.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +LICENSE.txt linguist-generated=true +README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.azure-pipelines/build_steps.sh b/.scripts/build_steps.sh similarity index 100% rename from .azure-pipelines/build_steps.sh rename to .scripts/build_steps.sh diff --git a/.azure-pipelines/run_docker_build.sh b/.scripts/run_docker_build.sh similarity index 100% rename from .azure-pipelines/run_docker_build.sh rename to .scripts/run_docker_build.sh diff --git a/README.md b/README.md index 34eb2fbcf..3c8f5dffb 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,6 @@ Current build status OSX - - Appveyor - - - windows - - diff --git a/build-locally.py b/build-locally.py index 51d6a6e55..8f7ecca4f 100755 --- a/build-locally.py +++ b/build-locally.py @@ -15,11 +15,14 @@ def setup_environment(ns): def run_docker_build(ns): - script = glob.glob(".*/run_docker_build.sh")[0] - subprocess.check_call(script) + script = ".scripts/run_docker_build.sh" + subprocess.check_call([script]) + def verify_config(ns): - valid_configs = {os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")} + valid_configs = { + os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") + } print(f"valid configs are {valid_configs}") if ns.config in valid_configs: print("Using " + ns.config + " configuration") @@ -39,8 +42,10 @@ def verify_config(ns): else: raise ValueError("config " + ns.config + " is not valid") # Remove the following, as implemented - if not ns.config.startswith('linux'): - raise ValueError(f"only Linux configs currently supported, got {ns.config}") + if not ns.config.startswith("linux"): + raise ValueError( + f"only Linux configs currently supported, got {ns.config}" + ) def main(args=None): From 2f6446505db9a1772e935b52845c5b7b8f1eab14 Mon Sep 17 00:00:00 2001 From: "Christopher J. Wright" Date: Mon, 14 Oct 2019 11:08:28 -0400 Subject: [PATCH 8/8] update hash --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 97e63eec9..dbf659b53 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -11,7 +11,7 @@ package: source: - url: https://www.python.org/ftp/python/{{ base_version }}/Python-{{ version }}.tar.xz - sha256: cd7a81efcc9f82e20f9d6a41fd6f9859ddc2a082dcbc3fa62932e53b6f41980f + sha256: ae44df6ccf5d70059dd4d04c97156f5fcace74384a6f3cfb2fdf9baddb90a821 patches: - patches/0001-Add-Anaconda-Distribution-version-logic.patch - patches/0002-Darwin-Add-arch-x86_64-to-UnicCCompiler-ld_args.patch