]> granicus.if.org Git - python/commitdiff
Replay changeset 70238:03e488b5c009 from fubar branch. Original commit
authorBarry Warsaw <barry@python.org>
Mon, 23 May 2011 19:22:56 +0000 (15:22 -0400)
committerBarry Warsaw <barry@python.org>
Mon, 23 May 2011 19:22:56 +0000 (15:22 -0400)
message:

Reconcile with the 2.6svn branch.  The 2.6.7 release will be made from
Subversion, but there were differences, so this brings them in sync.  These
changes should *not* propagate to any newer versions.

16 files changed:
Doc/README.txt
Doc/copyright.rst
Doc/library/configparser.rst
Doc/library/logging.rst
Doc/license.rst
Include/patchlevel.h
LICENSE
Lib/distutils/__init__.py
Lib/idlelib/idlever.py
Lib/pydoc_topics.py
Misc/NEWS
Misc/RPM/python-2.6.spec
PC/python_nt.rc
Python/Python-ast.c
Python/getcopyright.c
README

index d32d1edbba043de2c489f02d46c6c95a86d73203..ef1c1f72934cc4f955d10905eca650760b890e5b 100644 (file)
@@ -127,7 +127,7 @@ The Python source is copyrighted, but you can freely use and copy it
 as long as you don't change or remove the copyright notice:
 
 ----------------------------------------------------------------------
-Copyright (c) 2000-2008 Python Software Foundation.
+Copyright (c) 2000-2011 Python Software Foundation.
 All rights reserved.
 
 Copyright (c) 2000 BeOpen.com.
index 893b541b2213c0eb59435d9a3293a7b29daf25eb..ff6b67725237b8f5a89b2c669abf2cd8b5c642ff 100644 (file)
@@ -4,7 +4,7 @@ Copyright
 
 Python and this documentation is:
 
-Copyright © 2001-2010 Python Software Foundation. All rights reserved.
+Copyright © 2001-2011 Python Software Foundation. All rights reserved.
 
 Copyright © 2000 BeOpen.com. All rights reserved.
 
index 7f68de762ff95289a8e850de66689da97609b0b1..867f0912fdaa2b2a7612371aeaa52b0425211a5b 100644 (file)
@@ -79,12 +79,9 @@ write-back, as will be the keys within each section.
    The basic configuration object.  When *defaults* is given, it is initialized
    into the dictionary of intrinsic defaults.  When *dict_type* is given, it will
    be used to create the dictionary objects for the list of sections, for the
-   options within a section, and for the default values.  This class does not
+   options within a section, and for the default values. This class does not
    support the magical interpolation behavior.
 
-   All option names are passed through the :meth:`optionxform` method.  Its
-   default implementation converts option names to lower case.
-
    .. versionadded:: 2.3
 
    .. versionchanged:: 2.6
@@ -101,9 +98,10 @@ write-back, as will be the keys within each section.
    *defaults*.
 
    All option names used in interpolation will be passed through the
-   :meth:`optionxform` method just like any other option name reference.  Using
-   the default implementation of :meth:`optionxform`, the values ``foo %(bar)s``
-   and ``foo %(BAR)s`` are equivalent.
+   :meth:`optionxform` method just like any other option name reference.  For
+   example, using the default implementation of :meth:`optionxform` (which converts
+   option names to lower case), the values ``foo %(bar)s`` and ``foo %(BAR)s`` are
+   equivalent.
 
 
 .. class:: SafeConfigParser([defaults[, dict_type]])
index 6674dfa6fe526a0eed9c9359204d1804d08a6ab1..c95b8de7814b9d99cc13f1711402a4ef1621f36d 100644 (file)
@@ -2545,8 +2545,6 @@ logging module using these functions or by making calls to the main API (defined
 in :mod:`logging` itself) and defining handlers which are declared either in
 :mod:`logging` or :mod:`logging.handlers`.
 
-.. currentmodule:: logging.config
-
 
 .. function:: fileConfig(fname[, defaults])
 
@@ -2580,8 +2578,6 @@ in :mod:`logging` itself) and defining handlers which are declared either in
    :func:`listen`.
 
 
-.. currentmodule:: logging
-
 .. _logging-config-fileformat:
 
 Configuration file format
index 6ab673c0cf440fee451cdb55108ec2d8aec5b160..a9cec20f0942f4bf52424e583b419c380472e94e 100644 (file)
@@ -104,6 +104,10 @@ been GPL-compatible; the table below summarizes the various releases.
 +----------------+--------------+-----------+------------+-----------------+
 | 2.6.5          | 2.6.4        | 2010      | PSF        | yes             |
 +----------------+--------------+-----------+------------+-----------------+
+| 2.6.6          | 2.6.5        | 2010      | PSF        | yes             |
++----------------+--------------+-----------+------------+-----------------+
+| 2.6.7          | 2.6.6        | 2011      | PSF        | yes             |
++----------------+--------------+-----------+------------+-----------------+
 
 .. note::
 
index 3952d075cf999a2f09d790b533667014e06e5f38..abe0763a3abb0a6e4c87830ceba4106ada3da6c6 100644 (file)
 /*--start constants--*/
 #define PY_MAJOR_VERSION       2
 #define PY_MINOR_VERSION       6
-#define PY_MICRO_VERSION       6
-#define PY_RELEASE_LEVEL       PY_RELEASE_LEVEL_FINAL
-#define PY_RELEASE_SERIAL      0
+#define PY_MICRO_VERSION       7
+#define PY_RELEASE_LEVEL       PY_RELEASE_LEVEL_GAMMA
+#define PY_RELEASE_SERIAL      1
 
 /* Version as a string */
-#define PY_VERSION             "2.6.6+"
+#define PY_VERSION             "2.6.7rc1"
 /*--end constants--*/
 
 /* Subversion Revision number of this file (not of the repository) */
diff --git a/LICENSE b/LICENSE
index 1050ea9d66c8ce1c7115a359a08cc39699121c1b..a19aada1570cf30dbef4333394917b9e074a420c 100644 (file)
--- a/LICENSE
+++ b/LICENSE
@@ -63,6 +63,8 @@ the various releases.
     2.6.3           2.6.2       2009        PSF         yes
     2.6.4           2.6.3       2009        PSF         yes
     2.6.5           2.6.4       2010        PSF         yes
+    2.6.6           2.6.5       2010        PSF         yes
+    2.6.7           2.6.6       2011        PSF         yes
 
 Footnotes:
 
index 90f96feae1b3f475b90fc677a3877f54d3be4533..6f4c021c6270c0c103c3f27d79104c72b2d1b733 100644 (file)
@@ -22,5 +22,5 @@ __revision__ = "$Id$"
 #
 
 #--start constants--
-__version__ = "2.6.6"
+__version__ = "2.6.7rc1"
 #--end constants--
index 2888aaf5ca3e7b7a2b1c53220c60d55c93d3d7f1..23959679e65cdb0d3cab8f2fdf0fd8f80fe02551 100644 (file)
@@ -1 +1 @@
-IDLE_VERSION = "2.6.6"
+IDLE_VERSION = "2.6.7rc1"
index 572879f5148e83304d1c7ad5c8fcef4d61e7659d..c169960b92a68a62c3ef8a5b2a4ac546422e64b2 100644 (file)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Mon Aug 23 19:33:46 2010
+# Autogenerated by Sphinx on Fri May  6 18:02:17 2011
 topics = {'assert': u'\nThe ``assert`` statement\n************************\n\nAssert statements are a convenient way to insert debugging assertions\ninto a program:\n\n   assert_stmt ::= "assert" expression ["," expression]\n\nThe simple form, ``assert expression``, is equivalent to\n\n   if __debug__:\n      if not expression: raise AssertionError\n\nThe extended form, ``assert expression1, expression2``, is equivalent\nto\n\n   if __debug__:\n      if not expression1: raise AssertionError(expression2)\n\nThese equivalences assume that ``__debug__`` and ``AssertionError``\nrefer to the built-in variables with those names.  In the current\nimplementation, the built-in variable ``__debug__`` is ``True`` under\nnormal circumstances, ``False`` when optimization is requested\n(command line option -O).  The current code generator emits no code\nfor an assert statement when optimization is requested at compile\ntime.  Note that it is unnecessary to include the source code for the\nexpression that failed in the error message; it will be displayed as\npart of the stack trace.\n\nAssignments to ``__debug__`` are illegal.  The value for the built-in\nvariable is determined when the interpreter starts.\n',
  'assignment': u'\nAssignment statements\n*********************\n\nAssignment statements are used to (re)bind names to values and to\nmodify attributes or items of mutable objects:\n\n   assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression)\n   target_list     ::= target ("," target)* [","]\n   target          ::= identifier\n              | "(" target_list ")"\n              | "[" target_list "]"\n              | attributeref\n              | subscription\n              | slicing\n\n(See section *Primaries* for the syntax definitions for the last three\nsymbols.)\n\nAn assignment statement evaluates the expression list (remember that\nthis can be a single expression or a comma-separated list, the latter\nyielding a tuple) and assigns the single resulting object to each of\nthe target lists, from left to right.\n\nAssignment is defined recursively depending on the form of the target\n(list). When a target is part of a mutable object (an attribute\nreference, subscription or slicing), the mutable object must\nultimately perform the assignment and decide about its validity, and\nmay raise an exception if the assignment is unacceptable.  The rules\nobserved by various types and the exceptions raised are given with the\ndefinition of the object types (see section *The standard type\nhierarchy*).\n\nAssignment of an object to a target list is recursively defined as\nfollows.\n\n* If the target list is a single target: The object is assigned to\n  that target.\n\n* If the target list is a comma-separated list of targets: The object\n  must be an iterable with the same number of items as there are\n  targets in the target list, and the items are assigned, from left to\n  right, to the corresponding targets. (This rule is relaxed as of\n  Python 1.5; in earlier versions, the object had to be a tuple.\n  Since strings are sequences, an assignment like ``a, b = "xy"`` is\n  now legal as long as the string has the right length.)\n\nAssignment of an object to a single target is recursively defined as\nfollows.\n\n* If the target is an identifier (name):\n\n  * If the name does not occur in a ``global`` statement in the\n    current code block: the name is bound to the object in the current\n    local namespace.\n\n  * Otherwise: the name is bound to the object in the current global\n    namespace.\n\n  The name is rebound if it was already bound.  This may cause the\n  reference count for the object previously bound to the name to reach\n  zero, causing the object to be deallocated and its destructor (if it\n  has one) to be called.\n\n* If the target is a target list enclosed in parentheses or in square\n  brackets: The object must be an iterable with the same number of\n  items as there are targets in the target list, and its items are\n  assigned, from left to right, to the corresponding targets.\n\n* If the target is an attribute reference: The primary expression in\n  the reference is evaluated.  It should yield an object with\n  assignable attributes; if this is not the case, ``TypeError`` is\n  raised.  That object is then asked to assign the assigned object to\n  the given attribute; if it cannot perform the assignment, it raises\n  an exception (usually but not necessarily ``AttributeError``).\n\n  Note: If the object is a class instance and the attribute reference\n  occurs on both sides of the assignment operator, the RHS expression,\n  ``a.x`` can access either an instance attribute or (if no instance\n  attribute exists) a class attribute.  The LHS target ``a.x`` is\n  always set as an instance attribute, creating it if necessary.\n  Thus, the two occurrences of ``a.x`` do not necessarily refer to the\n  same attribute: if the RHS expression refers to a class attribute,\n  the LHS creates a new instance attribute as the target of the\n  assignment:\n\n     class Cls:\n         x = 3             # class variable\n     inst = Cls()\n     inst.x = inst.x + 1   # writes inst.x as 4 leaving Cls.x as 3\n\n  This description does not necessarily apply to descriptor\n  attributes, such as properties created with ``property()``.\n\n* If the target is a subscription: The primary expression in the\n  reference is evaluated.  It should yield either a mutable sequence\n  object (such as a list) or a mapping object (such as a dictionary).\n  Next, the subscript expression is evaluated.\n\n  If the primary is a mutable sequence object (such as a list), the\n  subscript must yield a plain integer.  If it is negative, the\n  sequence\'s length is added to it. The resulting value must be a\n  nonnegative integer less than the sequence\'s length, and the\n  sequence is asked to assign the assigned object to its item with\n  that index.  If the index is out of range, ``IndexError`` is raised\n  (assignment to a subscripted sequence cannot add new items to a\n  list).\n\n  If the primary is a mapping object (such as a dictionary), the\n  subscript must have a type compatible with the mapping\'s key type,\n  and the mapping is then asked to create a key/datum pair which maps\n  the subscript to the assigned object.  This can either replace an\n  existing key/value pair with the same key value, or insert a new\n  key/value pair (if no key with the same value existed).\n\n* If the target is a slicing: The primary expression in the reference\n  is evaluated.  It should yield a mutable sequence object (such as a\n  list).  The assigned object should be a sequence object of the same\n  type.  Next, the lower and upper bound expressions are evaluated,\n  insofar they are present; defaults are zero and the sequence\'s\n  length.  The bounds should evaluate to (small) integers.  If either\n  bound is negative, the sequence\'s length is added to it. The\n  resulting bounds are clipped to lie between zero and the sequence\'s\n  length, inclusive.  Finally, the sequence object is asked to replace\n  the slice with the items of the assigned sequence.  The length of\n  the slice may be different from the length of the assigned sequence,\n  thus changing the length of the target sequence, if the object\n  allows it.\n\n**CPython implementation detail:** In the current implementation, the\nsyntax for targets is taken to be the same as for expressions, and\ninvalid syntax is rejected during the code generation phase, causing\nless detailed error messages.\n\nWARNING: Although the definition of assignment implies that overlaps\nbetween the left-hand side and the right-hand side are \'safe\' (for\nexample ``a, b = b, a`` swaps two variables), overlaps *within* the\ncollection of assigned-to variables are not safe!  For instance, the\nfollowing program prints ``[0, 2]``:\n\n   x = [0, 1]\n   i = 0\n   i, x[i] = 1, 2\n   print x\n\n\nAugmented assignment statements\n===============================\n\nAugmented assignment is the combination, in a single statement, of a\nbinary operation and an assignment statement:\n\n   augmented_assignment_stmt ::= augtarget augop (expression_list | yield_expression)\n   augtarget                 ::= identifier | attributeref | subscription | slicing\n   augop                     ::= "+=" | "-=" | "*=" | "/=" | "//=" | "%=" | "**="\n             | ">>=" | "<<=" | "&=" | "^=" | "|="\n\n(See section *Primaries* for the syntax definitions for the last three\nsymbols.)\n\nAn augmented assignment evaluates the target (which, unlike normal\nassignment statements, cannot be an unpacking) and the expression\nlist, performs the binary operation specific to the type of assignment\non the two operands, and assigns the result to the original target.\nThe target is only evaluated once.\n\nAn augmented assignment expression like ``x += 1`` can be rewritten as\n``x = x + 1`` to achieve a similar, but not exactly equal effect. In\nthe augmented version, ``x`` is only evaluated once. Also, when\npossible, the actual operation is performed *in-place*, meaning that\nrather than creating a new object and assigning that to the target,\nthe old object is modified instead.\n\nWith the exception of assigning to tuples and multiple targets in a\nsingle statement, the assignment done by augmented assignment\nstatements is handled the same way as normal assignments. Similarly,\nwith the exception of the possible *in-place* behavior, the binary\noperation performed by augmented assignment is the same as the normal\nbinary operations.\n\nFor targets which are attribute references, the same *caveat about\nclass and instance attributes* applies as for regular assignments.\n',
  'atom-identifiers': u'\nIdentifiers (Names)\n*******************\n\nAn identifier occurring as an atom is a name.  See section\n*Identifiers and keywords* for lexical definition and section *Naming\nand binding* for documentation of naming and binding.\n\nWhen the name is bound to an object, evaluation of the atom yields\nthat object. When a name is not bound, an attempt to evaluate it\nraises a ``NameError`` exception.\n\n**Private name mangling:** When an identifier that textually occurs in\na class definition begins with two or more underscore characters and\ndoes not end in two or more underscores, it is considered a *private\nname* of that class. Private names are transformed to a longer form\nbefore code is generated for them.  The transformation inserts the\nclass name in front of the name, with leading underscores removed, and\na single underscore inserted in front of the class name.  For example,\nthe identifier ``__spam`` occurring in a class named ``Ham`` will be\ntransformed to ``_Ham__spam``.  This transformation is independent of\nthe syntactical context in which the identifier is used.  If the\ntransformed name is extremely long (longer than 255 characters),\nimplementation defined truncation may happen.  If the class name\nconsists only of underscores, no transformation is done.\n',
index b5be9f21865efa9359fa5b1e165e7e4515846f2c..980de3c7506886f40817e70149de23adeca92eb5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,10 +4,10 @@ Python News
 
 (editors: check NEWS.help for information about editing NEWS using ReST.)
 
-What's New in Python 2.6.7?
-===========================
+What's New in Python 2.6.7 rc 1?
+================================
 
-*Release date: XXXX-XX-XX*
+*Release date: 2011-05-06*
 
 *NOTE: Python 2.6 is in security-fix-only mode.  No non-security bug fixes are
  allowed.  Python 2.6.7 and beyond will be source only releases.*
@@ -19,11 +19,20 @@ Core and Builtins
 Library
 -------
 
-- Issue #11442: Add a charset parameter to the Content-type in SimpleHTTPServer
-  to avoid XSS attacks.
+- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing
+  error handling when accepting a new connection.
+
+
+What's New in Python 2.6.6?
+===========================
+
+*Release date: 2010-08-24*
 
-- Issue #11662: Make urllib and urllib2 ignore redirections if the
-  scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
+Core and Builtins
+-----------------
+
+Library
+-------
 
 
 What's New in Python 2.6.6 rc 2?
index be88719db65a9a3f94628eb016405ac082b37035..d5873b4b6a0d3cac369da1ed52c0495697deb166 100644 (file)
@@ -39,7 +39,7 @@
 
 %define name python
 #--start constants--
-%define version 2.6.6
+%define version 2.6.7rc1
 %define libver 2.6
 #--end constants--
 %define release 1pydotorg
index f5fff8720a957007c92773cd414ccd8d83001907..8cccf2dc2ae71a8dcae7ef2fc5856eccb495c0fe 100644 (file)
@@ -61,7 +61,7 @@ BEGIN
             VALUE "FileDescription", "Python Core\0"
             VALUE "FileVersion", PYTHON_VERSION
             VALUE "InternalName", "Python DLL\0"
-            VALUE "LegalCopyright", "Copyright © 2001-2010 Python Software Foundation. Copyright © 2000 BeOpen.com. Copyright © 1995-2001 CNRI. Copyright © 1991-1995 SMC.\0"
+            VALUE "LegalCopyright", "Copyright © 2001-2011 Python Software Foundation. Copyright © 2000 BeOpen.com. Copyright © 1995-2001 CNRI. Copyright © 1991-1995 SMC.\0"
             VALUE "OriginalFilename", PYTHON_DLL_NAME "\0"
             VALUE "ProductName", "Python\0"
             VALUE "ProductVersion", PYTHON_VERSION
index bc6cca06353f35584d0db6afa62bb28c7a427911..45fe444e2681ce2407d234a573ae88afbc08b0cb 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-   __version__ 62047.
+   __version__ .
 
    This module must be committed separately after each AST grammar change;
    The __version__ number is set to the revision number of the commit
@@ -6300,7 +6300,7 @@ init_ast(void)
         if (PyDict_SetItemString(d, "AST", (PyObject*)&AST_type) < 0) return;
         if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)
                 return;
-        if (PyModule_AddStringConstant(m, "__version__", "62047") < 0)
+        if (PyModule_AddStringConstant(m, "__version__", "") < 0)
                 return;
         if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return;
         if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
index a5e7fa6396e99e0cbad494d63aea4931eecf444b..824c7b1c8270a0128269ab14ba21f22c1a76e18e 100644 (file)
@@ -4,7 +4,7 @@
 
 static char cprt[] = 
 "\
-Copyright (c) 2001-2010 Python Software Foundation.\n\
+Copyright (c) 2001-2011 Python Software Foundation.\n\
 All Rights Reserved.\n\
 \n\
 Copyright (c) 2000 BeOpen.com.\n\
diff --git a/README b/README
index 63af54dc877519d0b3fe1ce019a3ff1bd0124fde..88cd00df061791169273e41431288ac01237befc 100644 (file)
--- a/README
+++ b/README
@@ -1,8 +1,9 @@
-This is Python version 2.6.6
-============================
+This is Python version 2.6.7rc1
+===============================
 
 Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-Python Software Foundation.  All rights reserved.
+Python Software Foundation.
+All rights reserved.
 
 Copyright (c) 2000 BeOpen.com.
 All rights reserved.