##// END OF EJS Templates
setup: require that Python has TLS 1.1 or TLS 1.2...
Manuel Jacob -
r45429:95c83284 default
parent child Browse files
Show More
@@ -7,7 +7,9 b''
7 == Backwards Compatibility Changes ==
7 == Backwards Compatibility Changes ==
8
8
9 * Mercurial now requires at least Python 2.7.9 or a Python version that
9 * Mercurial now requires at least Python 2.7.9 or a Python version that
10 backported modern SSL/TLS features (as defined in PEP 466).
10 backported modern SSL/TLS features (as defined in PEP 466), and that Python
11 was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2
12 (likely this requires the OpenSSL version to be at least 1.0.1).
11
13
12
14
13 == Internal API Changes ==
15 == Internal API Changes ==
@@ -98,6 +98,28 b' features.'
98 printf(error, file=sys.stderr)
98 printf(error, file=sys.stderr)
99 sys.exit(1)
99 sys.exit(1)
100
100
101 # ssl.HAS_TLSv1* are preferred to check support but they were added in Python
102 # 3.7. Prior to CPython commit 6e8cda91d92da72800d891b2fc2073ecbc134d98
103 # (backported to the 3.7 branch), ssl.PROTOCOL_TLSv1_1 / ssl.PROTOCOL_TLSv1_2
104 # were defined only if compiled against a OpenSSL version with TLS 1.1 / 1.2
105 # support. At the mentioned commit, they were unconditionally defined.
106 _notset = object()
107 has_tlsv1_1 = getattr(ssl, 'HAS_TLSv1_1', _notset)
108 if has_tlsv1_1 is _notset:
109 has_tlsv1_1 = getattr(ssl, 'PROTOCOL_TLSv1_1', _notset) is not _notset
110 has_tlsv1_2 = getattr(ssl, 'HAS_TLSv1_2', _notset)
111 if has_tlsv1_2 is _notset:
112 has_tlsv1_2 = getattr(ssl, 'PROTOCOL_TLSv1_2', _notset) is not _notset
113 if not (has_tlsv1_1 or has_tlsv1_2):
114 error = """
115 The `ssl` module does not advertise support for TLS 1.1 or TLS 1.2.
116 Please make sure that your Python installation was compiled against an OpenSSL
117 version enabling these features (likely this requires the OpenSSL version to
118 be at least 1.0.1).
119 """
120 printf(error, file=sys.stderr)
121 sys.exit(1)
122
101 if sys.version_info[0] >= 3:
123 if sys.version_info[0] >= 3:
102 DYLIB_SUFFIX = sysconfig.get_config_vars()['EXT_SUFFIX']
124 DYLIB_SUFFIX = sysconfig.get_config_vars()['EXT_SUFFIX']
103 else:
125 else:
General Comments 0
You need to be logged in to leave comments. Login now