--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
Please unblock package python-astropy
Since openSSL removed SSLv2 and SSLv3, building python-astropy failed, which is
reported in bug #775780.
A debdiff is attached.
unblock python-astropy/0.4.2-2
-- System Information:
Debian Release: 8.0
APT prefers testing-updates
APT policy: (500, 'testing-updates'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
diff -Nru python-astropy-0.4.2/debian/changelog python-astropy-0.4.2/debian/changelog
--- python-astropy-0.4.2/debian/changelog 2014-09-24 16:01:03.000000000 +0200
+++ python-astropy-0.4.2/debian/changelog 2015-01-19 21:09:28.000000000 +0100
@@ -1,3 +1,9 @@
+python-astropy (0.4.2-2) unstable; urgency=medium
+
+ * Don't set defalt SSL protocol in vo/samp/client.py. Closes: #775780
+
+ -- Ole Streicher <oleb...@debian.org> Mon, 19 Jan 2015 21:07:18 +0100
+
python-astropy (0.4.2-1) unstable; urgency=low
* New upstream release.
diff -Nru python-astropy-0.4.2/debian/patches/remove_ssl_2_3.patch python-astropy-0.4.2/debian/patches/remove_ssl_2_3.patch
--- python-astropy-0.4.2/debian/patches/remove_ssl_2_3.patch 1970-01-01 01:00:00.000000000 +0100
+++ python-astropy-0.4.2/debian/patches/remove_ssl_2_3.patch 2015-01-19 17:21:10.000000000 +0100
@@ -0,0 +1,273 @@
+From: Michael Droettboom <mdb...@gmail.com>
+Date: Fri, 16 Jan 2015 09:58:27 -0500
+Subject: [PATCH] Let Python choose the default SSL protocol for us.
+--- a/astropy/vo/samp/client.py
++++ b/astropy/vo/samp/client.py
+@@ -85,13 +85,13 @@
+ passed from the Hub end of the connection.
+
+ ssl_version : int, optional
+- Which version of the SSL protocol to use. Typically, the server
+- chooses a particular protocol version, and the client must adapt to
+- the server's choice. Most of the versions are not interoperable with
+- the other versions. If not specified the default SSL version is
+- `ssl.PROTOCOL_SSLv23`. This version provides the most compatibility
+- with other versions Hub side. Other SSL protocol versions are:
+- `ssl.PROTOCOL_SSLv2`, `ssl.PROTOCOL_SSLv3` and `ssl.PROTOCOL_TLSv1`.
++ Which version of the SSL protocol to use. Typically, the
++ server chooses a particular protocol version, and the client
++ must adapt to the server's choice. Most of the versions are
++ not interoperable with the other versions. If not specified,
++ the default SSL version is taken from the default in the
++ installed version of the Python standard `ssl` library. See
++ the `ssl` documentation for more information.
+
+ callable : bool, optional
+ Whether the client can receive calls and notifications. If set to
+@@ -118,9 +118,6 @@
+ if description is not None:
+ metadata["samp.description.text"] = description
+
+- if SSL_SUPPORT and ssl_version is None:
+- ssl_version = ssl.PROTOCOL_SSLv23
+-
+ self._metadata = metadata
+
+ self._addr = addr
+--- a/astropy/vo/samp/hub.py
++++ b/astropy/vo/samp/hub.py
+@@ -114,14 +114,14 @@
+ passed from the Hub end of the connection.
+
+ ssl_version : int, optional
+- The ``ssl_version`` option specifies which version of the SSL protocol
+- to use. Typically, the server chooses a particular protocol version,
+- and the client must adapt to the server's choice. Most of the versions
+- are not interoperable with the other versions. If not specified the
+- default SSL version is `ssl.PROTOCOL_SSLv23`. This version provides
+- the most compatibility with other versions client side. Other SSL
+- protocol versions are: `ssl.PROTOCOL_SSLv2`, `ssl.PROTOCOL_SSLv3` and
+- `ssl.PROTOCOL_TLSv1`.
++ The ``ssl_version`` option specifies which version of the SSL
++ protocol to use. Typically, the server chooses a particular
++ protocol version, and the client must adapt to the server's
++ choice. Most of the versions are not interoperable with the
++ other versions. If not specified, the default SSL version is
++ taken from the default in the installed version of the Python
++ standard `ssl` library. See the `ssl` documentation for more
++ information.
+
+ web_profile : bool, optional
+ Enables or disables the Web Profile support.
+@@ -165,9 +165,6 @@
+ self._client_timeout = client_timeout
+ self._pool_size = pool_size
+
+- if SSL_SUPPORT and ssl_version is None:
+- ssl_version = ssl.PROTOCOL_SSLv23
+-
+ self._web_profile = web_profile
+ self._web_profile_server = None
+ self._web_profile_callbacks = {}
+--- a/astropy/vo/samp/hub_proxy.py
++++ b/astropy/vo/samp/hub_proxy.py
+@@ -78,14 +78,14 @@
+ certificate passed from the Hub end of the connection.
+
+ ssl_version : int, optional
+- Which version of the SSL protocol to use. Typically, the server
+- chooses a particular protocol version, and the client must adapt
+- to the server's choice. Most of the versions are not interoperable
+- with the other versions. If not specified the default SSL version
+- is `ssl.PROTOCOL_SSLv3`. This version provides the most
+- compatibility with other versions server side. Other SSL protocol
+- versions are: `ssl.PROTOCOL_SSLv2`, `ssl.PROTOCOL_SSLv3` and
+- `ssl.PROTOCOL_TLSv1`.
++ Which version of the SSL protocol to use. Typically, the
++ server chooses a particular protocol version, and the
++ client must adapt to the server's choice. Most of the
++ versions are not interoperable with the other versions. If
++ not specified, the default SSL version is taken from the
++ default in the installed version of the Python standard
++ `ssl` library. See the `ssl` documentation for more
++ information.
+
+ pool_size : int, optional
+ The number of socket connections opened to communicate with the
+@@ -95,9 +95,6 @@
+ self._connected = False
+ self.lockfile = {}
+
+- if SSL_SUPPORT and ssl_version is None:
+- ssl_version = ssl.PROTOCOL_SSLv3
+-
+ if hub is not None and hub_params is not None:
+ raise ValueError("Cannot specify both hub and hub_params")
+
+--- a/astropy/vo/samp/hub_script.py
++++ b/astropy/vo/samp/hub_script.py
+@@ -148,10 +148,14 @@
+ "SSL protocol to use. Typically, the server chooses a particular "
+ "protocol version, and the client must adapt to the server's choice. "
+ "Most of the versions are not interoperable with the other versions. "
+- "If not specified the default SSL version is SSLv23. This version "
+- "provides the most compatibility with other versions client side. "
+- "Other SSL protocol versions are: SSLv2, SSLv3 and TLSv1.",
+- type=str, choices=["SSLv23", "SSLv2", "SSLv3", "TLSv1"], default="SSLv23")
++ "If not specified the default SSL version is taken from the default in "
++ "the Python standard `ssl` library for the version of Python that is "
++ "installed. Other SSL protocol versions are: SSLv2, SSLv3, SSLv23, "
++ "TLSv1, TLSv1_1, TLSv1_2 but not all of them may be available on all "
++ "versions of Python.",
++ type=str,
++ choices=["SSLv23", "SSLv2", "SSLv3", "TLSv1", "TLSv1_1", "TLSv1_2"],
++ default=None)
+
+ parser.add_argument_group(ssl_group)
+
+@@ -170,14 +174,14 @@
+ else:
+ options.cert_reqs = ssl.CERT_NONE
+
+- if options.ssl_version == "SSLv2":
+- options.ssl_version = ssl.PROTOCOL_SSLv2
+- elif options.ssl_version == "SSLv3":
+- options.ssl_version = ssl.PROTOCOL_SSLv3
+- elif options.ssl_version == "TLSv1":
+- options.ssl_version = ssl.PROTOCOL_TLSv1
+- else:
+- options.ssl_version = ssl.PROTOCOL_SSLv23
++ if options.ssl_version is not None:
++ if hasattr(ssl, 'PROTOCOL_' + options.ssl_version):
++ options.ssl_version = getattr(
++ ssl, 'PROTOCOL_' + options.ssl_version)
++ else:
++ raise ValueError(
++ "SSL protocol '{0}' not supported on this version of "
++ "Python".format(options.ssl_version))
+
+ if options.loglevel in ("OFF", "ERROR", "WARNING", "DEBUG", "INFO"):
+ log.setLevel(options.loglevel)
+--- a/astropy/vo/samp/integrated_client.py
++++ b/astropy/vo/samp/integrated_client.py
+@@ -68,13 +68,13 @@
+ passed from the Hub end of the connection.
+
+ ssl_version : int, optional
+- Which version of the SSL protocol to use. Typically, the server chooses
+- a particular protocol version, and the client must adapt to the
+- server's choice. Most of the versions are not interoperable with the
+- other versions. If not specified the default SSL version is
+- `ssl.PROTOCOL_SSLv23`. This version provides the most compatibility
+- with other versions Hub side. Other SSL protocol versions are:
+- `ssl.PROTOCOL_SSLv2`, `ssl.PROTOCOL_SSLv3` and `ssl.PROTOCOL_TLSv1`.
++ Which version of the SSL protocol to use. Typically, the
++ server chooses a particular protocol version, and the client
++ must adapt to the server's choice. Most of the versions are
++ not interoperable with the other versions. If not specified,
++ the default SSL version is taken from the default in the
++ installed version of the Python standard `ssl` library. See
++ the `ssl` documentation for more information.
+
+ callable : bool, optional
+ Whether the client can receive calls and notifications. If set to
+@@ -167,14 +167,14 @@
+ certificate passed from the Hub end of the connection.
+
+ ssl_version : int, optional
+- Which version of the SSL protocol to use. Typically, the server
+- chooses a particular protocol version, and the client must adapt
+- to the server's choice. Most of the versions are not interoperable
+- with the other versions. If not specified the default SSL version
+- is `ssl.PROTOCOL_SSLv3`. This version provides the most
+- compatibility with other versions server side. Other SSL protocol
+- versions are: `ssl.PROTOCOL_SSLv2`, `ssl.PROTOCOL_SSLv3` and
+- `ssl.PROTOCOL_TLSv1`.
++ Which version of the SSL protocol to use. Typically, the
++ server chooses a particular protocol version, and the
++ client must adapt to the server's choice. Most of the
++ versions are not interoperable with the other versions. If
++ not specified, the default SSL version is taken from the
++ default in the installed version of the Python standard
++ `ssl` library. See the `ssl` documentation for more
++ information.
+
+ pool_size : int, optional
+ The number of socket connections opened to communicate with the
+--- a/astropy/vo/samp/ssl_utils.py
++++ b/astropy/vo/samp/ssl_utils.py
+@@ -32,7 +32,7 @@
+
+ def __init__(self, host, port=None, key_file=None, cert_file=None,
+ cert_reqs=ssl.CERT_NONE, ca_certs=None,
+- ssl_version=ssl.PROTOCOL_SSLv3, strict=None):
++ ssl_version=None, strict=None):
+
+ HTTPConnection.__init__(self, host, port, strict)
+
+@@ -47,12 +47,18 @@
+
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect((self.host, self.port))
+- sslconn = ssl.wrap_socket(sock, server_side=False,
+- certfile=self.cert_file,
+- keyfile=self.key_file,
+- cert_reqs=self.cert_reqs,
+- ca_certs=self.ca_certs,
+- ssl_version=self.ssl_version)
++ # We have to explicitly not pass the ssl_version to
++ # `ssl.wrap_socket` if it's None.
++ kwargs = {
++ 'server_size': False,
++ 'certfile': self.cert_file,
++ 'keyfile': self.key_file,
++ 'cert_reqs': self.cert_reqs,
++ 'ca_certs': self.ca_certs,
++ }
++ if self.ssl_version is not None:
++ kwargs['ssl_version'] = self.ssl_version
++ sslconn = ssl.wrap_socket(sock, **args)
+ self.sock = sslconn
+
+ class HTTPS(HTTP):
+@@ -64,7 +70,7 @@
+
+ def __init__(self, host='', port=None, key_file=None, cert_file=None,
+ cert_reqs=ssl.CERT_NONE, ca_certs=None,
+- ssl_version=ssl.PROTOCOL_SSLv3):
++ ssl_version=None):
+
+ # provide a default host, pass the X509 cert info
+
+@@ -97,7 +103,7 @@
+
+ def __init__(self, key_file=None, cert_file=None,
+ cert_reqs=ssl.CERT_NONE, ca_certs=None,
+- ssl_version=ssl.PROTOCOL_SSLv3, strict=None,
++ ssl_version=None, strict=None,
+ use_datetime=0):
+
+ xmlrpc.Transport.__init__(self, use_datetime)
+@@ -151,10 +157,16 @@
+ def get_request(self):
+ # override this to wrap socket with SSL
+ sock, addr = self.socket.accept()
+- sslconn = ssl.wrap_socket(sock, server_side=True,
+- certfile=self.cert_file,
+- keyfile=self.key_file,
+- cert_reqs=self.cert_reqs,
+- ca_certs=self.ca_certs,
+- ssl_version=self.ssl_version)
++ # We have to explicitly not pass the ssl_version to
++ # `ssl.wrap_socket` if it's None.
++ kwargs = {
++ 'server_side': True,
++ 'certfile': self.cert_file,
++ 'keyfile': self.key_file,
++ 'cert_reqs': self.cert_reqs,
++ 'ca_certs': self.ca_certs
++ }
++ if self.ssl_version is not None:
++ kwargs['ssl_version'] = self.ssl_version
++ sslconn = ssl.wrap_socket(sock, **kwargs)
+ return sslconn, addr
diff -Nru python-astropy-0.4.2/debian/patches/series python-astropy-0.4.2/debian/patches/series
--- python-astropy-0.4.2/debian/patches/series 2014-09-24 15:59:41.000000000 +0200
+++ python-astropy-0.4.2/debian/patches/series 2015-01-19 18:07:09.000000000 +0100
@@ -2,3 +2,4 @@
use_extern_ply.patch
disable_helper.patch
use_wcslib_4.24.patch
+remove_ssl_2_3.patch
--- End Message ---