From: Ronald Oussoren Date: Tue, 17 May 2011 11:03:54 +0000 (+0200) Subject: (merge) Fix #10154 and #10090: locale normalizes the UTF-8 encoding to "UTF-8" instea... X-Git-Tag: v3.2.1rc2~150 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6edd8c1faf64a118d85355159e5363bba69efe87;p=thirdparty%2FPython%2Fcpython.git (merge) Fix #10154 and #10090: locale normalizes the UTF-8 encoding to "UTF-8" instead of "UTF8" On MacOSX and OpenBSD (and possibly other BSDs) "en_US.UTF-8" is a valid locale while "en_US.UTF8" is not. As the former works on Linux as well it is better to normalize to that value. --- 6edd8c1faf64a118d85355159e5363bba69efe87 diff --cc Misc/NEWS index e31d8b87e0a5,8f994b9cee75..7db72e77696a --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -492,400 -376,15 +492,403 @@@ Buil - Issue #941346: Fix broken shared library build on AIX. -- Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in - the configure script but use $GREP instead. Patch by Fabian Groffen. +Documentation +------------- -- Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD - and DragonFly BSD. Patch by Nicolas Joly. +- Issue #10709: Add updated AIX notes in Misc/README.AIX. -- Issue #10655: Fix the build on PowerPC on Linux with GCC when building with - timestamp profiling (--with-tsc): the preprocessor test for the PowerPC - support now looks for "__powerpc__" as well as "__ppc__": the latter seems to + +What's New in Python 3.2 Release Candidate 3? +============================================= + +*Release date: 13-Feb-2011* + +Core and Builtins +----------------- + +- Issue #11134: Add missing fields to typeslots.h. + +- Issue #11135: Remove redundant doc field from PyType_Spec. + +- Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check in the limited + ABI. + +- Issue #11118: Fix bogus export of None in python3.dll. + +Library +------- + +- Issue #11116: any error during addition of a message to a mailbox now causes a + rollback, instead of leaving the mailbox partially modified. + +- Issue #11132: Fix passing of "optimize" parameter when recursing in + compileall.compile_dir(). + +- Issue #11110: Fix a potential decref of a NULL in sqlite3. + +- Issue #8275: Fix passing of callback arguments with ctypes under Win64. Patch + by Stan Mihai. + +Build +----- + +- Issue #11079: The /Applications/Python x.x folder created by the Mac OS X + installers now includes a link to the installed documentation and no longer + includes an Extras directory. The Tools directory is now installed in the + framework under share/doc. + +- Issue #11121: Fix building with --enable-shared. + +Tests +----- + +- Issue #10971: test_zipimport_support is once again compatible with the refleak + hunter feature of test.regrtest. + + +What's New in Python 3.2 Release Candidate 2? +============================================= + +*Release date: 30-Jan-2011* + +Core and Builtins +----------------- + +- Issue #10451: memoryview objects could allow to mutate a readable buffer. + Initial patch by Ross Lagerwall. + +Library +------- + +- Issue #9124: mailbox now accepts binary input and reads and writes mailbox + files in binary mode, using the email package's binary support to parse + arbitrary email messages. StringIO and text file input is deprecated, + and string input fails early if non-ASCII characters are used, where + previously it would fail when the email was processed in a later step. + +- Issue #10845: Mitigate the incompatibility between the multiprocessing + module on Windows and the use of package, zipfile or directory execution + by special casing main modules that actually *are* called __main__.py. + +- Issue #11045: Protect logging call against None argument. + +- Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save + commands. + +- Issue #11053: Fix IDLE "Syntax Error" windows to behave as in 2.x, + preventing a confusing hung appearance on OS X with the windows + obscured. + +- Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the + menu accelerators for Open Module, Go to Line, and New Indent Width. + The accelerators still work but no longer appear in the menu items. + +- Issue #10989: Fix a crash on SSLContext.load_verify_locations(None, True). + +- Issue #11020: Command-line pyclbr was broken because of missing 2-to-3 + conversion. + +- Issue #11019: Fixed BytesGenerator so that it correctly handles a Message + with a None body. + +- Issue #11014: Make 'filter' argument in tarfile.Tarfile.add() into a + keyword-only argument. The preceding positional argument was deprecated, + so it made no sense to add filter as a positional argument. + +- Issue #11004: Repaired edge case in deque.count(). + +- Issue #10974: IDLE no longer crashes if its recent files list includes files + with non-ASCII characters in their path names. + +- Have hashlib.algorithms_available and hashlib.algorithms_guaranteed both + return sets instead of one returning a tuple and the other a frozenset. + +- Issue #10987: Fix the recursion limit handling in the _pickle module. + +- Issue #10983: Fix several bugs making tunnel requests in http.client. + +- Issue #10955: zipimport uses ASCII encoding instead of cp437 to decode + filenames, at bootstrap, if the codec registry is not ready yet. It is still + possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding) + for all file entries in the ZIP file. + +- Issue #10949: Improved robustness of rotating file handlers. + +- Issue #10955: Fix a potential crash when trying to mmap() a file past its + length. Initial patch by Ross Lagerwall. + +- Issue #10898: Allow compiling the posix module when the C library defines + a symbol named FSTAT. + +- Issue #10980: the HTTP server now encodes headers with iso-8859-1 (latin1) + encoding. This is the preferred encoding of PEP 3333 and the base encoding + of HTTP 1.1. + +- To match the behaviour of HTTP server, the HTTP client library now also + encodes headers with iso-8859-1 (latin1) encoding. It was already doing + that for incoming headers which makes this behaviour now consistent in + both incoming and outgoing direction. + +- Issue #9509: argparse now properly handles IOErrors raised by + argparse.FileType. + +- Issue #10961: The new pydoc server now better handles exceptions raised + during request handling. + +- Issue #10680: Fix mutually exclusive arguments for argument groups in + argparse. + +Build +----- + +- Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with + the system-provided Python. + + +What's New in Python 3.2 Release Candidate 1 +============================================ + +*Release date: 16-Jan-2011* + +Core and Builtins +----------------- + +- Issue #10889: range indexing and slicing now works correctly on ranges with + a length that exceeds sys.maxsize. + +- Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a + class. + +- Issue #8020: Avoid a crash where the small objects allocator would read + non-Python managed memory while it is being modified by another thread. Patch + by Matt Bandy. + +- Issue #10841: On Windows, set the binary mode on stdin, stdout, stderr and all + io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser + translates newlines (\r\n => \n). + +- Remove buffer API from stable ABI for now, see #10181. + +- Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file + doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int + (length bigger than 2^31-1 bytes). + +- Issue #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and + stdprinter.write() clamp the length to 2^31-1 on Windows. + +- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime() + can now handle dates after 2038. + +- Issue #10780: PyErr_SetFromWindowsErrWithFilename() and + PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the + filesystem encoding instead of UTF-8. + +- Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem + encoding instead of UTF-8. + +- Add sys.flags attribute for the new -q command-line option. + +- Issue #11506: Trying to assign to a bytes literal should result in a + SyntaxError. + +Library +------- + +- Issue #10916: mmap should not segfault when a file is mapped using 0 as length + and a non-zero offset, and an attempt to read past the end of file is made + (IndexError is raised instead). Patch by Ross Lagerwall. + ++- Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead ++ of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD. ++ +- Issue #10684: shutil.move used to delete a folder on case insensitive + filesystems when the source and destination name where the same except + for the case. + +- Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather + than the currently problematic Apple-supplied one, when running with the + 64-/32-bit installer variant. + +- Issue #4953: cgi.FieldStorage and cgi.parse() parse the request as bytes, not + as unicode, and accept binary files. Add encoding and errors attributes to + cgi.FieldStorage. Patch written by Pierre Quentel (with many inputs by Glenn + Linderman). + +- Add encoding and errors arguments to urllib.parse_qs() and urllib.parse_qsl(). + +- Issue #10899: No function type annotations in the standard library. Removed + function type annotations from _pyio.py. + +- Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'. + +- Issue #10872: The repr() of TextIOWrapper objects now includes the mode + if available. + +- Issue #10869: Fixed bug where ast.increment_lineno modified the root node + twice. + +- Issue #5871: email.header.Header.encode now raises an error if any + continuation line in the formatted value has no leading white space and looks + like a header. Since Generator uses Header to format all headers, this check + is made for all headers in any serialized message at serialization time. This + provides protection against header injection attacks. + +- Issue #10859: Make ``contextlib.GeneratorContextManager`` officially + private by renaming it to ``_GeneratorContextManager``. + +- Issue #10042: Fixed the total_ordering decorator to handle cross-type + comparisons that could lead to infinite recursion. + +- Issue #10686: the email package now :rfc:`2047`\ -encodes headers with + non-ASCII bytes (parsed by a Bytes Parser) when doing conversion to 7bit-clean + presentation, instead of replacing them with ?s. + +- email.header.Header was incorrectly encoding folding white space when + rfc2047-encoding header values with embedded newlines, leaving them without + folding whitespace. It now uses the continuation_ws, as it does for + continuation lines that it creates itself. + +- Issue #1777412, #10827: Changed the rules for 2-digit years. The + time.asctime(), time.ctime() and time.strftime() functions will now format + any year when ``time.accept2dyear`` is False and will accept years >= 1000 + otherwise. ``time.mktime`` and ``time.strftime`` now accept full range + supported by the OS. With Visual Studio or on Solaris, the year is limited to + the range [1; 9999]. Conversion of 2-digit years to 4-digit is deprecated. + +- Issue #7858: Raise an error properly when os.utime() fails under Windows + on an existing file. + +- Issue #3839: wsgiref should not override a Content-Length header set by + the application. Initial patch by Clovis Fabricio. + +- Issue #10492: bdb.Bdb.run() only traces the execution of the code, not the + compilation (if the input is a string). + +- Issue #7995: When calling accept() on a socket with a timeout, the returned + socket is now always blocking, regardless of the operating system. + +- Issue #10756: atexit normalizes the exception before displaying it. Patch by + Andreas Stührk. + +- Issue #10790: email.header.Header.append's charset logic now works correctly + for charsets whose output codec is different from its input codec. + +- Issue #10819: SocketIO.name property returns -1 when its closed, instead of + raising a ValueError, to fix repr(). + +- Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if + the input buffer length doesn't fit into an unsigned int (length bigger than + 2^32-1 bytes). + +- Issue #6643: Reinitialize locks held within the threading module after fork to + avoid a potential rare deadlock or crash on some platforms. + +- Issue #10806, issue #9905: Fix subprocess pipes when some of the standard file + descriptors (0, 1, 2) are closed in the parent process. Initial patch by Ross + Lagerwall. + +- `unittest.TestCase` can be instantiated without a method name; for simpler + exploration from the interactive interpreter. + +- Issue #10798: Reject supporting concurrent.futures if the system has too + few POSIX semaphores. + +- Issue #10807: Remove base64, bz2, hex, quopri, rot13, uu and zlib codecs from + the codec aliases. They are still accessible via codecs.lookup(). + +- Issue #10801: In zipfile, support different encodings for the header and the + filenames. + +- Issue #6285: IDLE no longer crashes on missing help file; patch by Scott + David Daniels. + +- Fix collections.OrderedDict.setdefault() so that it works in subclasses that + define __missing__(). + +- Issue #10786: unittest.TextTestRunner default stream no longer bound at import + time. `sys.stderr` now looked up at instantiation time. Fix contributed by + Mark Roddy. + +- Issue #10753: Characters ';', '=' and ',' in the PATH_INFO environment variable + won't be quoted when the URI is constructed by the wsgiref.util's request_uri + method. According to RFC 3986, these characters can be a part of params in + PATH component of URI and need not be quoted. + +- Issue #10738: Fix webbrowser.Opera.raise_opts. + +- Issue #9824: SimpleCookie now encodes , and ; in values to cater to how + browsers actually parse cookies. + +- Issue #9333: os.symlink now available regardless of user privileges. The + function now raises OSError on Windows >=6.0 when the user is unable to create + symbolic links. XP and 2003 still raise NotImplementedError. + +- Issue #10783: struct.pack() no longer implicitly encodes unicode to UTF-8. + +- Issue #10730: Add SVG mime types to mimetypes module. + +- Issue #10768: Make the Tkinter ScrolledText widget work again. + +- Issue #10777: Fix "dictionary changed size during iteration" bug in + ElementTree register_namespace(). + +- Issue #10626: test_logging now preserves logger disabled states. + +- Issue #10774: test_logging now removes temp files created during tests. + +- Issue #5258/#10642: if site.py encounters a .pth file that generates an error, + it now prints the filename, line number, and traceback to stderr and skips + the rest of that individual file, instead of stopping processing entirely. + +- Issue #10763: subprocess.communicate() closes stdout and stderr if both are + pipes (bug specific to Windows). + +- Issue #1693546: fix email.message RFC 2231 parameter encoding to be in better + compliance (no "s around encoded values). + +- Improved the diff message in the unittest module's assertCountEqual(). + +- Issue #1155362: email.utils.parsedate_tz now handles a missing space before + the '-' of a timezone field as well as before a '+'. + +- Issue #4871: The zipfile module now gives a more useful error message if + an attempt is made to use a string to specify the archive password. + +- Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only. + +- Deprecated assertDictContainsSubset() in the unittest module. + +C-API +----- + +- Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and + PyEval_ReleaseLock(). The thread-state aware APIs should be used instead. + +- Issue #10333: Remove ancient GC API, which has been deprecated since Python + 2.2. + +Build +----- + +- Issue #10843: Update third-party library versions used in OS X 32-bit + installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4 (with FTS3/FTS4 + and RTREE enabled), and ncursesw 5.5 (wide-char support enabled). + +- Issue #10820: Fix OS X framework installs to support version-specific + scripts (#10679). + +- Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in + the configure script but use $GREP instead. Patch by Fabian Groffen. + +- Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD + and DragonFly BSD. Patch by Nicolas Joly. + +- Issue #10679: The "idle", "pydoc" and "2to3" scripts are now installed with + a version-specific suffix on "make altinstall". + +- Issue #10655: Fix the build on PowerPC on Linux with GCC when building with + timestamp profiling (--with-tsc): the preprocessor test for the PowerPC + support now looks for "__powerpc__" as well as "__ppc__": the latter seems to only be present on OS X; the former is the correct one for Linux with GCC. - Issue #1099: Fix the build on MacOSX when building a framework with pydebug