From c1cf5de988fb0a95b7b7c5bd3c1f2146dd96805d Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Fri, 23 Jun 2023 14:39:13 +0200 Subject: [PATCH] Fix for python 3.7.17 macOS (#236) --- builders/macos-python-builder.psm1 | 15 ++++++++++++++- tests/sources/python-modules.py | 5 ----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/builders/macos-python-builder.psm1 b/builders/macos-python-builder.psm1 index 35f1575..6b36fdd 100644 --- a/builders/macos-python-builder.psm1 +++ b/builders/macos-python-builder.psm1 @@ -31,6 +31,14 @@ class macOSPythonBuilder : NixPythonBuilder { .SYNOPSIS Prepare system environment by installing dependencies and required packages. #> + + if ($this.Version -eq "3.7.17") { + # We have preinstalled ncurses and readLine on the hoster runners. But we need to install bzip2 for + # setting up an environemnt + # If we get any issues realted to ncurses or readline we can try to run this command + # brew install ncurses readline + Execute-Command -Command "brew install bzip2" + } } [void] Configure() { @@ -74,7 +82,12 @@ class macOSPythonBuilder : NixPythonBuilder { if ($this.Version -gt "3.7.12") { $configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" - } + } + + if ($this.Version -eq "3.7.17") { + $env:LDFLAGS += " -L$(brew --prefix bzip2)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib" + $env:CFLAGS += " -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include" + } } ### Compile with support of loadable sqlite extensions. Unavailable for Python 2.* diff --git a/tests/sources/python-modules.py b/tests/sources/python-modules.py index 152d0d6..d657405 100644 --- a/tests/sources/python-modules.py +++ b/tests/sources/python-modules.py @@ -248,11 +248,6 @@ if sys.version_info >= (3, 7): 'dataclasses', ]) -if (sys.version_info.major, sys.version_info.minor, sys.version_info.micro) == (3, 7, 17): - standard_library.remove('bz2') - standard_library.remove('curses') - standard_library.remove('readline') - # 'macpath' module has been removed from Python 3.8 if sys.version_info > (3, 7): standard_library.remove('macpath')