forked from pool/python
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
This commit is contained in:
parent
8938d1ada0
commit
0d0d04ac0b
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a1cdc4a8f6c1f947ea3b87d097af2db4371019bac941d92c3844124c5694328b
|
||||
size 11156901
|
3
Python-2.6.5rc2.tar.bz2
Normal file
3
Python-2.6.5rc2.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cba953966c4c64244b850537a9afc9ca2abf1e06a7bce48405d453d660d0fcfe
|
||||
size 11097255
|
@ -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
|
@ -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 = "<?xml version\xc2\x85='1.0'?>\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: \
|
@ -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);
|
@ -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
|
@ -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()
|
@ -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
|
||||
|
||||
|
@ -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*)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
16
python.spec
16
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}
|
||||
|
Loading…
x
Reference in New Issue
Block a user