diff --git a/Doc/library/crypt.rst b/Doc/library/crypt.rst index 43d4b5b749e..d25c626a175 100644 --- a/Doc/library/crypt.rst +++ b/Doc/library/crypt.rst @@ -30,6 +30,8 @@ the :manpage:`crypt(3)` routine in the running system. Therefore, any extensions available on the current implementation will also be available on this module. +.. availability:: Unix. Not available on VxWorks. + Hashing Methods --------------- diff --git a/Misc/NEWS.d/next/Build/2019-04-15-15-01-29.bpo-31904.38fdkg.rst b/Misc/NEWS.d/next/Build/2019-04-15-15-01-29.bpo-31904.38fdkg.rst new file mode 100644 index 00000000000..c82636ed7b5 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2019-04-15-15-01-29.bpo-31904.38fdkg.rst @@ -0,0 +1 @@ +Don't build the ``_crypt`` extension on VxWorks. diff --git a/setup.py b/setup.py index 30caed5b51c..9c83914fd90 100644 --- a/setup.py +++ b/setup.py @@ -973,17 +973,18 @@ class PyBuildExt(build_ext): def detect_crypt(self): # crypt module. + if VXWORKS: + # bpo-31904: crypt() function is not provided by VxWorks. + # DES_crypt() OpenSSL provides is too weak to implement + # the encryption. + return + if self.compiler.find_library_file(self.lib_dirs, 'crypt'): libs = ['crypt'] else: libs = [] - if not VXWORKS: - self.add(Extension('_crypt', ['_cryptmodule.c'], - libraries=libs)) - elif self.compiler.find_library_file(self.lib_dirs, 'OPENSSL'): - libs = ['OPENSSL'] - self.add(Extension('_crypt', ['_cryptmodule.c'], + self.add(Extension('_crypt', ['_cryptmodule.c'], libraries=libs)) def detect_socket(self):