[Python-checkins] closes bpo-44751: Move crypt.h include from public header to _cryptmodule (GH-27394)

miss-islington webhook-mailer at python.org
Tue Jul 27 18:58:41 EDT 2021


https://github.com/python/cpython/commit/196998e220d6ca030e5a1c8ad63fcaed8e049a98
commit: 196998e220d6ca030e5a1c8ad63fcaed8e049a98
branch: main
author: Geoffrey Thomas <geofft at ldpreload.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2021-07-27T15:58:12-07:00
summary:

closes bpo-44751: Move crypt.h include from public header to _cryptmodule (GH-27394)



Automerge-Triggered-By: GH:benjaminp

files:
A Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
M Include/Python.h
M Modules/_cryptmodule.c

diff --git a/Include/Python.h b/Include/Python.h
index 04858f281cab8d..a83befa3117361 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -35,19 +35,6 @@
 #ifndef MS_WINDOWS
 #include <unistd.h>
 #endif
-#ifdef HAVE_CRYPT_H
-#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE)
-/* Required for glibc to expose the crypt_r() function prototype. */
-#  define _GNU_SOURCE
-#  define _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#include <crypt.h>
-#ifdef _Py_GNU_SOURCE_FOR_CRYPT
-/* Don't leak the _GNU_SOURCE define to other headers. */
-#  undef _GNU_SOURCE
-#  undef _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#endif
 
 /* For size_t? */
 #ifdef HAVE_STDDEF_H
diff --git a/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
new file mode 100644
index 00000000000000..d7b9f098196694
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst	
@@ -0,0 +1 @@
+Remove ``crypt.h`` include from the public ``Python.h`` header.
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
index a95f55a63c306e..72a4f44600d92c 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -4,6 +4,9 @@
 #include "Python.h"
 
 #include <sys/types.h>
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
 
 /* Module crypt */
 



More information about the Python-checkins mailing list