Skip to content

Instantly share code, notes, and snippets.

@orip
Created November 23, 2020 11:22
Show Gist options
  • Save orip/00142a498cf6d0c536b5d38771ad6249 to your computer and use it in GitHub Desktop.
Save orip/00142a498cf6d0c536b5d38771ad6249 to your computer and use it in GitHub Desktop.
Patch for Python 3.4.x for macos, based on https://bugs.python.org/issue28676
diff --git a/Python/random.c b/Python/random.c
index 93d300d..396041d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -3,6 +3,9 @@
#include <windows.h>
#else
#include <fcntl.h>
+#if defined(HAVE_GETRANDOM) || defined(HAVE_GETENTROPY)
+#include <sys/random.h>
+#endif
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
@DuncanTormey
Copy link

I got it to work. I had to do this, notice the lack of a version stamp

brew uninstall --ignore-dependencies --force openssl

Then...

brew reinstall zlib

and finally.

CPPFLAGS="-I/usr/local/opt/zlib/include -I$(brew --prefix readline)/include" LDFLAGS="-L$(brew --prefix readline)/lib -L/usr/local/opt/zlib/lib" pyenv install 3.4.3 --patch < Python-3.4.3-macos.patch

Where Python-3.4.3-macos.path is @karthicraghupathi version (thank you so much).

diff --git a/Python/random.c b/Python/random.c
index 93d300d..396041d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -3,6 +3,9 @@
 #include <windows.h>
 #else
 #include <fcntl.h>
+#if defined(HAVE_GETRANDOM) || defined(HAVE_GETENTROPY)
+#include <sys/random.h>
+#endif
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
 diff --git a/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
new file mode 100644
index 0000000000000..ded66b567a92d
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
@@ -0,0 +1 @@
+Support macOS 11 when building.
diff --git a/configure b/configure
index c51f396824b63..5024860ca4395 100755
--- a/configure
+++ b/configure
@@ -3426,7 +3426,7 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h
   # has no effect, don't bother defining them
   Darwin/[6789].*)
     define_xopen_source=no;;
-  Darwin/1[0-9].*)
+  Darwin/[12][0-9].*)
     define_xopen_source=no;;
   # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
   # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
diff --git a/configure.ac b/configure.ac
index 70deefb6b9aea..5a3e340aa3e72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -510,7 +510,7 @@ case $ac_sys_system/$ac_sys_release in
   # has no effect, don't bother defining them
   Darwin/@<:@6789@:>@.*)
     define_xopen_source=no;;
-  Darwin/1@<:@0-9@:>@.*)
+  Darwin/@<:@[12]@:>@@<:@0-9@:>@.*)
     define_xopen_source=no;;
   # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
   # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined

Thanks everyone! I would have been lost without this page. Afterwords i reinstalled openssl.

@wickkidd
Copy link

@DuncanTormey your solution was the only one that worked for me (I did it with 3.4.10 btw). Thank you 💪

@minjikarin
Copy link

@DuncanTormey, your solution was the only one that worked for me too..... thank you so much!!

@huwaizatahir2
Copy link

@DuncanTormey your solution was only one that worked for me too.... thank you sooooo much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment