From 0d0d04ac0ba8c0f53939babd4e58c01221d2434dbff48217bcf46bc38a003ae5 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 12 Mar 2010 16:36:40 +0000 Subject: [PATCH] Accepting request 34635 from devel:languages:python:Factory Copy from devel:languages:python:Factory/python based on submit request 34635 from user matejcik OBS-URL: https://build.opensuse.org/request/show/34635 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python?expand=0&rev=45 --- Python-2.6.2.tar.bz2 | 3 - Python-2.6.5rc2.tar.bz2 | 3 + python-2.5.2-fwrapv.patch | 13 --- python-2.6.2-expat.patch | 52 ------------ python-2.6.2-readline.patch | 25 ------ python-2.6.2-test_distutils.patch | 18 ---- python-2.6rc2-https-proxy.patch | 132 ------------------------------ python-base.changes | 14 ++++ python-base.spec | 24 +++--- python-doc.changes | 5 ++ python-doc.spec | 10 +-- python.spec | 16 ++-- 12 files changed, 44 insertions(+), 271 deletions(-) delete mode 100644 Python-2.6.2.tar.bz2 create mode 100644 Python-2.6.5rc2.tar.bz2 delete mode 100644 python-2.5.2-fwrapv.patch delete mode 100644 python-2.6.2-expat.patch delete mode 100644 python-2.6.2-readline.patch delete mode 100644 python-2.6.2-test_distutils.patch delete mode 100644 python-2.6rc2-https-proxy.patch diff --git a/Python-2.6.2.tar.bz2 b/Python-2.6.2.tar.bz2 deleted file mode 100644 index 1391b1b..0000000 --- a/Python-2.6.2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1cdc4a8f6c1f947ea3b87d097af2db4371019bac941d92c3844124c5694328b -size 11156901 diff --git a/Python-2.6.5rc2.tar.bz2 b/Python-2.6.5rc2.tar.bz2 new file mode 100644 index 0000000..14eed36 --- /dev/null +++ b/Python-2.6.5rc2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cba953966c4c64244b850537a9afc9ca2abf1e06a7bce48405d453d660d0fcfe +size 11097255 diff --git a/python-2.5.2-fwrapv.patch b/python-2.5.2-fwrapv.patch deleted file mode 100644 index fe259e1..0000000 --- a/python-2.5.2-fwrapv.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: Makefile.pre.in -=================================================================== ---- Makefile.pre.in.orig -+++ Makefile.pre.in -@@ -57,7 +57,7 @@ MAKESETUP= $(srcdir)/Modules/makese - # Compiler options - OPT= @OPT@ - BASECFLAGS= @BASECFLAGS@ --CFLAGS= $(BASECFLAGS) $(OPT) $(EXTRA_CFLAGS) -+CFLAGS= $(BASECFLAGS) $(OPT) -fwrapv $(EXTRA_CFLAGS) - # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to - # be able to build extension modules using the directories specified in the - # environment variables diff --git a/python-2.6.2-expat.patch b/python-2.6.2-expat.patch deleted file mode 100644 index d82a2f6..0000000 --- a/python-2.6.2-expat.patch +++ /dev/null @@ -1,52 +0,0 @@ -Index: Lib/test/test_pyexpat.py -=================================================================== ---- Lib/test/test_pyexpat.py.orig -+++ Lib/test/test_pyexpat.py -@@ -559,6 +559,24 @@ class ChardataBufferTest(unittest.TestCa - parser.Parse(xml2, 1) - self.assertEquals(self.n, 4) - -+class MalformedInputText(unittest.TestCase): -+ def test1(self): -+ xml = "\0\r\n" -+ parser = expat.ParserCreate() -+ try: -+ parser.Parse(xml, True) -+ self.fail() -+ except expat.ExpatError as e: -+ self.assertEquals(str(e), 'no element found: line 2, column 1') -+ -+ def test2(self): -+ xml = "\r\n" -+ parser = expat.ParserCreate() -+ try: -+ parser.Parse(xml, True) -+ self.fail() -+ except expat.ExpatError as e: -+ self.assertEquals(str(e), 'XML declaration not well-formed: line 1, column 14') - - def test_main(): - run_unittest(SetAttributeTest, -@@ -569,7 +587,8 @@ def test_main(): - HandlerExceptionTest, - PositionTest, - sf1296433Test, -- ChardataBufferTest) -+ ChardataBufferTest, -+ MalformedInputText) - - if __name__ == "__main__": - test_main() -Index: Modules/expat/xmltok_impl.c -=================================================================== ---- Modules/expat/xmltok_impl.c.orig -+++ Modules/expat/xmltok_impl.c -@@ -1741,7 +1741,7 @@ PREFIX(updatePosition)(const ENCODING *e - const char *end, - POSITION *pos) - { -- while (ptr != end) { -+ while (ptr < end) { - switch (BYTE_TYPE(enc, ptr)) { - #define LEAD_CASE(n) \ - case BT_LEAD ## n: \ diff --git a/python-2.6.2-readline.patch b/python-2.6.2-readline.patch deleted file mode 100644 index 3e85d56..0000000 --- a/python-2.6.2-readline.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: Modules/readline.c -=================================================================== ---- Modules/readline.c.orig 2008-11-04 21:43:31.000000000 +0100 -+++ Modules/readline.c 2009-12-02 19:40:01.000000000 +0100 -@@ -759,6 +759,10 @@ on_completion(const char *text, int stat - static char ** - flex_complete(char *text, int start, int end) - { -+#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER -+ rl_completion_append_character ='\0'; -+ rl_completion_suppress_append = 0; -+#endif - Py_XDECREF(begidx); - Py_XDECREF(endidx); - begidx = PyInt_FromLong((long) start); -@@ -801,9 +805,6 @@ setup_readline(void) - rl_completer_word_break_characters = - strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); - /* All nonalphanums except '.' */ --#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER -- rl_completion_append_character ='\0'; --#endif - - begidx = PyInt_FromLong(0L); - endidx = PyInt_FromLong(0L); diff --git a/python-2.6.2-test_distutils.patch b/python-2.6.2-test_distutils.patch deleted file mode 100644 index 002f774..0000000 --- a/python-2.6.2-test_distutils.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: Lib/distutils/tests/test_bdist_wininst.py -=================================================================== ---- Lib/distutils/tests/test_bdist_wininst.py.orig -+++ Lib/distutils/tests/test_bdist_wininst.py -@@ -5,11 +5,13 @@ import os - from distutils.dist import Distribution - from distutils.command.bdist_wininst import bdist_wininst - from distutils.tests import support -+from distutils import log - - class BuildWinInstTestCase(support.TempdirManager, - unittest.TestCase): - - def test_get_exe_bytes(self): -+ log.set_threshold(log.ERROR) - - # issue5731: command was broken on non-windows platforms - # this test makes sure it works now for every platform diff --git a/python-2.6rc2-https-proxy.patch b/python-2.6rc2-https-proxy.patch deleted file mode 100644 index 4db5802..0000000 --- a/python-2.6rc2-https-proxy.patch +++ /dev/null @@ -1,132 +0,0 @@ -Index: Lib/httplib.py -=================================================================== ---- Lib/httplib.py.orig -+++ Lib/httplib.py -@@ -652,11 +652,17 @@ class HTTPConnection: - self.__response = None - self.__state = _CS_IDLE - self._method = None -+ self._tunnel_host = None -+ self._tunnel_port = None - - self._set_hostport(host, port) - if strict is not None: - self.strict = strict - -+ def _set_tunnel(self, host, port=None): -+ self._tunnel_host = host -+ self._tunnel_port = port -+ - def _set_hostport(self, host, port): - if port is None: - i = host.rfind(':') -@@ -677,10 +683,24 @@ class HTTPConnection: - def set_debuglevel(self, level): - self.debuglevel = level - -+ def _tunnel(self): -+ self._set_hostport(self._tunnel_host, self._tunnel_port) -+ self.send("CONNECT %s:%d HTTP/1.0\r\n\r\n" % (self.host, self.port)) -+ response = self.response_class(self.sock, strict = self.strict, method = self._method) -+ (version, code, message) = response._read_status() -+ if code != 200: -+ self.close() -+ raise socket.error, "Tunnel connection failed: %d %s" % (code, message.strip()) -+ while True: -+ line = response.fp.readline() -+ if line == '\r\n': break -+ - def connect(self): - """Connect to the host and port specified in __init__.""" - self.sock = socket.create_connection((self.host,self.port), - self.timeout) -+ if self._tunnel_host: -+ self._tunnel() - - def close(self): - """Close the connection to the HTTP server.""" -@@ -1070,6 +1090,9 @@ else: - "Connect to a host on a given (SSL) port." - - sock = socket.create_connection((self.host, self.port), self.timeout) -+ if self._tunnel_host: -+ self.sock = sock -+ self._tunnel() - self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) - - __all__.append("HTTPSConnection") -Index: Lib/urllib2.py -=================================================================== ---- Lib/urllib2.py.orig -+++ Lib/urllib2.py -@@ -192,6 +192,7 @@ class Request: - # self.__r_type is what's left after doing the splittype - self.host = None - self.port = None -+ self._tunnel_host = None - self.data = data - self.headers = {} - for key, value in headers.items(): -@@ -252,8 +253,13 @@ class Request: - return self.__r_host - - def set_proxy(self, host, type): -- self.host, self.type = host, type -- self.__r_host = self.__original -+ if self.type == 'https' and not self._tunnel_host: -+ self._tunnel_host = self.host -+ else: -+ self.type = type -+ self.__r_host = self.__original -+ self.host = host -+ - - def has_proxy(self): - return self.__r_host == self.__original -@@ -700,7 +706,7 @@ class ProxyHandler(BaseHandler): - req.add_header('Proxy-authorization', 'Basic ' + creds) - hostport = unquote(hostport) - req.set_proxy(hostport, proxy_type) -- if orig_type == proxy_type: -+ if orig_type == proxy_type or orig_type == 'https': - # let other handlers take care of it - return None - else: -@@ -1098,6 +1104,9 @@ class AbstractHTTPHandler(BaseHandler): - headers["Connection"] = "close" - headers = dict( - (name.title(), val) for name, val in headers.items()) -+ -+ if req._tunnel_host: -+ h._set_tunnel(req._tunnel_host) - try: - h.request(req.get_method(), req.get_selector(), req.data, headers) - r = h.getresponse() -Index: Lib/test/test_urllib2.py -=================================================================== ---- Lib/test/test_urllib2.py.orig -+++ Lib/test/test_urllib2.py -@@ -939,6 +939,23 @@ class HandlerTests(unittest.TestCase): - self.assertEqual([(handlers[0], "http_open")], - [tup[0:2] for tup in o.calls]) - -+ def test_proxy_https(self): -+ o = OpenerDirector() -+ ph = urllib2.ProxyHandler(dict(https="proxy.example.com:3128")) -+ o.add_handler(ph) -+ meth_spec = [ -+ [("https_open", "return response")] -+ ] -+ handlers = add_ordered_mock_handlers(o, meth_spec) -+ -+ req = Request("https://www.example.com/") -+ self.assertEqual(req.get_host(), "www.example.com") -+ r = o.open(req) -+ self.assertEqual(req.get_host(), "proxy.example.com:3128") -+ -+ self.assertEqual([(handlers[0], "https_open")], -+ [tup[0:2] for tup in o.calls]) -+ - def test_basic_auth(self, quote_char='"'): - opener = OpenerDirector() - password_manager = MockPasswordManager() diff --git a/python-base.changes b/python-base.changes index e14ab3f..03075e0 100644 --- a/python-base.changes +++ b/python-base.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Thu Mar 11 18:13:05 CET 2010 - matejcik@suse.cz + +- update to 2.6.5rc2 (rpm version is 2.6.4.92) + * bugfix-only release +- removed fwrapv patch - no longer needed +- removed expat patches (this version also fixes expat vulnerabilities + from bnc#581765 ) +- removed readline spacing patch - no longer needed +- removed https_proxy patch - no longer needed +- removed test_distutils patch - no longer needed +- disabled test_distutils because of spurious failure, + * TODO reenable at release + ------------------------------------------------------------------- Thu Feb 4 20:46:03 CET 2010 - matejcik@suse.cz diff --git a/python-base.spec b/python-base.spec index 36a3acd..51cfae3 100644 --- a/python-base.spec +++ b/python-base.spec @@ -1,5 +1,5 @@ # -# spec file for package python-base (Version 2.6.2) +# spec file for package python-base (Version 2.6.4.92) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -32,9 +32,11 @@ Obsoletes: python-64bit %endif # Summary: Python Interpreter base package -Version: 2.6.2 -Release: 10 -%define tarname Python-%{version} +Version: 2.6.4.92 +Release: 1 +#%define tarversion %{version} +%define tarversion 2.6.5rc2 +%define tarname Python-%{tarversion} Source0: %{tarname}.tar.bz2 Source1: macros.python Source2: baselibs.conf @@ -45,12 +47,9 @@ Patch01: Python-2.3.3-dirs.patch Patch10: python-distutils-rpm-8.patch Patch21: Python-2.6.2-multilib.patch Patch25: python-2.6b1-canonicalize2.patch -Patch31: python-2.5.2-fwrapv.patch Patch35: python-2.5.2-configure.patch -Patch37: python-2.6rc2-https-proxy.patch Patch38: python-2.6-gettext-plurals.patch -Patch39: python-2.6.2-test_distutils.patch -Patch40: python-2.6.2-expat.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-build %define python_version %(echo %{version} | head -c 3) Provides: %{name} = %{python_version} @@ -133,12 +132,9 @@ Authors: %patch10 -p1 %patch21 -p1 %patch25 -%patch31 %patch35 -%patch37 %patch38 -%patch39 -%patch40 + # some cleanup find . -name .cvsignore -type f -print0 | xargs -0 rm -f find . -name CVS -type d -print0 | xargs -0 rm -rf @@ -193,6 +189,8 @@ EXCLUDE="$EXCLUDE -x test_nis -x test_threading" # test_smtplib's testSend is known to be broken and on ia64 it actually fails most of the time, preventing the build. EXCLUDE="$EXCLUDE -x test_smtplib" %endif +# TODO remove this exclude at release: test_distutils fails in 2.6.5rc1 for some unrelated reason +EXCLUDE="$EXCLUDE -x test_distutils" # Limit virtual memory to avoid spurious failures if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then ulimit -v 10000000 || : @@ -384,7 +382,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/python%{python_version}/lib-dynload/_codecs*.so %{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so %{_libdir}/python%{python_version}/lib-dynload/audioop.so -%{_libdir}/python%{python_version}/lib-dynload/Python-%{version}-py%{python_version}.egg-info +%{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info # these modules don't support 64-bit arches (disabled by setup.py) %ifnarch alpha ia64 x86_64 s390x ppc64 sparc64 # requires sizeof(int) == sizeof(long) == sizeof(char*) diff --git a/python-doc.changes b/python-doc.changes index bd615df..9d09efb 100644 --- a/python-doc.changes +++ b/python-doc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 11 19:19:07 CET 2010 - matejcik@suse.cz + +- updated to build against 2.6.5 source + ------------------------------------------------------------------- Wed Dec 23 08:36:27 UTC 2009 - aj@suse.de diff --git a/python-doc.spec b/python-doc.spec index 8d7781a..5655e88 100644 --- a/python-doc.spec +++ b/python-doc.spec @@ -24,8 +24,8 @@ Group: Development/Languages/Python BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: Additional Package Documentation for Python. Version: 2.6 -Release: 20 -%define pyver 2.6.2 +Release: 21 +%define pyver 2.6.5rc2 BuildArch: noarch %define tarname Python-%{pyver} %define pyname python @@ -80,8 +80,7 @@ mv $PDOCS/docs-pdf $PDOCS/paper-a4 tar xfj %{S:3} -C $PDOCS mv $PDOCS/docs-pdf $PDOCS/paper-letter install -c -m 644 Doc/ACKS.txt $PDOCS/ACKS.txt -install -c -m 644 Doc/TODO.txt $PDOCS/TODO.txt -install -c -m 644 Doc/README.txt $PDOCS/README.txt +install -c -m 644 README $PDOCS/README for i in Misc/* ; do [ -f $i ] && install -c -m 644 $i $PDOCS/Misc/ done @@ -95,8 +94,7 @@ rm -rf $RPM_BUILD_ROOT %doc %{_docdir}/%{pyname}/Misc %doc %{_docdir}/%{pyname}/html %doc %{_docdir}/%{pyname}/ACKS.txt -%doc %{_docdir}/%{pyname}/README.txt -%doc %{_docdir}/%{pyname}/TODO.txt +%doc %{_docdir}/%{pyname}/README %files pdf %defattr(644, root, root, 755) diff --git a/python.spec b/python.spec index 433cc92..d5fbb3e 100644 --- a/python.spec +++ b/python.spec @@ -1,5 +1,5 @@ # -# spec file for package python (Version 2.6.2) +# spec file for package python (Version 2.6.4.92) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -34,10 +34,12 @@ Obsoletes: python-64bit # Obsoletes: python-nothreads python21 python-elementtree python-sqlite Summary: Python Interpreter -Version: 2.6.2 -Release: 10 +Version: 2.6.4.92 +Release: 1 Requires: python-base = %{version} -%define tarname Python-%{version} +#%define tarversion %{version} +%define tarversion 2.6.5rc2 +%define tarname Python-%{tarversion} Source0: %{tarname}.tar.bz2 Source6: README.SUSE Source8: pythonstart @@ -50,11 +52,9 @@ Patch21: Python-2.6.2-multilib.patch Patch23: python-2.6b3-ssl-compat.patch Patch25: python-2.6b1-canonicalize2.patch Patch30: python-2.5.1-sqlite.patch -Patch31: python-2.5.2-fwrapv.patch Patch35: python-2.5.2-configure.patch Patch38: python-2.6b3-curses-panel.patch Patch39: python-2.6.2-ssl_handshake_timeout.patch -Patch40: python-2.6.2-readline.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %define python_version %(echo %{version} | head -c 3) %define idle_name idle @@ -182,7 +182,6 @@ Authors: %patch23 %patch25 %patch30 -%patch31 #%if 0%{?suse_version} #%endif %patch35 @@ -190,7 +189,6 @@ Authors: %patch38 %endif %patch39 -%patch40 # some cleanup find . -name .cvsignore -type f -print0 | xargs -0 rm -f find . -name CVS -type d -print0 | xargs -0 rm -rf @@ -345,7 +343,7 @@ rm $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/_codecs*.so rm $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so rm $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/audioop.so rm -f $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/dl.so -rm $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/Python-%{version}-py%{python_version}.egg-info +rm $RPM_BUILD_ROOT%{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info %if %suse_version >= 1030 # replace duplicate .pyo/.pyc with hardlinks %fdupes $RPM_BUILD_ROOT/%{_libdir}/python%{python_version}