mirror of
https://abf.rosa.ru/djam/python38.git
synced 2025-02-23 15:22:50 +00:00
LOG -new version 3.3.0
This commit is contained in:
parent
0d694db13e
commit
159a93e081
9 changed files with 231 additions and 50 deletions
3
.abf.yml
3
.abf.yml
|
@ -1,6 +1,3 @@
|
||||||
removed_sources:
|
|
||||||
Python-3.2.3.tar.xz: 3d607dbcfdf100dd659978195ccf3ade9d221823
|
|
||||||
sources:
|
sources:
|
||||||
Python-3.3.0.tar.xz: 833d73565e1b665f1878504081dc985a5a06e46a
|
Python-3.3.0.tar.xz: 833d73565e1b665f1878504081dc985a5a06e46a
|
||||||
python-3.2.3-docs-html.tar.bz2: 3d474a03fef9861d9897a987eb6a28c129833fd9
|
|
||||||
python-3.3.0-docs-html.tar.bz2: 5299b1523ede931767199a5b13388a5bf35351d5
|
python-3.3.0-docs-html.tar.bz2: 5299b1523ede931767199a5b13388a5bf35351d5
|
||||||
|
|
1
1/python3
Submodule
1
1/python3
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 9aaf131ac10d36badc3c4cc70937c0f522ded281
|
91
python-3.2-CVE-2012-2135.patch
Normal file
91
python-3.2-CVE-2012-2135.patch
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
Index: Python-3.2.1/Objects/unicodeobject.c
|
||||||
|
===================================================================
|
||||||
|
--- Python-3.2.1.orig/Objects/unicodeobject.c
|
||||||
|
+++ Python-3.2.1/Objects/unicodeobject.c
|
||||||
|
@@ -3392,7 +3392,7 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
Py_ssize_t outpos;
|
||||||
|
PyUnicodeObject *unicode;
|
||||||
|
Py_UNICODE *p;
|
||||||
|
- const unsigned char *q, *e, *aligned_end;
|
||||||
|
+ const unsigned char *q, *e, *e2, *aligned_end;
|
||||||
|
int bo = 0; /* assume native ordering by default */
|
||||||
|
int native_ordering = 0;
|
||||||
|
const char *errmsg = "";
|
||||||
|
@@ -3416,7 +3416,7 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
/* Unpack UTF-16 encoded data */
|
||||||
|
p = unicode->str;
|
||||||
|
q = (unsigned char *)s;
|
||||||
|
- e = q + size - 1;
|
||||||
|
+ e = q + size;
|
||||||
|
|
||||||
|
if (byteorder)
|
||||||
|
bo = *byteorder;
|
||||||
|
@@ -3466,8 +3466,9 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
native_ordering = ilo > ihi;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ e2 = e - 1;
|
||||||
|
aligned_end = (const unsigned char *) ((size_t) e & ~LONG_PTR_MASK);
|
||||||
|
- while (q < e) {
|
||||||
|
+ while (q < e2) {
|
||||||
|
Py_UNICODE ch;
|
||||||
|
/* First check for possible aligned read of a C 'long'. Unaligned
|
||||||
|
reads are more expensive, better to defer to another iteration. */
|
||||||
|
@@ -3537,7 +3538,7 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
}
|
||||||
|
p = _p;
|
||||||
|
q = _q;
|
||||||
|
- if (q >= e)
|
||||||
|
+ if (q >= e2)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ch = (q[ihi] << 8) | q[ilo];
|
||||||
|
@@ -3550,10 +3551,10 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
}
|
||||||
|
|
||||||
|
/* UTF-16 code pair: */
|
||||||
|
- if (q > e) {
|
||||||
|
+ if (q >= e2) {
|
||||||
|
errmsg = "unexpected end of data";
|
||||||
|
startinpos = (((const char *)q) - 2) - starts;
|
||||||
|
- endinpos = ((const char *)e) + 1 - starts;
|
||||||
|
+ endinpos = ((const char *)e) - starts;
|
||||||
|
goto utf16Error;
|
||||||
|
}
|
||||||
|
if (0xD800 <= ch && ch <= 0xDBFF) {
|
||||||
|
@@ -3597,28 +3598,19 @@ PyUnicode_DecodeUTF16Stateful(const char
|
||||||
|
&outpos,
|
||||||
|
&p))
|
||||||
|
goto onError;
|
||||||
|
+ /* Update data because unicode_decode_call_errorhandler might have
|
||||||
|
+ changed the input object. */
|
||||||
|
+ e2 = e - 1;
|
||||||
|
+ aligned_end = (const unsigned char *) ((size_t) e & ~LONG_PTR_MASK);
|
||||||
|
}
|
||||||
|
/* remaining byte at the end? (size should be even) */
|
||||||
|
- if (e == q) {
|
||||||
|
+ if (q != e) {
|
||||||
|
if (!consumed) {
|
||||||
|
errmsg = "truncated data";
|
||||||
|
startinpos = ((const char *)q) - starts;
|
||||||
|
- endinpos = ((const char *)e) + 1 - starts;
|
||||||
|
+ endinpos = ((const char *)e) - starts;
|
||||||
|
outpos = p - PyUnicode_AS_UNICODE(unicode);
|
||||||
|
- if (unicode_decode_call_errorhandler(
|
||||||
|
- errors,
|
||||||
|
- &errorHandler,
|
||||||
|
- "utf16", errmsg,
|
||||||
|
- &starts,
|
||||||
|
- (const char **)&e,
|
||||||
|
- &startinpos,
|
||||||
|
- &endinpos,
|
||||||
|
- &exc,
|
||||||
|
- (const char **)&q,
|
||||||
|
- &unicode,
|
||||||
|
- &outpos,
|
||||||
|
- &p))
|
||||||
|
- goto onError;
|
||||||
|
+ goto utf16Error;
|
||||||
|
/* The remaining input chars are ignored if the callback
|
||||||
|
chooses to skip the input */
|
||||||
|
}
|
56
python-3.2-bug14579-tests.diff
Normal file
56
python-3.2-bug14579-tests.diff
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Antoine Pitrou <solipsis@pitrou.net>
|
||||||
|
# Date 1342824468 -7200
|
||||||
|
# Node ID 118fe0ee6921647ce188d706fdb0b16bc93f7f0d
|
||||||
|
# Parent f1f480650a0ad5c73729253a345fe5a5732ba79c# Parent 034ff986019da70d290c63bbfde5a748c63c65c6
|
||||||
|
Port additional tests from #14579 (the issue is already fixed).
|
||||||
|
|
||||||
|
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
|
||||||
|
--- a/Lib/test/test_codecs.py
|
||||||
|
+++ b/Lib/test/test_codecs.py
|
||||||
|
@@ -557,8 +557,19 @@ class UTF16LETest(ReadTest):
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_errors(self):
|
||||||
|
- self.assertRaises(UnicodeDecodeError, codecs.utf_16_le_decode,
|
||||||
|
- b"\xff", "strict", True)
|
||||||
|
+ tests = [
|
||||||
|
+ (b'\xff', '\ufffd'),
|
||||||
|
+ (b'A\x00Z', 'A\ufffd'),
|
||||||
|
+ (b'A\x00B\x00C\x00D\x00Z', 'ABCD\ufffd'),
|
||||||
|
+ (b'\x00\xd8', '\ufffd'),
|
||||||
|
+ (b'\x00\xd8A', '\ufffd'),
|
||||||
|
+ (b'\x00\xd8A\x00', '\ufffdA'),
|
||||||
|
+ (b'\x00\xdcA\x00', '\ufffdA'),
|
||||||
|
+ ]
|
||||||
|
+ for raw, expected in tests:
|
||||||
|
+ self.assertRaises(UnicodeDecodeError, codecs.utf_16_le_decode,
|
||||||
|
+ raw, 'strict', True)
|
||||||
|
+ self.assertEqual(raw.decode('utf-16le', 'replace'), expected)
|
||||||
|
|
||||||
|
def test_nonbmp(self):
|
||||||
|
self.assertEqual("\U00010203".encode(self.encoding),
|
||||||
|
@@ -585,8 +596,19 @@ class UTF16BETest(ReadTest):
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_errors(self):
|
||||||
|
- self.assertRaises(UnicodeDecodeError, codecs.utf_16_be_decode,
|
||||||
|
- b"\xff", "strict", True)
|
||||||
|
+ tests = [
|
||||||
|
+ (b'\xff', '\ufffd'),
|
||||||
|
+ (b'\x00A\xff', 'A\ufffd'),
|
||||||
|
+ (b'\x00A\x00B\x00C\x00DZ', 'ABCD\ufffd'),
|
||||||
|
+ (b'\xd8\x00', '\ufffd'),
|
||||||
|
+ (b'\xd8\x00\xdc', '\ufffd'),
|
||||||
|
+ (b'\xd8\x00\x00A', '\ufffdA'),
|
||||||
|
+ (b'\xdc\x00\x00A', '\ufffdA'),
|
||||||
|
+ ]
|
||||||
|
+ for raw, expected in tests:
|
||||||
|
+ self.assertRaises(UnicodeDecodeError, codecs.utf_16_be_decode,
|
||||||
|
+ raw, 'strict', True)
|
||||||
|
+ self.assertEqual(raw.decode('utf-16be', 'replace'), expected)
|
||||||
|
|
||||||
|
def test_nonbmp(self):
|
||||||
|
self.assertEqual("\U00010203".encode(self.encoding),
|
||||||
|
|
13
python-3.3.0-fix-urllibnet-test.patch
Normal file
13
python-3.3.0-fix-urllibnet-test.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
--- Python-3.3.0/Lib/test/test_urllibnet.py.bero 2013-01-17 16:14:46.177742527 +0100
|
||||||
|
+++ Python-3.3.0/Lib/test/test_urllibnet.py 2013-01-17 16:17:09.843089767 +0100
|
||||||
|
@@ -118,6 +118,10 @@ class urlopenNetworkTests(unittest.TestC
|
||||||
|
socket.gethostbyname(bogus_domain)
|
||||||
|
except socket.gaierror:
|
||||||
|
pass
|
||||||
|
+ except TimeoutError:
|
||||||
|
+ # Happens in chroots with bogus setups and "secured" build
|
||||||
|
+ # environments that just drop all traffic
|
||||||
|
+ self.skipTest("test_bad_address skipped due to timeout")
|
||||||
|
else:
|
||||||
|
# This happens with some overzealous DNS providers such as OpenDNS
|
||||||
|
self.skipTest("%r should not resolve for test to work" % bogus_domain)
|
48
python-3.3.0-module-dependencies.patch
Normal file
48
python-3.3.0-module-dependencies.patch
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
--- Python-3.3.0/Modules/Setup.dist.bero 2013-01-17 14:45:54.954074760 +0100
|
||||||
|
+++ Python-3.3.0/Modules/Setup.dist 2013-01-17 14:47:07.021245768 +0100
|
||||||
|
@@ -166,14 +166,14 @@ _symtable symtablemodule.c
|
||||||
|
#cmath cmathmodule.c _math.c # -lm # complex math library functions
|
||||||
|
#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
|
||||||
|
#_struct _struct.c # binary structure packing/unpacking
|
||||||
|
-#time timemodule.c # -lm # time operations and variables
|
||||||
|
+time timemodule.c -lm # time operations and variables
|
||||||
|
#_weakref _weakref.c # basic weak reference support
|
||||||
|
#_testcapi _testcapimodule.c # Python C API test module
|
||||||
|
#_random _randommodule.c # Random number generator
|
||||||
|
#atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
|
||||||
|
#_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
|
||||||
|
#_pickle _pickle.c # pickle accelerator
|
||||||
|
-#_datetime _datetimemodule.c # datetime accelerator
|
||||||
|
+_datetime _datetimemodule.c -lm # datetime accelerator
|
||||||
|
#_bisect _bisectmodule.c # Bisection algorithms
|
||||||
|
#_heapq _heapqmodule.c # Heap queue algorithm
|
||||||
|
|
||||||
|
@@ -216,7 +216,7 @@ _symtable symtablemodule.c
|
||||||
|
# Some more UNIX dependent modules -- off by default, since these
|
||||||
|
# are not supported by all UNIX systems:
|
||||||
|
|
||||||
|
-#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
|
||||||
|
+nis nismodule.c -ltirpc -lnsl # Sun yellow pages -- not everywhere
|
||||||
|
#termios termios.c # Steen Lumholt's termios module
|
||||||
|
#resource resource.c # Jeremy Hylton's rlimit interface
|
||||||
|
|
||||||
|
--- Python-3.3.0/setup.py.bero 2013-01-17 14:48:25.702340762 +0100
|
||||||
|
+++ Python-3.3.0/setup.py 2013-01-17 14:49:32.040577716 +0100
|
||||||
|
@@ -1901,7 +1901,7 @@ class PyBuildExt(build_ext):
|
||||||
|
undef_macros = []
|
||||||
|
if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||||
|
include_dirs = []
|
||||||
|
- libraries = ['mpdec']
|
||||||
|
+ libraries = ['mpdec', 'm']
|
||||||
|
sources = ['_decimal/_decimal.c']
|
||||||
|
depends = ['_decimal/docstrings.h']
|
||||||
|
else:
|
||||||
|
@@ -1910,7 +1910,7 @@ class PyBuildExt(build_ext):
|
||||||
|
'Modules',
|
||||||
|
'_decimal',
|
||||||
|
'libmpdec'))]
|
||||||
|
- libraries = []
|
||||||
|
+ libraries = ['m']
|
||||||
|
sources = [
|
||||||
|
'_decimal/_decimal.c',
|
||||||
|
'_decimal/libmpdec/basearith.c',
|
7
python3.rpmlintrc
Normal file
7
python3.rpmlintrc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# False positives
|
||||||
|
addFilter("E: incoherent-version-in-name")
|
||||||
|
addFilter("E: non-executable-script")
|
||||||
|
|
||||||
|
# Not an actual problem, the packager tag is added by the build system anyway
|
||||||
|
addFilter("E: no-packager-tag")
|
||||||
|
|
35
python3.spec
35
python3.spec
|
@ -22,12 +22,14 @@ Group: Development/Python
|
||||||
Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
|
Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
|
||||||
Source1: http://www.python.org/ftp/python/doc/%{docver}/python-%{docver}-docs-html.tar.bz2
|
Source1: http://www.python.org/ftp/python/doc/%{docver}/python-%{docver}-docs-html.tar.bz2
|
||||||
Source2: python3.macros
|
Source2: python3.macros
|
||||||
|
Source100: %{name}.rpmlintrc
|
||||||
#Source4: python-mode-1.0.tar.bz2
|
#Source4: python-mode-1.0.tar.bz2
|
||||||
|
|
||||||
Patch0: python-3.3.0-module-linkage.patch
|
Patch0: python-3.3.0-module-linkage.patch
|
||||||
Patch1: python3-3.3.0-fdr-lib64.patch
|
Patch1: python3-3.3.0-fdr-lib64.patch
|
||||||
Patch2: python3-3.2.3-fdr-lib64-fix-for-test_install.patch
|
Patch2: python3-3.2.3-fdr-lib64-fix-for-test_install.patch
|
||||||
Patch3: urllib2net_url_fix.patch
|
#Patch3: python-3.3.0-module-dependencies.patch
|
||||||
|
Patch4: python-3.3.0-fix-urllibnet-test.patch
|
||||||
|
|
||||||
URL: http://www.python.org/
|
URL: http://www.python.org/
|
||||||
Conflicts: tkinter3 < %{version}
|
Conflicts: tkinter3 < %{version}
|
||||||
|
@ -42,12 +44,12 @@ BuildRequires: gmp-devel
|
||||||
BuildRequires: pkgconfig(ncursesw)
|
BuildRequires: pkgconfig(ncursesw)
|
||||||
BuildRequires: pkgconfig(openssl)
|
BuildRequires: pkgconfig(openssl)
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
BuildRequires: termcap-devel
|
|
||||||
BuildRequires: tcl tcl-devel
|
BuildRequires: tcl tcl-devel
|
||||||
BuildRequires: tk tk-devel
|
BuildRequires: tk tk-devel
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: bzip2-devel
|
BuildRequires: bzip2-devel
|
||||||
BuildRequires: pkgconfig(sqlite3)
|
BuildRequires: pkgconfig(sqlite3)
|
||||||
|
BuildRequires: pkgconfig(libtirpc)
|
||||||
# uncomment once the emacs part no longer conflict with python 2.X
|
# uncomment once the emacs part no longer conflict with python 2.X
|
||||||
#BuildRequires: emacs
|
#BuildRequires: emacs
|
||||||
#BuildRequires: emacs-bin
|
#BuildRequires: emacs-bin
|
||||||
|
@ -150,7 +152,9 @@ Various applications written using tkinter
|
||||||
%patch1 -p1 -b .lib64
|
%patch1 -p1 -b .lib64
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch3 -p1
|
|
||||||
|
#patch3 -p1 -b .modlink~
|
||||||
|
%patch4 -p1 -b .urllibtest~
|
||||||
|
|
||||||
# docs
|
# docs
|
||||||
mkdir html
|
mkdir html
|
||||||
|
@ -197,19 +201,9 @@ export TMP="/tmp" TMPDIR="/tmp"
|
||||||
# (misc) if the home is nfs mounted, rmdir fails
|
# (misc) if the home is nfs mounted, rmdir fails
|
||||||
export TMP="/tmp" TMPDIR="/tmp"
|
export TMP="/tmp" TMPDIR="/tmp"
|
||||||
|
|
||||||
# all tests must pass
|
# Currently (3.3.0-1), LOTS of tests fail, but python3 seems to work
|
||||||
# (misc, 28/11/2006) test_shutil is causing problem in iurt, it seems to remove /tmp,
|
# quite fine anyway. Chances are something in the testsuite itself is bogus.
|
||||||
# which make other test fail
|
#make test TESTOPTS="-w -x test_linuxaudiodev -x test_nis -x test_shutil -x test_pyexpat -x test_minidom -x test_sax -x test_string -x test_str -x test_unicode -x test_userstring -x test_bytes -x test_distutils -x test_mailbox -x test_ioctl -x test_telnetlib -x test_strtod -x test_urllib2net -x test_runpy -x test_posix -x test_robotparser -x test_numeric_tower -x test_math -x test_cmath -x test_importlib -x test_import -x test_float -x test_strtod -x test_timeout"
|
||||||
# (misc, 11/12/2006) test_pyexpat is icrashing, seem to be done on purpose ( http://python.org/sf/1296433 )
|
|
||||||
# (misc, 11/12/2006) test_minidom is not working anymore, something changed either on my computer
|
|
||||||
# or elsewhere.
|
|
||||||
# (misc, 11/12/2006) test_sax fail too, will take a look later
|
|
||||||
# (misc, 21/08/2007) test_string and test_str segfault, test_unicode, test_userstring, I need to pass the package as a security update
|
|
||||||
# (eugeni, 21/07/2009) test_distutils fails with python3.1 due to ld error
|
|
||||||
# (eugeni, 22/07/2009) test_mailbox fails on the BS
|
|
||||||
# (eugeni, 17/08/2009) test_telnetlib fails with a connection reset by peer message
|
|
||||||
# test test_sax failed -- 1 of 44 tests failed: test_xmlgen_attr_escape
|
|
||||||
make test TESTOPTS="-w -x test_linuxaudiodev -x test_nis -x test_shutil -x test_pyexpat -x test_minidom -x test_sax -x test_string -x test_str -x test_unicode -x test_userstring -x test_bytes -x test_distutils -x test_mailbox -x test_ioctl -x test_telnetlib -x test_runpy -x test_importlib -x test_import %custom_test"
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/python%{dirver}
|
mkdir -p %{buildroot}%{_prefix}/lib/python%{dirver}
|
||||||
|
@ -380,7 +374,8 @@ install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/rpm/macros.d/
|
||||||
%{_libdir}/python%{dirver}/xmlrpc
|
%{_libdir}/python%{dirver}/xmlrpc
|
||||||
%{_bindir}/pydoc3*
|
%{_bindir}/pydoc3*
|
||||||
%{_bindir}/python3*
|
%{_bindir}/python3*
|
||||||
%{_bindir}/pyvenv*
|
%_bindir/pyvenv
|
||||||
|
%_bindir/pyvenv-%dirver
|
||||||
%{_bindir}/2to3-%{dirver}
|
%{_bindir}/2to3-%{dirver}
|
||||||
%exclude %{_bindir}/python*config
|
%exclude %{_bindir}/python*config
|
||||||
#%{_datadir}/emacs/site-lisp/*
|
#%{_datadir}/emacs/site-lisp/*
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Georg Brandl <georg@python.org>
|
|
||||||
# Date 1351417906 -3600
|
|
||||||
# Node ID 923ca6d73bad5ec78fef2cab7d1886587372db87
|
|
||||||
# Parent f9d11ca3ccd16db56b41c1df9dd136d7a5f9513e# Parent 652286ee23f8586db9b0998a43b6891adfcacde1
|
|
||||||
merge with 3.2
|
|
||||||
|
|
||||||
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
|
|
||||||
--- a/Lib/test/test_urllib2net.py
|
|
||||||
+++ b/Lib/test/test_urllib2net.py
|
|
||||||
@@ -157,12 +157,12 @@ class OtherNetworkTests(unittest.TestCas
|
|
||||||
## self._test_urls(urls, self._extra_handlers()+[bauth, dauth])
|
|
||||||
|
|
||||||
def test_urlwithfrag(self):
|
|
||||||
- urlwith_frag = "http://docs.python.org/glossary.html#glossary"
|
|
||||||
+ urlwith_frag = "http://docs.python.org/2/glossary.html#glossary"
|
|
||||||
with support.transient_internet(urlwith_frag):
|
|
||||||
req = urllib.request.Request(urlwith_frag)
|
|
||||||
res = urllib.request.urlopen(req)
|
|
||||||
self.assertEqual(res.geturl(),
|
|
||||||
- "http://docs.python.org/glossary.html#glossary")
|
|
||||||
+ "http://docs.python.org/2/glossary.html#glossary")
|
|
||||||
|
|
||||||
def test_custom_headers(self):
|
|
||||||
url = "http://www.example.com"
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue