Import Debian changes 2.7.18-8+deb11u1
python2.7 (2.7.18-8+deb11u1) bullseye; urgency=medium
.
* Non-maintainer upload by the LTS Team.
* Add testsuite-fix-with-expat.diff: Fix autopkgtests with updated expat.
* Fix issue9189.diff: Update test suite to match behaviour change.
* Add CVE-2021-23336.diff: Only use '&' as query string separator
* Add CVE-2022-0391.diff: Make urlsplit robust against newlines
* Add CVE-2022-48560.diff: Fix use-after-free in heapq module.
* Add CVE-2022-48565.diff: Reject entities declarations while parsing XML
plists.
* Add CVE-2022-48566.diff: Make constant time comparison more constant-time.
* Add CVE-2023-24329.diff: More WHATWG-compatible URL parsing
* Add CVE-2023-40217.diff: Prevent reading unauthenticated data on a
SSLSocket
.
python2.7 (2.7.18-8) unstable; urgency=medium
.
[ Andreas Beckmann ]
* python2.7, libpython2.7-minimal: Add Breaks: python-dev (<< 2.7.18),
libpython-dev (<< 2.7.18), python-dbg (<< 2.7.18),
libpython-dbg (<< 2.7.18) to remove more unversioned python packages.
Add Breaks: libgcj-common (<< 1:7), libvolk1-bin (<< 2),
pysycache (<< 3.1-4~), python-catkin-pkg (<< 0.4.14-2~),
python-chardet (<< 3.0.4-6~), python-extras (<< 1.0.0-4~),
python-fixtures (<< 3.0.0-3~), python-genpy (<< 0.6.9-2~),
python-iso8601 (<< 0.1.12-2~), python-linecache2 (<< 1.0.0-4~),
python-pbr (<< 5.4.5), python-pyasn1 (<< 0.4.2-4~),
python-pygame (<< 1.9.6+dfsg-3~), python-pyicu (<< 2.2-3~),
python-rospkg (1.1.10-2~), python-std-msgs (<< 0.5.12-2~),
python-testtools (<< 2.3.0-7~), python-traceback2 (<< 1.4.0-6~),
python-traitlets (<< 4.3.3-3~), python-urllib3 (<< 1.25.8-2~),
python-yaml (<< 5.3.1-2~) to remove some persisting obsolete module
packages along the unversioned python packages on upgrades from buster.
Closes: #990520.
* libpython2.7-stdlib: Breaks: ${python27:Breaks}, too.
.
python2.7 (2.7.18-7) unstable; urgency=medium
.
[ Andreas Beckmann ]
* python2.7, libpython2.7-minimal: Add Breaks: python (<< 2.7.18) to ensure
removal of the unversioned python packages on upgrades from buster. The
previously added (transitive) Breaks are not sufficient in a few upgrade
scenarios. Closes: #987661.
.
python2.7 (2.7.18-6) unstable; urgency=medium
.
* python2.7, libpython2.7-minimal: Add Breaks: python-minimal (<< 2.7.18),
libpython-stdlib (<< 2.7.18) to ensure removal of the unversioned python
packages on upgrades from buster (Andreas Beckmann). Closes: #984777.
.
python2.7 (2.7.18-5) unstable; urgency=medium
.
* Use the posix_prefix layout when inside a virtualenv (Stefano Rivera).
Closes: #983552.
.
python2.7 (2.7.18-4) unstable; urgency=medium
.
* Update the patch for issue #42938 (Marc Deslauriers). Closes: #983516.
.
python2.7 (2.7.18-2) unstable; urgency=medium
.
* Fix issue #39017: Avoid infinite loop when reading specially crafted TAR
files using the tarfile module (CVE-2019-20907).
* Backport of 0b297d4ff1c0e4480ad33acae793fbaf4bf015b4, trimmed down to the
fix for CVE-2020-8492. Closes: #970099.
* Fix FTCBFS: Add back a dependency on python2.7:any (Helmut Grohne).
Closes: #939514.
* Fix issue #42938: Replace snprintf with Python unicode formatting in
ctypes param reprs (CVE-2021-3177) (Saif Hakim). LP: #1916117.
.
python2.7 (2.7.18-1) unstable; urgency=medium
.
* Python 2.7.18 release.
* Let the Python2 end-of-life banner point to the python3 packages, not to
the online documentation.
.
python2.7 (2.7.18~rc1-2) unstable; urgency=medium
.
* Ignore some autopkg tests:
- test_ssl: Fails with OPENSSL_TLS_SECURITY_LEVEL=2.
- tst_io: Fails on Ubuntu's autopkg test infrastructure.
* Lower OpenSSL security level from 2 to 1 during testing as test_ssl
assumes that.
* Add XB-Cnf-Visible-Pkgname header on the python*-minimal package to
point command-not-found at the full one. LP: #1867157
.
python2.7 (2.7.18~rc1-1) unstable; urgency=medium
.
* Python 2.7.18 release candidate 1.
- bpo-38576: Disallow control characters in hostnames in http.client,
addressing CVE-2019-18348.
* Make autopkgtests cross-test-friendly (Steve Langasek).
.
python2.7 (2.7.17-1) unstable; urgency=medium
.
* Python 2.7.17 release.
.
python2.7 (2.7.17~rc1-1) unstable; urgency=medium
.
* Python 2.7.17 release candidate 1.
- CVE-2019-16056, don't parse domains containing @. Closes: #940901.
* Bump standards version.
.
python2.7 (2.7.16-4) unstable; urgency=medium
.
* Update to 20190904 from the 2.7 branch.
* Refresh patches.
* Drop build dependency on python:any. Addresses: #937569.
* Annotate Build-Depends: xvfb and xauth with <!nocheck>. Closes: #928514.
.
python2.7 (2.7.16-3) unstable; urgency=medium
.
* Update to 20190708 from the 2.7 branch.
* Bump standards version.
.
python2.7 (2.7.16-2) unstable; urgency=high
.
[ Matthias Klose ]
* CVE-2019-9636. Fix issue #36216: Add check for characters in netloc that
normalize to separators. Closes: #924073.
* CVE-2019-9948. Fix issue #35907: Stop urllib exposing the local_file schema
(file://).
.
[ Dimitri John Ledkov ]
* Bump Build-Depedency and Dependency of libssl-dev and libss1.1 to
1.1.1 or higher. As TLS1.3 constants leak into ssl module, thus one
shouldn't mix and match python2.7 & libssl1.1. LP: #1808476
.
python2.7 (2.7.16-1) unstable; urgency=medium
.
* Python 2.7.16 release.
- Now has a version without a trailing '+'. Closes: #914072.
.
python2.7 (2.7.16~rc1-1) unstable; urgency=medium
.
* Python 2.7.16 release candidate 1.
.
python2.7 (2.7.15-9) unstable; urgency=medium
.
* Update to 20190216 from the 2.7 branch.
- Backport of TLS 1.3 related fixes from 3.7.
* Drop the local TLS 1.3 backports.
.
python2.7 (2.7.15-8) unstable; urgency=medium
.
* Fix typo in autopkg test.
.
python2.7 (2.7.15-7) unstable; urgency=medium
.
* Expect the test_site test failing as in 3.7.
.
python2.7 (2.7.15-6) unstable; urgency=medium
.
* Update to 20190201 from the 2.7 branch.
- CVE-2013-1752: Limit imaplib.IMAP4_SSL.readline().
- CVE-2018-14647: _elementtree.c doesn't call XML_SetHashSalt().
Closes: #921039.
- CVE-2019-5010: DsO vulnerability exists in the X509 certificate parser.
Closes: #921040.
* Bump standards version.
* Update symbols file.
.
python2.7 (2.7.15-5) unstable; urgency=medium
.
* Update to 20181127 from the 2.7 branch.
- Fix issue #20744, running an external 'zip' in shutil.make_archive().
CVE-2018-1000802. Closes: #909673.
* Cherrypick in-progress backports to 2.7 branch from 3.6 branch to fix
test_ssl assertions with openssl 1.1.1. Resolves autopkgtest failure
of the 2.7 with openssl 1.1.1 (Dimitri John Ledkov).
* Don't hard code location of netinet/in.h. Closes: #912422.
* Update VCS attributes.
.
python2.7 (2.7.15-4) unstable; urgency=medium
.
* Update to 20180831 from the 2.7 branch.
- Fixes the build with OpenSSL 1.1.1. Closes: #900157.
* Don't run the test_ftplib and test_ssl autopkg tests, not yet ready
for OpenSSL 1.1.1. Closes: #907033.
.
python2.7 (2.7.15-3) unstable; urgency=medium
.
* Bump standards version.
* Pass the list of the pyFPE breaks as a parameter into dpkg-gencontrol
instead of hard-coding them in the control file.
.
python2.7 (2.7.15-1) unstable; urgency=medium
.
* Python 2.7.15 release.
.
python2.7 (2.7.15~rc1-1) unstable; urgency=medium
.
* Python 2.7.15 release candidate 1.
.
python2.7 (2.7.14-8) unstable; urgency=medium
.
* Update to 20180402 from the 2.7 branch.
.
python2.7 (2.7.14-7) unstable; urgency=medium
.
* Update to 20180313 from the 2.7 branch.
- Fix issue #32185: The SSL module no longer sends IP addresses in SNI TLS
extension on platforms with OpenSSL 1.0.2+ or inet_pton. See #892814.
* Add support for riscv64 (Aurelien Jarno). Closes: #892329.
.
python2.7 (2.7.14-6) unstable; urgency=medium
.
* Don't run lib2to3 tests which rely on the pickled grammar files.
.
python2.7 (2.7.14-5) unstable; urgency=medium
.
* Update to 20180204 from the 2.7 branch.
- Fix issue #31530. Closes: #889280.
* python2.7-minimal: Pre-Depend on zlib1g. Closes: #887629.
.
python2.7 (2.7.14-4) unstable; urgency=medium
.
* Fix applying the m-i-p-s-r6 patch.
.
python2.7 (2.7.14-3) unstable; urgency=medium
.
* Update to 20171205 from the 2.7 branch.
* Build with -fstack-protector instead of -fstack-protector-strong.
Performance improvements of around 1-2%.
* Add support for mipsr6 triplets (YunQiang Su). Closes: #881945.
.
python2.7 (2.7.14-2) unstable; urgency=medium
.
* Really rename the md5_* functions.
.
python2.7 (2.7.14-1) unstable; urgency=medium
.
* Python 2.7.14 release.
.
python2.7 (2.7.14~rc1-3) unstable; urgency=medium
.
* Add package breaks for extensions referencing symbols for the removed
_PyFPE module. Closes: #873791, #873915, #873899.
* Expect the regrtest test to fail on s390x.
.
python2.7 (2.7.14~rc1-2) unstable; urgency=medium
.
* Rename md5_* functions to _Py_md5_*. Closes: #868366.
* Break python-numpy (<< 1:1.12.1-3.1), referencing the now missing fpectl
modules. Closes: #873791.
.
python2.7 (2.7.14~rc1-1) unstable; urgency=medium
.
* Python 2.7.14 release candidate 1.
* Stop building the fpectl extension.
* Build the _math.o object file without -fPIC for static builds. LP: #1638695.
.
python2.7 (2.7.13-4) unstable; urgency=medium
.
* Update to 20170719 from the 2.7 branch.
* Move test/support from libpython2.7-testsuite to libpython2.7-stdlib.
Closes: #868168.
.
python2.7 (2.7.13-3) unstable; urgency=medium
.
* Update to 20170608 from the 2.7 branch.
- bpo-27945: Fixed various segfaults with dict when input collections are
mutated during searching, inserting or comparing.
- bpo-25794: Fixed type.__setattr__() and type.__delattr__() for
non-interned or unicode attribute names.
- bpo-29935: Fixed error messages in the index() method of tuple and list
when pass indices of wrong type.
- bpo-28598: Support __rmod__ for subclasses of str being called before
str.__mod__.
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor
for complex subclasses and for inputs having a __complex__ method.
- bpo-29347: Fixed possibly dereferencing undefined pointers
when creating weakref objects.
- Issue #14376: Allow sys.exit to accept longs as well as ints.
- Issue #29028: Fixed possible use-after-free bugs in the subscription
of the buffer object with custom index object.
- Issue #29145: Fix overflow checks in string, bytearray and unicode.
- Issue #28932: Do not include <sys/random.h> if it does not exist.
- bpo-30378: Fix the problem that logging.handlers.SysLogHandler cannot
handle IPv6 addresses.
- bpo-29960: Preserve generator state when _random.Random.setstate()
raises an exception.
- bpo-30310: tkFont now supports unicode options (e.g. font family).
- bpo-30414: multiprocessing.Queue._feed background running
thread do not break from main loop on exception.
- bpo-30003: Fix handling escape characters in HZ codec.
- bpo-30375: Warnings emitted when compile a regular expression now always
point to the line in the user code. Previously they could point into
inners of the re module if emitted from inside of groups or conditionals.
- bpo-30363: Running Python with the -3 option now warns about regular
expression syntax that is invalid or has different semantic in Python 3
or will change the behavior in future Python versions.
- bpo-30365: Running Python with the -3 option now emits deprecation
warnings for getchildren() and getiterator() methods of the Element class
in the xml.etree.cElementTree module and when pass the html argument to
xml.etree.ElementTree.XMLParser().
- bpo-30365: Fixed a deprecation warning about the doctype() method of the
xml.etree.ElementTree.XMLParser class. Now it is emitted only when define
the doctype() method in the subclass of XMLParser.
- bpo-29990: Fix range checking in GB18030 decoder.
- bpo-30243: Removed the __init__ methods of _json's scanner and encoder.
Misusing them could cause memory leaks or crashes. Now scanner and
encoder objects are completely initialized in the __new__ methods.
- Revert bpo-26293 for zipfile breakage. See also bpo-29094.
- bpo-30070: Fixed leaks and crashes in errors handling in the parser
module.
- bpo-30061: Fixed crashes in IOBase methods next() and readlines() when
readline() or next() respectively return non-sizeable object.
Fixed possible other errors caused by not checking results of
PyObject_Size(), PySequence_Size(), or PyMapping_Size().
- bpo-30011: Fixed race condition in HTMLParser.unescape().
- bpo-30068: _io._IOBase.readlines will check if it's closed first when
hint is present.
- bpo-27863: Fixed multiple crashes in ElementTree caused by race
conditions and wrong types.
- bpo-29942: Fix a crash in itertools.chain.from_iterable when encountering
long runs of empty iterables.
- bpo-29861: Release references to tasks, their arguments and their results
as soon as they are finished in multiprocessing.Pool.
- bpo-27880: Fixed integer overflow in cPickle when pickle large strings or
too many objects.
- bpo-29110: Fix file object leak in aifc.open() when file is given as a
filesystem path and is not in valid AIFF format.
- Issue #29354: Fixed inspect.getargs() for parameters which are cell
variables.
- Issue #29335: Fix subprocess.Popen.wait() when the child process has
exited to a stopped instead of terminated state (ex: when under ptrace).
- Issue #29219: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.
- Issue #29188: Support glibc 2.24 on Linux: don't use getentropy()
function but read from /dev/urandom to get random bytes, for example in
os.urandom(). On Linux, getentropy() is implemented which getrandom()
is blocking mode, whereas os.urandom() should not block.
- Issue #29142: In urllib, suffixes in no_proxy environment variable
with leading dots could match related hostnames again (e.g. .b.c
matches a.b.c).
- Issue #13051: Fixed recursion errors in large or resized
curses.textpad.Textbox.
- Issue #9770: curses.ascii predicates now work correctly with negative
integers.
- Issue #28427: old keys should not remove new values from
WeakValueDictionary when collecting from another thread.
- Issue #28998: More APIs now support longs as well as ints.
- Issue 28923: Remove editor artifacts from Tix.py,
including encoding not recognized by codecs.lookup.
- Issue #29019: Fix dict.fromkeys(x) overallocates when x is sparce dict.
- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and
WeakValueDictionary.pop() when a GC collection happens in another
thread.
- Issue #28925: cPickle now correctly propagates errors when unpickle
instances of old-style classes.
- Issue #26355: Add canonical header link on each page to corresponding
major version of the documentation.
- Issue #12067: Rewrite Comparisons section in the Expressions chapter of
the language reference. Some of the details of comparing mixed types were
incorrect or ambiguous. Added default behaviour and consistency
suggestions for user-defined classes.
- bpo-29243: Prevent unnecessary rebuilding of Python during ``make test``,
``make install`` and some other make targets when configured with
``--enable-optimizations``.
- bpo-23404: Don't regenerate generated files based on file modification
time anymore: the action is now explicit. Replace ``make touch`` with
``make regen-all``.
- bpo-27593: sys.version and the platform module python_build(),
python_branch(), and python_revision() functions now use
git information rather than hg when building from a repo.
- bpo-29643: Fix ``--enable-optimization`` configure option didn't work.
- Issue #28768: Fix implicit declaration of function _setmode.
- bpo-11790: Fix sporadic failures in
test_multiprocessing.WithProcessesTestCondition.
- bpo-30236: Backported test.regrtest options -m/--match and -G/--failfast
from Python 3.
- bpo-30223: To unify running tests in Python 2.7 and Python 3, the test
package can be run as a script. This is equivalent to running the
test.regrtest module as a script.
- bpo-30207: To simplify backports from Python 3, the test.test_support
module was converted into a package and renamed to test.support. The
test.script_helper module was moved into the test.support package.
Names test.test_support and test.script_helper are left as aliases to
test.support and test.support.script_helper.
- bpo-30197: Enhanced function swap_attr() in the test.test_support module.
It now works when delete replaced attribute inside the with statement.
The old value of the attribute (or None if it doesn't exist) now will be
assigned to the target of the "as" clause, if there is one.
Also backported function swap_item().
- bpo-15083: Convert ElementTree doctests to unittests.
* Explicitly use the system python for byte compilation in postinst scripts.
Addresses: #852163. LP: #1682934.
* Build using -fexceptions on ppc64 and ppc64el.
Closes: #862925. LP: #1691848.
.
python2.7 (2.7.13-2) unstable; urgency=medium
.
* Lower priority of interpreter packages to optional.
.
python2.7 (2.7.13-1) unstable; urgency=medium
.
* Python 2.7.13 release.
- Revert a37cc3d926ec (Issue #5322). Closes: #847791.
* Fix one more broken -gdb.py symlink. Closes: #807513.
.
python2.7 (2.7.13~rc1-1) unstable; urgency=medium
.
* Python 2.7.13 release candidate 1.
- Issue #5322: Fixed setting __new__ to a PyCFunction inside Python code.
- Issue #28847: dumbdbm no longer writes the index file in when it is not
changed and supports reading read-only files.
- Issue #11145: Fixed miscellaneous issues with C-style formatting of types
with custom __oct__ and __hex__.
- Issue #24469: Fixed memory leak caused by int subclasses without
overridden tp_free (e.g. C-inherited Cython classes).
* Pass CXX when configuring and building. Closes: #846326.
* Add profile for libbluetooth-dev build dependency. Closes: #738520.
.
python2.7 (2.7.12-7) unstable; urgency=medium
.
* Update to 20161121 from the 2.7 branch.
- Issue #19398: Extra slash no longer added to sys.path components
in case of empty compile-time PYTHONPATH components.
- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and
from_buffer_copy() methods on abstract classes like Array.
- Issue #28563: Fixed possible DoS and arbitrary code execution when handle
plural form selections in the gettext module. The expression parser now
supports exact syntax supported by GNU gettext.
- Issue #25507: Add back import needed for 2.x encoding warning box.
Add pointer to 'Encoding declaration' in Language Reference.
- Issue #28666: Now test.test_support.rmtree is able to remove unwritable
or unreadable directories.
- Issue #23839: Various caches now are cleared before running every
test file.
- Issue #26359: Rename --with-optimiations to --enable-optimizations.
.
python2.7 (2.7.12-5) unstable; urgency=medium
.
* Update to 20161104 from the 2.7 branch.
- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when
the garbage collector is invoked in other thread.
* Disable some lib2to3 tests relying on the saved pickled grammar files.
.
python2.7 (2.7.12-4) unstable; urgency=medium
.
* Update to 20161103 from the 2.7 branch.
- Issue #21720: Improve exception message when the type of fromlist is
unicode. fromlist parameter of __import__() only accepts str in Python 2
and this will help to identify the problem especially when the
unicode_literals future import is used.
- Issue #26906: Resolving special methods of uninitialized type now causes
implicit initialization of the type instead of a fail.
- Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
- Issue #24098: Fixed possible crash when AST is changed in process of
compiling it.
- Issue #28350: String constants with null character no longer interned.
- Issue #27942: String constants now interned recursively in tuples and
frozensets.
- Issue #15578: Correctly incref the parent module while importing.
- Issue #26307: The profile-opt build now applies PGO to the built-in
modules.
- Issue #26020: set literal evaluation order did not match documented
behaviour.
- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a
tar file with compression before trying to open it without compression.
Otherwise it had 50% chance failed with ignore_zeros=True.
- Issue #25464: Fixed HList.header_exists() in Tix module by adding
a workaround to Tix library bug.
- Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP
archive.
- Issue #28480: Fix error building _sqlite3 module when multithreading is
disabled.
- Issue #26293: Fixed writing ZIP files that starts not from the start of
the file. Offsets in ZIP file now are relative to the start of the
archive in conforming to the specification.
- Fix possible integer overflows and crashes in the mmap module with
unusual usage patterns.
- Issue #27897: Fixed possible crash in
sqlite3.Connection.create_collation() if pass invalid string-like object
as a name.
- Issue #1703178: Fix the ability to pass the --link-objects option to the
distutils build_ext command.
- Issue #28253: Fixed calendar functions for extreme months: 0001-01
and 9999-12.
Methods itermonthdays() and itermonthdays2() are reimplemented so
that they don't call itermonthdates() which can cause datetime.date
under/overflow.
- Issue #27963: Fixed possible null pointer dereference in
ctypes.set_conversion_mode().
- Issue #28284: Strengthen resistance of ``_json.encode_basestring_ascii()``
to integer overflow.
- Issue #27611: Fixed support of default root window in the Tix module.
- Issue #24363: When parsing HTTP header fields, if an invalid line is
encountered, skip it and continue parsing. Previously, no more header
fields were parsed, which could lead to fields for HTTP framing like
Content-Length and Transfer-Encoding being overlooked.
- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and
binascii.a2b_qp().
- Issue #25969: Update the lib2to3 grammar to handle the unpacking
generalizations added in 3.5.
- Issue #24594: Validates persist parameter when opening MSI database
- Issue #27570: Avoid zero-length memcpy() etc calls with null source
pointers in the "ctypes" and "array" modules.
- Issue #22450: urllib now includes an "Accept: */*" header among the
default headers. This makes the results of REST API requests more
consistent and predictable especially when proxy servers are involved.
- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file
between runs given the same Grammar.txt input regardless of the hash
randomization setting.
- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative
name fields in X.509 certs.
- Issue #27850: Remove 3DES from ssl module's default cipher list to
counter measure sweet32 attack (CVE-2016-2183).
- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list.
(Required OpenSSL 1.1.0 or LibreSSL).
- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0.
Closes: #835793.
- Issue #27944: Fix some memory-corruption bugs in the log reading code
of the _hotshot module.
- Issue #27934: Use ``float.__repr__`` instead of plain ``repr`` when JSON-
encoding an instance of a float subclass.
- Issue #21201: Improves readability of multiprocessing error message.
- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
- Issue #17642: add larger font sizes for classroom projection.
- Add version to title of IDLE help window.
- Issue #25564: In section on IDLE -- console differences, mention that
using exec means that __builtins__ is defined for each statement.
- Issue #28513: Documented command-line interface of zipfile.
- Issue #28258: Fixed build with Estonian locale.
- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
- Issue #15819: The Include directory in the build tree is already
searched; drop unused code trying to add it again.
- Issue #27566: Fix clean target in freeze makefile.
- Issue #27983: Cause lack of llvm-profdata tool when using clang as
required for PGO linking to be a configure time error rather than
make time when --with-optimizations is enabled. Also improve our
ability to find the llvm-profdata tool on MacOS and some Linuxes.
- Issue #26359: Add the --with-optimizations configure flag.
- Issue #27952: Get Tools/scripts/fixcid.py working with the current "re"
module, avoid invalid Python backslash escapes, and fix a bug parsing
escaped C quote signs.
.
python2.7 (2.7.12-3) unstable; urgency=medium
.
* Update to 20160901 from the 2.7 branch.
- Issue #27870: A left shift of zero by a large integer no longer attempts
to allocate large amounts of memory.
- Issue #25604: Fix a minor bug in integer true division; this bug could
potentially have caused off-by-one-ulp results on platforms with
unreliable ldexp implementations.
- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory
creates not a cursor.
- Issue #10513: Fix a regression in Connection.commit(). Statements should
not be reset after a commit.
- Issue #2466: posixpath.ismount now correctly recognizes mount points which
the user does not have permission to access.
- Issue #27783: Fix possible usage of uninitialized memory in
operator.methodcaller.
- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
- In the curses module, raise an error if window.getstr() or window.instr()
is passed a negative value.
- Issue #27758: Fix possible integer overflow in the _csv module for large
record lengths.
- Issue #23369: Fixed possible integer overflow in
_json.encode_basestring_ascii.
- Issue #27714: text_textview and test_autocomplete now pass when re-run
in the same process. This occurs when test_idle fails when run with the
-w option but without -jn. Fix warning from test_config.
- Issue #27452: add line counter and crc to IDLE configHandler test dump.
.
python2.7 (2.7.12-2) unstable; urgency=medium
.
* Update to 20160804 from the 2.7 branch.
- Issue #27473: Fixed possible integer overflow in str, unicode and
bytearray concatenations and repetitions.
- Issue #27507: Add integer overflow check in bytearray.extend().
- Issue #27581: Don't rely on wrapping for overflow check in
PySequence_Tuple().
- Issue #23908: os functions, open() and the io.FileIO constructor now
reject unicode paths with embedded null character on Windows instead of
silently truncating them.
- Issue #27514: Make having too many statically nested blocks a SyntaxError
instead of SystemError.
- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
HTTP_PROXY variable when REQUEST_METHOD environment is set, which
indicates that the script is in CGI mode.
- Issue #27130: In the "zlib" module, fix handling of large buffers
(typically 2 or 4 GiB). Previously, inputs were limited to 2 GiB, and
compression and decompression operations did not properly handle results
of 2 or 4 GiB.
- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
an error about unclean EOF.
- Issue #27466: Change time format returned by http.cookie.time2netscape,
confirming the netscape cookie format and making it consistent with
documentation.
- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong
mode no longer break tracing, trace_vinfo() now always returns a list of
pairs of strings.
- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and
ispunct().
- Issue #22636: Avoid shell injection problems with
ctypes.util.find_library().
- Issue #27330: Fixed possible leaks in the ctypes module.
- Issue #27238: Got rid of bare excepts in the turtle module.
- Issue #26386: Fixed ttk.TreeView selection operations with item id's
containing spaces.
- Issue #25455: Fixed a crash in repr of cElementTree.Element with
recursive tag.
- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor
names.
- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
Previously, when IDLE was started from a console or by import, a cascade
of warnings was emitted.
- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the
resulting links to use lowercase.
- Issue #27369: In test_pyexpat, avoid testing an error message detail that
changed in Expat 2.2.0.
* Fix issue 27239, idlelib: macos _tk_type shall always be "other".
Closes: #830686.
* Ignore the winreg module for the set of minimal modules. Closes: #830573.
.
python2.7 (2.7.12-1) unstable; urgency=medium
.
* Python 2.7.12 release.
.
python2.7 (2.7.12~rc1-2) unstable; urgency=medium
.
* Extend debian/copyright to the files shipped in the wheel files.
.
python2.7 (2.7.12~rc1-1) unstable; urgency=medium
.
* Python 2.7.12 release candidate 1.
- Issue #20041: Fixed TypeError when frame.f_trace is set to None.
- Issue #25702: A --with-lto configure option has been added that will
enable link time optimizations at build time during a make profile-opt.
Some compilers and toolchains are known to not produce stable code when
using LTO, be sure to test things thoroughly before relying on it.
It can provide a few % speed up over profile-opt alone.
- Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283.
- Fix TLS stripping vulnerability in smptlib, CVE-2016-0772.
- Issue #7356: ctypes.util: Make parsing of ldconfig output independent of
the locale.
- Issue #25738: Stop BaseHTTPServer.BaseHTTPRequestHandler.send_error()
from sending a message body for 205 Reset Content. Also, don't send the
Content-Type header field in responses that don't have a body.
- Issue #21313: Fix the "platform" module to tolerate when sys.version
contains truncated build information.
- Issue #27211: Fix possible memory corruption in io.IOBase.readline().
- Issue #5124: Paste with text selected now replaces the selection on X11.
This matches how paste works on Windows, Mac, most modern Linux apps,
and ttk widgets.
- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory
is a private implementation of test.test_idle and tool for maintainers.
- Issue #21916: Added tests for the turtle module.
- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds.
- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove
unused and outdated icons.
.
python2.7 (2.7.11-11) unstable; urgency=medium
.
* Update to 20160602 from the 2.7 branch.
- Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with
the "N" format unit.
- Issue #27114: Fix SSLContext._load_windows_store_certs fails with
PermissionError.
- Issue #26673: When tk reports font size as 0, change to size 10.
Such fonts on Linux prevented the configuration dialog from opening.
- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.
- In the 'IDLE-console differences' section of the IDLE doc, clarify
how running with IDLE affects sys.modules and the standard streams.
- Issue #25507: Fix incorrect change in IOBinding that prevented printing.
Change also prevented saving shell window with non-ascii characters.
Augment IOBinding htest to include all major IOBinding functions.
- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION
MARK in README.txt and open this and NEWS.txt with 'ascii'.
Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'.
* Rebuild to pick up the GNU triplet change on i386 archs. Closes: #826128.
.
python2.7 (2.7.11-10) unstable; urgency=medium
.
* Update to 20160518 from the 2.7 branch.
- Issue #27039: Fixed bytearray.remove() for values greater than 127.
- Issue #14132: Fix urllib.request redirect handling when the target only
has a query string.
- Removed the requirements for the ctypes and modulefinder modules to be
compatible with earlier Python versions.
- Issue #22274: In the subprocess module, allow stderr to be redirected to
stdout even when stdout is not redirected.
- Issue #12045: Avoid duplicate execution of command in
ctypes.util._get_soname().
- Issue #26960: Backported #16270 from Python 3 to Python 2, to prevent
urllib from hanging when retrieving certain FTP files.
.
python2.7 (2.7.11-9) unstable; urgency=medium
.
* Update to 20160509 from the 2.7 branch.
- Issue #25745: Fixed leaking a userptr in curses panel destructor.
- Issue #17765: weakref.ref() no longer silently ignores keyword arguments.
- Issue #26873: xmlrpclib now raises ResponseError on unsupported type tags
instead of silently return incorrect result.
- Issue #24114: Fix an uninitialized variable in `ctypes.util`.
- Issue #26864: In urllib, change the proxy bypass host checking against
no_proxy to be case-insensitive, and to not match unrelated host names
that happen to have a bypassed hostname as a suffix.
- Issue #26804: urllib will prefer lower_case proxy environment variables
over UPPER_CASE or Mixed_Case ones.
- Issue #26837: assertSequenceEqual() now correctly outputs non-stringified
differing items. This affects assertListEqual() and assertTupleEqual().
- Issue #26822: itemgetter, attrgetter and methodcaller objects no longer
silently ignore keyword arguments.
- Issue #26657: Fix directory traversal vulnerability with SimpleHTTPServer
on Windows. This fixes a regression that was introduced in 2.7.7.
- Issue #26736: Used HTTPS for external links in the documentation if
possible.
- Issue #22359: Avoid incorrect recursive $(MAKE), and disable the rules for
running pgen when cross-compiling.
- Issue #26799: Fix python-gdb.py: don't get C types once when the Python
code is loaded, but get C types on demand. The C types can change if
python-gdb.py is loaded before the Python executable.
* Fix issue #26673, runtime error in idle3. LP: #1578927.
.
python2.7 (2.7.11-8) unstable; urgency=medium
.
* Update to 20160417 from the 2.7 branch.
- Issue #4806: Avoid masking the original TypeError exception when using
star (*) unpacking and the exception was raised from a generator.
- Issue #26659: Make the builtin slice type support cycle collection.
- Issue #26718: super.__init__ no longer leaks memory if called multiple
times. NOTE: A direct call of super.__init__ is not endorsed!
- Issue #13410: Fixed a bug in PyUnicode_Format where it failed to properly
ignore errors from a __int__() method.
- Issue #19377: Add .svg to mimetypes.types_map.
- Issue #13952: Add .csv to mimetypes.types_map.
- Issue #16329: Add .webm to mimetypes.types_map.
- Issue #23735: Handle terminal resizing with Readline 6.3+ by installing
our own SIGWINCH handler.
- Issue #6953: Rework the Readline module documentation to group related
functions together, and add more details such as what underlying Readline
functions and variables are accessed.
* Fix gdb auto-load symlink for the python2.7 binary. LP: #1571198.
.
python2.7 (2.7.11-7) unstable; urgency=medium
.
* Update to 20160330 from the 2.7 branch.
.
python2.7 (2.7.11-6) unstable; urgency=medium
.
* Update to 20160323 from the 2.7 branch.
* Always build _math.o with -fPIC.
.
python2.7 (2.7.11-5) unstable; urgency=medium
.
* Update to 20160319, taken from the 2.7 release branch.
* Update symbols files.
* Don't run test_signal on alpha, hanging on the buildd.
.
python2.7 (2.7.11-4) unstable; urgency=medium
.
* Update to 20160222, taken from the 2.7 release branch.
.
python2.7 (2.7.11-3) unstable; urgency=medium
.
* Revert patches concerning issue #22995.
.
python2.7 (2.7.11-2) unstable; urgency=medium
.
* Disable LTO on ppc64, ppc64el and s390x.
* Don't run the test_signal tests on alpha.
.
python2.7 (2.7.11-1) unstable; urgency=medium
.
* Python 2.7.11 release.
* Don't run the test_cpickle test, causes other tests to fail.
See issue 25698.
* Fix building architecture independent packages only. Closes: #806868.
* Don't ship menu files anymore, just desktop files.
* d/p/fix-sslv3-test.diff: properly handle Ubuntu's openssl having OP_NO_SSLv3
forced on by default (Marc Deslauriers).
* Update symbols files.
.
python2.7 (2.7.10-5) unstable; urgency=medium
.
* Update to 20151010, taken from the 2.7 release branch.
* Adjust setting DH_COMPAT for dh_movefiles with updated debhelper supporting
globbing of arguments. Closes: #800301.
* pydoc: use the pager command if available. Closes: #799555.
.
python2.7 (2.7.10-4) unstable; urgency=medium
.
* Remove byte-code for _sysconfigdata_d.py in /usr/lib/python2.7.
Closes: #793528.
* Make derivatives builds the same as the parent distro. Closes: #797667.
.
python2.7 (2.7.10-3) unstable; urgency=medium
.
* Revert issue #24134 changes, taken from the branch.
* Add hint to install the idle package when trying to run the turtle demo.
Closes: #788621.
.
python2.7 (2.7.10-2) unstable; urgency=medium
.
* Cherry-pick some changes from the 2.7 branch:
- Issue #24264: Fixed buffer overflow in the imageop module.
- Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
- Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port
value in the host header was set to "None".
- Issue #4753, backport computed gotos.
* Configure --with-computed-gotos.
* Make the build reproducible (Jérémy Bobbio). Closes: #786978.
- Pass time of latest debian/changelog entry to sphinx via SPHINXOPTS.
- Do not store a timestamps when compressing devhelp.
* Pass DATE and TIME macros matching the current debian/changelog entry
when building getbuildinfo.o.
* Don't run the test_io test on sparc.
.
python2.7 (2.7.10-1) unstable; urgency=medium
.
* Python 2.7.10 release.
.
python2.7 (2.7.10~rc1-1) unstable; urgency=medium
.
* Python 2.7.10 release candidate 1.
* Re-enable running the tests, re-enable the pgo/lto build.
.
python2.7 (2.7.9-5) unstable; urgency=medium
.
* Update to 20150507, taken from the 2.7 release branch.
- Issue #24134: assertRaises() and assertRaisesRegexp() checks are not
longer successful if the callable is None.
- Issues #24099, #24100, and #24101: Fix free-after-use bug in heapq's
siftup and siftdown functions.
- Backport collections.deque fixes from Python 3.5. Prevents reentrant
badness during deletion by deferring the decref until the container has
been restored to a consistent state.
- Issue #24125: Saved error's line and column numbers when an error
occured. Fixes python-docutils. Closes: #784270.
- Issue #23842, SystemError in os.minor, os.major. Closes: #782081.
.
python2.7 (2.7.9-4) unstable; urgency=medium
.
* Fix installation of the optimized interpreter. Closes: #766877.
.
python2.7 (2.7.9-3) unstable; urgency=medium
.
* Update to 20150429, taken from the 2.7 release branch.
- Issue #23629: Fix the default __sizeof__ implementation for
variable-sized objects.
- Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
- Issue #23838: linecache now clears the cache and returns an empty
result on MemoryError.
- Issue #23742: ntpath.expandvars() no longer loses unbalanced single
quotes.
- Issue #21802: The reader in BufferedRWPair now is closed even when
closing writer failed in BufferedRWPair.close().
- Issue #23671: string.Template now allows to specify the "self" parameter
as keyword argument. string.Formatter now allows to specify the "self"
and the "format_string" parameters as keyword arguments.
- Issue #21560: An attempt to write a data of wrong type no longer cause
GzipFile corruption.
- Issue #23647: Increase imaplib's MAXLINE to accommodate modern mailbox
sizes.
- Issue #23539: If body is None, http.client.HTTPConnection.request now
sets Content-Length to 0 for PUT, POST, and PATCH headers to avoid
411 errors from some web servers.
- Issue #23136: _strptime now uniformly handles all days in week 0,
including Dec 30 of previous year.
- Issue #23138: Fixed parsing cookies with absent keys or values in
cookiejar.
- Issue #23051: multiprocessing.Pool methods imap() and imap_unordered()
now handle exceptions raised by an iterator.
- Issue #22928: Disabled HTTP header injections in httplib.
- Issue #23615: Module tarfile now can be reloaded with imp.reload().
- Issue #23799: Added test.test_support.start_threads() for running and
cleaning up multiple threads.
- Issue #22390: test.regrtest now emits a warning if temporary files or
directories are left after running a test.
- Issue #23583: Added tests for standard IO streams in IDLE.
- Issue #23583: Fixed writing unicode to standard output stream in IDLE.
- Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import
time.
- Issue #23476: In the ssl module, enable OpenSSL's
X509_V_FLAG_TRUSTED_FIRST flag on certificate stores when it is available.
- Issue #23576: Avoid stalling in SSL reads when EOF has been reached
in the SSL layer but the underlying connection hasn't been closed.
- Issue #23504: Added an __all__ to the types module.
- Issue #23367: Fix possible overflows in the unicodedata module.
- Issue #23055: Fixed a buffer overflow in PyUnicode_FromFormatV.
- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
- Issue #23458: On POSIX, the file descriptor kept open by os.urandom() is
now set to non inheritable.
- Issue #22113: struct.pack_into() now supports new buffer protocol (in
particular accepts writable memoryview).
- Issues #814253, #9179: Warnings now are raised when group references and
conditional group references are used in lookbehind assertions in regular
expressions.
- Issue #23215: Multibyte codecs with custom error handlers that ignores
errors consumed too much memory and raised SystemError or MemoryError.
- Issue #5700: io.FileIO() called flush() after closing the file.
flush() was not called in close() if closefd=False.
- Issue #21548: Fix pydoc.synopsis() and pydoc.apropos() on modules with
empty docstrings.
- Issue #22885: Fixed arbitrary code execution vulnerability in the dumbdbm
module.
- Issue #23481: Remove RC4 from the SSL module's default cipher list.
- Issue #21849: Fixed xmlrpclib serialization of non-ASCII unicode strings
in the multiprocessing module.
- Issue #21840: Fixed expanding unicode variables of form $var in
posixpath.expandvars(). Fixed all os.path implementations on
unicode-disabled builds.
- Issue #23363: Fix possible overflow in itertools.permutations.
- Issue #23364: Fix possible overflow in itertools.product.
- Issue #23365: Fixed possible integer overflow in
itertools.combinations_with_replacement.
- Issue #23366: Fixed possible integer overflow in itertools.combinations.
- Issue #23191: fnmatch functions that use caching are now threadsafe.
- Issue #18518: timeit now rejects statements which can't be compiled
outside a function or a loop (e.g. "return" or "break").
- Issue #19996: Make :mod:`httplib` ignore headers with no name rather than
assuming the body has started.
- Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the
ssl module.
- Issue #23248: Update ssl error codes from latest OpenSSL git master.
- Issue #23098: 64-bit dev_t is now supported in the os module.
- Issue #23063: In the disutils' check command, fix parsing of reST with
code or code-block directives.
- Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
availability of the function is checked during the compilation.
- Backport the context argument to ftplib.FTP_TLS.
- Issue #23111: Maximize compatibility in protocol versions of
ftplib.FTP_TLS.
- Issue #23112: Fix SimpleHTTPServer to correctly carry the query string
and fragment when it redirects to add a trailing slash.
- Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls
getentropy(), instead of reading /dev/urandom, to get pseudo-random bytes.
- Issue #23093: In the io, module allow more operations to work on detached
streams.
- Issue #23071: Added missing names to codecs.__all__.
- Issue #23016: A warning no longer produces an AttributeError when
sys.stderr is None.
- Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.
- Issue #22609: Constructors and update methods of mapping classes in the
collections module now accept the self keyword argument.
- Issue #23006: Improve the documentation and indexing of dict.__missing__.
Add an entry in the language datamodel special methods section.
Revise and index its discussion in the stdtypes mapping/dict section.
Backport the code example from 3.4.
- Issue #21514: The documentation of the json module now refers to new
JSON RFC 7159 instead of obsoleted RFC 4627.
- Issue #6639: Module-level turtle functions no longer raise TclError after
closing the window.
- Issue #22314: pydoc now works when the LINES environment variable is set.
- Issue #18905: "pydoc -p 0" now outputs actually used port.
- Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
values (like 0.9.8zc).
- Issue #23392: Added tests for marshal C API that works with FILE*.
- Issue #18982: Add tests for CLI of the calendar module.
- Issue #19949: The test_xpickle test now tests compatibility with installed
Python 2.7 and reports skipped tests.
- Issue #11578: Backported test for the timeit module.
- Issue #22943: bsddb tests are locale independend now.
- Issue #20577: Configuration of the max line length for the FormatParagraph
extension has been moved from the General tab of the Idle preferences
dialog to the FormatParagraph tab of the Config Extensions dialog.
- Issue #16893: Update Idle doc chapter to match current Idle and add new
information.
- Issue #23180: Rename IDLE "Windows" menu item to "Window".
- Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the
configure script.
- Issue #22079: PyType_Ready() now checks that statically allocated type has
no dynamically allocated bases.
* Re-apply the fix for issue #22079. This is now a warning instead of an
error. LP: #1426294.
* Fix issue #23842, SystemError in os.minor, os.major. LP: #1435242.
* When using GCC versions older than 4.9 for extension builds, automagically
mangle -fstack-protector-strong to -fstack-protector.
* debian/tests: Use init system agnostic "service" command instead of
upstart specific "stop". Also drop unnecessary "status" call right after
stopping apport.
* Refresh patches.
.
python2.7 (2.7.9-2) unstable; urgency=medium
.
* python2.7-minimal: Make Pre-Depends mangling more robust. Closes: #779294.
* python2.7-doc: Depend on libjs-underscore. LP: #1424538.
* Remove LTO sections from the static libraries. Closes: #698395.
.
python2.7 (2.7.9-1) unstable; urgency=medium
.
* Python 2.7.9 release.
.
python2.7 (2.7.9~rc1-2) unstable; urgency=medium
.
* Update to 20141209, taken from the 2.7 release repository.
- Issue #22959: Remove the *check_hostname* parameter of
httplib.HTTPSConnection. The *context* parameter should be used instead.
- Issue #16043: Add a default limit for the amount of data
xmlrpclib.gzip_decode will return. This resolves CVE-2013-1753.
Closes: #742929.
- Issue #16042: CVE-2013-1752: smtplib: Limit amount of data read by
limiting the call to readline(). Closes: #742929.
- Issue #16041: In poplib, limit maximum line length read from the server
to prevent CVE-2013-1752. Closes: #742929.
- Issue #22960: Add a context argument to xmlrpclib.ServerProxy.
- Issue #22935: Allow the ssl module to be compiled if openssl
doesn't support SSL 3.
* Add locales to autopkg test dependencies as in 3.4.
* Remove Demo/scripts/newslist.* from the examples package, not
distributable, will get removed in 2.7.9~rc2 sources. See issue #12987.
* Let ensurepip always use a temporary directory for installations.
.
python2.7 (2.7.9~rc1-1) unstable; urgency=medium
.
* Python 2.7.9 release candidate 1.
- Testsuite updates.
- Issue #16056: Rename test methods to avoid conflict.
- Issue #20351: Add examples for csv.DictReader and csv.DictWriter.
- PEP 476: verify certificates by default (#22417).
- Give urllib.urlopen a context parameter (closes #22927).
- Allow hostname to be passed to SSLContext even if OpenSSL doesn't
support SNI (closes #22921).
- Allow passing cert/ssl information to urllib2.urlopen and
httplib.HTTPSConnection (backport of issues #9003 and #22366).
* Let libpython2.7-stdlib break python-urllib3 (<< 1.9.1-3). Closes: #770157.
* Ignore the test_threading_local test failure in the Debian CI environment.
Succeeds even there when repeated.
* Don't pass default compiler search directories in the pkgconfig file.
Closes: #770935.
.
python2.7 (2.7.8-12) unstable; urgency=medium
.
* Update to 20141118, taken from the 2.7 branch.
- Issue #12728: Different Unicode characters having the same uppercase
but different lowercase are now matched in case-insensitive regular
expressions.
- Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian
platforms.
- Issues #814253, #9179: Group references and conditional group references
now work in lookbehind assertions in regular expressions.
- Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments.
- Issue #22787: Allow the keyfile argument of SSLContext.load_cert_chain
to be None.
- Issue #22775: Fixed unpickling of Cookie.SimpleCookie with protocol 2.
- Issue #22776: Brought excluded code into the scope of a try block in
SysLogHandler.emit().
- Issue #17381: Fixed ranges handling in case-insensitive regular
expressions.
- Issue #19329: Optimized compiling charsets in regular expressions.
- Issue #22410: Module level functions in the re module now cache compiled
locale-dependent regular expressions taking into account the locale.
- Issue #8876: distutils now falls back to copying files when hard linking
doesn't work. This allows use with special filesystems such as
VirtualBox shared folders.
- Issue #22193: Fixed integer overflow error in sys.getsizeof().
* Backport the ensurepip patch from 3.4.
* Disable ensurepip in Debian, at least for the upcoming release.
* Fix maintainer scripts for byte-code removal. Closes: #769078.
* Allow building and testing without SSLv3 support (Kurt Roeckx).
Closes: #768611.
* Let distutils.sysconfig.get_python_inc() honor the "prefix" argument.
Closes: #769720.
.
python2.7 (2.7.8-11) unstable; urgency=medium
.
* Update to 20141018, taken from the 2.7 branch.
- Issue #9351: Defaults set with set_defaults on an argparse subparser
are no longer ignored when also set on the parent parser.
- Issue #20421: Add a .version() method to SSL sockets exposing the actual
protocol version in use.
- Issue #22435: Fix a file descriptor leak when SocketServer bind fails.
- Issue #13664: GzipFile now supports non-ascii Unicode filenames.
- Issue #13096: Fixed segfault in CTypes POINTER handling of large
values.
- Issue #11694: Raise ConversionError in xdrlib as documented.
- Issue #10712: 2to3 has a new "asserts" fixer that replaces deprecated names
of unittest methods (e.g. failUnlessEqual -> assertEqual).
* Pass -ffat-lto-objects for LTO enabled builds with GCC 4.9.
.
python2.7 (2.7.8-10) unstable; urgency=medium
.
* Update to 20141007, taken from the 2.7 branch.
.
python2.7 (2.7.8-9) unstable; urgency=medium
.
* Fix refcounting error in the fix for issue #22523. Closes: #762010.
.
python2.7 (2.7.8-8) unstable; urgency=medium
.
* Update to 20141002, taken from the 2.7 branch.
* Refresh patches.
* Apply proposed patch for issue #22523. Closes: #762010.
.
python2.7 (2.7.8-7) unstable; urgency=medium
.
* Update to 20140909, taken from the 2.7 branch.
* debian/tests/testsuite{,-dbg}: Several tests fail with configured proxy
and disabled network test resources. Explicitly unset proxy variables.
See issue #22371.
.
python2.7 (2.7.8-6) unstable; urgency=medium
.
* distuils: For extension builds, always pass BASECFLAGS.
.
python2.7 (2.7.8-5) unstable; urgency=medium
.
* Build-depend on dpkg-dev (>= 1.17.11).
.
python2.7 (2.7.8-4) unstable; urgency=medium
.
* distutils: For extension builds pass the CPPFLAGS, CFLAGS, LDFLAGS
used for the python build when these flags cannot be found in the
environment.
* Don't use the system python during the build.
* Build using autotools-dev. Closes: #756772.
* Pass AR and RANLIB for lto enabled builds.
.
python2.7 (2.7.8-3) unstable; urgency=medium
.
* Call dpkg -L in the maintainer scripts with an architecture qualifier
for M-A: same packages. Closes: #736385.
* Apply the plat-linux2_mips patch for mips64 and mips64el. Closes: #755578.
.
python2.7 (2.7.8-2) unstable; urgency=medium
.
* Revert the backport of issue #1856 (avoid daemon thread problems
at shutdown). Issue #21963. Apparently ceph has issues with it.
Closes: #754341.
.
python2.7 (2.7.8-1) unstable; urgency=medium
.
* Python 2.7.8 release.
.
python2.7 (2.7.7-2) unstable; urgency=medium
.
* Re-enable the test_pydoc, test_tools, test_subprocess and test_uuid
autopkg tests.
* In the autopkg tests, make $ADTTMP accessible to the su user.
.
python2.7 (2.7.7-1) unstable; urgency=medium
.
* Python 2.7.7 release.
* Refresh patches.
* In the autopkg tests, set HOME to the temporary home directory after
the su call.
* Expect test failures in the distutils autopkg tests.
* Disable the test_solaris_enable_shared test.
.
python2.7 (2.7.7~rc1-1) unstable; urgency=medium
.
* Python 2.7.7 release candidate 1.
* Run the testsuite in a temporary home directory.
.
python2.7 (2.7.6-8) unstable; urgency=medium
.
* Set a temporary home directory for the build and the autopkg tests.
.
python2.7 (2.7.6-8) unstable; urgency=medium
.
* Update to 20140322, taken from the 2.7 branch.
* Install updated idle icons. LP: #1295969.
* Update the ssl.match_hostname backport: Change behavior of
``ssl.match_hostname()`` to follow RFC 6125, for security reasons.
It now doesn't match multiple wildcards nor wildcards inside IDN fragments.
Closes: #740255.
.
python2.7 (2.7.6-7) unstable; urgency=medium
.
* Include test data for test_imghdr test.
.
python2.7 (2.7.6-6) unstable; urgency=high
.
* Update to 20140225, taken from the 2.7 branch.
- CVE-2014-1912. Fix issue 20246, buffer overflow in socket.recvfrom_into.
* Build without ffi on or1k. Closes: #738519.
* Allow loading of extensions in the sqlite module. Closes: #739555.
* Update autopkg tests (Martin Pitt):
- Don't fail if apport is not installed.
- Call su with explicit shell, as nobody has nologin as default shell now.
- Only use $SUDO_USER if that user actually exists in the testbed.
- Drop obsolete chowning of $TMPDIR and $ADTTMP; with current autopkgtest
$TMPDIR has appropriate permissions, and $ADTTMP is not being used.
.
python2.7 (2.7.6-5) unstable; urgency=medium
.
* Update to 20140111, taken from the 2.7 branch.
* Build-depend on net-tools, required for the test_uuid test.
* Build-depend on the default Tcl/Tk.
* Add two new autopkg tests to run the failing tests.
.
python2.7 (2.7.6-4) unstable; urgency=medium
.
* Update to 20131230, taken from the 2.7 branch.
* Disable sphinx refcounting extension, removed in sphinx-1.2.
Closes: #733404.
.
python2.7 (2.7.6-3) unstable; urgency=low
.
* Update to 20131206, taken from the 2.7 branch.
* Disable the test_uuid autopkg test, hanging, missing entropy?
* Drop python dependency in libpython2.7-dbg.
* Revert patch from http://bugs.python.org/issue19352 as it completely breaks
unittest discovery on Debian/Ubuntu. LP: #1255505.
.
python2.7 (2.7.6-2) unstable; urgency=low
.
* Update to 20131121, taken from the 2.7 branch.
* Fix test support when the running kernel doesn't handle port reuse.
* Build-depend on libdb-dev (<< 1:6.0) instead of a specific db version.
.
python2.7 (2.7.6-1) unstable; urgency=low
.
* Python 2.7.6 release.
* Update to 20131119, taken from the 2.7 branch.
* For autopkg tests, only run the separate tests when defined.
* Don't run the curses autopkg test.
* Disable running the testsuite on mipsn32(el) and mips64(el),
requested by YunQiang Su. Closes: #719057.
.
python2.7 (2.7.5-8) unstable; urgency=medium
.
* Update to 20130917, taken from the 2.7 branch.
- Fix SSL module to handle NULL bytes inside subjectAltNames general
names (CVE-2013-4238). Closes: #719566.
* Don't run the curses autopkg test.
* Set Multi-Arch attributes for binary packages.
* Fix multiarch include header for sparc64. Closes: #714802, #715063.
.
python2.7 (2.7.5-7) unstable; urgency=low
.
* Update to 20130803, taken from the 2.7 branch.
* Update package descriptions (Filipus Klutiero). Closes: #715801.
* Fix multiarch include header for sparc64. Closes: #715063.
* Move removal of the sitecustomize.py file into the libpython-minimal
postrm. Closes: #709964.
.
python2.7 (2.7.5-6) unstable; urgency=low
.
* Update to 20130613, taken from the 2.7 branch.
* Refresh patches.
* Don't run consistency check for cross builds.
* Really skip byte compile of non-existing sitecustomize.py.
* Fix the multiarch header file for mips64 (YunQiang Su). Closes: #710374.
.
python2.7 (2.7.5-5) unstable; urgency=low
.
* Update to 20130602, taken from the 2.7 branch.
* Fix possible abuse of ssl.match_hostname() for denial of service
using certificates with many wildcards (CVE-2013-2099). Closes: #709066.
* Don't try to byte-compile sitecustomize.py if the target of the
symlink doesn't exist anymore. Closes: #709157.
* Handle byte compilation in python2.7{-minimal,}, byte removal in
libpython2.7{-minimal,-stdlib}. Closes: #709964.
* Backport patch to fix issue #13146, possible race conditions when writing
.pyc/.pyo files in py_compile.py (Barry Warsaw). LP: #1058884.
* Fix issue #17988, internal error in regular expression engine on 32bit
targets (closes: #710315).
.
python2.7 (2.7.5-4) unstable; urgency=low
.
* Move the libc dependency of -minimal from Depends to Pre-Depends.
Closes: #708831.
* Disable the test_io test on armel, armhf, mips, mipsel. Hangs the
buildds.
.
python2.7 (2.7.5-3) unstable; urgency=high
.
* Fix the multiarch header file for ppc64. Closes: #708641.
.
python2.7 (2.7.5-2) unstable; urgency=low
.
* Only run the _multiprocessing build check on linux targets.
.
python2.7 (2.7.5-1) unstable; urgency=low
.
* Python 2.7.5 release.
* Set the platinclude dir back to the non-multiarch include path,
where the multiarch pyconfig.h compatibility header is found.
* Fix issue #17703: Fix a regression where an illegal use of Py_DECREF()
after interpreter finalization can cause a crash.
* Issue #17754, setting LANG and LC_ALL for the compiler call in ctypes/util.
* Issue #17761, platform._parse_release_file doesn't close the
/etc/lsb-release file, and doesn't know about 'Ubuntu'.
* Fix autopkg tests.
* Re-enable lto and pgo optimized builds, accidentally disabled for the
last upload.
* more autopkg test fixes.
* Link the ctypes extension with the shared libffi library.
* Fix a distutils test with the deb install layout.
* Move lib2to3 library into libpython2.7-stdlib. Closes: #705078.
* Don't set yet any Multi-Arch: attributes in Debian.
.
python2.7 (2.7.4-2) experimental; urgency=low
.
* Idle updates:
- Issue #17657: Show full Tk version in IDLE's about dialog.
- Issue #17613: Prevent traceback when removing syntax colorizer.
- Issue #1207589: Backwards-compatibility patch for right-click menu.
- Issue #16887: Now accepts Cancel in tabify/untabify dialog box.
- Issue #14254: Now handles readline correctly across shell restarts.
- Issue #17614: No longer raises exception when quickly closing a file.
- Issue #6698: Now opens just an editor window when configured to do so.
- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
raises an exception.
- Issue #6649: Fixed missing exit status.
* Build a libpython2.7-testsuite package. LP: #301629.
* Add autopkg tests to run the installed testsuite in normal and debug
mode.
* Re-enable running the tests during the build.
* Add the io and _io modules to libpython2.7-minimal.
* Backport ssl.CertificateError as well. Closes: #626539. LP: #1166344.
* Don't ship an uncompress python man page. Closes: #705079.
.
python2.7 (2.7.4-1ubuntu4) raring; urgency=low
.
* Build a libpython2.7-testsuite package. LP: #301629.
* Add autopkg tests to run the installed testsuite in normal and debug
mode.
* Re-enable running the tests during the build.
* Idle updates:
- Issue #17657: Show full Tk version in IDLE's about dialog.
- Issue #17613: Prevent traceback when removing syntax colorizer.
- Issue #1207589: Backwards-compatibility patch for right-click menu.
- Issue #16887: Now accepts Cancel in tabify/untabify dialog box.
- Issue #14254: Now handles readline correctly across shell restarts.
- Issue #17614: No longer raises exception when quickly closing a file.
- Issue #6698: Now opens just an editor window when configured to do so.
- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
raises an exception.
- Issue #6649: Fixed missing exit status.
.
python2.7 (2.7.4-1ubuntu3) raring; urgency=low
.
* Add the io and _io modules to libpython2.7-minimal. LP: #1165172.
* Add missing import for the ssl module. LP: #1166644.
.
python2.7 (2.7.4-1ubuntu2) raring; urgency=low
.
* Backport ssl.CertificateError as well. Closes: #626539. LP: #1166344.
.
python2.7 (2.7.4-1ubuntu1) raring; urgency=low
.
* Merge with Debian; remaining changes:
- Build-depend on python:any instead of python.
.
python2.7 (2.7.4-1) experimental; urgency=low
.
* Python 2.7.4 release.
- Issue #17550: Fix the --enable-profiling configure switch.
- Issue #15801 (again): With string % formatting, relax the type check
for a mapping such that any type with a __getitem__ can be used on the
right hand side.
- Issue #17625: In IDLE, close the replace dialog after it is used.
- Issue #17531: Fix tests that thought group and user ids were always
the int type. Also, always allow -1 as a valid group and user id.
- Issue 17538: Document XML vulnerabilties
* Byte-compile files in libpython2.7-dbg.
* libpython2.7-minimal: Break earlier python2.7-minimal versions.
Closes: #704084. LP: #1157687.
* Call python with -E -S for the byte compilation.
.
python2.7 (2.7.4~rc1-4) experimental; urgency=low
.
* Fix byte-compiliation/-removal for the split-out library packages.
LP: #1160944.
.
python2.7 (2.7.4~rc1-3) experimental; urgency=low
.
* Fix webbrowser update. Closes: #703872. LP: #1159636.
.
python2.7 (2.7.4~rc1-2) experimental; urgency=low
.
* Backport webbrowser updates from 3.3. Closes: #700429.
* Build again using db-5.1 instead of db-5.3.
.
python2.7 (2.7.4~rc1-1) experimental; urgency=low
.
* Python 2.7.4 release candidate 1.
- Issue #10211: Buffer objects expose the new buffer interface internally.
- Issue #10212: cStringIO and struct.unpack support new buffer objects.
- Issue #12098: multiprocessing on Windows now starts child processes
using the same sys.flags as the current process.
- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal.
- Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or
EAGAIN, retry the select() loop instead of bailing out.
- Issue #1285086: Get rid of the refcounting hack and speed up
urllib.unquote().
- Issue #17368: Fix an off-by-one error in the Python JSON decoder
that caused a failure while decoding empty object literals when
object_pairs_hook was specified.
- Issue #17477: Update the bsddb module to pybsddb 5.3.0, supporting
db-5.x, and dropping support for db-4.1 and db-4.2.
- Issue #17192: Update the ctypes module's libffi to v3.0.13. This
specifically addresses a stack misalignment issue on x86 and issues on
some more recent platforms.
- Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
- Issue #17299: Add test coverage for cPickle with file objects
and general IO objects.
- Issue #11963: remove human verification from test_parser and
test_subprocess.
- Issue #16004: Add `make touch`.
- Issue #17047: remove doubled words in docs and docstrings
* Rework the sysconfigdata patch into something upstreamable.
.
python2.7 (2.7.3-16ubuntu2) raring; urgency=low
.
* Update to 20130315, taken from the 2.7 branch.
- Issue #1285086: Get rid of the refcounting hack and speed
up urllib.unquote().
- Issue #17368: Fix an off-by-one error in the Python JSON decoder
that caused a failure while decoding empty object literals when
object_pairs_hook was specified.
- Issue #17299: Add test coverage for cPickle with file objects and general
IO objects.
- Issue #11963: Remove human verification from test_parser and
test_subprocess.
- Issue #16004: Add `make touch`.
- Issue #17412: Update 2.7 Doc/make.bat to also use sphinx-1.0.7.
- Issue #17047: Remove doubled words in docs and docstrings.
* Revert the patch for Issue #1159051, handling corrupted gzip files
with unexpected EOF. LP: #1116079.
.
python2.7 (2.7.3-16ubuntu1) raring; urgency=low
.
* Merge with Debian; remaining changes:
- Build-depend on python:any instead of python.
* Update symbols files.
.
python2.7 (2.7.3-16) experimental; urgency=low
.
* Update to 20130308, taken from the 2.7 branch.
- Issue #10156: In the interpreter's initialization phase, unicode globals
are now initialized dynamically as needed.
- Issue #16975: Fix error handling bug in the escape-decode decoder.
- Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
interface and support all mandatory methods and properties.
- Issue #13454: Fix a crash when deleting an iterator created by
itertools.tee() if all other iterators were very advanced before.
- Issue #3754: fix typo in pthread AC_CACHE_VAL.
- Issue #17029: Let h2py search the multiarch system include directory.
- Issue #16445: Fixed potential segmentation fault when deleting an
exception message.
- Issue #17275: Corrected class name in init error messages of the
C version of BufferedWriter and BufferedRandom.
- Issue #7963: Fixed misleading error message that issued when object is
called without arguments.
- Issue #5308: Raise ValueError when marshalling too large object (a
sequence with size >= 2**31), instead of producing illegal marshal data.
- Issue #17043: The unicode-internal decoder no longer read past the end of
input buffer.
- Issue #16979: Fix error handling bugs in the unicode-escape-decode
decoder.
- Issue #17278: Fix a crash in heapq.heappush() and heapq.heappop() when
the list is being resized concurrently.
- Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR.
- Issue #14720: sqlite3: Convert datetime microseconds correctly.
- Issue #17225: JSON decoder now counts columns in the first line starting
with 1, as in other lines.
- Issue #7842: backported fix for py_compile.compile() syntax error
handling.
- Issue #13153: Tkinter functions now raise TclError instead of ValueError
when a unicode argument contains non-BMP character.
- Issue #9669: Protect re against infinite loops on zero-width matching in
non-greedy repeat.
- Issue #13169: The maximal repetition number in a regular expression
has been increased from 65534 to 2147483647 (on 32-bit platform) or
4294967294 (on 64-bit).
- Issue #11311: StringIO.readline(0) now returns an empty string
as all other file-like objects.
- Issue #16800: tempfile.gettempdir() no longer left temporary files when
the disk is full. Original patch by Amir Szekely.
- Issue #13555: cPickle now supports files larger than 2 GiB.
- Issue #17052: unittest discovery should use self.testLoader.
- Issue #4591: Uid and gid values larger than 2**31 are supported now.
- Issue #17141: random.vonmisesvariate() no more hangs for large kappas.
- Issue #17149: Fix random.vonmisesvariate to always return results in
the range [0, 2*math.pi].
- Issue #1470548: XMLGenerator now works with UTF-16 and UTF-32 encodings.
- Issue #6975: os.path.realpath() now correctly resolves multiple nested
symlinks on POSIX platforms.
- Issue #17156: pygettext.py now correctly escapes non-ascii characters.
- Issue #7358: cStringIO.StringIO now supports writing to and reading from
a stream larger than 2 GiB on 64-bit systems.
- IDLE was displaying spurious SystemExit tracebacks when running scripts
that terminated by raising SystemExit (i.e. unittest and turtledemo).
- Issue #10355: In SpooledTemporaryFile class mode and name properties and
xreadlines method now work for unrolled files. encoding and newlines
- Issue #16686: Fixed a lot of bugs in audioop module.
- Issue #17073: Fix some integer overflows in sqlite3 module.
- Issue #6083: Fix multiple segmentation faults occured when
PyArg_ParseTuple parses nested mutating sequence.
- Issue #5289: Fix ctypes.util.find_library on Solaris.
- Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an
underlying stream or a decoder produces data of an unexpected type (i.e.
when io.TextIOWrapper initialized with text stream or use bytes-to-bytes
codec).
- Issue #13994: Add compatibility alias in distutils.ccompiler for
distutils.sysconfig.customize_compiler.
- Issue #15633: httplib.HTTPResponse is now mark closed when the server
sends less than the advertised Content-Length.
- Issue #15881: Fixed atexit hook in multiprocessing.
- Issue #14340: Upgrade the embedded expat library to version 2.1.0.
- Issue #11159: SAX parser now supports unicode file names.
- Issue #6972: The zipfile module no longer overwrites files outside of
its destination path when extracting malicious zip files.
- Issue #17049: Localized calendar methods now return unicode if a locale
includes an encoding and the result string contains month or weekday (was
regression from Python 2.6).
- Issue #4844: ZipFile now raises BadZipfile when opens a ZIP file with an
incomplete "End of Central Directory" record.
- Issue #15505: `unittest.installHandler` no longer assumes SIGINT handler
is set to a callable object.
- Issue #17051: Fix a memory leak in os.path.isdir() on Windows.
- Issue #12268: The io module file object write methods no longer abort
early when a write system calls is interrupted (EINTR).
- Issue #17249: convert a test in test_capi to use unittest and reap
threads.
- We now run both test_email.py and test_email_renamed.py when running the
test_email regression test. test_email_renamed contains some tests that
test_email does not.
- Issue #17041: Fix testing when Python is configured with the
--without-doc-strings option.
- Issue #5033: Fix building of the sqlite3 extension module when the
SQLite library version has "beta" in it.
- Issue #17228: Fix building without pymalloc.
- Issue #17086: Backport the patches from the 3.3 branch to cross-build
the package.
- Issue #16406: combine the pages for uploading and registering to PyPI.
- Issue #16403: Document how distutils uses the maintainer field in
PKG-INFO.
- Issue #16695: Document how glob handles filenames starting with a dot.
- Issue #8890: Stop advertising an insecure practice by replacing uses
of the /tmp directory with better alternatives in the documentation.
- Issue #17203: add long option names to unittest discovery docs.
* python2.7-dbg, libpython2.7-dbg: Drop dependency on python.
* python2.7-dbg: Make gdb (not gdb-minimal) a recommendation.
* python2.7: Replace python2.7-minimal (<< 2.7.3-7). Closes: #702005.
* Build the _md5, _sha1, _sha256 and _sha512 extension modules.
* Fix multiarch include for AArch64.
.
python2.7 (2.7.3-15) experimental; urgency=low
.
* Update to 20130124, taken from the 2.7 branch.
- Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping"
in any mapping, not only in a Unicode string.
- Issue #11461: Fix the incremental UTF-16 decoder.
- Issue #1159051: GzipFile now raises EOFError when reading a corrupted
file with truncated header or footer.
- Issue #16992: On Windows in signal.set_wakeup_fd, validate the file
descriptor argument.
- Issue #15861: tkinter now correctly works with lists and tuples
containing strings with whitespaces, backslashes or unbalanced braces.
- Issue #10527: Use poll() instead of select() for multiprocessing pipes.
- Issue #9720: zipfile now writes correct local headers for files larger
than 4 GiB.
- Issue #16829: IDLE printing no longer fails if there are spaces or other
special characters in the file path.
- Issue #13899: \A, \Z, and \B now correctly match the A, Z, and B literals
when used inside character classes (e.g. '[\A]').
- Issue #16398: Optimize deque.rotate() so that it only moves pointers
and doesn't touch the underlying data with increfs and decrefs.
- Issue #15109: Fix regression in sqlite3's iterdump method where it would
die with an encoding error if the database contained string values
containing non-ASCII.
- Issue #15545: Fix regression in sqlite3's iterdump method where it was
failing if the connection used a row factory (such as sqlite3.Row) that
produced unsortable objects.
- Issue #16953: Fix socket module compilation on platforms with
HAVE_BROKEN_POLL.
- Issue #16836: Enable IPv6 support even if IPv6 is disabled on the
build host.
- Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py.
* Backport cross-build support from python3.3. LP: #873007.
* Add pyconfig.h compatibility headers. Closes: #695667. LP: #1094246.
.
python2.7 (2.7.3-14) experimental; urgency=low
.
* Update to 20130105, taken from the 2.7 branch.
- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
- Issue #15516: Fix a bug in PyString_FromFormat where it failed
to properly ignore errors from a __int__() method.
- Issue #16839: Fix a segfault when calling unicode() on a classic class
early in interpreter initialization.
- Issue #16761: Calling ``int()`` and ``long()`` with *base* argument only
now raises TypeError.
- Issue #16828: Fix error incorrectly raised by bz2.compress('').
LP: #1090043.
- Issue #16819: IDLE method completion now correctly works for unicode
literals.
- Issue 10527: make multiprocessing use poll() instead of select()
if available.
- Issue #16485: Now file descriptors are closed if file header patching
failed on closing an aifc file.
- Issue #12065: connect_ex() on an SSL socket now returns the original
errno when the socket's timeout expires (it used to return None).
- Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer.
- Issue #16702: test_urllib2_localnet tests now correctly ignores proxies
for localhost tests.
- Issue #16713: Fix the parsing of tel url with params using urlparse
module.
- Issue #16443: Add docstrings to regular expression match objects.
- Issue #8853: Allow port to be of type long for socket.getaddrinfo().
- Issue #16597: In buffered and text IO, call close() on the underlying
stream if invoking flush() fails.
- Issue #15701: Fix HTTPError info method call to return the headers
information.
- Issue #14958: Change IDLE systax highlighting to recognize all string
and byte literals currently supported in Python 2.7.
- Issue #15324: Fix regrtest parsing of --fromfile and --randomize options.
- Issue #16618: Add more regression tests for glob.
- Issue #13094: add "Why do lambdas defined in a loop with different values
all return the same result?" programming FAQ.
* python-config --help returns with an exit value 0. LP: #1093860.
* Update package description for the -dbg packages. Closes: #696616.
.
python2.7 (2.7.3-13) experimental; urgency=low
.
* Update to 20121220, taken from the 2.7 branch.
- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
- Issue #16298: In HTTPResponse.read(), close the socket when there is no
Content-Length and the incoming stream is finished.
* Filter out -D_FORTIFY_SOURCE for the debug builds. Meaningless.
* Install the _sysconfigdata.py and python-config.sh from both shared
builds, but don't link extensions against the shared python library.
Closes: #695979.
* Fix python2.7-dbg-config symlink. LP: #1091615.
* During purge, check for existance of /etc/python2.7 before trying
to remove it. Closes: #696023.
* python2.7-dev, libpython2.7-dev: Drop the dependency on libssl-dev.
* debian/patches/sys-multiarch.diff: Expose multiarch tuple as
sys._multiarch (Barry Warsaw). Closes: #695958.
Note: Usage of sysconfig.get_config_var('MULTIARCH') is preferred.
.
python2.7 (2.7.3-12) experimental; urgency=low
.
* Fix typo in pkgconfig file. Closes: #695671, LP: #1088988.
.
python2.7 (2.7.3-11) experimental; urgency=low
.
* Update to 20121210, taken from the 2.7 branch.
- Issue #16602: When a weakref's target was part of a long deallocation
chain, the object could remain reachable through its weakref even though
its refcount had dropped to zero.
- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread.
- Issue #16248: Disable code execution from the user's home directory by
tkinter when the -E flag is passed to Python. Patch by Zachary Ware.
- Issue #16628: Fix a memory leak in ctypes.resize().
- Issue #13614: Fix setup.py register failure with invalid rst in
description.
- Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
- Issue #16573: In 2to3, treat enumerate() like a consuming call, so
superfluous list() calls aren't added to filter(), map(), and zip()
which are directly passed enumerate().
- Issue #16476: Fix json.tool to avoid including trailing whitespace.
- Issue #16549: Add tests for json.tools.
- Issue #15990: Improve argument/parameter documentation.
* Use _sysconfigdata.py in distutils.sysconfig.
* Fix distutils.sysconfig.get_{config_h,makefile}_filename for multiarch.
* Backport ssl.match_hostname from Python3. Closes: #626539.
.
python2.7 (2.7.3-10) experimental; urgency=low
.
* Update to 20121128, taken from the 2.7 branch.
- Issue #9011: Fix hacky AST code that modified the CST when compiling
a negated numeric literal.
- Issue #16306: Fix multiple error messages when unknown command line
parameters where passed to the interpreter.
- Issue #15379: Fix passing of non-BMP characters as integers for the
charmap decoder (already working as unicode strings).
- Issue #16453: Fix equality testing of dead weakref objects.
- Issue #9535: Fix pending signals that have been received but not yet
handled by Python to not persist after os.fork() in the child process.
- Issue #15001: fix segfault on "del sys.modules['__main__']".
- Issue #5057: the peepholer no longer optimizes subscription on unicode
literals (e.g. u'foo'[0]) in order to produce compatible pyc files
between narrow and wide builds.
- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5)
now raises an error.
- Issue #14700: Fix buggy overflow checks for large width and precision
in string formatting operations.
- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
received a nonempty dict from the constructor.
- Issue #6074: Ensure cached bytecode files can always be updated by the
user that created them, even when the source file is read-only.
- Issue #14783: Improve int() and long() docstrings and switch docstrings
for unicode(), slice(), range(), and xrange() to use multi-line
signatures.
- Issue #16030: Fix overflow bug in computing the `repr` of an xrange
object with large start, step or length.
- Issue #16029: Fix overflow bug occurring when pickling xranges with large
start, step or length.
- Issue #16037: Limit httplib's _read_status() function to work around
broken HTTP servers and reduce memory usage (backport of a 3.2 fix).
- Issue #13992: The trashcan mechanism is now thread-safe. This eliminates
sporadic crashes in multi-thread programs when several long deallocator
chains ran concurrently and involved subclasses of built-in container
types.
- Issue #15801: Make sure mappings passed to '%' formatting are actually
subscriptable.
- Issue #15604: Update uses of PyObject_IsTrue() to check for and handle
errors correctly.
- Issue #15897: zipimport.c doesn't check return value of fseek().
- Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
- Issue #15033: Fix the exit status bug when modules invoked using
-m switch, return the proper failure return value (1).
- Issue #1160: Fix compiling large regular expressions on UCS2 builds.
- Issue #14313: zipfile now raises NotImplementedError when the compression
type is unknown.
- Issue #16408: Fix file descriptors not being closed in error conditions
in the zipfile module.
- Issue #16327: The subprocess module no longer leaks file descriptors
used for stdin/stdout/stderr pipes to the child when fork() fails.
- Issue #14396: Handle the odd rare case of waitpid returning 0 when not
expected in subprocess.Popen.wait().
- Issue #16411: Fix a bug where zlib.decompressobj().flush() might try
to access previously-freed memory.
- Issue #16350: zlib.decompressobj().decompress() now accumulates data from
successive calls after EOF in unused_data, instead of only saving the
argument to the last call. decompressobj().flush() now correctly sets
unused_data and unconsumed_tail. A bug in the handling of MemoryError
when setting the unconsumed_tail attribute has also been fixed.
- Issue #12759: sre_parse now raises a proper error when the name
of the group is missing.
- Issue #16152: fix tokenize to ignore whitespace at the end of the code
when no newline is found.
- Issue #1207589: Add Cut/Copy/Paste items to IDLE right click
Context Menu.
- Issue #16230: Fix a crash in select.select() when one the lists changes
size while iterated on.
- Issue #16228: Fix a crash in the json module where a list changes size
while it is being encoded.
- Issue #14897: Enhance error messages of struct.pack and struct.pack_into.
- Issue #12890: cgitb no longer prints spurious <p> tags in text
mode when the logdir option is specified.
- Issue #14398: Fix size truncation and overflow bugs in the bz2 module.
- Issue #5148: Ignore 'U' in mode given to gzip.open() and gzip.GzipFile().
- Issue #16220: wsgiref now always calls close() on an iterable response.
- Issue #16461: Wave library should be able to deal with 4GB wav files,
and sample rate of 44100 Hz.
- Issue #16176: Properly identify Windows 8 via platform.platform().
- Issue #15756: subprocess.poll() now properly handles errno.ECHILD to
return a returncode of 0 when the child has already exited or cannot
be waited on.
- Issue #12376: Pass on parameters in TextTestResult.__init__ super call.
- Issue #15222: Insert blank line after each message in mbox mailboxes.
- Issue #16013: Fix CSV Reader parsing issue with ending quote characters.
- Issue #15421: fix an OverflowError in Calendar.itermonthdates() after
datetime.MAXYEAR.
- Issue #15970: xml.etree.ElementTree now serializes correctly the
empty HTML elements 'meta' and 'param'.
- Issue #15676: Now "mmap" check for empty files before doing the
offset check.
- Issue #15340: Fix importing the random module when /dev/urandom cannot
be opened. This was a regression caused by the hash randomization patch.
- Issue #15841: The readable(), writable() and seekable() methods of
io.BytesIO and io.StringIO objects now raise ValueError when the object
has been closed.
- Issue #16112: platform.architecture does not correctly escape argument to
/usr/bin/file.
- Issue #12776,#11839: call argparse type function (specified by
add_argument) only once. Before, the type function was called twice in
the case where the default was specified and the argument was given as
well. This was especially problematic for the FileType type, as a
default file would always be opened, even if a file argument was
specified on the command line.
- Issue #15906: Fix a regression in argparse caused by the preceding change,
when action='append', type='str' and default=[].
- Issue #13370: Ensure that ctypes works on Mac OS X when Python is
compiled using the clang compiler
- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
- Issue #15199: Fix JavaScript's default MIME type to
application/javascript.
- Issue #15477: In cmath and math modules, add workaround for platforms
whose system-supplied log1p function doesn't respect signs of zeros.
- Issue #15908: Fix misbehaviour of the sha1 module when called on data
larger than 2**32 bytes.
- Issue #15910: Fix misbehaviour of _md5 and sha1 modules when "updating"
on data larger than 2**32 bytes.
- Fix the leak of a dict in the time module when used in an embedded
interpreter that is repeatedly initialized and shutdown and reinitialized.
- Issue #12268: File readline, readlines and read or readall methods
no longer lose data when an underlying read system call is interrupted
within an io module object. IOError is no longer raised due to a read
system call returning EINTR from within these methods.
- Issue #16012: Fix a regression in pyexpat. The parser's UseForeignDTD()
method doesn't require an argument again.
- Issue #16559: Add more tests for the json module, including some from the
official test suite at json.org.
- Issue #16274: Fix test_asyncore on Solaris.
- Issue #15040: Close files in mailbox tests for PyPy compatibility.
- Issue #15802: Fix test logic in TestMaildir.test_create_tmp.
- Issue #15765: Extend a previous fix to Solaris and OpenBSD for quirky
getcwd() behaviour (issue #9185) to NetBSD as well.
- Issue #15615: Add some tests for the json module's handling of invalid
input data.
- Issue #15923: fix a mistake in asdl_c.py that resulted in a TypeError
after 2801bf875a24 (see #15801).
- Issue #11715: Fix multiarch detection without having Debian development
tools (dpkg-dev) installed.
- Issue #15819: Make sure we can build Python out-of-tree from a readonly
source directory. (Somewhat related to Issue #9860.)
- Issue #15822: Ensure 2to3 grammar pickles are properly installed.
- Issue #13301: use ast.literal_eval() instead of eval()
in Tools/i18n/msgfmt.py.
- Issue #16400: Update the description of which versions of a given package
PyPI displays.
- Issue #15677: Document that zlib and gzip accept a compression level
of 0 to mean 'no compression'.
- Issue #8040: added a version switcher to the documentation.
- Issue #16115: Improve subprocess.Popen() documentation around args,
shell, and executable arguments.
- Issue #15979: Improve timeit documentation.
- Issue #16036: Improve documentation of built-in int()'s signature and
arguments.
- Issue #15935: Clarification of argparse docs, re: add_argument() type and
default arguments.
- Issue #13769: Document the effect of ensure_ascii to the return type
of JSON decoding functions.
- Issue #14880: Fix kwargs notation in csv.reader,
.writer & .register_dialect.
- Issue #14674: Add a discussion of the json module's standard compliance.
* Clarify location of the gdbinit file. LP: #975676.
* Fix traceback for missing distutils wininst .exe files. LP: #1081155.
* Backport python3.3 multiarch packaging changes (Riku Voipio), and fix
multiarch issues discovered after the backport.
Closes: #683755.
* Use a shell implementation for the python-config script.
.
python2.7 (2.7.3-5) unstable; urgency=low
.
* Enable verbose build for the sharedmods target.
* Fix issue #15847: allow args to be a tuple in parse_args. Closes: #686583.
* Fix issue #15340: Fix importing the random module when /dev/urandom cannot
be opened. Regression caused by the hash randomization patch.
* Don't use `-n' anymore to start idle in the desktop/menu files, not
needed anymore for multiseat installations.
.
python2.7 (2.7.3-4) unstable; urgency=low
.
* Follwup for issue #9374. Restore the removed attributes in the
urlparse module.
* Update symbols files.
* Disable test_subprocess on the Hurd buildds.
* Call dh_movefiles with --srcdir. Closes: #685543.
.
python2.7 (2.7.3-3) unstable; urgency=low
.
* Update to 20120814, taken from the 2.7 branch. Posix relevant patches:
- Issue #15041: Update "see also" list in tkinter documentation.
- Issue #14579: Fix error handling bug in the utf-16 decoder.
- Issue #15368: An issue that caused bytecode generation to be
non-deterministic when using randomized hashing (-R) has been fixed.
- Issue #15567: Fix NameError when running threading._test
- Issue #15424: Add a __sizeof__ implementation for array objects.
- Issue #13052: Fix IDLE crashing when replace string in Search/Replace
dialog ended with '\'.
- Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo()
emulation code.
- Issue #9803: Don't close IDLE on saving if breakpoint is open.
- Issue #12288: Consider '0' and '0.0' as valid initialvalue
for tkinter SimpleDialog.
- Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
- Issue #15469: Add a __sizeof__ implementation for deque objects.
- Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
- Issue #15512: Add a __sizeof__ implementation for parser.
- Issue #15402: An issue in the struct module that caused sys.getsizeof to
return incorrect results for struct.Struct instances has been fixed.
- Issue #15232: when mangle_from is True, email.Generator now correctly
mangles lines that start with 'From ' that occur in a MIME preamble
or epilog.
- Issue #13922: argparse no longer incorrectly strips '--'s that appear
after the first one.
- Issue #12353: argparse now correctly handles null argument values.
- Issue #14635: telnetlib will use poll() rather than select() when possible
to avoid failing due to the select() file descriptor limit.
- Issue #6056: Make multiprocessing use setblocking(True) on the
sockets it uses.
- Issue #15630: Add an example for "continue" stmt in the tutorial.
- Issue #15250: Document that filecmp.dircmp compares files shallowly.
* Fortified build.
* Python/import.c: Don't export isdir().
* Modules/socketmodule.c: Don't export netdb_lock.
* Add breaks for vim-{nox,gtk,gnome,athena}. Closes: #682034.
* Don't ship python2.pc, should be shipped with python-dev instead.
Closes: #684612.
.
python2.7 (2.7.3-2) unstable; urgency=low
.
* Update to 20120713, taken from the 2.7 branch.
- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
return the proper failure return value (1).
- Issue #12268: File readline, readlines and read() methods no longer lose
data when an underlying read system call is interrupted. IOError is no
longer raised due to a read system call returning EINTR from within these
methods.
- Issue #13512: Create ~/.pypirc securely (CVE-2011-4944).
- Issue #7719: Make distutils ignore ``.nfs*`` files instead of choking
later on.
- Issue #10053: Don't close FDs when FileIO.__init__ fails.
- Issue #15247: FileIO now raises an error when given a file descriptor
pointing to a directory.
- Issue #14591: Fix bug in Random.jumpahead that could produce an invalid
Mersenne Twister state on 64-bit machines.
- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox
files on flush().
- Issue #15219: Fix a reference leak when hashlib.new() is called with
invalid parameters.
- Issue #9559: If messages were only added, a new file is no longer
created and renamed over the old file when flush() is called on an
mbox, MMDF or Babyl mailbox.
- Issue #14653: email.utils.mktime_tz() no longer relies on system
mktime() when timezone offest is supplied.
- Issue #15101: Make pool finalizer avoid joining current thread.
- Issue #15054: A bug in tokenize.tokenize that caused string literals
with 'b' and 'br' prefixes to be incorrectly tokenized has been fixed.
- Issue #15036: Mailbox no longer throws an error if a flush is done
between operations when removing or changing multiple items in mbox,
MMDF, or Babyl mailboxes.
- Issue #15043: test_gdb is now skipped entirely if gdb security settings
block loading of the gdb hooks
- Issue #13557: Clarify effect of giving two different namespaces to exec or
execfile().
* Don't build the _hashlib and _ssl extensions as a builtin, but as
extensions. Closes: #680930.
* Backport issue #13150: sysconfig no longer parses the Makefile and config.h
files when imported, instead doing it at build time. This makes importing
sysconfig faster and reduces Python startup time by 20%.
* python2.7: Add a break for python-virtualenv (<< 1.7.1.2-2~).
* Don't run the test_gdb test on mips/mipsel, not even in debug mode.
* For lto builds, use -g instead of -g1; filter out lto flags in the
installed Makefile. Closes: #681348.
.
python2.7 (2.7.3-1) unstable; urgency=low
.
* Python 2.7.3 release.
* Update to 20120615, taken from the 2.7 branch.
* The wininst-* files cannot be built within Debian from the included
sources, needing a zlib mingw build, which the zlib maintainer isn't
going to provide. Closes: #639407.
* Let pydoc handle dist-packages the same as site-packages.
Closes: #671021.
* python2.7-doc: Fix underscore.js symlink. Closes: #671795, #676339.
* Do not italicize punctuation in python(1) manual page (Matt Kraai).
Closes: #579269.
* Build _heapq as a builtin (and move it to -minimal).
.
python2.7 (2.7.3~rc2-2.1) unstable; urgency=low
.
* Non-maintainer upload (with maintainer's permission).
* Disable testsuite on GNU/kFreeBSD. (Closes: #669281)
.
python2.7 (2.7.3~rc2-2) unstable; urgency=low
.
* Use xdg-open/gvfs-open in Lib/webbrowser.py (Michael Vogt).
LP: #971311.
* Add a paragraph about python-foo-dbg packages to README.debug.
LP: #872050.
* Disable some tests (no feedback from porters):
- test_socket on hurd-i386.
- test_io on amd64.
- test_signal on kfreebsd-*. Closes: #654783.
- test_threading on sparc.
* Tighten build dependency on libexpat-dev. Closes: #665346.
* Build-depend on db-5.1, don't care about testsuite regressions on
some esoteric ports. If packages rely on threaded applications or
transactions, please use the python-bsddb3 package.
Closes: #621374.
* Don't ship the python2 and python2-config symlinks, move these
to the python-minimal and python-dev packages. Closes: #663874.
* Remove PVER-doc.doc-base.PVER-doc.in. Closes: #656763.
* Update symbols files.
* Avoid runtime path for the sqlite extension.
* CVE-2011-4944, distutils creates ~/.pypirc insecurely. Closes: #650555.
* Fix issue #14505, file descriptor leak when deallocating file objects
created with PyFile_FromString(). Closes: #664529.
.
python2.7 (2.7.3~rc2-1) unstable; urgency=low
.
* Python 2.7.3 release candidate 2.
* Build-depend on expat >= 2.1~.
.
python2.7 (2.7.3~rc1-1) unstable; urgency=low
.
* Python 2.7.3 release candidate 1.
* Update to 20120309, taken from the 2.7 branch.
* Fix dangling libpython.a symlink. Closes: #660231.
.
python2.7 (2.7.2-13) unstable; urgency=low
.
* Update to 20120120, taken from the 2.7 branch.
* Remove patch integrated upstream (issue9054.diff).
* Backport Issue #9189 to distutils/sysconfig.py as well.
Closes: #656118.
* Disable test_io on kfreebsd again. Closes: #654783.
* Disable test_bsddb3 tests on kfreebsd again.
.
python2.7 (2.7.2-12) unstable; urgency=low
.
* Run the tests with a script command which doesn't exit immediatly
when stdin is /dev/null (Colin Watson).
.
python2.7 (2.7.2-11) unstable; urgency=low
.
* Don't run the test_site tests when $HOME doesn't exist.
.
python2.7 (2.7.2-10) unstable; urgency=low
.
* Update to 20120110, taken from the 2.7 branch.
* Overwrite some lintian warnings:
- The -dbg interpreters are not unusual.
- The -gdb.py files don't need a python dependency.
- lintian can't handle a whatis entry starting with one word on the line.
* Fix test failures related to distutils debian installation layout.
* Add build-arch/build-indep targets.
* Regenerate Setup and Makefiles after correcting Setup.local.
* profiled-build.diff: Pass PY_CFLAGS instead of CFLAGS for the profiled
build.
* Pass dpkg-buildflags to the build process, and build third party
extensions with these flags.
* Add support to build using -flto (and -g1) on some architectures.
* Disable pgo builds for some architectures (for now, keep just
amd64 armel armhf i386 powerpc ppc64).
* Build-depend on libgdbm-dev to build and run the gdbm tests.
* Build-depend on xvfb to run the tkinter tests.
* python2.7: Provide python2.7-argparse and python-argparse.
* Don't run test_threading on mips/mipsel.
* Run the test_gdb test for the debug build only.
* Add build conflict to python-cxx-dev (pydoc test failures).
* Disable test_ssl certificate check, certificate expired on python.org.
.
python2.7 (2.7.2-9) unstable; urgency=low
.
* Update to 20111217, taken from the 2.7 branch.
.
python2.7 (2.7.2-8) unstable; urgency=low
.
* Update to 20111130, taken from the 2.7 branch.
* New patch, ctypes-arm, allow for ",hard-float" after libc6 in ldconfig -p
output (Loic Minier). LP: #898172.
* debian/rules: Define DPKG_VARS (Alban Browaeys). Closes: #647419).
* Add python-config man page (Johann Felix Soden). Closes: #650181).
.
python2.7 (2.7.2-7) unstable; urgency=low
.
* Adjust patches for removed Lib/plat-linux3.
* Add build conflict to libncurses5-dev, let configure search for
ncurses headers in /usr/include/ncursesw too.
.
python2.7 (2.7.2-6) unstable; urgency=low
.
* Update to 20111004, taken from the 2.7 branch.
* Use the ncursesw include directory when linking with ncursesw.
* Rebuild with libreadline not linked with libncurses*. Closes: #643816.
* Fix typos in the multiprocessing module. Closes: #643856.
.
python2.7 (2.7.2-5) unstable; urgency=low
.
* Update to 20110816, taken from the 2.7 branch.
- Fix issue#12752. LP: #824734.
* Don't run test_threading on the kfreebsd-i386 buildd.
.
python2.7 (2.7.2-4) unstable; urgency=low
.
* Update to 20110803, taken from the 2.7 branch.
* Fix build on s390x. Closes: #636033.
* Use linux-any for some build dependencies. Closes: #634809.
* Revert previous change to treat Linux 3.x as Linux 2. Use the
plat-linux3 directory instead.
.
python2.7 (2.7.2-3) unstable; urgency=low
.
* Update to 20110709, taken from the 2.7 branch.
* Make the conflict against python-profiler a versioned conflict.
* Don't run the bsddb3 tests on kfreebsd-i386.
* Don't add the bsddb multilib path, if already in the standard lib path.
* Treat Linux 3.x as Linux 2. Closes: #633015.
* Assume working semaphores on Linux, don't rely on running kernel
for the check. Closes: #631188.
.
python2.7 (2.7.2-2) unstable; urgency=low
.
* Update to 20110628, taken from the 2.7 branch.
* Add profile/pstats to the python2.7 package, update debian copyright.
* Don't run the bsddb3 tests on kfreebsd-amd64.
* Don't run the benchmark on hurd-i386.
.
python2.7 (2.7.2-1) unstable; urgency=low
.
* Python 2.7.2 release.
.
python2.7 (2.7.2~rc1-2) unstable; urgency=medium
.
* Set pyexpat dummy version string.
.
python2.7 (2.7.2~rc1-1) unstable; urgency=low
.
* Python 2.7.2 release candidate 1.
* Update libpython symbols file for m68k (Thorsten Glaser). Closes: #627458.
* Apply proposed patch for issue #670664. LP: #357067.
.
python2.7 (2.7.1-9) unstable; urgency=low
.
* Update to 20110520, taken from the 2.7 branch.
.
python2.7 (2.7.1-8) unstable; urgency=low
.
* Keep the ssl.PROTOCOL_SSLv2 module constant , just raise an exception
when trying to create a PySSL object. Closes: #623423.
.
python2.7 (2.7.1-7) unstable; urgency=low
.
* Update to 20110419, taken from the 2.7 branch.
* Build without OpenSSL v2 support. Closes: #620581.
* Force linking the curses module against libncursesw. Closes: #622064.
* Link libpython with --whole-archive. Closes: #614711.
* Re-enable running the testsuite during the build.
.
python2.7 (2.7.1-6) unstable; urgency=low
.
* Update to 20110307, taken from the 2.7 branch.
* Disable the profile guided build on ia64, sparc.
.
python2.7 (2.7.1-5) experimental; urgency=low
.
* Update to 20110224, taken from the 2.7 branch.
* Update patches.
* Re-enable profile guided build.
.
python2.7 (2.7.1-4) experimental; urgency=low
.
* Update to 20110119, taken from the 2.7 branch.
.
python2.7 (2.7.1-3) experimental; urgency=low
.
* Do not run test_multiprocessing when running the testsuite.
Fails on armel and powerpc on some buildds.
.
python2.7 (2.7.1-2) experimental; urgency=low
.
* Update to 20101222, taken from the 2.7 branch.
* Re-enable the distutils-sysconfig.diff patch, apparently
lost when updating the patches for 2.7.
* Disable the profiled builds on all architectures.
.
python2.7 (2.7.1-1) experimental; urgency=low
.
* Python 2.7.1 release.
.
python2.7 (2.7.1~rc1-2) experimental; urgency=low
.
* Move the pyconfig.h file into the -min package, required by sysconfig.
Closes: #603237.
.
python2.7 (2.7.1~rc1-1) experimental; urgency=low
.
* Python 2.7.1 release candidate 1.
* Move the Makefile into the -min package, required by sysconfig.
Closes: #603237.
.
python2.7 (2.7-9) experimental; urgency=low
.
* Update to 20101016, taken from the 2.7 branch.
.
python2.7 (2.7-8) experimental; urgency=low
.
* Disabled the profiled build on armel.
.
python2.7 (2.7-7) experimental; urgency=low
.
* Update to 20100922, taken from the 2.7 branch.
* Update GNU/Hurd patches (Pino Toscano). Closes: #597419.
.
python2.7 (2.7-6) experimental; urgency=low
.
* Update to 20100915, taken from the 2.7 branch.
- Fix issue #9729, Unconnected SSLSocket.{send,recv} raises TypeError
(Andrew Bennetts). LP: #637821.
* Add copyright information for expat, libffi and zlib. Addresses: #596276.
* Apply proposed fix for issue 9054, configure --with-system-expat.
* Provide Lib/plat-gnukfreebsd[78] (Jakub Wilk). Addresses: #593818.
.
python2.7 (2.7-5) experimental; urgency=low
.
* Update to 20100829, taken from the 2.7 branch.
* Don't configure --with-system-expat, segfaults the interpreter in the
testsuite.
* Disable more tests on hppa and hurd-i386, which fail on the buildds.
.
python2.7 (2.7-4) experimental; urgency=low
.
* Update to 20100822, taken from the 2.7 branch.
* Fixed in previous 2.7 uploads: Multiple integer overflows in audioop.c
in the audioop module (CVE-2010-1634).
* Fix some lintian warnings.
* Configure --with-system-expat.
.
python2.7 (2.7-3) experimental; urgency=low
.
* Update to 20100807, taken from the 2.7 branch.
* Move '/usr/local/.../dist-packages' before '/usr/lib/.../dist-packages'
in sys.path. Adresses: #588342.
* Fix detection of ffi.h header file. Closes: #591408.
* python2-7-dev: Depend on libssl-dev. LP: #611845.
.
python2.7 (2.7-2) experimental; urgency=low
.
* Complete debug-build.diff, some parts lost in quilt conversion.
* Move the pkgconfig file into the -dev package.
.
python2.7 (2.7-1) experimental; urgency=low
.
* Python 2.7 release.
* Update to 20100706, taken from the trunk.
* Update symbols files.
.
python2.7 (2.7~rc2-3) experimental; urgency=low
.
* Update to 20100703, taken from the trunk.
* Move the _weakrefset module, not extension to -minimal. Closes: #587568.
* Move the sysconfig module to -minimal. Closes: #586113.
* Move the shutil module to python2.6-minimal. Addresses: #587628.
.
python2.7 (2.7~rc2-2) experimental; urgency=low
.
* Fix applying plat-linux2* patches.
* Use the profiled build on armel, sparc and sparc64.
.
python2.7 (2.7~rc2-1) experimental; urgency=low
.
* Python 2.7 release candidate 2.
* Update to 20100628, taken from the trunk.
* Merge packaging changes from python2.6 (2.6.5+20100628-1).
.
python2.7 (2.7~b1-2) experimental; urgency=low
.
* Update to 20100508, taken from the trunk.
.
python2.7 (2.7~b1-1) experimental; urgency=low
.
* Python 2.7 beta1.
* Update to 20100420, taken from the trunk.
* Update libpython symbols files.
* Apply proposed patch for issue #7332, segfaults in
PyMarshal_ReadLastObjectFromFile in import_submodule.
* Don't build-depend on locales on avr32. Closes: #575144.
.
python2.7 (2.7~a4-1) experimental; urgency=low
.
* Python 2.7 alpha4.
* Update to 20100316, taken from the trunk.
* Point distutils.sysconfig to the system installation. Closes: #573363.
.
python2.7 (2.7~a3-1) experimental; urgency=low
.
* Python 2.7 alpha3.
.
python2.7 (2.7~a2-1) experimental; urgency=low
.
* Python 2.7 alpha2.
.
python2.6 (2.6.5+20100628-1) unstable; urgency=low
.
* Update to 20100614, taken from the 2.6 release branch (r82337).
* Apply plat-linux2-<arch> patch for alpha, hppa, mips, mipsel, sparc
and sparc64.
.
python2.6 (2.6.5+20100626-1) unstable; urgency=low
.
* Update to 20100614, taken from the 2.6 release branch (r82245).
* Update libpython symbols files. Closes: #587012.
* Move the logging package and the runpy module to python2.6-minimal.
.
python2.6 (2.6.5+20100616-1) unstable; urgency=medium
.
* Update to 20100614, taken from the 2.6 release branch (r81601).
* Reapply the backport for issue #8233, lost in the conversion to
quilt.
* Disable the profiled build on alpha.
* Make pydoc more robust not to fail on exceptions other than import
exceptions.
* posixmodule: Add flags for statvfs.f_flag to constant list.
.
python2.6 (2.6.5+20100529-1) unstable; urgency=low
.
* Update to 20100529, taken from the 2.6 release branch (r81601).
- Fix issue #5753, CVE-2008-5983 python: untrusted python modules
search path. Closes: #572010.
* Convert internal dpatch system to quilt.
* Build the ossaudio extension on GNU/kFreeBSD. Closes: #574696.
.
python2.6 (2.6.5-2) unstable; urgency=low
.
* Update libpython symbols files.
* debian/patches/issue8032.dpatch: Update to version from the
trunk.
* Fix issue #8329: Don't return the same lists from select.select
when no fds are changed.
* Fix issue #8310: Allow dis to examine new style classes.
* Fix issues #8279: Fix test_gdb failures.
* Fix issue #8233: When run as a script, py_compile.py optionally
takes a single argument `-`.
* Apply proposed patch for issue #7332, segfaults in
PyMarshal_ReadLastObjectFromFile in import_submodule.
* Don't build-depend on locales on avr32. Closes: #575144.
.
python2.6 (2.6.5-1ubuntu6) lucid; urgency=low
.
* Fix applying patch for issue #8310.
.
python2.6 (2.6.5-1ubuntu5) lucid; urgency=low
.
* Fix issue #8329: Don't return the same lists from select.select
when no fds are changed.
* Fix issue #8310: Allow dis to examine new style classes.
.
python2.6 (2.6.5-1ubuntu4) lucid; urgency=low
.
* debian/patches/issue8032.dpatch: Update to version from the
trunk. Upload for beta2 to avoid apport errors.
- Handle PyFrameObject's: LP: #543624, #548723.
- Detect cycles in object reference graph and add extra
protection: LP: #544823, LP: #552356.
.
python2.6 (2.6.5-1ubuntu3) lucid; urgency=low
.
* debian/patches/issue8140.dpatch: Incomplete patch; regenerate.
* debian/patches/issue8032.dpatch: Update to v4:
- Add support for PySetObject (set/frozenset).
- Add support for PyBaseExceptionObject (BaseException).
- Fix a signed vs unsigned char issue that led to exceptions
in gdb for PyStringObject instances.
- Handle the case of loops in the object reference graph.
- Unit tests for all of the above.
.
python2.6 (2.6.5-1ubuntu2) lucid; urgency=low
.
* Disable profiled build on powerpc.
.
python2.6 (2.6.5-1ubuntu1) lucid; urgency=low
.
* Merge with Debian (2.6.5-1).
.
python2.6 (2.6.5-1) unstable; urgency=low
.
* Python 2.6.5 final release.
* Fix issue #4961: Inconsistent/wrong result of askyesno function in
tkMessageBox with Tcl8.5. LP: #462950.
* Issue #8154, fix segfault with os.execlp('true'). LP: #418848.
* Apply proposed patch for issue #8032, gdb7 hooks for debugging.
.
python2.6 (2.6.5~rc2-2) unstable; urgency=low
.
* Add copyright notices for the readline and _ssl extensions.
Closes: #573866.
* Backport issue #8140: Extend compileall to compile single files.
Add -i option.
* Backport issue #6949, build _bsddb extension with db-4.8.x.
.
python2.6 (2.6.5~rc2-1) unstable; urgency=low
.
* Python 2.6.5 release candidate 2.
- Replace the Monty Python audio test file. Closes: #568674.
* Fix build failure on sparc64. Closes: #570845.
.
python2.6 (2.6.5~rc2-0ubuntu1) lucid; urgency=low
.
* Python 2.6.5 release candidate 2.
.
python2.6 (2.6.4-6ubuntu1) lucid; urgency=low
.
* Merge with Debian (2.6.4-6).
.
python2.6 (2.6.4-6) unstable; urgency=low
.
* Update to 20100215, taken from the 2.6 release branch.
* python2.6-minimal: Skip moving syssite contents to new location, if
/usr/local/lib/python2.6 cannot be written. Closes: #569532. LP: #338227.
* libpython2.6: Fix symlink in /usr/lib/python2.6/config. LP: #521050.
.
python2.6 (2.6.4-5ubuntu1) lucid; urgency=low
.
* Merge with Debian (2.6.4-5).
.
python2.6 (2.6.4-5) unstable; urgency=low
.
* Update to 20100131, taken from the 2.6 release branch.
- Fix typo in os.execvp docstring. Closes: #558764.
* distutils.sysconfig.get_python_lib(): Only return ".../dist-packages" if
prefix is the default prefix and if PYTHONUSERBASE is not set in the
environment and if --user option is not present. LP: #476005.
* distutils install: Don't install into /usr/local/local, if option
--prefix=/usr/local is present, without changing the install prefix.
LP: #510211.
.
python2.6 (2.6.4-4ubuntu1) lucid; urgency=low
.
* Update to 20100122, taken from the 2.6 release branch.
- Fix DoS via XML document with malformed UTF-8 sequences (CVE_2009_3560).
Closes: #566233.
- Fix typo in os.execvp docstring. Closes: #558764.
* python2.6-doc: Fix searching in local documentation. LP: #456025.
* Update locale module from the trunk. LP: #223281.
* Merge with Debian (2.6.4-4).
.
python2.6 (2.6.4-4) unstable; urgency=low
.
* Update to 20100122, taken from the 2.6 release branch.
- Fix DoS via XML document with malformed UTF-8 sequences (CVE_2009_3560).
Closes: #566233.
* Hurd fixes (Pino Toscano). Closes: #565693:
- hurd-broken-poll.dpatch: ported from 2.5.
- hurd-disable-nonworking-constants.dpatch: disable a few constants from
the public API whose C counterparts are not implemented, so using them
either always blocks or always fails (caused issues in the test suite).
- Exclude the profiled build for hurd.
- Disable four blocking tests from the test suite.
.
python2.6 (2.6.4-3) unstable; urgency=low
.
* Disable the profiled build on s390, mips, mipsel.
* Fix symbol files for kfreebsd-amd64 and sparc64.
.
python2.6 (2.6.4-2) unstable; urgency=low
.
* Update to 20100116, taken from the 2.6 release branch.
* Fix bashism in makesetup shell script. Closes: #530170, #530171.
* Fix build issues on avr (Bradley Smith). Closes: #528439.
- Configure --without-ffi.
- Don't run lengthly tests.
* locale.py: Update locale aliases from the 2.7 branch.
.
python2.6 (2.6.4-1) experimental; urgency=low
.
* Python 2.6.4 final release.
- Issue #7120: logging: Removed import of multiprocessing which is causing
crash in GAE.
- Issue #7149: fix exception in urllib when detecting proxy settings
on OSX.
- Issue #7115: Fixed the extension module builds that is failing when
using paths in the extension name instead of dotted names. LP: #449734.
- Issue #6894: Fixed the issue urllib2 doesn't respect "no_proxy"
environment.
- Issue #7052: Removed nonexisting NullHandler from logging.__all__.
- Issue #7039: Fixed distutils.tests.test_sysconfig when running on
installation with no build.
- Issue #7019: Raise ValueError when unmarshalling bad long data, instead
of producing internally inconsistent Python longs.
* distutils install: Don't install into /usr/local/local, if option
--prefix=/usr/local is present.
.
python2.6 (2.6.4~rc1-1) experimental; urgency=low
.
* Python 2.6.4 release candidate 1.
- Issue #7052: Removed nonexisting NullHandler from logging.__all__.
- Issue #7039: Fixed distutils.tests.test_sysconfig when running on
installation with no build.
- Issue #7019: Raise ValueError when unmarshalling bad long data, instead
of producing internally inconsistent Python longs.
- Issue #7068: Fixed the partial renaming that occured in r72594.
- Issue #7042: Fix test_signal (test_itimer_virtual) failure on OS X 10.6.
* Remove the conflict with python-setuptools (fixed in issue #7068).
* Build _hashlib as a builtin.
* python2.6-doc: Don't compress the sphinx inventory.
* python2.6-doc: Fix jquery.js symlink.
.
python2.6 (2.6.3-1) experimental; urgency=low
.
* Final Python 2.6.3 release.
- Issue #5329: Fix os.popen* regression from 2.5 with commands as a
sequence running through the shell.
- Issue #6990: Fix threading.local subclasses leaving old state around
after a reference cycle GC which could be recycled by new locals.
- Issue #6790: Make it possible again to pass an `array.array` to
`httplib.HTTPConnection.send`.
- Issue #6922: Fix an infinite loop when trying to decode an invalid
UTF-32 stream with a non-raising error handler like "replace" or
"ignore".
- Issue #1590864: Fix potential deadlock when mixing threads and fork().
- Issue #6844: Do not emit DeprecationWarnings when accessing a "message"
attribute on exceptions that was set explicitly.
- Issue #6236, #6348: Fix various failures in the `io` module under AIX
and other platforms, when using a non-gcc compiler. Patch by egreen.
- Issue #6851: Fix urllib.urlopen crash on secondairy threads on OSX 10.6
- Issue #6947: Fix distutils test on windows. Patch by Hirokazu Yamamoto.
- Issue #4606: Passing 'None' if ctypes argtype is set to POINTER(...)
does now always result in NULL.
- Issue #5042: ctypes Structure sub-subclass does now initialize
correctly with base class positional arguments.
- Issue #6938: Fix a TypeError in string formatting of a multiprocessing
debug message.
- Issue #6944: Fix a SystemError when socket.getnameinfo() was called
with something other than a tuple as first argument.
- Issue #6980: Fix ctypes build failure on armel-linux-gnueabi with
-mfloat-abi=softfp.
* python2.6-dbg: Don't create debug subdirectory in /usr/local. No
separate debug directory needed anymore.
* Run the benchmark with -C 2 -n 5 -w 4 on all architectures.
* Build-depend on the versioned db4.x-dev to avoid unexpected updates
for anydbm databases.
.
python2.6 (2.6.2-3) experimental; urgency=low
.
* Update to 20090919, taken from the 2.6 release branch.
* Add a conflict to python-setuptools (<< 0.6c9-3), C extension
builds broken.
* Add new symbols for update from the branch.
.
python2.6 (2.6.2-2) experimental; urgency=low
.
* Symbol _Py_force_double@Base is i386 only. Closes: #534208.
.
python2.6 (2.6.2-1) experimental; urgency=low
.
* Final Python 2.6.2 release.
- Update Doc/tools/sphinxext/download.html. Closes: #526797.
* Update to 20090621, taken from the 2.6 release branch.
.
* Address issues when working with PYTHONUSERBASE and non standard prefix
(pointed out by Larry Hastings):
- distutils.sysconfig.get_python_lib(): Only return ".../dist-packages" if
prefix is the default prefix and if PYTHONUSERBASE is not set in the
environment.
- site.addusersitepackages(): Add USER_BASE/.../dist-packages to sys.path.
* Always use the `unix_prefix' scheme for setup.py install in a virtualenv
setup. LP: #339904.
* Don't make the setup.py install options --install-layout=deb and --prefix
conflict with each other.
* distutils: Always install into `/usr/local/lib/python2.6/dist-packages'
if an option `--prefix=/usr/local' is present (except for virtualenv
and PYTHONUSERBASE installations). LP: #362570.
* Always use `site-packages' as site directory name in virtualenv.
.
* Do not add /usr/lib/pythonXY.zip on sys.path.
* Add symbols files for libpython2.6 and python2.6-dbg, don't include symbols
from builtins, which can either be built as builtins or extensions.
* Keep an empty lib-dynload in python2.6-minimal to avoid a warning on
startup.
* Build a shared library configured --with-pydebug. LP: #322580.
* Fix some lintian warnings.
* Use the information in /etc/lsb-release for platform.dist(). LP: #196526.
* Move the bdist_wininst files into the -dev package (only needed to build
windows installers).
* Document changes to the site directory name in the installation manual.
* Fix issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add
`do { ... } while (0)' to avoid compiler warnings. Closes: #516956.
* debian/pyhtml2devhelp.py: update for python 2.6 (Marc Deslauriers).
* debian/rules: re-enable documentation files for devhelp. LP: #338791.
* python2.6-doc: Depend on libjs-jquery, use jquery.js from this package.
Closes: #523482.
.
python2.6 (2.6.1-3) experimental; urgency=low
.
* Update to 20090318, taken from the 2.6 release branch.
* Use the information in /etc/lsb-release for platform.dist().
* Update installation schemes: LP: #338395. Closes: #520278.
- When the --prefix option is used for setup.py install, Use the
`unix_prefix' scheme.
- Use the `deb_system' scheme if --install-layout=deb is specified.
- Use the the `unix_local' scheme if neither --install-layout=deb
nor --prefix is specified.
- The options --install-layout=deb and --prefix are exclusive.
* Don't fail installation/removal if directories in /usr/local cannot
be created. LP: #338227.
* Don't try to move away the site-packages directory. There never was a
python2.6 upload using site-packages. Closes: #518780.
* Fix build failure on mips/mipsel. Closes: #519386.
.
python2.6 (2.6.1-2) experimental; urgency=low
.
* Move libpython2.6.a into the python2.6-dev package.
* Move idlelib into the idle-python2.6 package.
.
python2.6 (2.6.1-1) experimental; urgency=low
.
* New upstream version, upload to experimental.
* Update to 20090225, taken from the 2.6 release branch.
* Don't build-depend on locales on armel, hppa, ia64 and mipsel; package is
currently not installable.
.
python2.6 (2.6.1-0ubuntu9) jaunty; urgency=low
.
* Don't build pyexpat, _elementtree and _ctypes as builtin extensions,
third party packages make too many assumptions about these not built
as builtins.
.
python2.6 (2.6.1-0ubuntu8) jaunty; urgency=low
.
* Link the shared libpython with $(MODLIBS).
.
python2.6 (2.6.1-0ubuntu7) jaunty; urgency=low
.
* Update to 20090222, taken from the 2.6 release branch.
.
python2.6 (2.6.1-0ubuntu6) jaunty; urgency=low
.
* Don't build the gdbm extension from the python2.6 source.
* Build the dbm extension using libdb.
* Don't build-depend on locales on sparc (currently not installable), only
needed by the testsuite.
* Update to 20090219, taken from the 2.6 release branch.
.
python2.6 (2.6.1-0ubuntu5) jaunty; urgency=low
.
* Add build dependency on libdb-dev.
.
python2.6 (2.6.1-0ubuntu4) jaunty; urgency=low
.
* Disable the profiled build on all architectures.
.
python2.6 (2.6.1-0ubuntu3) jaunty; urgency=low
.
* Disable the profiled build on armel as well.
.
python2.6 (2.6.1-0ubuntu2) jaunty; urgency=low
.
* Don't use the profiled build on amd64, lpia and sparc (GCC
PR profile/38292).
.
python2.6 (2.6.1-0ubuntu1) jaunty; urgency=low
.
* Update to 20090211, taken from the 2.6 release branch.
.
python2.6 (2.6.1-0ubuntu1~ppa1) jaunty; urgency=low
.
* Python 2.6.1 release.
* Update to 20081206, taken from the 2.6 release branch.
* Ensure that all extensions from the -minimal package are statically
linked into the interpreter.
* Include expat, _elementtree, datetime, bisect, _bytesio, _locale,
_fileio in -minimal to link these extensions statically.
.
python2.6 (2.6-0ubuntu1~ppa5) intrepid; urgency=low
.
* Test build
.
python2.6 (2.6-0ubuntu1~ppa4) intrepid; urgency=low
.
* Do not build the bsddb3 module from this source, but recommend the
python-bsddb3 package (will be a dependency after python-bsddb3 is in
the archive).
* For locally installed packages, create a directory
/usr/local/lib/python2.6/dist-packages. This is the default for
installations done with distutils and setuptools. Third party stuff
packaged within the distribution goes to /usr/lib/python2.6/dist-packages.
There is no /usr/lib/python2.6/site-packages in the file system and
on sys.path. No package within the distribution must not install
anything in this location.
* Place the gdbm extension into the python2.6 package.
* distutils: Add an option --install-layout=deb, which
- installs into $prefix/dist-packages instead of $prefix/site-packages.
- doesn't encode the python version into the egg name.
.
python2.6 (2.6-0ubuntu1~ppa3) intrepid; urgency=low
.
* Build-depend on libdb4.6-dev, instead of libdb-dev (4.7). Test suite
hangs in the bsddb tests.
.
python2.6 (2.6-0ubuntu1~ppa2) intrepid; urgency=low
.
* Update to 20081021, taken from the 2.6 release branch.
* Fix typos and section names in doc-base files. LP: #273344.
* Build a new package libpython2.6.
* For locally installed packages, create a directory
/usr/local/lib/python2.6/system-site-packages, which is symlinked
from /usr/lib/python2.6/site-packages. Third party stuff packaged
within the distribution goes to /usr/lib/python2.6/dist-packages.
.
python2.6 (2.6-0ubuntu1~ppa1) intrepid; urgency=low
.
* Python 2.6 release.
* Update to current branch 20081009.
.
python2.6 (2.6~b3-0ubuntu1~ppa1) intrepid; urgency=low
.
* Python 2.6 beta3 release.
.
python2.6 (2.6~b2-0ubuntu1~ppa1) intrepid; urgency=low
.
* Python 2.6 beta2 release.
.
python2.6 (2.6~b1-0ubuntu1~ppa1) intrepid; urgency=low
.
* Python 2.6 beta1 release.
.
python2.6 (2.6~a3-0ubuntu1~ppa2) hardy; urgency=low
.
* Test build
.
python2.6 (2.6~a3-0ubuntu1~ppa1) hardy; urgency=low
.
* Python 2.6 alpha3 release.
* Update to current trunk 20080523.
.
python2.5 (2.5.2-5) unstable; urgency=low
.
* Backport new function signal.set_wakeup_fd from the trunk.
Background: http://bugzilla.gnome.org/show_bug.cgi?id=481569
.
python2.5 (2.5.2-4) unstable; urgency=low
.
* Update to 20080427, taken from the 2.5 release branch.
- Fix issues #2670, #2682.
* Disable running pybench on the hppa buildd (ftbfs).
* Allow setting BASECFLAGS, OPT and EXTRA_LDFLAGS (like, CC, CXX, CPP,
CFLAGS, CPPFLAGS, CCSHARED, LDSHARED) from the environment.
* Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008).
.
python2.5 (2.5.2-3) unstable; urgency=medium
.
* Update to 20080416, taken from the 2.5 release branch.
- Fix CVE-2008-1721, integer signedness error in the zlib extension module.
- Fix urllib2 file descriptor happens byte-at-a-time, reverting
a fix for excessively large memory allocations when calling .read()
on a socket object wrapped with makefile().
* Disable some regression tests on some architectures:
- arm: test_compiler, test_ctypes.
- armel: test_compiler.
- hppa: test_fork1, test_wait3.
- m68k: test_bsddb3, test_compiler.
* Build-depend on libffi-dev instead of libffi4-dev.
* Fix CVE-2008-1679, integer overflows in the imageop module.
.
python2.5 (2.5.2-2) unstable; urgency=low
.
* Use site.addsitedir() to add directories in /usr/local to sys.path.
Addresses: #469157, #469818.
.
python2.5 (2.5.2-1) unstable; urgency=low
.
* Python 2.5.2 release.
* Merge from Ubuntu:
- Move site customization into sitecustomize.py, don't make site.py
a config file. Addresses: #309719, #413172, #457361.
- Move site.py to python2.4-minimal, remove `addbuilddir' from site.py,
which is unnecessary for installed builds.
- python2.5-dev: Recommend libc-dev instead of suggesting it. LP: #164909.
- Fix issue 961805, Tk Text.edit_modified() fails. LP: #84720.
.
python2.5 (2.5.1-7) unstable; urgency=low
.
* Update to 20080209, taken from the 2.5 release branch.
* Build the _bsddb extension with db-4.5 again; 4.6 is seriously
broken when used with the _bsddb extension.
* Do not run pybench on arm and armel.
* python2.5: Provide python2.5-wsgiref.
* Fix a pseudo RC report with duplicated attributes in the control
file. Closes: #464307.
.
python2.5 (2.5.1-6) unstable; urgency=low
.
* Update to 20080102, taken from the 2.5 release branch.
- Only define _BSD_SOURCE on OpenBSD systems. Closes: #455400.
* Fix handling of packages in linecache.py (Kevin Goodsell). LP: #70902.
* Bump debhelper to v5.
* Register binfmt for .py[co] files.
* Use absolute paths when byte-compiling files. Addresses: #453346.
Closes: #413566, LP: #177722.
* CVE-2007-4965, http://bugs.python.org/issue1179:
Multiple integer overflows in the imageop module in Python 2.5.1 and
earlier allow context-dependent attackers to cause a denial of service
(application crash) and possibly obtain sensitive information (memory
contents) via crafted arguments to (1) the tovideo method, and unspecified
other vectors related to (2) imageop.c, (3) rbgimgmodule.c, and other
files, which trigger heap-based buffer overflows.
Patch prepared by Stephan Herrmann. Closes: #443333, LP: #163845.
* Register info docs when doing source only uploads. LP: #174786.
* Remove deprecated value from categories in desktop file. LP: #172874.
* python2.5-dbg: Don't include the gdbm and _tkinter extensions, now provided
in separate packages.
* Provide a symlink changelog -> NEWS. Closes: #439271.
* Fix build failure on hurd, working around poll() on systems on which it
returns an error on invalid FDs. Closes: #438914.
* Configure --with-system-ffi on all architectures. Closes: #448520.
* Fix version numbers in copyright and README files (Dan O'Huiginn).
Closes: #446682.
* Move some documents from python2.5 to python2.5-dev.
.
python2.5 (2.5.1-5) unstable; urgency=low
.
* Build the _bsddb extension with db-4.6.
.
python2.5 (2.5.1-4) unstable; urgency=low
.
* Update to 20070813, taken from the 2.5 release branch.
* Include plat-mac/plistlib.py (plat-mac is not in sys.path by default.
Closes: #435826.
* Use emacs22 to build the documentation in info format. Closes: #434969.
* Build-depend on db-dev (>= 4.6). Closes: #434965.
.
python2.5 (2.5.1-3) unstable; urgency=high
.
* Support mixed-endian IEEE floating point, as found in the ARM old-ABI
(Aurelien Jarno). Closes: #434905.
.
python2.5 (2.5.1-2) unstable; urgency=low
.
* Update to 20070717, taken from the 2.5 release branch.
* Fix reference count for sys.pydebug variable. Addresses: #431393.
* Build depend on libbluetooth-dev instead of libbluetooth2-dev.
.
python2.5 (2.5.1-1) unstable; urgency=low
.
* Python-2.5.1 release.
* Build-depend on gcc-4.1 (>= 4.1.2-4) on alpha, powerpc, s390, sparc.
* Merge from Ubuntu:
- Add debian/patches/subprocess-eintr-safety.dpatch (LP: #87292):
- Create and use wrappers around read(), write(), and os.waitpid() in the
subprocess module which retry the operation on an EINTR (which happens
if e. g. an alarm was raised while the system call was in progress).
It is incredibly hard and inconvenient to sensibly handle this in
applications, so let's fix this at the right level.
- Patch based on original proposal of Peter <C3><85>strand
in http://python.org/sf/1068268.
- Add two test cases.
- Change the interpreter to build and install python extensions
built with the python-dbg interpreter with a different name into
the same path (by appending `_d' to the extension name). The debug build
of the interpreter tries to first load a foo_d.so or foomodule_d.so
extension, then tries again with the normal name.
- When trying to import the profile and pstats modules, don't
exit, add a hint to the exception pointing to the python-profiler
package, don't exit.
- Keep the module version in the .egg-info name, only remove the
python version.
- python2.5-dbg: Install Misc/SpecialBuilds.txt, document the
debug changes in README.debug.
* Update to 20070425, taken from the 2.5 release branch.
.
python2.5 (2.5-6) unstable; urgency=medium
.
* webbrowser.py: Recognize other browsers: www-browser, x-www-browser,
iceweasel, iceape.
* Move pyconfig.h from the python2.5-dev into the python2.5 package;
required by builds for pure python modules without having python2.5-dev
installed (matching the functionality in python2.4).
* Move the unicodedata module into python2.5-minimal; allows byte compilation
of UTF8 encoded files.
* Do not install anymore outdated debhelper sample scripts.
* Install Misc/SpecialBuilds.txt as python2.5-dbg document.
.
python2.5 (2.5-5) unstable; urgency=high
.
* Do not run the python benchmark on m68k. Timer problems.
Fixes FTBFS on m68k.
* Update to 20061209, taken from the 2.5 release branch.
- Fixes building the library reference in info format.
.
python2.5 (2.5-4) unstable; urgency=medium
.
* Update to 20061203, taken from the 2.5 release branch.
- Fixes build failures on knetfreebsd and the hurd. Closes: #397000.
* Clarify README about distutils. Closes: #396394.
* Move python2.5-config to python2.5-dev. Closes: #401451.
* Cleanup build-conflicts. Addresses: #394512.
.
python2.5 (2.5-3.1) unstable; urgency=low
.
* Non-maintainer upload.
* python2.5-minimal depends on python-minimal (>= 2.4.4-1) because it's the
first version which lists python2.5 as an unsupported runtime (ie a
runtime that is available but for which modules are not auto-compiled).
And being listed there is required for python-central to accept the
installation of python2.5-minimal. Closes: #397006
.
python2.5 (2.5-3) unstable; urgency=medium
.
* Update to 20061029 (2.4.4 was released on 20061019), taken from
the 2.5 release branch. We do not want to have regressions in
2.5 compared to the 2.4.4 release.
* Don't run pybench on m68k, fails in the calibration loop. Closes: #391030.
* Run the installation/removal hooks. Closes: #383292, #391036.
.
python2.5 (2.5-2) unstable; urgency=medium
.
* Update to 20061003, taken from the 2.5 release branch.
* On arm and m68k, don't run the pybench in debug mode.
* Fix building the source within exec_prefix (Alexander Wirt).
Closes: #385336.
.
python2.5 (2.5-1) unstable; urgency=low
.
* Python 2.5 release.
* Update to 20060926, taken from the 2.5 release branch.
* Run the Python benchmark during the build, compare the results
of the static and shared builds.
* Fix invalid html in python2.5.devhelp.gz.
* Add a python2.5 console entry to the menu (hidden by default).
* python2.5: Suggest python-profiler.
.
python2.5 (2.5~c1-1) unstable; urgency=low
.
* Python 2.5 release candidate 1.
* Update to trunk 20060818.
.
python2.5 (2.5~b3-1) unstable; urgency=low
.
* Build the _ctypes module for m68k-linux.
.
python2.5 (2.5~b3-0ubuntu1) edgy; urgency=low
.
* Python 2.5 beta3 release.
* Update to trunk 20060811.
* Rebuild the documentation.
* Fix value of sys.exec_prefix in the debug build.
* Do not build the library reference in info format; fails to build.
* Link the interpreter against the shared runtime library. With
gcc-4.1 the difference in the pystones benchmark dropped from about
12% to about 6%.
* Install the statically linked version of the interpreter as
python2.5-static for now.
* Link the shared libpython with -O1.
.
python2.5 (2.4.3+2.5b2-3) unstable; urgency=low
.
* Disable the testsuite on s390; don't care about "minimally configured"
buildd's.
.
python2.5 (2.4.3+2.5b2-2) unstable; urgency=low
.
* Update to trunk 20060722.
* Merge idle-lib from idle-python2.5 into python2.5.
* Merge lib-tk from python-tk into python2.5.
* Tkinter.py: Suggest installation of python-tk package on failed
import of the _tkinter extension.
* Don't run the testsuite for the debug build on alpha.
* Don't run the test_compiler test on m68k. Just takes too long.
* Disable building ctypes on m68k (requires support for closures).
.
python2.5 (2.4.3+2.5b2-1) unstable; urgency=low
.
* Python 2.5 beta2 release.
* Update to trunk 20060716.
* When built on a buildd, do not run the following test which try to
access the network: test_codecmaps_cn, test_codecmaps_hk, test_codecmaps_jp,
test_codecmaps_kr, test_codecmaps_tw, test_normalization.
* When built on a buildd, do not run tests requiring missing write permissions:
test_ossaudiodev.
.
python2.5 (2.4.3+2.5b2-0ubuntu1) edgy; urgency=low
.
* Python 2.5 beta2 release.
.
python2.5 (2.4.3+2.5b1-1ubuntu2) edgy; urgency=low
.
* Fix python-dev dependencies.
* Update to trunk 20060709.
.
python2.5 (2.4.3+2.5b1-1ubuntu1) edgy; urgency=low
.
* Python 2.5 beta1 release.
* Update to trunk 20060623.
* Merge changes from the python2.4 packages.
* python2.5-minimal: Add _struct.
.
python2.5 (2.4.3+2.5a1-1) experimental; urgency=low
.
* Update to trunk 20060409.
* Run testsuite for debug build as well.
* Build-depend on gcc-4.1.
.
python2.5 (2.4.3+2.5a1-0ubuntu1) dapper; urgency=low
.
* Python 2.5 alpha1 release.
* Drop integrated patches.
* Add build dependencies on libsqlite3-dev and libffi4-dev.
* Add (build-)dependency on mime-support, libgpmg1 (test suite).
* Build using the system FFI.
* python2.5 provides python2.5-ctypes and python2.5-pysqlite2,
python2.5-elementtree.
* Move hashlib.py to python-minimal.
* Lib/hotshot/pstats.py: Error out on missing profile/pstats modules.
.
python2.4 (2.4.3-8ubuntu1) edgy; urgency=low
.
* Resynchronize with Debian unstable. Remaining changes:
- Apply langpack-gettext patch.
- diff.gz contains pregenerated html and info docs.
- Build the -doc package from this source.
.
python2.4 (2.4.3-8) unstable; urgency=low
.
* Remove python2.4's dependency on python-central. On installation of
the runtime, call hooks /usr/share/python/runtime.d/*.rtinstall.
On removal, call hooks /usr/share/python/runtime.d/*.rtremove.
Addresses: #372658.
* Call the rtinstall hooks only, if it's a new installation, or the first
installation using the hooks. Adresses: #373677.
.
python2.4 (2.4.3-7) unstable; urgency=medium
.
* Reupload, depend on python-central (>= 0.4.15).
* Add build-conflict on python-xml.
.
python2.4 (2.4.3-6) medium; urgency=low
.
* idle-python2.4: Remove the old postinst and prerm scripts.
* Name the runtime correctly in python2.4-minimal's installation
scripts.
.
python2.4 (2.4.3-5) unstable; urgency=low
.
* python2.4-prerm: Handle the case, when python-central is not installed.
* idle-python2.4: Depend on python-tk instead of python2.4-tk.
.
python2.4 (2.4.3-4) unstable; urgency=low
.
* SVN update up to 2006-06-07
* Use python-central.
* Don't build the -tk and -gdbm packages from this source; now built
from the python-stdlib-extensions source.
* Remove leftover build dependency on libgmp3-dev.
* Do not build-depend on libbluetooth1-dev and libgpmg1-dev on
hurd-i386, kfreebsd-i386, kfreebsd-amd64. Closes: #365830.
* Do not run the test_tcl test; hangs for unknown reasons on at least
the following buildds: vivaldi(m68k), goedel (alpha), mayer (mipsel).
And no virtual package to file bug reports for the buildds ...
Closes: #364419.
* Move the Makefile from python2.4-dev to python2.4. Closes: #366473.
* Fix typo in pdb(1). Closes: #365772.
* New autoconf likes the mandir in /usr/share instead of /usr; work
with both locations. Closes: #367618.
.
python2.4 (2.4.3-3) unstable; urgency=low
.
* SVN update up to 2006-04-21
* Update locale aliases from /usr/share/X11/locale/locale.alias.
* Start idle with option -n from the desktop menu, so that the program
can be started in parallel.
* Testsuite related changes only:
- Add build dependencies mime-support, libgpmg1 (needed by test cases).
- Run the testsuite with bsddb, audio and curses resources enabled.
- Re-run the failed tests in verbose mode.
- Run the test suite for the debug build as well.
- Build depend on netbase, needed by test_socketmodule.
- Build depend on libgpmg1, needed by test_curses.
- On the buildds do not run the tests needing the network resource.
* Update python logo.
* Check for the availability of the profile and pstats modules when
importing hotshot.pstats. Closes: #334067.
* Don't build the -doc package from the python2.4 source.
* Set OPT in the installed Makefile to -O2.
.
python2.4 (2.4.3-2) unstable; urgency=low
.
* Add (build-)dependency on mime-support.
.
python2.4 (2.4.3-1) unstable; urgency=low
.
* Python 2.4.3 release.
.
python2.4 (2.4.3-0ubuntu1) dapper; urgency=low
.
* Python 2.4.3 release.
- Fixed a bug that the gb18030 codec raises RuntimeError on encoding
surrogate pair area on UCS4 build. Ubuntu: #29289.
.
python2.4 (2.4.2+2.4.3c1-0ubuntu1) dapper; urgency=low
.
* SVN update up to 2006-03-25 (2.4.3 candidate 1).
- Regenerate the documentation.
.
python2.4 (2.4.2-1ubuntu3) dapper; urgency=low
.
* SVN update up to 2006-03-04
- Regenerate the documentation.
- map.mmap(-1, size, ...) can return anonymous memory again on Unix.
Ubuntu #26201.
* Build-depend on libncursesw5-dev, ncursesw5 is preferred for linking.
Provides UTF-8 compliant curses bindings.
* Fix difflib where certain patterns of differences were making difflib
touch the recursion limit.
.
python2.4 (2.4.2-1ubuntu2) dapper; urgency=low
.
* SVN update up to 2006-01-17
- pwd is now a builtin module, remove it from python-minimal.
- Regenerate the documentation.
* python2.4-tk: Suggest tix instead of tix8.1.
* Move config/Makefile from the -dev package into the runtime package
to be able to use the bdist_wininst distutils command. Closes: #348335.
.
python2.4 (2.4.2-1ubuntu1) dapper; urgency=low
.
* Temporarily remove build dependency on lsb-release.
.
python2.4 (2.4.2-1build1) dapper; urgency=low
.
* Rebuild (openssl-0.9.8).
.
python2.4 (2.4.2-1) unstable; urgency=low
.
* Python 2.4.2 release.
.
python2.4 (2.4.1+2.4.2rc1-1) unstable; urgency=low
.
* Python 2.4.2 release candidate 1.
* Fix "Fatal Python error" from cStringIO's writelines.
Patch by Andrew Bennetts.
.
python2.4 (2.4.1-5) unstable; urgency=low
.
* CVS update up to 2005-09-14
- Regenerate the html and info docs.
* Add some more locale aliases.
* Fix substitution pf python version in README.python2.4-minimal.
Closes: #327487.
* On m68k, build using -O2 (closes: #326903).
* On Debian, don't configure --with-fpectl, which stopped working with
glibc-2.3.5.
.
python2.4 (2.4.1-4) unstable; urgency=low
.
* CVS update up to 2005-09-04
- teTeX 3.0 related fixes (closes: #322407).
- Regenerate the html and info docs.
* Add entry for IDLE in the Gnome menus.
* Don't build-depend on libbluetooth-dev on the Hurd (closes: #307037).
* Reenable the cthreads patch for the Hurd (closes: #307052).
.
python2.4 (2.4.1-3) unstable; urgency=low
.
* Synchronise with Ubuntu:
- Build a python2.4-minimal package.
.
python2.4 (2.4.1-2ubuntu3) breezy; urgency=low
.
* CVS update up to 2005-07-07
* Regenerate the documentation.
.
python2.4 (2.4.1-2ubuntu2) breezy; urgency=low
.
* CVS update up to 2005-06-15
* Regenerate the documentation.
* Synchronize with Debian. Ubuntu 10485.
* idle-python2.4 enhances python2.4. Ubuntu 11562.
* README.Debian: Fix reference to the doc directory (closes: #311677).
.
python2.4 (2.4.1-2ubuntu1) breezy; urgency=low
.
* Update build dependencies:
db4.2-dev -> db4.3-dev,
libreadline4-dev -> libreadline5-dev.
* python2.4-dev: Add missing templates to generate HTML docs. Ubuntu 11531.
.
python2.4 (2.4.1-2) unstable; urgency=low
.
* Add the debug symbols for the python2.4, python2.4-gdbm
and python2.4-tk packages to the python2.4-dbg package.
* Add gdbinit example to doc directory.
.
python2.4 (2.4.1-1ubuntu2) breezy; urgency=low
.
* Add the debug symbols for the python2.4, python2.4-minimal, python2.4-gdbm
and python2.4-tk packages to the python2.4-dbg package. Ubuntu 10261,
* Add gdbinit example to doc directory.
* For os.utime, use utimes(2), correctly working with glibc-2.3.5.
Ubuntu 10294.
.
python2.4 (2.4.1-1ubuntu1) breezy; urgency=low
.
* Reupload as 2.4.1-1ubuntu1.
.
python2.4 (2.4.1-1) unstable; urgency=low
.
* Python 2.4.1 release.
* Fix noise in python-doc installation/removal.
* New Python section for the info docs.
.
python2.4 (2.4.1-0) hoary; urgency=low
.
* Python 2.4.1 release.
* Fix noise in python-doc installation/removal.
* New Python section for the info docs.
.
python2.4 (2.4+2.4.1rc2-2) unstable; urgency=low
.
* Add the valgrind support file to /etc/python2.4
* Build the -dbg package with -DPy_USING_MEMORY_DEBUGGER.
* Lib/locale.py:
- correctly parse LANGUAGE as a colon separated list of languages.
- prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE to get the correct
encoding.
- Don't map 'utf8', 'utf-8' to 'utf', which is not a known encoding
for glibc.
* Fix two typos in python(1). Addresses: #300124.
.
python2.4 (2.4+2.4.1rc2-1) unstable; urgency=low
.
* Python 2.4.1 release candidate 2.
* Build-depend on libbluetooth1-dev.
.
python2.4 (2.4dfsg-2) unstable; urgency=low
.
* CVS update up to 2005-03-03
.
python2.4 (2.4dfsg-1ubuntu4) hoary; urgency=medium
.
* Move exception finalisation later in the shutdown process - this
fixes the crash seen in bug #1165761, taken from CVS.
* codecs.StreamReader: Reset codec when seeking. Ubuntu #6972.
* Apply fix for SF1124295, fixing an obscure bit of Zope's security machinery.
* distutils: Don't add standard library dirs to library_dirs
and runtime_library_dirs. On amd64, runtime paths pointing to /usr/lib64
aren't recognized by dpkg-shlibdeps, and the packages containing these
libraries aren't added to ${shlibs:Depends}.
* Lib/locale.py:
- correctly parse LANGUAGE as a colon separated list of languages.
- prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE to get the correct
encoding.
- Don't map 'utf8', 'utf-8' to 'utf', which is not a known encoding
for glibc.
* os.py: Avoid using items() in environ.update(). Fixes #1124513.
* Python/pythonrun.c:
* Build depend on locales, generate the locales needed for the
testsuite.
* Add build dependency on libbluetooth1-dev, adding some bluetooth
functionality to the socket module.
* Lib/test/test_sundry.py: Don't fail on import of profile & pstats,
which are separated out to the python-profiler package.
* Fix typos in manpage.
.
python2.4 (2.4dfsg-1ubuntu3) hoary; urgency=low
.
* debian/patches/langpack-gettext.dpatch:
- langpack support for python-gettext added
.
python2.4 (2.4dfsg-1ubuntu2) hoary; urgency=low
.
* Revert 'essential' status on python2.4-minimal. This status on
on python-minimal is sufficient (Ubuntu #6392).
.
python2.4 (2.4dfsg-1ubuntu1) hoary; urgency=low
.
* Resyncronise with Debian.
* Mark the python2.4-minimal package as 'essential'.
.
python2.4 (2.4dfsg-1) unstable; urgency=medium
.
* Add licenses and acknowledgements for incorporated software in the
debian/copyright file (addresses: #293932).
* Replace md5 implementation with one having a DFSG conforming license.
* Remove the profile.py and pstats.py modules from the source package,
not having a DFSG conforming license. The modules can be found in
the python2.x-profile package in the non-free section.
Addresses: #293932.
* Add missing norwegian locales (Tollef Fog Heen).
* CVS updates of the release24-maint branch upto 2005-02-08 (date of
the Python 2.3.5 release).
.
python2.4 (2.4-7ubuntu1) hoary; urgency=low
.
* Fix the name of the python-dbg man page.
* Resyncronise with Debian.
* Move more modules to -minimal (new code in copy.py requires these):
dis, inspect, opcode, token, tokenize.
.
python2.4 (2.4-7) unstable; urgency=medium
.
* Add licenses and acknowledgements for incorporated software in the
debian/copyright file (addresses: #293932).
* Replace md5 implementation with one having a DFSG conforming license.
* Add missing norwegian locales (Tollef Fog Heen).
* CVS updates of the release24-maint branch upto 2005-02-08 (date of
the Python 2.3.5 release).
.
python2.4 (2.4-6) unstable; urgency=low
.
* Build a python2.4-dbg package using --with-pydebug. Add a debug
directory <prefix>/lib-dynload/debug to sys.path instead of
<prefix>/lib-dynload und install the extension modules of the
debug build in this directory.
Change the module load path to load extension modules from other
site-packages/debug directories (for further details see the
README in the python2.4-dbg package). Closes: #5415.
* Apply the pydebug-path patch. The package was already built in -5.
.
python2.4 (2.4-5) unstable; urgency=high
.
* Fix a flaw in SimpleXMLRPCServerthat can affect any XML-RPC servers.
This affects any programs have been written that allow remote
untrusted users to do unrestricted traversal and can allow them to
access or change function internals using the im_* and func_* attributes.
References: CAN-2005-0089.
* CVS updates of the release24-maint branch upto 2005-02-04.
.
python2.4 (2.4-4) unstable; urgency=medium
.
* Update debian/copyright to the 2.4 license text (closes: #290898).
* Remove /usr/bin/smtpd.py (closes: #291049).
.
python2.4 (2.4-3ubuntu6) hoary; urgency=low
.
* Use old-style dpatches instead of dpatch-run.
.
python2.4 (2.4-3ubuntu5) hoary; urgency=low
.
* Actually apply the patch as well (add to list of patches in
debian/rules)
.
python2.4 (2.4-3ubuntu4) hoary; urgency=low
.
* Add nb_NO and nn_NO locales to Lib/locale.py
.
python2.4 (2.4-3ubuntu3) hoary; urgency=low
.
* Fix a flaw in SimpleXMLRPCServerthat can affect any XML-RPC servers.
This affects any programs have been written that allow remote
untrusted users to do unrestricted traversal and can allow them to
access or change function internals using the im_* and func_* attributes.
References: CAN-2005-0089.
.
python2.4 (2.4-3ubuntu2) hoary; urgency=low
.
* Build a python2.4-dbg package using --with-pydebug. Add a debug
directory <prefix>/lib-dynload/debug to sys.path instead of
<prefix>/lib-dynload und install the extension modules of the
debug build in this directory.
Change the module load path to load extension modules from other
site-packages/debug directories (for further details see the
README in the python2.4-dbg package). Closes: #5415.
* Update debian/copyright to the 2.4 license text (closes: #290898).
* Add operator and copy to the -minimal package.
.
python2.4 (2.4-3ubuntu1) hoary; urgency=low
.
* Resynchronise with Debian.
* python2.4: Depend on the very same version of python2.4-minimal.
* Docment, that time.strptime currently cannot be used, if the
python-minimal package is installed without the python package.
.
python2.4 (2.4-3) unstable; urgency=medium
.
* Build the fpectl module.
* Updated to CVS release24-maint 20050107.
.
python2.4 (2.4-2ubuntu5) hoary; urgency=low
.
* Updated to CVS release24-maint 20050102.
* python-minimal:
- os.py: Use dict instead of UserDict, remove UserDict from -minimal.
- add pickle, threading, needed for subprocess module.
- optparse.py: conditionally import gettext, if not available,
define _ as the identity function. Patch taken from the trunk.
Avoids import of _locale, locale, gettext, copy, repr, itertools,
collections, token, tokenize.
- Add a build check to make sure that the minimal module list is
closed under dependency.
* Fix lintian warnings.
.
python2.4 (2.4-2ubuntu4) hoary; urgency=low
.
* Add UserDict.py to the -minimal package, since os.py needs it.
.
python2.4 (2.4-2ubuntu3) hoary; urgency=low
.
* Add os.py and traceback.py to the -minimal package, get the list
of modules from the README.
.
python2.4 (2.4-2ubuntu2) hoary; urgency=low
.
* Add compileall.py and py_compile.py to the -minimal package, not
just to the README ...
.
python2.4 (2.4-2ubuntu1) hoary; urgency=low
.
* Separate the interpreter and a minimal subset of modules into
a python2.4-minimal package. See the README.Debian.gz in this
package.
* Move site.py to python2.4-minimal as well.
* Add documentation files for devhelp.
.
python2.4 (2.4-2) unstable; urgency=medium
.
* Updated patch for #283108. Thanks to Jim Meyering.
.
python2.4 (2.4-1) unstable; urgency=low
.
* Final 2.4 release.
* Flush stdout/stderr if closed (SF #1074011).
.
python2.4 (2.3.97-2) unstable; urgency=low
.
* Don't run test_tcl, hanging on the buildds.
.
python2.4 (2.3.97-1) unstable; urgency=low
.
* Python 2.4 Release Candidate 1.
.
python2.4 (2.3.96-1) experimental; urgency=low
.
* Updated to CVS release24-maint 20041113.
* Build the docs in info format again.
.
python2.4 (2.3.95-2) experimental; urgency=low
.
* Move distutils package from the python2.4-dev into the python2.4
package.
.
python2.4 (2.3.95-1) experimental; urgency=low
.
* Python 2.4 beta2 release.
.
python2.4 (2.3.94-1) experimental; urgency=low
.
* Python 2.4 beta1 release.
.
python2.4 (2.3.93-1) experimental; urgency=low
.
* Python 2.4 alpha3 release.
.
python2.4 (2.3.92-1) experimental; urgency=low
.
* Python 2.4 alpha2 release.
.
python2.4 (2.3.91-1) experimental; urgency=low
.
* Python 2.4 alpha1 release.
Highlights: http://www.python.org/2.4/highlights.html
.
python2.4 (2.3.90-1) experimental; urgency=low
.
* Package HEAD branch (pre alpha ..).
.
python2.3 (2.3.4-1) unstable; urgency=medium
.
* Final Python 2.3.4 Release.
* In the API docs, fix signature of PyModule_AddIntConstant (closes: #250826).
* locale.getdefaultlocale: don't fail with empty environment variables.
Closes: #249816.
* Include distutils/command/wininst.exe in -dev package (closes: #249006).
* Disable cthreads on the Hurd (Michael Banck). Closes: #247211.
* Add a note to pygettext(1), that this program is deprecated in favour
of xgettext, which now includes support for Python as well.
Closes: #246332.
.
python2.3 (2.3.3.91-1) unstable; urgency=low
.
* Python 2.3.4 Release Candidate 1.
* Do not use the default namespace for attributes. Patch taken from the
2.3 maintenance branch.
The xmllib module is obsolete. Use xml.sax instead.
* http://python.org/sf/945642 - fix nonblocking i/o with ssl socket.
.
python2.3 (2.3.3-7) unstable; urgency=low
.
* Add a workaround for GNU libc nl_langinfo()'s returning NULL.
Closes: #239237.
Patch taken from 2.3 maintenance branch.
* threading.py: Remove calls to currentThread() in _Condition methods that
were side-effect. Side-effects were deemed unnecessary and were causing
problems at shutdown time when threads were catching exceptions at start
time and then triggering exceptions trying to call currentThread() after
gc'ed. Masked the initial exception which was deemed bad.
Closes: #195812.
* Properly support normalization of empty unicode strings. Closes: #239986.
Patch taken from 2.3 maintenance branch.
* README.maintainers: Add section where to find the documentation tools.
* Fix crash in pyexpat module (closes: #229281).
* For the Hurd, set the interpreters recursion limit to 930.
* Do not try to byte-compile the test files on installation; this
currently breaks the Hurd install.
.
python2.3 (2.3.3-6) unstable; urgency=low
.
* Don't build the unversioned python{,-*} packages anymore. Now
built from the python-defaults package.
* Update to the proposed python-policy: byte-compile using -E.
* Remove python-elisp's dependency on emacs20 (closes: #232785).
* Don't build python-elisp from the python2.3 source anymore,
get it from python-mode.sf.net as a separate source package.
* python2.3-dev suggests libc-dev (closes: #231091).
* get LDSHARED and CCSHARED (like, CC, CXX, CPP, CFLAGS) from
the environment
* Set CXX in installed config/Makefile (closes: #230273).
.
python2.3 (2.3.3-5) unstable; urgency=low
.
* Build-depend on libdb4.2-dev, instead of libdb4.1-dev. According
to the docs the file format is compatible.
.
python2.3 (2.3.3-4) unstable; urgency=low
.
* Fix broken _bsddb module. setup.py picked up the wrong library.
.
python2.3 (2.3.3-3) unstable; urgency=low
.
* Fix typo in patch (closes: #224797, #226064).
.
python2.3 (2.3.3-2) unstable; urgency=medium
.
* Lib/email/Charset: use locale unaware function to lower case of locale
name (closes: #224797).
* Update python-mode to version from python-mode.sf.net. Fixes highlighting
problems (closes: #223520).
* Backport from mainline: Add IPV6_ socket options from RFCs 3493 and 3542.
.
python2.3 (2.3.3-1) unstable; urgency=low
.
* New upstream release.
* Copy the templates, tools and scripts from the Doc dir in the source
to /usr/share/lib/python2.3/doc in the python2.3-dev package. Needed
for packages building documentation like python does (closes: #207337).
.
python2.3 (2.3.2.91-1) unstable; urgency=low
.
* New upstream version (2.3.3 release candidate).
* Update python-mode.el (closes: #158811, #159630).
Closing unreproducible report (closes: #159628).
.
python2.3 (2.3.2-7) unstable; urgency=low
.
* Put the conflict in the correct direction. python2.3 (2.3.2-6) doesn't
conflict with python (<= 2.3.2-5) but python (2.3.2-6) conflicts with
python2.3 (<= 2.3.2-5) (thanks to Brian May). Really closes #221791.
.
python2.3 (2.3.2-6) unstable; urgency=low
.
* Add conflicts with older python{,2.3} packages to fix overwrite
errors (closes: #221791).
.
python2.3 (2.3.2-5) unstable; urgency=low
.
* Updated to CVS release23-maint 20031119.
* Re-upgrade the dependency of python2.3 on python (>= 2.3) to
a dependency (closes: #221523).
.
python2.3 (2.3.2-4) unstable; urgency=low
.
* Don't build-depend on latex2html (moved to non-free), but keep
the prebuilt docs in debian/patches (closes: #221347).
* Fix typos in the library reference (closes: #220510, #220954).
* Fix typo in python-elisp's autoloading code (closes: #220308).
* Update proposed python policy: private modules can be installed
into /usr/lib/<module> (arch dependent) and into /usr/share/<module>
(arch independent).
.
python2.3 (2.3.2-3) unstable; urgency=low
.
* Downgrade the dependency of python2.3 on python (>= 2.3) to
a recommendation.
* Fix path to interpreter in binfmt file.
* Fix segfault in unicodedata module (closes: #218697).
* Adjust python-elisp autoload code (closes: #219821).
.
python2.3 (2.3.2-2) unstable; urgency=medium
.
* Fix broken doc link (closes: #214217).
* Disable wrongly detected large file support for GNU/Hurd.
* Really fix the FTBFS for the binary-indep target (closes: #214303).
.
python2.3 (2.3.2-1) unstable; urgency=low
.
* New upstream version.
* Fix a FTBFS for the binary-indep target.
.
python2.3 (2.3.1-3) unstable; urgency=low
.
* Fix names of codec packages in recommends.
* On alpha compile using -mieee (see #212912).
.
python2.3 (2.3.1-2) unstable; urgency=low
.
* Update python policy draft (closes: #128911, #163785).
* Re-add os.fsync function (closes: #212672).
* Let python2.3-doc conflict with older python2.3 versions (closes: #211882).
* Add recommends for pythonX.Y-japanese-codecs, pythonX.Y-iconvcodec,
pythonX.Y-cjkcodecs, pythonX.Y-korean-codecs (closes: #207161).
* Generate binfmt file (closes: #208005).
* Add IPPROTO_IPV6 option to the socketmodule (closes: #206569).
* Bugs reported against python2.2 and fixed in python2.3:
- Crashes in idle (closes: #186887, #200084).
.
python2.3 (2.3.1-1) unstable; urgency=low
.
* New upstream version (bug fix release).
.
python2.3 (2.3-4) unstable; urgency=high
.
* Disable check for utimes function, which is broken in glibc-2.3.2.
Packages using distutils had '1970/01/01-01:00:01' timestamps in files.
* Bugs fixed by making python2.3 the default python version:
- Canvas.scan_dragto() takes a 3rd optional parmeter "gain".
Closes: #158168.
- New command line parsing module (closes: #38628).
- compileall.py allows compiling single files (closes: #139971).
* Bugs reported for 2.2 and fixed in 2.3:
- Idle does save files with ASCII characters (closes: #179313).
- imaplib support for prefix-quoted strings (closes: #150485).
- posixpath includes getctime (closes: #173827).
- pydoc has support for keywords (closes: #186775).
* Bugs reported for 2.1 and fixed in 2.3:
- Fix handling of "#anchor" URLs in urlparse (closes: #147844).
- Fix readline if C stdin is not a tty, even if sys.stdin is.
Closes: #131810.
* Updated to CVS release23-maint 20030810 (fixing memory leaks in
array and socket modules).
* pydoc's usage output uses the basename of the script.
* Don't explicitely remove /etc/python2.3 on purge (closes: #202864).
* python conflicts with python-xmlbase (closes: #204773).
* Add dependency python (>= 2.3) to python2.3, so make sure the
unversioned names can be used.
.
python2.3 (2.3-3) unstable; urgency=medium
.
* Fix shlibs file.
.
python2.3 (2.3-2) unstable; urgency=medium
.
* Make python2.3 the default python version.
.
python2.3 (2.3-1) unstable; urgency=low
.
* Python 2.3 final release.
.
python2.3 (2.2.107-1rc2) unstable; urgency=medium
.
* Python 2.3 release candidate 2.
* Don't compress .txt files referenced by the html docs (closes: #200298).
* Include the email/_compat* files (closes: #200349).
.
python2.3 (2.2.106-2beta2) unstable; urgency=medium
.
* Python 2.3 beta2 release, updated to CVS 20030704.
- Fixes AssertionError in httplib (closed: #192452).
- Fixes uncaught division by zero in difflib.py (closed: #199287).
* Detect presence of setgroups(2) at configure time (closes: #199839).
* Use default gcc on arm as well.
.
python2.3 (2.2.105-1beta2) unstable; urgency=low
.
* Python 2.3 beta2 release.
- Includes merged idle fork.
- Fixed socket.setdefaulttimeout(). Closes: #189380.
- socket.ssl works with _socketobj. Closes: #196082.
* Do not link libtix to the _tkinter module. It's loaded via
'package require tix' at runtime. python2.3-tkinter now
suggests tix8.1 instead.
* On arm, use gcc-3.2 to build.
* Add -fno-strict-aliasing rules to OPT to avoid warnings
"dereferencing type-punned pointer will break strict-aliasing rules",
when building with gcc-3.3.
.
python2.3 (2.2.104-1beta1.1) unstable; urgency=low
.
* Non-maintainer upload with maintainer consent.
* debian/control (Build-Depends): s/libgdbmg1-dev/libgdbm-dev/.
.
python2.3 (2.2.104-1beta1) unstable; urgency=low
.
* Python 2.3 beta1 release, updated to CVS 20030514.
- build the current documentation.
* Reenable Tix support.
.
python2.3 (2.2.103-1beta1) unstable; urgency=low
.
* Python 2.3 beta1 release, updated to CVS 20030506.
- updated due to build problems on mips/mipsel.
- keep the 2.3b1 documentation (doc build problems with cvs).
.
python2.3 (2.2.102-1beta1) unstable; urgency=low
.
* Python 2.3 beta1 release.
.
python2.3 (2.2.101-1exp1) unstable; urgency=medium
.
* Python 2.3 alpha2 release, updated to CVS 20030321.
* Tkinter: Catch exceptions thrown for undefined substitutions in
events (needed for tk 8.4.2).
.
python2.3 (2.2.100-1exp1) unstable; urgency=low
.
* Python 2.3 alpha2 release, updated to CVS 20030221.
.
python2.3 (2.2.99-1exp1) unstable; urgency=low
.
* Python 2.3 alpha1 release updated to CVS 20030123.
- should fix the testsuite (and package build) failure on alpha.
* Remove build dependency on libexpat1-dev. Merge the python2.3-xmlbase
package into python2.3 (closes: #177739).
.
python2.3 (2.2.98-1exp1) unstable; urgency=low
.
* Python 2.3 alpha1 release updated to CVS 20030117.
* Build using libdb4.1.
.
python2.3 (2.2.97-1exp1) unstable; urgency=low
.
* Python 2.3 alpha1 release updated to CVS 20030109.
* Build-Depend on g++ (>= 3:3.2).
* Python package maintainers: please wait uploading python dependent
packages until python2.2 and python2.1 are compiled using gcc-3.2.
.
python2.3 (2.2.96-1exp1) unstable; urgency=low
.
* Python 2.3 alpha1 release (not exactly the tarball, but taken from
CVS 20030101).
- Includes support for linking with threaded tk8.4 (closes: #172714).
* Install and register whatsnew document (closes: #173859).
* Properly unregister info documentation.
.
python2.3 (2.2.95-1exp1) unstable; urgency=low
.
* Experimental packages from CVS 021212.
- data in unicodedate module is up to date (closes: #171061).
* Fix idle packaging (closes: #170394).
* Configure using unicode UCS-4 (closes: #171062).
This change breaks compatibility with binary modules, but what do you
expect from experimental packages ... Please recompile dependent packages.
* Don't strip binaries for now.
.
python2.3 (2.2.94-1exp1) unstable; urgency=low
.
* Experimental packages from CVS 021120.
* Remove outdated README.dbm.
* Depend on tk8.4.
* python-elisp: Install emacsen install file with mode 644 (closes: #167718).
.
python2.3 (2.2.93-1exp1) unstable; urgency=medium
.
* Experimental packages from CVS 021015.
* Build a static library libpython2.3-pic.a.
* Enable large file support for the Hurd (closes: #164602).
.
python2.3 (2.2.92-1exp1) unstable; urgency=low
.
* Experimental packages from CVS 020922.
* Fix build error on ia64 (closes: #161234).
* Build depend on gcc-3.2-3.2.1-0pre2 to fix build error on arm.
.
python2.3 (2.2.91-1exp1) unstable; urgency=low
.
* Experimental packages from CVS 020906.
* idle-python2.3: Fix conflict (closes: #159267).
* Fix location of python-mode.el (closes: #159564, #159619).
* Use tix8.1.
* Apply fix for distutils/ccompiler problem (closes: #159288).
.
python2.3 (2.2.90-1exp1) unstable; urgency=low
.
* Experimental packages from CVS 020820.
* Don't build python2.3-elisp, but put the latest version into
python-elisp.
.
python2.2 (2.2.1-6) unstable; urgency=low
.
* CVS updates of the release22-maint branch upto 2002-07-23.
* Enable IPv6 support (closes: #152543).
* Add python2.2-tk suggestion for python2.2 (pydoc -g).
* Fix from SF patch #527518: proxy config with user+pass authentication.
* Point pydoc to the correct location of the docs (closes: #147579).
* Remove '*.py[co]' files, when removing the python package,
not when purging (closes: #147130).
* Update to new py2texi.el version (Milan Zamazal).
.
python2.2 (2.2.1-5) unstable; urgency=low
.
* CVS updates of the release22-maint branch upto 2002-05-03.
* Build the info docs (closes: #145653).
.
python2.2 (2.2.1-4) unstable; urgency=high
.
* Fix indentation errors introduced in last upload (closes: #143809).
.
python2.2 (2.2.1-3) unstable; urgency=high
.
* Add Build-Conflicts: tcl8.0-dev, tk8.0-dev, tcl8.2-dev, tk8.2-dev.
Closes: #143534 (build a working _tkinter module, on machines, where
8.0's tk.h gets included).
* CVS updates of the release22-maint branch upto 2002-04-20.
.
python2.2 (2.2.1-2) unstable; urgency=low
.
* Forgot to copy the dlmodule patch from the 2.1.3 package. Really
closes: #141681.
.
python2.2 (2.2.1-1) unstable; urgency=high
.
* Final 2.2.1 release.
* According to report #131813, the python interpreter is much faster on some
architectures, when beeing linked statically with the python library (25%).
Gregor and me tested on i386, m68k and alpha, but we could not reproduce
such a speedup (generally between 5% and 10%). But we are linking the
python executable now statically ...
* Build info docs from the tex source, merge the python-doc-info
package into the python-doc package.
* Always build the dl module. Failure in case of
sizeof(int)!=sizeof(long)!=sizeof(void*)
is delayed until dl.open is called. Closes: #141681.
.
python2.2 (2.2.0.92-0) unstable; urgency=low
.
* Package CVS sources, omit cvs-updates.dpatch (closes: #140977).
.
python2.2 (2.2-6) unstable; urgency=medium
.
* Update to python-2.2.1 release candidate 2 (final release scheduled
for April 10).
* Enable dl module (closes: #138992).
* Build doc files with python binary from package (closes: #139657).
* Build _tkinter module with BLT and Tix support.
* python2.2-elisp: Conflict with python2-elisp (closes: #138970).
* string.split docs updated in python-2.2.1 (closes: #129272).
.
python2.2 (2.2-5) unstable; urgency=low
.
* CVS updates of the release22-maint branch upto 20020310 (aproaching
the first 2.2.1 release candidate).
* Stolen from HEAD: check argument of locale.nl_langinfo (closes: #137371).
.
python2.2 (2.2-4) unstable; urgency=medium
.
* Include test/{__init__.py,README,pystone.py} in package (closes: #129013).
* Fix python-elisp conflict (closes: #129046).
* Don't compress stylesheets (closes: #133179).
* CVS updates of the release22-maint branch upto 20020310.
.
python2.2 (2.2-3) unstable; urgency=medium
.
* Updates from the CVS python22-maint branch up to 20020107.
webbrowser.py: properly escape url's.
* The Hurd does not have large file support: disabled.
.
python2.2 (2.2-2) unstable; urgency=medium
.
* CVS updates of the release22-maint branch upto 20011229. Fixes:
- Include TCP_CORK flag in plat-linux2 headers (fixes: #84340).
- Update CDROM.py module (fixes: #125785).
* Add missing chunk of the GNU/Hurd patch (therefore urgency medium).
* Send anonymous password when using anonftp (closes: #126814).
.
python2.2 (2.2-1) unstable; urgency=low
.
* New upstream version: 2.2.
* Bugs fixed upstream:
- Docs for os.kill reference the signal module for constants.
- Documentation strings in the tutorial end with a period (closes: #94770).
- Tk: grid_location method moved from Grid to Misc (closes: #98338).
- mhlib.SubMessage.getbodytext takes decode parameter (closes: #31876).
- Strings in modules are locale aware (closes: #51444).
- Printable 8-bit characters in strings are correctly printed
(closes: #64354).
- Dictionary can be updated with abstract mapping object (closes: #46566).
* Make site.py a config files.
.
python2.2 (2.1.99c1-1) unstable; urgency=low
.
* New upstream version: 2.2c1 (release candidate).
* Do not provide python2.2-base anymore.
* Install correct README.Debian for python2.2 package. Include hint
where to find Makefile.pre.in.
* Suggest installation of python-ssl.
* Remove idle config files on purge.
* Remove empty /usr/lib/python2.2 directory on purge.
.
python2.2 (2.1.99beta2-1) unstable; urgency=high
.
* debian/rules: Reflect removal of regrtest package (closes: #122278).
Resulted in build failures on all architectures.
* Build -doc package from source.
.
python2.2 (2.1.99beta2-0.1) unstable; urgency=low
.
* Non maintainer upload.
* New upstream version (this is 2.2beta2).
* Do not build the python-regrtest package anymore; keep the test framework
components test/regrtest.py and test/test_support.py in the python
package (closes: #119408).
.
python2.2 (2.1.99beta1-4) unstable; urgency=low
.
* Configure with --with-fpectl (closes: #118125).
* setup.py: Remove broken check for _curses_panel module (#116081).
* idle: Move config-* files to /etc and mark as conffiles (#106390).
* Move idle packages to section `devel'.
.
python2.2 (2.1.99beta1-3) unstable; urgency=low
.
* Fix shlibs file (was still referring to 2.1). Closes: #116810.
* README.Debian: point to draft of python-policy in the python package.
.
python2.2 (2.1.99beta1-2) unstable; urgency=medium
.
* Fix shlibs file (was still referring to 2.1). Closes: #116810.
* Rename package python2.2-base to python2.2.
.
python2.2 (2.1.99beta1-1) unstable; urgency=low
.
* New upstream version (beta). Call the package version 2.1.99beta1-1.
* New maintainer until the final 2.2 release.
* Updated the debian patches.
.
python2.1 (2.1.1-1.2) unstable; urgency=low
.
* Really remove the python alternative.
.
python2.1 (2.1.1-1.1) unstable; urgency=low
.
* README FOR PACKAGE MAINTAINERS: It is planned to remove the python2-XXX
packages from unstable and move on to python2.1.
If you repackage/adapt your modules for python2.1, don't build
python2-XXX and python2.1-XXX packages from the same source package,
so that the python2-XXX package can be removed without influencing the
python2.1-XXX package.
.
See the debian-python mailing list at http://lists.debian.org/devel.html
for details and the current discussion and a draft for a debian-python
policy (August to October 2001).
.
* Remove alternative for /usr/bin/python. The python-base package now
provides the default python version.
.
* Regenerate control file to fix build dependencies (closes: #116190).
* Remove alternative for /usr/bin/{python,pydoc}.
* Provide a libpython2.1.so symlink in /usr/lib/python2.1/config,
so that the shared library is found when -L/usr/lib/python2.1/config
is specified.
* Conflict with old package versions, where /usr/bin/python is a real
program (closes: #115943).
* python2.1-elisp conflicts with python-elisp (closes: #115895).
* We now have 2.1 (closes: #96851, #107849, #110243).
.
python2.1 (2.1.1-1) unstable; urgency=low
.
* Incorporated Matthias' modifications.
.
python2.1 (2.1.1-0.2) unstable; urgency=low
.
* New upstream 2.1.1.
* GPL compatible licence (fixes #84080, #102949, #110643).
* Fixed upstream (closes: #99692, #111340).
* Build in separate build directory.
* Split Debian patches into debian/patches directory.
* Build dependencies: Add libgmp3-dev, libexpat1-dev, tighten
debhelper dependency.
* debian/rules: Updated a "bit".
* python-elisp: Remove custom dependency (closes: #87783),
fix emacs path (closes: #89712), remove emacs19 dependency (#82694).
* Mention distutils in python-dev package description (closes: #108170).
* Update README.Debian (closes: #85430).
* Run versioned python in postinsts (closes: #113349).
* debian/sample.{postinst,prerm}: Change to version independent scripts.
* Use '/usr/bin/env python2.1' as interpreter for all python scripts.
* Add libssl-dev to Build-Conflicts.
* python-elisp: Add support for emacs21 (closes: #98635).
* Do not compress .py files in doc directories.
* Don't link explicitely with libc.
.
python2.1 (2.1.1-0.1) unstable; urgency=low
.
* New upstream version (CVS branch release21-maint, will become 2.1.1):
This CVS branch will be released as 2.1.1 under a GPL compatible
license.
.
python2 (2.1-0.1) unstable; urgency=low
.
* Fixed Makefile.pre.in.
* Fixed the postinst files in order to use 2.1 (instead of 2.0).
* Mention the immanent release of 2.0.1 and 2.1.1, with a GPL
compatible license.
.
python2 (2.1-0) unstable; urgency=low
.
* New upstream version.
* Experimental packages.
.
python2 (2.0-7) unstable; urgency=low
.
* Rebuilt with recent tcl8.3-dev/tk8.3-dev in order to fix a
dependency problem with python2-tk (closes: #87793, #92962).
* Change postinst to create and update /usr/local/lib/python2.0 and
site-python with permissions and owner as mandated by policy:
2775 and root:staff (closes: #89047).
* Fix to compileall.py: A superfluous argument made compileall without
options fail (cf. #92990 for python).
* Move the distutils module into python2-dev. It needs Makefile.pre.in
in order to work (closes: #89900).
* Remove build-dependency on libgdbm2-dev (which isn't built anyway).
* Add a build-dependency on libdb2-dev (cf. #90220 for python).
.
python2 (2.0-6) unstable; urgency=low
.
* Remove python-zlib package; merge it into python-base.
* Mark that README.python2 is not yet updated.
.
python2 (2.0-5) unstable; urgency=low
.
* Recompile with tcl/tk8.3 (closes: #82088).
* Modifications to README.why-python2 (closes: #82116).
* Add menu hint to idle2 menu entry.
* idle2 is renamed idle-python2 and now build correctly (closes: #82218).
* Add build-dependency on autoconf (closes: #85339).
* Build bsddbmodule as shared module (Modules/Setup.config.in),
and link libpython2.so with -lm in Makefile (closes: #86027).
* various cleanups in debian/rules, e.g. removing dh_suidregister.
* Make pdb available as /usr/bin/pdb-python2 in python2-dev
(cf. #79870 in python-base).
* Remove libgmp3 from build-dependencies, since we currently can't
build the mpzmodule for Python2 due to license problems.
.
python2 (2.0-4) unstable; urgency=low
.
* control: make python2-elisp conflict with python-elisp (it doesn't
make sense to have both of them installed, does it ?)
* include build-depend on libxmltok1-dev.
* again, build with tcl/tk8.0.
.
python2 (2.0-3) unstable; urgency=low
.
* Modules/Setup.in: Added a missing \ that made _tkinter be built
incorrectly.
* rules: on the fly, change all '#!' python scripts to use python2.
.
python2 (2.0-2) unstable; urgency=low
.
* Aaargh. Remove conflicts/provides/replaces on python-base to make
parallel installation of python-base and python2-base possible.
* Install examples into /usr/share/doc/python2 (not python) and fix
symlink to python2.0 (thanks to Rick Younie <younie@home.com> for
pointing out this).
* Rename man page to python2.1.
.
python2 (2.0-1) unstable; urgency=low
.
* New upstream version. Initial release for python2.
This commit is contained in:
41
debian/2to3-2.7.1
vendored
Normal file
41
debian/2to3-2.7.1
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
|
||||
.TH 2TO3-2.7 "1" "January 2012" "2to3-2.7 2.7" "User Commands"
|
||||
.SH NAME
|
||||
2to3-2.7 \- Python2 to Python3 converter
|
||||
.SH SYNOPSIS
|
||||
.B 2to3
|
||||
[\fIoptions\fR] \fIfile|dir \fR...
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
show this help message and exit
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-doctests_only\fR
|
||||
Fix up doctests only
|
||||
.TP
|
||||
\fB\-f\fR FIX, \fB\-\-fix\fR=\fIFIX\fR
|
||||
Each FIX specifies a transformation; default: all
|
||||
.TP
|
||||
\fB\-j\fR PROCESSES, \fB\-\-processes\fR=\fIPROCESSES\fR
|
||||
Run 2to3 concurrently
|
||||
.TP
|
||||
\fB\-x\fR NOFIX, \fB\-\-nofix\fR=\fINOFIX\fR
|
||||
Prevent a transformation from being run
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-list\-fixes\fR
|
||||
List available transformations
|
||||
.TP
|
||||
\fB\-p\fR, \fB\-\-print\-function\fR
|
||||
Modify the grammar so that print() is a function
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
More verbose logging
|
||||
.TP
|
||||
\fB\-\-no\-diffs\fR
|
||||
Don't show diffs of the refactoring
|
||||
.TP
|
||||
\fB\-w\fR, \fB\-\-write\fR
|
||||
Write back modified files
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-\-nobackups\fR
|
||||
Don't write backups for modified files
|
||||
8997
debian/FAQ.html
vendored
Normal file
8997
debian/FAQ.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
58
debian/PVER-dbg.README.Debian.in
vendored
Normal file
58
debian/PVER-dbg.README.Debian.in
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
Contents of the @PVER@-dbg package
|
||||
-------------------------------------
|
||||
|
||||
For debugging python and extension modules, you may want to add the contents
|
||||
of /usr/share/doc/@PVER@/gdbinit (found in the @PVER@-dev package) to your
|
||||
~/.gdbinit file.
|
||||
|
||||
@PVER@-dbg contains two sets of packages:
|
||||
|
||||
- debugging symbols for the standard @PVER@ build. When this package
|
||||
is installed, gdb will automatically load up the debugging symbols
|
||||
from it when debugging @PVER@ or one of the included extension
|
||||
modules.
|
||||
|
||||
- a separate @PVER@-dbg binary, configured --with-pydebug, enabling the
|
||||
additional debugging code to help debug memory management problems.
|
||||
|
||||
For the latter, all extension modules have to be recompiled to
|
||||
correctly load with an pydebug enabled build.
|
||||
|
||||
|
||||
Debian and Ubuntu specific changes to the debug interpreter
|
||||
-----------------------------------------------------------
|
||||
The python2.4 and python2.5 packages in Ubuntu feisty are modified to
|
||||
first look for extension modules under a different name.
|
||||
|
||||
normal build: foo.so
|
||||
debug build: foo_d.so foo.so
|
||||
|
||||
This naming schema allows installation of the extension modules into
|
||||
the same path (The naming is directly taken from the Windows builds
|
||||
which already uses this naming scheme).
|
||||
|
||||
See https://wiki.ubuntu.com/PyDbgBuilds for more information.
|
||||
|
||||
|
||||
Using the python-dbg builds
|
||||
---------------------------
|
||||
|
||||
* Call the python-dbg or the pythonX.Y-dbg binaries instead of the
|
||||
python or pythonX.Y binaries.
|
||||
|
||||
* Debugging a third party extension requires the availabilty of the
|
||||
extension built for the debug interpreter. For an extension `foo'
|
||||
make sure that the `python-foo-dbg' package is installed, or else
|
||||
the interpreter falls back to the extension for the normal build.
|
||||
The error on fallback is expected.
|
||||
|
||||
* Properties of the debug build are described in
|
||||
/usr/share/doc/@PVER@/SpecialBuilds.txt.gz.
|
||||
The debug interpreter is built with Py_DEBUG defined.
|
||||
|
||||
* From SpecialBuilds.txt: This is what is generally meant by "a debug
|
||||
build" of Python. Py_DEBUG implies LLTRACE, Py_REF_DEBUG,
|
||||
Py_TRACE_REFS, and PYMALLOC_DEBUG (if WITH_PYMALLOC is enabled).
|
||||
In addition, C assert()s are enabled (via the C way: by not defining
|
||||
NDEBUG), and some routines do additional sanity checks inside
|
||||
"#ifdef Py_DEBUG" blocks.
|
||||
13
debian/PVER-dbg.overrides.in
vendored
Normal file
13
debian/PVER-dbg.overrides.in
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
@PVER@-dbg binary: package-name-doesnt-match-sonames
|
||||
@PVER@-dbg binary: non-dev-pkg-with-shlib-symlink
|
||||
|
||||
# no, it's not unusual
|
||||
@PVER@-dbg binary: unusual-interpreter
|
||||
|
||||
# just the gdb debug file
|
||||
@PVER@-dbg binary: python-script-but-no-python-dep
|
||||
|
||||
# pointless lintian ...
|
||||
@PVER@-dbg binary: hardening-no-fortify-functions
|
||||
|
||||
@PVER@-dbg binary: command-with-path-in-maintainer-script
|
||||
19
debian/PVER-dbg.postinst.in
vendored
Normal file
19
debian/PVER-dbg.postinst.in
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = configure ]; then
|
||||
files=$(dpkg -L lib@PVER@-dbg@HOST_QUAL@ | sed -n '/^\/usr\/lib\/@PVER@\/.*\.py$/p')
|
||||
if [ -n "$files" ]; then
|
||||
/usr/bin/@PVER@ -E -S /usr/lib/@PVER@/py_compile.py $files
|
||||
if grep -sq '^byte-compile[^#]*optimize' /etc/python/debian_config; then
|
||||
/usr/bin/@PVER@ -E -S -O /usr/lib/@PVER@/py_compile.py $files
|
||||
fi
|
||||
else
|
||||
echo >&2 "@PVER@-dbg: can't get files for byte-compilation"
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
28
debian/PVER-dbg.prerm.in
vendored
Normal file
28
debian/PVER-dbg.prerm.in
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
rm -f /usr/lib/debug/usr/bin/@PVER@-gdb.py[co]
|
||||
rm -f /usr/lib/debug/usr/lib/lib@PVER@.so.1.0-gdb.py[co]
|
||||
dpkg -L lib@PVER@-dbg@HOST_QUAL@ \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
;;
|
||||
upgrade)
|
||||
dpkg -L lib@PVER@-dbg@HOST_QUAL@ \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
13
debian/PVER-doc.doc-base.PVER-api.in
vendored
Normal file
13
debian/PVER-doc.doc-base.PVER-api.in
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Document: @PVER@-api
|
||||
Title: Python/C API Reference Manual (v@VER@)
|
||||
Author: Guido van Rossum
|
||||
Abstract: This manual documents the API used by C (or C++) programmers who
|
||||
want to write extension modules or embed Python. It is a
|
||||
companion to *Extending and Embedding the Python Interpreter*,
|
||||
which describes the general principles of extension writing but
|
||||
does not document the API functions in detail.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/c-api/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/c-api/*.html
|
||||
13
debian/PVER-doc.doc-base.PVER-dist.in
vendored
Normal file
13
debian/PVER-doc.doc-base.PVER-dist.in
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Document: @PVER@-dist
|
||||
Title: Distributing Python Modules (v@VER@)
|
||||
Author: Greg Ward
|
||||
Abstract: This document describes the Python Distribution Utilities
|
||||
(``Distutils'') from the module developer's point-of-view, describing
|
||||
how to use the Distutils to make Python modules and extensions easily
|
||||
available to a wider audience with very little overhead for
|
||||
build/release/install mechanics.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/distutils/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/distutils/*.html
|
||||
16
debian/PVER-doc.doc-base.PVER-ext.in
vendored
Normal file
16
debian/PVER-doc.doc-base.PVER-ext.in
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
Document: @PVER@-ext
|
||||
Title: Extending and Embedding the Python Interpreter (v@VER@)
|
||||
Author: Guido van Rossum
|
||||
Abstract: This document describes how to write modules in C or C++ to extend
|
||||
the Python interpreter with new modules. Those modules can define
|
||||
new functions but also new object types and their methods. The
|
||||
document also describes how to embed the Python interpreter in
|
||||
another application, for use as an extension language. Finally,
|
||||
it shows how to compile and link extension modules so that they
|
||||
can be loaded dynamically (at run time) into the interpreter, if
|
||||
the underlying operating system supports this feature.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/extending/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/extending/*.html
|
||||
12
debian/PVER-doc.doc-base.PVER-inst.in
vendored
Normal file
12
debian/PVER-doc.doc-base.PVER-inst.in
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Document: @PVER@-inst
|
||||
Title: Installing Python Modules (v@VER@)
|
||||
Author: Greg Ward
|
||||
Abstract: This document describes the Python Distribution Utilities
|
||||
(``Distutils'') from the end-user's point-of-view, describing how to
|
||||
extend the capabilities of a standard Python installation by building
|
||||
and installing third-party Python modules and extensions.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/install/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/install/*.html
|
||||
15
debian/PVER-doc.doc-base.PVER-lib.in
vendored
Normal file
15
debian/PVER-doc.doc-base.PVER-lib.in
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
Document: @PVER@-lib
|
||||
Title: Python Library Reference (v@VER@)
|
||||
Author: Guido van Rossum
|
||||
Abstract: This library reference manual documents Python's standard library,
|
||||
as well as many optional library modules (which may or may not be
|
||||
available, depending on whether the underlying platform supports
|
||||
them and on the configuration choices made at compile time). It
|
||||
also documents the standard types of the language and its built-in
|
||||
functions and exceptions, many of which are not or incompletely
|
||||
documented in the Reference Manual.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/library/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/library/*.html
|
||||
10
debian/PVER-doc.doc-base.PVER-new.in
vendored
Normal file
10
debian/PVER-doc.doc-base.PVER-new.in
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
Document: @PVER@-new
|
||||
Title: What's new in Python @VER@
|
||||
Author: A.M. Kuchling
|
||||
Abstract: This documents lists new features and changes worth mentioning
|
||||
in Python @VER@.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/whatsnew/@VER@.html
|
||||
Files: /usr/share/doc/@PVER@/html/whatsnew/@VER@.html
|
||||
18
debian/PVER-doc.doc-base.PVER-ref.in
vendored
Normal file
18
debian/PVER-doc.doc-base.PVER-ref.in
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
Document: @PVER@-ref
|
||||
Title: Python Reference Manual (v@VER@)
|
||||
Author: Guido van Rossum
|
||||
Abstract: This reference manual describes the syntax and "core semantics" of
|
||||
the language. It is terse, but attempts to be exact and complete.
|
||||
The semantics of non-essential built-in object types and of the
|
||||
built-in functions and modules are described in the *Python
|
||||
Library Reference*. For an informal introduction to the language,
|
||||
see the *Python Tutorial*. For C or C++ programmers, two
|
||||
additional manuals exist: *Extending and Embedding the Python
|
||||
Interpreter* describes the high-level picture of how to write a
|
||||
Python extension module, and the *Python/C API Reference Manual*
|
||||
describes the interfaces available to C/C++ programmers in detail.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/reference/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/reference/*.html
|
||||
13
debian/PVER-doc.doc-base.PVER-tut.in
vendored
Normal file
13
debian/PVER-doc.doc-base.PVER-tut.in
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Document: @PVER@-tut
|
||||
Title: Python Tutorial (v@VER@)
|
||||
Author: Guido van Rossum, Fred L. Drake, Jr., editor
|
||||
Abstract: This tutorial introduces the reader informally to the basic
|
||||
concepts and features of the Python language and system. It helps
|
||||
to have a Python interpreter handy for hands-on experience, but
|
||||
all examples are self-contained, so the tutorial can be read
|
||||
off-line as well.
|
||||
Section: Programming/Python
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/@PVER@/html/tutorial/index.html
|
||||
Files: /usr/share/doc/@PVER@/html/tutorial/*.html
|
||||
2
debian/PVER-doc.overrides.in
vendored
Normal file
2
debian/PVER-doc.overrides.in
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# this is referenced by the html docs
|
||||
@PVER@-doc binary: extra-license-file
|
||||
2
debian/PVER-examples.overrides.in
vendored
Normal file
2
debian/PVER-examples.overrides.in
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# don't care about permissions of the example files
|
||||
@PVER@-examples binary: executable-not-elf-or-script
|
||||
157
debian/PVER-minimal.README.Debian.in
vendored
Normal file
157
debian/PVER-minimal.README.Debian.in
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
Contents of the @PVER@-minimal package
|
||||
-----------------------------------------
|
||||
|
||||
@PVER@-minimal consists of a minimum set of modules which may be needed
|
||||
for python scripts used during the boot process. If other packages
|
||||
are needed in these scripts, don't work around the missing module, but
|
||||
file a bug report against this package. The modules in this package
|
||||
are:
|
||||
|
||||
__builtin__ builtin
|
||||
__future__ module
|
||||
_abcoll module
|
||||
_bisect extension
|
||||
_bytesio extension
|
||||
_codecs builtin
|
||||
_collections extension
|
||||
_fileio extension
|
||||
_functools extension
|
||||
_hashlib extensionx
|
||||
_heapq extension
|
||||
_io extension
|
||||
_locale extension
|
||||
_md5 extension
|
||||
_random extension
|
||||
_sha extension
|
||||
_sha256 extension
|
||||
_sha512 extension
|
||||
_socket extension
|
||||
_sre builtin
|
||||
_ssl extensionx
|
||||
_struct extension
|
||||
_symtable builtin
|
||||
_sysconfigdata module
|
||||
_types builtin
|
||||
_warnings builtin
|
||||
_weakref extension
|
||||
_weakrefset module
|
||||
abc module
|
||||
atexit module
|
||||
ConfigParser module
|
||||
StringIO module
|
||||
UserDict module
|
||||
cPickle extension
|
||||
cStringIO extension
|
||||
array extension
|
||||
base64 module
|
||||
binascii extension
|
||||
bisect module
|
||||
cmath extension
|
||||
calendar module
|
||||
codecs module
|
||||
collections module
|
||||
compileall module
|
||||
contextlib module
|
||||
copy module
|
||||
copy_reg module
|
||||
datetime extension
|
||||
dis module
|
||||
encodings package
|
||||
errno builtin
|
||||
exceptions builtin
|
||||
fcntl extension
|
||||
fnmatch module
|
||||
functools module
|
||||
gc builtin
|
||||
genericpath module
|
||||
getopt module
|
||||
glob module
|
||||
grp extension
|
||||
hashlib module
|
||||
heapq module
|
||||
imp builtin
|
||||
inspect module
|
||||
io module
|
||||
itertools extension
|
||||
keyword module
|
||||
linecache module
|
||||
locale module
|
||||
logging package
|
||||
marshal builtin
|
||||
math extension
|
||||
md5 module
|
||||
opcode module
|
||||
operator extension
|
||||
optparse module
|
||||
os module
|
||||
pickle module
|
||||
platform module
|
||||
popen2 module
|
||||
posix builtin
|
||||
posixpath module
|
||||
pkgutil module
|
||||
pwd builtin
|
||||
py_compile module
|
||||
random module
|
||||
re module
|
||||
repr module
|
||||
runpy module
|
||||
select extension
|
||||
sha module
|
||||
shutil module
|
||||
signal builtin
|
||||
socket module
|
||||
spwd extension
|
||||
sre module
|
||||
sre_compile module
|
||||
sre_constants module
|
||||
sre_parse module
|
||||
ssl module
|
||||
stat module
|
||||
string module
|
||||
strop extension
|
||||
struct module
|
||||
subprocess module
|
||||
sys builtin
|
||||
syslog extension
|
||||
sysconfig module
|
||||
tempfile module
|
||||
textwrap module
|
||||
time extension
|
||||
token module
|
||||
thread builtin
|
||||
token module
|
||||
tokenize module
|
||||
traceback module
|
||||
types module
|
||||
unicodedata extension
|
||||
weakref module
|
||||
warnings module
|
||||
zipimport extension
|
||||
zlib extension
|
||||
|
||||
Included are as well the codecs and stringprep modules, and the encodings
|
||||
modules for all encodings except the multibyte encodings and the bz2 codec.
|
||||
|
||||
The following modules are excluded, their import is guarded from the
|
||||
importing module:
|
||||
|
||||
Used in Excluded
|
||||
------------ ------------------------------------
|
||||
os nt ntpath os2 os2emxpath mac macpath
|
||||
riscos riscospath riscosenviron
|
||||
optparse gettext
|
||||
pickle doctest
|
||||
subprocess threading
|
||||
|
||||
This list was derived by looking at the modules in the perl-base package,
|
||||
then adding python specific "core modules".
|
||||
|
||||
TODO's
|
||||
------
|
||||
|
||||
- time.strptime cannot be used. The required _strptime module is not
|
||||
included in the -minimal package yet. _strptime, locale, _locale and
|
||||
calendar have to be added.
|
||||
|
||||
- modules used very often in the testsuite: copy, cPickle, operator.
|
||||
1
debian/PVER-minimal.overrides.in
vendored
Normal file
1
debian/PVER-minimal.overrides.in
vendored
Normal file
@@ -0,0 +1 @@
|
||||
@PVER@-minimal binary: command-with-path-in-maintainer-script
|
||||
78
debian/PVER-minimal.postinst.in
vendored
Normal file
78
debian/PVER-minimal.postinst.in
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -f /etc/@PVER@/sitecustomize.py ]; then
|
||||
cat <<-EOF
|
||||
# Empty sitecustomize.py to avoid a dangling symlink
|
||||
EOF
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# Create empty directories in /usr/local
|
||||
if [ ! -e /usr/local/lib/@PVER@ ]; then
|
||||
mkdir -p /usr/local/lib/@PVER@ 2> /dev/null || true
|
||||
chmod 2775 /usr/local/lib/@PVER@ 2> /dev/null || true
|
||||
chown root:staff /usr/local/lib/@PVER@ 2> /dev/null || true
|
||||
fi
|
||||
localsite=/usr/local/lib/@PVER@/dist-packages
|
||||
if [ ! -e $localsite ]; then
|
||||
mkdir -p $localsite 2> /dev/null || true
|
||||
chmod 2775 $localsite 2> /dev/null || true
|
||||
chown root:staff $localsite 2> /dev/null || true
|
||||
fi
|
||||
|
||||
if which update-binfmts >/dev/null; then
|
||||
update-binfmts --import @PVER@
|
||||
fi
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$1" = configure ]; then
|
||||
if ls -L /usr/lib/@PVER@/sitecustomize.py >/dev/null 2>&1; then
|
||||
filt='cat'
|
||||
else
|
||||
filt='fgrep -v sitecustomize.py'
|
||||
fi
|
||||
files=$(dpkg -L lib@PVER@-minimal@HOST_QUAL@ \
|
||||
| sed -n '/^\/usr\/lib\/@PVER@\/.*\.py$/p' | $filt)
|
||||
if [ -n "$files" ]; then
|
||||
/usr/bin/@PVER@ -E -S /usr/lib/@PVER@/py_compile.py $files
|
||||
if grep -sq '^byte-compile[^#]*optimize' /etc/python/debian_config; then
|
||||
/usr/bin/@PVER@ -E -S -O /usr/lib/@PVER@/py_compile.py $files
|
||||
fi
|
||||
else
|
||||
echo >&2 "@PVER@-minimal: can't get files for byte-compilation"
|
||||
fi
|
||||
bc=no
|
||||
if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.7-9 \
|
||||
|| [ -f /var/lib/python/@PVER@_installed ]; then
|
||||
bc=yes
|
||||
fi
|
||||
if grep -sq '^unsupported-versions[^#]*@PVER@' /usr/share/python/debian_defaults
|
||||
then
|
||||
# FIXME: byte compile anyway?
|
||||
bc=no
|
||||
fi
|
||||
if [ "$bc" = yes ]; then
|
||||
# new installation or installation of first version with hook support
|
||||
if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
|
||||
echo "Linking and byte-compiling packages for runtime @PVER@..."
|
||||
fi
|
||||
version=$(dpkg -s @PVER@-minimal | awk '/^Version:/ {print $2}')
|
||||
for hook in /usr/share/python/runtime.d/*.rtinstall; do
|
||||
[ -x $hook ] || continue
|
||||
$hook rtinstall @PVER@ "$2" "$version"
|
||||
done
|
||||
if [ -f /var/lib/python/@PVER@_installed ]; then
|
||||
rm -f /var/lib/python/@PVER@_installed
|
||||
rmdir --ignore-fail-on-non-empty /var/lib/python 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
21
debian/PVER-minimal.postrm.in
vendored
Normal file
21
debian/PVER-minimal.postrm.in
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" ]; then
|
||||
|
||||
if [ -f /var/lib/python/@PVER@_installed ]; then
|
||||
rm -f /var/lib/python/@PVER@_installed
|
||||
rmdir --ignore-fail-on-non-empty /var/lib/python 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
for d in `find /usr/lib/@PVER@ -depth -type d -empty 2> /dev/null`; do \
|
||||
while rmdir $d 2> /dev/null; do d=`dirname $d`; done; \
|
||||
done
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
39
debian/PVER-minimal.preinst.in
vendored
Normal file
39
debian/PVER-minimal.preinst.in
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
syssite=/usr/lib/@PVER@/site-packages
|
||||
oldsite=/usr/lib/@PVER@/old-site-packages
|
||||
localsite=/usr/local/lib/@PVER@/dist-packages
|
||||
syslink=../../${localsite#/usr/*}
|
||||
|
||||
case "$1" in
|
||||
install)
|
||||
if [ -z "$2" ] && [ -d $syssite ] && [ ! -h $syssite ]; then
|
||||
echo "new installation of @PVER@-minimal; $syssite is a directory"
|
||||
echo "which is expected a symlink to $localsite."
|
||||
echo "please find the package shipping files in $syssite and"
|
||||
echo "file a bug report to ship these in /usr/lib/@PVER@/dist-packages instead"
|
||||
echo "aborting installation of @PVER@-minimal"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# remember newly installed runtime
|
||||
mkdir -p /var/lib/python
|
||||
touch /var/lib/python/@PVER@_installed
|
||||
;;
|
||||
upgrade)
|
||||
;;
|
||||
|
||||
abort-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "preinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
36
debian/PVER-minimal.prerm.in
vendored
Normal file
36
debian/PVER-minimal.prerm.in
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
|
||||
echo "Unlinking and removing bytecode for runtime @PVER@"
|
||||
fi
|
||||
for hook in /usr/share/python/runtime.d/*.rtremove; do
|
||||
[ -x $hook ] || continue
|
||||
$hook rtremove @PVER@ || continue
|
||||
done
|
||||
|
||||
if which update-binfmts >/dev/null; then
|
||||
update-binfmts --package @PVER@ --remove @PVER@ /usr/bin/@PVER@
|
||||
fi
|
||||
|
||||
localsite=/usr/local/lib/@PVER@/dist-packages
|
||||
[ -d $localsite ] && rmdir $localsite 2>/dev/null || true
|
||||
[ -d $(dirname $localsite) ] \
|
||||
&& rmdir $(dirname $localsite) 2>/dev/null || true
|
||||
;;
|
||||
upgrade)
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
10
debian/PVER.desktop.in
vendored
Normal file
10
debian/PVER.desktop.in
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=Python (v@VER@)
|
||||
Comment=Python Interpreter (v@VER@)
|
||||
Exec=/usr/bin/@PVER@
|
||||
Icon=/usr/share/pixmaps/@PVER@.xpm
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Development;
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
16
debian/PVER.overrides.in
vendored
Normal file
16
debian/PVER.overrides.in
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# idlelib images
|
||||
@PVER@ binary: image-file-in-usr-lib
|
||||
|
||||
# yes, we have to
|
||||
@PVER@ binary: depends-on-python-minimal
|
||||
|
||||
@PVER@ binary: desktop-command-not-in-package
|
||||
@PVER@ binary: menu-command-not-in-package
|
||||
|
||||
# license file referred by the standard library
|
||||
@PVER@ binary: extra-license-file
|
||||
|
||||
# no, not useless
|
||||
@PVER@ binary: manpage-has-useless-whatis-entry
|
||||
|
||||
@PVER@ binary: command-with-path-in-maintainer-script
|
||||
41
debian/PVER.postinst.in
vendored
Normal file
41
debian/PVER.postinst.in
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
files=$(dpkg -L lib@PVER@-stdlib@HOST_QUAL@ | sed -n '/^\/usr\/lib\/@PVER@\/.*\.py$/p')
|
||||
if [ -n "$files" ]; then
|
||||
/usr/bin/@PVER@ -E -S /usr/lib/@PVER@/py_compile.py $files
|
||||
if grep -sq '^byte-compile[^#]*optimize' /etc/python/debian_config; then
|
||||
/usr/bin/@PVER@ -E -S -O /usr/lib/@PVER@/py_compile.py $files
|
||||
fi
|
||||
else
|
||||
echo >&2 "@PVER@: can't get files for byte-compilation"
|
||||
fi
|
||||
|
||||
# Create empty directories in /usr/local
|
||||
if [ ! -e /usr/local/lib/python@VER@ ]; then
|
||||
mkdir -p /usr/local/lib/python@VER@ 2> /dev/null || true
|
||||
chmod 2775 /usr/local/lib/python@VER@ 2> /dev/null || true
|
||||
chown root:staff /usr/local/lib/python@VER@ 2> /dev/null || true
|
||||
fi
|
||||
if [ ! -e /usr/local/lib/python@VER@/site-packages ]; then
|
||||
mkdir -p /usr/local/lib/python@VER@/site-packages 2> /dev/null || true
|
||||
chmod 2775 /usr/local/lib/python@VER@/site-packages 2> /dev/null || true
|
||||
chown root:staff /usr/local/lib/python@VER@/site-packages 2> /dev/null || true
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
22
debian/PVER.prerm.in
vendored
Normal file
22
debian/PVER.prerm.in
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade)
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
rmdir /usr/local/lib/python@VER@/site-packages 2>/dev/null && \
|
||||
rmdir /usr/local/lib/python@VER@ 2>/dev/null || \
|
||||
true
|
||||
|
||||
#DEBHELPER#
|
||||
8
debian/README.Debian.in
vendored
Normal file
8
debian/README.Debian.in
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
The documentation for this package is in /usr/share/doc/@PVER@/.
|
||||
|
||||
A draft of the "Debian Python Policy" can be found in
|
||||
|
||||
/usr/share/doc/python
|
||||
|
||||
Sometime it will be moved to /usr/share/doc/debian-policy in the
|
||||
debian-policy package.
|
||||
95
debian/README.PVER.in
vendored
Normal file
95
debian/README.PVER.in
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
|
||||
Python @VER@ for Debian
|
||||
---------------------
|
||||
|
||||
This is Python @VER@ packaged for Debian.
|
||||
|
||||
This document contains information specific to the Debian packages of
|
||||
Python @VER@.
|
||||
|
||||
|
||||
|
||||
[TODO: This document is not yet up-to-date with the packages.]
|
||||
|
||||
Currently, it features those two main topics:
|
||||
|
||||
1. Release notes for the Debian packages:
|
||||
2. Notes for developers using the Debian Python packages:
|
||||
|
||||
Release notes and documentation from the upstream package are installed
|
||||
in /usr/share/doc/@PVER@/.
|
||||
|
||||
There's a mailing list for discussion of issues related to Python on Debian
|
||||
systems: debian-python@lists.debian.org. The list is not intended for
|
||||
general Python problems, but as a forum for maintainers of Python-related
|
||||
packages and interested third parties.
|
||||
|
||||
|
||||
|
||||
1. Release notes for the Debian packages:
|
||||
|
||||
|
||||
Results of the regression test:
|
||||
------------------------------
|
||||
|
||||
The package does successfully run the regression tests for all included
|
||||
modules. Seven packages are skipped since they are platform-dependent and
|
||||
can't be used with Linux.
|
||||
|
||||
|
||||
2. Notes for developers using the Debian python packages:
|
||||
|
||||
See the draft of the Debian Python policy in /usr/share/doc/python.
|
||||
|
||||
distutils can be found in the @PVER@-dev package. Development files
|
||||
like the python library or Makefiles can be found in the @PVER@-dev
|
||||
package in /usr/lib/@PVER@/config. Therefore, if you need to install
|
||||
a pure python extension, you only need @PVER@. On the other hand, to
|
||||
install a C extension, you need @PVER@-dev.
|
||||
|
||||
a) Locally installed Python add-ons
|
||||
|
||||
/usr/local/lib/@PVER@/site-packages/
|
||||
/usr/local/lib/site-python/ (version-independent modules)
|
||||
|
||||
b) Python add-ons packaged for Debian
|
||||
|
||||
/usr/lib/@PVER@/site-packages/
|
||||
/usr/lib/site-python/ (version-independent modules)
|
||||
|
||||
Note that no package must install files directly into /usr/lib/@PVER@/
|
||||
or /usr/local/lib/@PVER@/. Only the site-packages directory is allowed
|
||||
for third-party extensions.
|
||||
|
||||
Use of the new `package' scheme is strongly encouraged. The `ni' interface
|
||||
is obsolete in python 1.5.
|
||||
|
||||
Header files for extensions go into /usr/include/@PVER@/.
|
||||
|
||||
|
||||
Installing extensions for local use only:
|
||||
----------------------------------------
|
||||
|
||||
Consider using distutils ...
|
||||
|
||||
Most extensions use Python's Makefile.pre.in. Note that Makefile.pre.in
|
||||
by default will install files into /usr/lib/, not into /usr/local/lib/,
|
||||
which is not allowed for local extensions. You'll have to change the
|
||||
Makefile accordingly. Most times, "make prefix=/usr/local install" will
|
||||
work.
|
||||
|
||||
|
||||
Packaging python extensions for Debian:
|
||||
--------------------------------------
|
||||
|
||||
Maintainers of Python extension packages should read
|
||||
|
||||
/usr/share/doc/python/python-policy.txt.gz
|
||||
|
||||
|
||||
|
||||
|
||||
03/09/98
|
||||
Gregor Hoffleit <flight@debian.org>
|
||||
|
||||
Last change: 2001-12-14
|
||||
8
debian/README.Tk
vendored
Normal file
8
debian/README.Tk
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
Tkinter documentation can be found at
|
||||
|
||||
http://www.pythonware.com/library/index.htm
|
||||
|
||||
more specific:
|
||||
|
||||
http://www.pythonware.com/library/tkinter/introduction/index.htm
|
||||
http://www.pythonware.com/library/tkinter/an-introduction-to-tkinter.pdf
|
||||
72
debian/README.dbm
vendored
Normal file
72
debian/README.dbm
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
Python and dbm modules on Debian
|
||||
--------------------------------
|
||||
|
||||
This file documents the configuration of the dbm modules for Debian. It
|
||||
gives hints at the preferred use of the dbm modules.
|
||||
|
||||
|
||||
The preferred way to access dbm databases in Python is the anydbm module.
|
||||
dbm databases behave like mappings (dictionaries).
|
||||
|
||||
Since there exist several dbm database formats, we choose the following
|
||||
layout for Python on Debian:
|
||||
|
||||
* creating a new database with anydbm will create a Berkeley DB 2.X Hash
|
||||
database file. This is the standard format used by libdb starting
|
||||
with glibc 2.1.
|
||||
|
||||
* opening an existing database with anydbm will try to guess the format
|
||||
of the file (using whichdb) and then load it using one of the bsddb,
|
||||
bsddb1, gdbm or dbm (only if the python-gdbm package is installed)
|
||||
or dumbdbm modules.
|
||||
|
||||
* The modules use the following database formats:
|
||||
|
||||
- bsddb: Berkeley DB 2.X Hash (as in libc6 >=2.1 or libdb2)
|
||||
- bsddb1: Berkeley DB 1.85 Hash (as in libc6 >=2.1 or libdb2)
|
||||
- gdbm: GNU dbm 1.x or ndbm
|
||||
- dbm: " (nearly the same as the gdbm module for us)
|
||||
- dumbdbm: a hand-crafted format only used in this module
|
||||
|
||||
That means that all usual formats should be readable with anydbm.
|
||||
|
||||
* If you want to create a database in a format different from DB 2.X,
|
||||
you can still directly use the specified module.
|
||||
|
||||
* I.e. bsddb is the preferred module, and DB 2.X is the preferred format.
|
||||
|
||||
* Note that the db1hash and bsddb1 modules are Debian specific. anydbm
|
||||
and whichdb have been modified to support DB 2.X Hash files (see
|
||||
below for details).
|
||||
|
||||
|
||||
|
||||
For experts only:
|
||||
----------------
|
||||
|
||||
Although bsddb employs the new DB 2.X format and uses the new Sleepycat
|
||||
DB 2 library as included with glibc >= 2.1, it's still using the old
|
||||
DB 1.85 API (which is still supported by DB 2).
|
||||
|
||||
A more recent version 1.1 of the BSD DB module (available from
|
||||
http://starship.skyport.net/robind/python/) directly uses the DB 2.X API.
|
||||
It has a richer set of features.
|
||||
|
||||
|
||||
On a glibc 2.1 system, bsddb is linked with -ldb, bsddb1 is linked with
|
||||
-ldb1 and gdbm as well as dbm are linked with -lgdbm.
|
||||
|
||||
On a glibc 2.0 system (e.g. potato for m68k or slink), bsddb will be
|
||||
linked with -ldb2 while bsddb1 will be linked with -ldb (therefore
|
||||
python-base here depends on libdb2).
|
||||
|
||||
|
||||
db1hash and bsddb1 nearly completely identical to dbhash and bsddb. The
|
||||
only difference is that bsddb is linked with the real DB 2 library, while
|
||||
bsddb1 is linked with an library which provides compatibility with legacy
|
||||
DB 1.85 databases.
|
||||
|
||||
|
||||
July 16, 1999
|
||||
Gregor Hoffleit <flight@debian.org>
|
||||
14
debian/README.idle-PVER.in
vendored
Normal file
14
debian/README.idle-PVER.in
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
The Python IDLE package for Debian
|
||||
----------------------------------
|
||||
|
||||
This package contains Python @VER@'s Integrated DeveLopment Environment, IDLE.
|
||||
|
||||
IDLE is included in the Python @VER@ upstream distribution (Tools/idle) and
|
||||
depends on Tkinter (available as @PVER@-tk package).
|
||||
|
||||
I have written a simple man page.
|
||||
|
||||
|
||||
06/16/1999
|
||||
Gregor Hoffleit <flight@debian.org>
|
||||
88
debian/README.maintainers.in
vendored
Normal file
88
debian/README.maintainers.in
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
|
||||
Hints for maintainers of Debian packages of Python extensions
|
||||
-------------------------------------------------------------
|
||||
|
||||
Most of the content of this README can be found in the Debian Python policy.
|
||||
See /usr/share/doc/python/python-policy.txt.gz.
|
||||
|
||||
Documentation Tools
|
||||
-------------------
|
||||
|
||||
If your package ships documentation produced in the Python
|
||||
documentation format, you can generate it at build-time by
|
||||
build-depending on @PVER@-dev, and you will find the
|
||||
templates, tools and scripts in /usr/lib/@PVER@/doc/tools --
|
||||
adjust your build scripts accordingly.
|
||||
|
||||
|
||||
Makefile.pre.in issues
|
||||
----------------------
|
||||
|
||||
Python comes with a `universal Unix Makefile for Python extensions' in
|
||||
/usr/lib/@PVER@/config/Makefile.pre.in (with Debian, this is included
|
||||
in the python-dev package), which is used by most Python extensions.
|
||||
|
||||
In general, packages using the Makefile.pre.in approach can be packaged
|
||||
simply by running dh_make or by using one of debhelper's rules' templates
|
||||
(see /usr/doc/debhelper/examples/). Makefile.pre.in works fine with e.g.
|
||||
"make prefix=debian/tmp/usr install".
|
||||
|
||||
One glitch: You may be running into the problem that Makefile.pre.in
|
||||
doesn't try to create all the directories when they don't exist. Therefore,
|
||||
you may have to create them manually before "make install". In most cases,
|
||||
the following should work:
|
||||
|
||||
...
|
||||
dh_installdirs /usr/lib/@PVER@
|
||||
$(MAKE) prefix=debian/tmp/usr install
|
||||
...
|
||||
|
||||
|
||||
Byte-compilation
|
||||
----------------
|
||||
|
||||
For speed reasons, Python internally compiles source files into a byte-code.
|
||||
To speed up subsequent imports, it tries to save the byte-code along with
|
||||
the source with an extension .pyc (resp. pyo). This will fail if the
|
||||
libraries are installed in a non-writable directory, which may be the
|
||||
case for /usr/lib/@PVER@/.
|
||||
|
||||
Not that .pyc and .pyo files should not be relocated, since for debugging
|
||||
purposes the path of the source for is hard-coded into them.
|
||||
|
||||
To precompile files in batches after installation, Python has a script
|
||||
compileall.py, which compiles all files in a given directory tree. The
|
||||
Debian version of compileall has been enhanced to support incremental
|
||||
compilation and to feature a ddir (destination dir) option. ddir is
|
||||
used to compile files in debian/usr/lib/python/ when they will be
|
||||
installed into /usr/lib/python/.
|
||||
|
||||
|
||||
Currently, there are two ways to use compileall for Debian packages. The
|
||||
first has a speed penalty, the second has a space penalty in the package.
|
||||
|
||||
1.) Compiling and removing .pyc files in postinst/prerm:
|
||||
|
||||
Use dh_python(1) from the debhelper packages to add commands to byte-
|
||||
compile on installation and to remove the byte-compiled files on removal.
|
||||
Your package has to build-depend on: debhelper (>= 4.1.67), python.
|
||||
|
||||
In /usr/share/doc/@PVER@, you'll find sample.postinst and sample.prerm.
|
||||
If you set the directory where the .py files are installed, these
|
||||
scripts will install and remove the .pyc and .pyo files for your
|
||||
package after unpacking resp. before removing the package.
|
||||
|
||||
2.) Compiling the .pyc files `out of place' during installation:
|
||||
|
||||
As of 1.5.1, compileall.py allows you to specify a faked installation
|
||||
directory using the "-d destdir" option, so that you can precompile
|
||||
the files in their temporary directory
|
||||
(e.g. debian/tmp/usr/lib/python2.1/site-packages/PACKAGE).
|
||||
|
||||
|
||||
|
||||
11/02/98
|
||||
Gregor Hoffleit <flight@debian.org>
|
||||
|
||||
|
||||
Last modified: 2007-10-14
|
||||
153
debian/README.python
vendored
Normal file
153
debian/README.python
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
|
||||
Python 2.x for Debian
|
||||
---------------------
|
||||
|
||||
This is Python 2.x packaged for Debian.
|
||||
|
||||
This document contains information specific to the Debian packages of
|
||||
Python 2.x.
|
||||
|
||||
|
||||
|
||||
[TODO: This document is not yet up-to-date with the packages.]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Currently, it features those two main topics:
|
||||
|
||||
1. Release notes for the Debian packages:
|
||||
2. Notes for developers using the Debian Python packages:
|
||||
|
||||
Release notes and documentation from the upstream package are installed
|
||||
in /usr/share/doc/python/.
|
||||
|
||||
Up-to-date information regarding Python on Debian systems is also
|
||||
available as http://www.debian.org/~flight/python/.
|
||||
|
||||
There's a mailing list for discussion of issues related to Python on Debian
|
||||
systems: debian-python@lists.debian.org. The list is not intended for
|
||||
general Python problems, but as a forum for maintainers of Python-related
|
||||
packages and interested third parties.
|
||||
|
||||
|
||||
|
||||
1. Release notes for the Debian packages:
|
||||
|
||||
|
||||
Results of the regression test:
|
||||
------------------------------
|
||||
|
||||
The package does successfully run the regression tests for all included
|
||||
modules. Seven packages are skipped since they are platform-dependent and
|
||||
can't be used with Linux.
|
||||
|
||||
|
||||
Noteworthy changes since the 1.4 packages:
|
||||
-----------------------------------------
|
||||
|
||||
- Threading support enabled.
|
||||
- Tkinter for Tcl/Tk 8.x.
|
||||
- New package python-zlib.
|
||||
- The dbmmodule was dropped. Use bsddb instead. gdbmmodule is provided
|
||||
for compatibility's sake.
|
||||
- python-elisp adheres to the new emacs add-on policy; it now depends
|
||||
on emacsen. python-elisp probably won't work correctly with emacs19.
|
||||
Refer to /usr/doc/python-elisp/ for more information.
|
||||
- Remember that 1.5 has dropped the `ni' interface in favor of a generic
|
||||
`packages' concept.
|
||||
- Python 1.5 regression test as additional package python-regrtest. You
|
||||
don't need to install this package unless you don't trust the
|
||||
maintainer ;-).
|
||||
- once again, modified upstream's compileall.py and py_compile.py.
|
||||
Now they support compilation of optimized byte-code (.pyo) for use
|
||||
with "python -O", removal of .pyc and .pyo files where the .py source
|
||||
files are missing (-d) and finally the fake of a installation directory
|
||||
when .py files have to be compiled out of place for later installation
|
||||
in a different directory (-i destdir, used in ./debian/rules).
|
||||
- The Debian packages for python 1.4 do call
|
||||
/usr/lib/python1.4/compileall.py in their postrm script. Therefore
|
||||
I had to provide a link from /usr/lib/python1.5/compileall.py, otherwise
|
||||
the old packages won't be removed completely. THIS IS A SILLY HACK!
|
||||
|
||||
|
||||
|
||||
2. Notes for developers using the Debian python packages:
|
||||
|
||||
|
||||
Embedding python:
|
||||
----------------
|
||||
|
||||
The files for embedding python resp. extending the python interpreter
|
||||
are included in the python-dev package. With the configuration in the
|
||||
Debian GNU/Linux packages of python 1.5, you will want to use something
|
||||
like
|
||||
|
||||
-I/usr/include/python1.5 (e.g. for config.h)
|
||||
-L/usr/lib/python1.5/config -lpython1.5 (... -lpthread)
|
||||
(also for Makefile.pre.in, Setup etc.)
|
||||
|
||||
Makefile.pre.in automatically gets that right. Note that unlike 1.4,
|
||||
python 1.5 has only one library, libpython1.5.a.
|
||||
|
||||
Currently, there's no shared version of libpython. Future version of
|
||||
the Debian python packages will support this.
|
||||
|
||||
|
||||
Python extension packages:
|
||||
-------------------------
|
||||
|
||||
According to www.python.org/doc/essays/packages.html, extension packages
|
||||
should only install into /usr/lib/python1.5/site-packages/ (resp.
|
||||
/usr/lib/site-python/ for packages that are definitely version independent).
|
||||
No extension package should install files directly into /usr/lib/python1.5/.
|
||||
|
||||
But according to the FSSTND, only Debian packages are allowed to use
|
||||
/usr/lib/python1.5/. Therefore Debian Python additionally by default
|
||||
searches a second hierarchy in /usr/local/lib/. These directories take
|
||||
precedence over their equivalents in /usr/lib/.
|
||||
|
||||
a) Locally installed Python add-ons
|
||||
|
||||
/usr/local/lib/python1.5/site-packages/
|
||||
/usr/local/lib/site-python/ (version-independent modules)
|
||||
|
||||
b) Python add-ons packaged for Debian
|
||||
|
||||
/usr/lib/python1.5/site-packages/
|
||||
/usr/lib/site-python/ (version-independent modules)
|
||||
|
||||
Note that no package must install files directly into /usr/lib/python1.5/
|
||||
or /usr/local/lib/python1.5/. Only the site-packages directory is allowed
|
||||
for third-party extensions.
|
||||
|
||||
Use of the new `package' scheme is strongly encouraged. The `ni' interface
|
||||
is obsolete in python 1.5.
|
||||
|
||||
Header files for extensions go into /usr/include/python1.5/.
|
||||
|
||||
|
||||
Installing extensions for local use only:
|
||||
----------------------------------------
|
||||
|
||||
Most extensions use Python's Makefile.pre.in. Note that Makefile.pre.in
|
||||
by default will install files into /usr/lib/, not into /usr/local/lib/,
|
||||
which is not allowed for local extensions. You'll have to change the
|
||||
Makefile accordingly. Most times, "make prefix=/usr/local install" will
|
||||
work.
|
||||
|
||||
|
||||
Packaging python extensions for Debian:
|
||||
--------------------------------------
|
||||
|
||||
Maintainers of Python extension packages should read README.maintainers.
|
||||
|
||||
|
||||
|
||||
|
||||
03/09/98
|
||||
Gregor Hoffleit <flight@debian.org>
|
||||
|
||||
Last change: 07/16/1999
|
||||
7
debian/README.source
vendored
Normal file
7
debian/README.source
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
The source tarball is lacking the files Lib/profile.py and Lib/pstats.py,
|
||||
which Debian considers to have a license non-suitable for main (the use
|
||||
of these modules limited to python).
|
||||
|
||||
The package uses quilt to apply / unapply patches.
|
||||
See /usr/share/doc/quilt/README.source. The series file is generated
|
||||
during the build.
|
||||
6
debian/_sysconfigdata.py
vendored
Normal file
6
debian/_sysconfigdata.py
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import sys
|
||||
|
||||
if hasattr(sys, 'gettotalrefcount'):
|
||||
from _sysconfigdata_d import *
|
||||
else:
|
||||
from _sysconfigdata_nd import *
|
||||
8
debian/argparse.egg-info
vendored
Normal file
8
debian/argparse.egg-info
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: argparse
|
||||
Version: 1.2.1
|
||||
Summary: Python command-line parsing library
|
||||
Author: Steven Bethard
|
||||
Author-email: steven.bethard@gmail.com
|
||||
License: Python Software Foundation License
|
||||
Platform: any
|
||||
4826
debian/changelog
vendored
Normal file
4826
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3
debian/changelog.shared
vendored
Normal file
3
debian/changelog.shared
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
* Link the interpreter against the shared runtime library. With
|
||||
gcc-4.1 the difference in the pystones benchmark dropped from about
|
||||
12% to about 5%.
|
||||
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
9
|
||||
219
debian/control
vendored
Normal file
219
debian/control
vendored
Normal file
@@ -0,0 +1,219 @@
|
||||
Source: python2.7
|
||||
Section: python
|
||||
Priority: optional
|
||||
Maintainer: Matthias Klose <doko@debian.org>
|
||||
Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.17.11),
|
||||
quilt, autoconf, autotools-dev,
|
||||
lsb-release, sharutils,
|
||||
libreadline-dev, libtinfo-dev, libncursesw5-dev (>= 5.3),
|
||||
tk-dev, blt-dev (>= 2.4z), libssl-dev (>= 1.1.1),
|
||||
zlib1g-dev, libbz2-dev,
|
||||
libexpat1-dev,
|
||||
libbluetooth-dev [linux-any] <!profile.nobluetooth>,
|
||||
locales [!armel !avr32 !hppa !ia64 !mipsel],
|
||||
libsqlite3-dev, libffi-dev (>= 3.0.5) [!or1k !avr32],
|
||||
libgpm2 [linux-any],
|
||||
mime-support, netbase, net-tools, bzip2, time,
|
||||
libdb-dev (<< 1:6.0), libgdbm-dev, help2man,
|
||||
xvfb <!nocheck>, xauth <!nocheck>, python2.7:any <cross>
|
||||
Build-Depends-Indep: python3-sphinx
|
||||
Build-Conflicts: tcl8.4-dev, tk8.4-dev,
|
||||
python2.7-xml, python-xml,
|
||||
autoconf2.13, python-cxx-dev,
|
||||
hardening-wrapper
|
||||
Standards-Version: 4.5.0
|
||||
Vcs-Browser: https://salsa.debian.org/cpython-team/python2
|
||||
Vcs-Git: https://salsa.debian.org/cpython-team/python2.git
|
||||
XS-Testsuite: autopkgtest
|
||||
|
||||
Package: python2.7
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Priority: optional
|
||||
Depends: python2.7-minimal (= ${binary:Version}), libpython2.7-stdlib (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: python2.7-doc, binutils
|
||||
Conflicts: python-profiler (<= 2.7.1-2)
|
||||
Breaks: python-virtualenv (<< 1.7.1.2-2~), vim-nox (<< 2:7.3.547-4), vim-gtk (<< 2:7.3.547-4), vim-gnome (<< 2:7.3.547-4), vim-athena (<< 2:7.3.547-4), ${python27:Breaks}
|
||||
Replaces: python-profiler (<= 2.7.1-2), python2.7-minimal (<< 2.7.3-7~)
|
||||
Description: Interactive high-level object-oriented language (version 2.7)
|
||||
Python is a high-level, interactive, object-oriented language. Its 2.7 version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
|
||||
Package: libpython2.7-stdlib
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Priority: optional
|
||||
Depends: libpython2.7-minimal (= ${binary:Version}), libssl1.1 (>= 1.1.1), mime-support, ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: python2.7-cjkcodecs, python2.7-ctypes, python2.7-elementtree, python2.7-celementtree, python2.7-wsgiref, python2.7-profiler, python2.7-argparse, python-argparse
|
||||
Replaces: python2.7 (<< 2.7.5-0~), libpython2.7-testsuite (<< 2.7.13-4)
|
||||
Breaks: python-urllib3 (<< 1.9.1-3), ${pyfpe:Breaks}, ${python27:Breaks}
|
||||
Description: Interactive high-level object-oriented language (standard library, version 2.7)
|
||||
Python is a high-level, interactive, object-oriented language. Its 2.7 version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
.
|
||||
This package contains Python 2.7's standard library. It is normally not
|
||||
used on its own, but as a dependency of python2.7.
|
||||
|
||||
Package: python2.7-minimal
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Priority: optional
|
||||
Pre-Depends: ${shlibs:Pre-Depends}
|
||||
Depends: libpython2.7-minimal (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: python2.7
|
||||
Suggests: binfmt-support
|
||||
Replaces: python2.7 (<< 2.7.8-7~)
|
||||
Conflicts: binfmt-support (<< 1.1.2)
|
||||
Breaks: ${python27:Breaks}
|
||||
Description: Minimal subset of the Python language (version 2.7)
|
||||
This package contains the interpreter and some essential modules. It can
|
||||
be used in the boot process for some basic tasks.
|
||||
See /usr/share/doc/python2.7-minimal/README.Debian for a list of the modules
|
||||
contained in this package.
|
||||
XB-Cnf-Visible-Pkgname: python2.7
|
||||
|
||||
Package: libpython2.7-minimal
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: libpython2.7-stdlib
|
||||
Replaces: python2.7 (<< 2.7.4-2), python2.7-minimal (<< 2.7.3-10), libpython2.7-stdlib (<< 2.7.8-7)
|
||||
Breaks: python2.7-minimal (<< 2.7.4~rc1-1~), ${python27:Breaks}
|
||||
Conflicts: binfmt-support (<< 1.1.2)
|
||||
Description: Minimal subset of the Python language (version 2.7)
|
||||
This package contains some essential modules. It is normally not
|
||||
used on it's own, but as a dependency of python2.7-minimal.
|
||||
|
||||
Package: libpython2.7
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: libpython2.7-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Replaces: python2.7 (<< 2.6)
|
||||
Description: Shared Python runtime library (version 2.7)
|
||||
Python is a high-level, interactive, object-oriented language. Its 2.7 version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
.
|
||||
This package contains the shared runtime library, normally not needed
|
||||
for programs using the statically linked interpreter.
|
||||
|
||||
Package: python2.7-examples
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: python2.7:any (>= ${source:Version}), ${misc:Depends}
|
||||
Description: Examples for the Python language (v2.7)
|
||||
Examples, Demos and Tools for Python (v2.7). These are files included in
|
||||
the upstream Python distribution (v2.7).
|
||||
|
||||
Package: python2.7-dev
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Depends: python2.7 (= ${binary:Version}), libpython2.7-dev (= ${binary:Version}), libpython2.7 (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: libc6-dev | libc-dev
|
||||
Replaces: python2.7 (<< 2.7-3)
|
||||
Description: Header files and a static library for Python (v2.7)
|
||||
Header files, a static library and development tools for building
|
||||
Python (v2.7) modules, extending the Python interpreter or embedding
|
||||
Python (v2.7) in applications.
|
||||
.
|
||||
Maintainers of Python packages should read README.maintainers.
|
||||
|
||||
Package: libpython2.7-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: libpython2.7-stdlib (= ${binary:Version}), libpython2.7 (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
|
||||
Replaces: python2.7 (<< 2.7-3), python2.7-dev (<< 2.7.3-10), python2.7-minimal (<< 2.7.3-10)
|
||||
Recommends: libc6-dev | libc-dev
|
||||
Description: Header files and a static library for Python (v2.7)
|
||||
Header files, a static library and development tools for building
|
||||
Python (v2.7) modules, extending the Python interpreter or embedding
|
||||
Python (v2.7) in applications.
|
||||
.
|
||||
Maintainers of Python packages should read README.maintainers.
|
||||
.
|
||||
This package contains development files. It is normally not
|
||||
used on it's own, but as a dependency of python2.7-dev.
|
||||
|
||||
Package: libpython2.7-testsuite
|
||||
Section: libdevel
|
||||
Architecture: all
|
||||
Depends: libpython2.7-stdlib (>= ${binary:Version}), ${misc:Depends}
|
||||
Suggests: python-gdbm, python-tk
|
||||
Description: Testsuite for the Python standard library (v2.7)
|
||||
The complete testsuite for the Python standard library. Note that
|
||||
a subset is found in the libpython2.7-stdlib package, which should
|
||||
be enough for other packages to use (please do not build-depend
|
||||
on this package, but file a bug report to include additional
|
||||
testsuite files in the libpython2.7-stdlib package).
|
||||
|
||||
Package: idle-python2.7
|
||||
Architecture: all
|
||||
Depends: python2.7, python-tk (>= 2.6~a3), python2.7-tk, ${misc:Depends}
|
||||
Enhances: python2.7
|
||||
Replaces: python2.7 (<< 2.6.1-2)
|
||||
Description: IDE for Python (v2.7) using Tkinter
|
||||
IDLE is an Integrated Development Environment for Python (v2.7).
|
||||
IDLE is written using Tkinter and therefore quite platform-independent.
|
||||
|
||||
Package: python2.7-doc
|
||||
Section: doc
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
|
||||
Suggests: python2.7
|
||||
Description: Documentation for the high-level object-oriented language Python (v2.7)
|
||||
These is the official set of documentation for the interactive high-level
|
||||
object-oriented language Python (v2.7). All documents are provided
|
||||
in HTML format. The package consists of ten documents:
|
||||
.
|
||||
* What's New in Python2.7
|
||||
* Tutorial
|
||||
* Python Library Reference
|
||||
* Macintosh Module Reference
|
||||
* Python Language Reference
|
||||
* Extending and Embedding Python
|
||||
* Python/C API Reference
|
||||
* Installing Python Modules
|
||||
* Documenting Python
|
||||
* Distributing Python Modules
|
||||
|
||||
Package: python2.7-dbg
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Depends: python2.7 (= ${binary:Version}), libpython2.7-dbg (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: python-gdbm-dbg, python-tk-dbg
|
||||
Description: Debug Build of the Python Interpreter (version 2.7)
|
||||
The package holds two things:
|
||||
.
|
||||
- A Python interpreter configured with --pydebug. Dynamically loaded modules
|
||||
are searched as <foo>_d.so first. Third party extensions need a separate
|
||||
build to be used by this interpreter.
|
||||
- Debug information for standard python interpreter and extensions.
|
||||
.
|
||||
See the README.debug for more information.
|
||||
|
||||
Package: libpython2.7-dbg
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: libpython2.7-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: python2.7-gdbm-dbg, python2.7-tk-dbg
|
||||
Replaces: python2.7-dbg (<< 2.7.3-10)
|
||||
Description: Debug Build of the Python Interpreter (version 2.7)
|
||||
The package holds two things:
|
||||
.
|
||||
- Extensions for a Python interpreter configured with --pydebug.
|
||||
- Debug information for standard python extensions.
|
||||
.
|
||||
See the README.debug for more information.
|
||||
|
||||
219
debian/control.in
vendored
Normal file
219
debian/control.in
vendored
Normal file
@@ -0,0 +1,219 @@
|
||||
Source: @PVER@
|
||||
Section: python
|
||||
Priority: optional
|
||||
Maintainer: Matthias Klose <doko@debian.org>
|
||||
Build-Depends: debhelper (>= 9), @bd_dpkgdev@ @bd_gcc@
|
||||
quilt, autoconf, autotools-dev,
|
||||
lsb-release, sharutils,
|
||||
libreadline-dev, libtinfo-dev, libncursesw5-dev (>= 5.3),
|
||||
tk-dev, blt-dev (>= 2.4z), libssl-dev (>= 1.1.1),
|
||||
zlib1g-dev, libbz2-dev,
|
||||
libexpat1-dev,
|
||||
libbluetooth-dev [linux-any]@pf_bluetooth@,
|
||||
locales [!armel !avr32 !hppa !ia64 !mipsel],
|
||||
libsqlite3-dev, libffi-dev (>= 3.0.5) [!or1k !avr32],
|
||||
libgpm2 [linux-any],
|
||||
mime-support, netbase, net-tools, bzip2, time,
|
||||
libdb-dev (<< 1:6.0), libgdbm-dev, help2man,
|
||||
xvfb <!nocheck>, xauth <!nocheck>, python2.7:any <cross>
|
||||
Build-Depends-Indep: python3-sphinx
|
||||
Build-Conflicts: tcl8.4-dev, tk8.4-dev,
|
||||
@PVER@-xml, python-xml,
|
||||
autoconf2.13, python-cxx-dev,
|
||||
hardening-wrapper
|
||||
Standards-Version: 4.5.0
|
||||
Vcs-Browser: https://salsa.debian.org/cpython-team/python2
|
||||
Vcs-Git: https://salsa.debian.org/cpython-team/python2.git
|
||||
XS-Testsuite: autopkgtest
|
||||
|
||||
Package: @PVER@
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Priority: @PRIO@
|
||||
Depends: @PVER@-minimal (= ${binary:Version}), lib@PVER@-stdlib (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: @PVER@-doc, binutils
|
||||
Conflicts: python-profiler (<= 2.7.1-2)
|
||||
Breaks: python-virtualenv (<< 1.7.1.2-2~), vim-nox (<< 2:7.3.547-4), vim-gtk (<< 2:7.3.547-4), vim-gnome (<< 2:7.3.547-4), vim-athena (<< 2:7.3.547-4), ${python27:Breaks}
|
||||
Replaces: python-profiler (<= 2.7.1-2), @PVER@-minimal (<< 2.7.3-7~)
|
||||
Description: Interactive high-level object-oriented language (version @VER@)
|
||||
Python is a high-level, interactive, object-oriented language. Its @VER@ version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
|
||||
Package: lib@PVER@-stdlib
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Priority: @PRIO@
|
||||
Depends: lib@PVER@-minimal (= ${binary:Version}), libssl1.1 (>= 1.1.1), mime-support, ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: @PVER@-cjkcodecs, @PVER@-ctypes, @PVER@-elementtree, @PVER@-celementtree, @PVER@-wsgiref, @PVER@-profiler, @PVER@-argparse, python-argparse
|
||||
Replaces: @PVER@ (<< 2.7.5-0~), lib@PVER@-testsuite (<< 2.7.13-4)
|
||||
Breaks: python-urllib3 (<< 1.9.1-3), ${pyfpe:Breaks}, ${python27:Breaks}
|
||||
Description: Interactive high-level object-oriented language (standard library, version @VER@)
|
||||
Python is a high-level, interactive, object-oriented language. Its @VER@ version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
.
|
||||
This package contains Python @VER@'s standard library. It is normally not
|
||||
used on its own, but as a dependency of python@VER@.
|
||||
|
||||
Package: @PVER@-minimal
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Priority: @MINPRIO@
|
||||
Pre-Depends: ${shlibs:Pre-Depends}
|
||||
Depends: lib@PVER@-minimal (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: @PVER@
|
||||
Suggests: binfmt-support
|
||||
Replaces: @PVER@ (<< 2.7.8-7~)
|
||||
Conflicts: binfmt-support (<< 1.1.2)
|
||||
Breaks: ${python27:Breaks}
|
||||
Description: Minimal subset of the Python language (version @VER@)
|
||||
This package contains the interpreter and some essential modules. It can
|
||||
be used in the boot process for some basic tasks.
|
||||
See /usr/share/doc/@PVER@-minimal/README.Debian for a list of the modules
|
||||
contained in this package.
|
||||
XB-Cnf-Visible-Pkgname: python2.7
|
||||
|
||||
Package: lib@PVER@-minimal
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Priority: @MINPRIO@
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: lib@PVER@-stdlib
|
||||
Replaces: @PVER@ (<< 2.7.4-2), @PVER@-minimal (<< 2.7.3-10), lib@PVER@-stdlib (<< 2.7.8-7)
|
||||
Breaks: @PVER@-minimal (<< 2.7.4~rc1-1~), ${python27:Breaks}
|
||||
Conflicts: binfmt-support (<< 1.1.2)
|
||||
Description: Minimal subset of the Python language (version @VER@)
|
||||
This package contains some essential modules. It is normally not
|
||||
used on it's own, but as a dependency of @PVER@-minimal.
|
||||
|
||||
Package: lib@PVER@
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Section: libs
|
||||
Priority: @PRIO@
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: lib@PVER@-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Replaces: @PVER@ (<< 2.6)
|
||||
Description: Shared Python runtime library (version @VER@)
|
||||
Python is a high-level, interactive, object-oriented language. Its @VER@ version
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
.
|
||||
This package contains the shared runtime library, normally not needed
|
||||
for programs using the statically linked interpreter.
|
||||
|
||||
Package: @PVER@-examples
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: @PVER@:any (>= ${source:Version}), ${misc:Depends}
|
||||
Description: Examples for the Python language (v@VER@)
|
||||
Examples, Demos and Tools for Python (v@VER@). These are files included in
|
||||
the upstream Python distribution (v@VER@).
|
||||
|
||||
Package: @PVER@-dev
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: libc6-dev | libc-dev
|
||||
Replaces: @PVER@ (<< 2.7-3)
|
||||
Description: Header files and a static library for Python (v@VER@)
|
||||
Header files, a static library and development tools for building
|
||||
Python (v@VER@) modules, extending the Python interpreter or embedding
|
||||
Python (v@VER@) in applications.
|
||||
.
|
||||
Maintainers of Python packages should read README.maintainers.
|
||||
|
||||
Package: lib@PVER@-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
|
||||
Replaces: @PVER@ (<< 2.7-3), @PVER@-dev (<< 2.7.3-10), @PVER@-minimal (<< 2.7.3-10)
|
||||
Recommends: libc6-dev | libc-dev
|
||||
Description: Header files and a static library for Python (v@VER@)
|
||||
Header files, a static library and development tools for building
|
||||
Python (v@VER@) modules, extending the Python interpreter or embedding
|
||||
Python (v@VER@) in applications.
|
||||
.
|
||||
Maintainers of Python packages should read README.maintainers.
|
||||
.
|
||||
This package contains development files. It is normally not
|
||||
used on it's own, but as a dependency of @PVER@-dev.
|
||||
|
||||
Package: lib@PVER@-testsuite
|
||||
Section: libdevel
|
||||
Architecture: all
|
||||
Depends: lib@PVER@-stdlib (>= ${binary:Version}), ${misc:Depends}
|
||||
Suggests: python-gdbm, python-tk
|
||||
Description: Testsuite for the Python standard library (v@VER@)
|
||||
The complete testsuite for the Python standard library. Note that
|
||||
a subset is found in the lib@PVER@-stdlib package, which should
|
||||
be enough for other packages to use (please do not build-depend
|
||||
on this package, but file a bug report to include additional
|
||||
testsuite files in the lib@PVER@-stdlib package).
|
||||
|
||||
Package: idle-@PVER@
|
||||
Architecture: all
|
||||
Depends: @PVER@, python-tk (>= 2.6~a3), @PVER@-tk, ${misc:Depends}
|
||||
Enhances: @PVER@
|
||||
Replaces: @PVER@ (<< 2.6.1-2)
|
||||
Description: IDE for Python (v@VER@) using Tkinter
|
||||
IDLE is an Integrated Development Environment for Python (v@VER@).
|
||||
IDLE is written using Tkinter and therefore quite platform-independent.
|
||||
|
||||
Package: @PVER@-doc
|
||||
Section: doc
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
|
||||
Suggests: @PVER@
|
||||
Description: Documentation for the high-level object-oriented language Python (v@VER@)
|
||||
These is the official set of documentation for the interactive high-level
|
||||
object-oriented language Python (v@VER@). All documents are provided
|
||||
in HTML format. The package consists of ten documents:
|
||||
.
|
||||
* What's New in Python@VER@
|
||||
* Tutorial
|
||||
* Python Library Reference
|
||||
* Macintosh Module Reference
|
||||
* Python Language Reference
|
||||
* Extending and Embedding Python
|
||||
* Python/C API Reference
|
||||
* Installing Python Modules
|
||||
* Documenting Python
|
||||
* Distributing Python Modules
|
||||
|
||||
Package: @PVER@-dbg
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Multi-Arch: allowed
|
||||
Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dbg (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: python-gdbm-dbg, python-tk-dbg
|
||||
Description: Debug Build of the Python Interpreter (version @VER@)
|
||||
The package holds two things:
|
||||
.
|
||||
- A Python interpreter configured with --pydebug. Dynamically loaded modules
|
||||
are searched as <foo>_d.so first. Third party extensions need a separate
|
||||
build to be used by this interpreter.
|
||||
- Debug information for standard python interpreter and extensions.
|
||||
.
|
||||
See the README.debug for more information.
|
||||
|
||||
Package: lib@PVER@-dbg
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: lib@PVER@-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: @PVER@-gdbm-dbg, @PVER@-tk-dbg
|
||||
Replaces: @PVER@-dbg (<< 2.7.3-10)
|
||||
Description: Debug Build of the Python Interpreter (version @VER@)
|
||||
The package holds two things:
|
||||
.
|
||||
- Extensions for a Python interpreter configured with --pydebug.
|
||||
- Debug information for standard python extensions.
|
||||
.
|
||||
See the README.debug for more information.
|
||||
|
||||
16
debian/control.stdlib
vendored
Normal file
16
debian/control.stdlib
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
Package: @PVER@-tk
|
||||
Architecture: any
|
||||
Depends: @PVER@ (= ${Source-Version}), ${shlibs:Depends}
|
||||
Suggests: tix
|
||||
XB-Python-Version: @VER@
|
||||
Description: Tkinter - Writing Tk applications with Python (v@VER@)
|
||||
A module for writing portable GUI applications with Python (v@VER@) using Tk.
|
||||
Also known as Tkinter.
|
||||
|
||||
Package: @PVER@-gdbm
|
||||
Architecture: any
|
||||
Depends: @PVER@ (= ${Source-Version}), ${shlibs:Depends}
|
||||
Description: GNU dbm database support for Python (v@VER@)
|
||||
GNU dbm database module for Python. Install this if you want to
|
||||
create or read GNU dbm database files with Python.
|
||||
|
||||
958
debian/copyright
vendored
Normal file
958
debian/copyright
vendored
Normal file
@@ -0,0 +1,958 @@
|
||||
This package was put together by Klee Dienes <klee@debian.org> from
|
||||
sources from ftp.python.org:/pub/python, based on the Debianization by
|
||||
the previous maintainers Bernd S. Brentrup <bsb@uni-muenster.de> and
|
||||
Bruce Perens. Current maintainer is Matthias Klose <doko@debian.org>.
|
||||
|
||||
It was downloaded from http://python.org/
|
||||
|
||||
Copyright:
|
||||
|
||||
Upstream Author: Guido van Rossum <guido@cwi.nl> and others.
|
||||
|
||||
License:
|
||||
|
||||
The following text includes the Python license and licenses and
|
||||
acknowledgements for incorporated software. The licenses can be read
|
||||
in the HTML and texinfo versions of the documentation as well, after
|
||||
installing the pythonx.y-doc package. Licenses for files not licensed
|
||||
under the Python Licenses are found at the end of this file.
|
||||
|
||||
|
||||
Python License
|
||||
==============
|
||||
|
||||
A. HISTORY OF THE SOFTWARE
|
||||
==========================
|
||||
|
||||
Python was created in the early 1990s by Guido van Rossum at Stichting
|
||||
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
|
||||
as a successor of a language called ABC. Guido remains Python's
|
||||
principal author, although it includes many contributions from others.
|
||||
|
||||
In 1995, Guido continued his work on Python at the Corporation for
|
||||
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
|
||||
in Reston, Virginia where he released several versions of the
|
||||
software.
|
||||
|
||||
In May 2000, Guido and the Python core development team moved to
|
||||
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
|
||||
year, the PythonLabs team moved to Digital Creations (now Zope
|
||||
Corporation, see http://www.zope.com). In 2001, the Python Software
|
||||
Foundation (PSF, see http://www.python.org/psf/) was formed, a
|
||||
non-profit organization created specifically to own Python-related
|
||||
Intellectual Property. Zope Corporation is a sponsoring member of
|
||||
the PSF.
|
||||
|
||||
All Python releases are Open Source (see http://www.opensource.org for
|
||||
the Open Source Definition). Historically, most, but not all, Python
|
||||
releases have also been GPL-compatible; the table below summarizes
|
||||
the various releases.
|
||||
|
||||
Release Derived Year Owner GPL-
|
||||
from compatible? (1)
|
||||
|
||||
0.9.0 thru 1.2 1991-1995 CWI yes
|
||||
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
|
||||
1.6 1.5.2 2000 CNRI no
|
||||
2.0 1.6 2000 BeOpen.com no
|
||||
1.6.1 1.6 2001 CNRI yes (2)
|
||||
2.1 2.0+1.6.1 2001 PSF no
|
||||
2.0.1 2.0+1.6.1 2001 PSF yes
|
||||
2.1.1 2.1+2.0.1 2001 PSF yes
|
||||
2.2 2.1.1 2001 PSF yes
|
||||
2.1.2 2.1.1 2002 PSF yes
|
||||
2.1.3 2.1.2 2002 PSF yes
|
||||
2.2.1 2.2 2002 PSF yes
|
||||
2.2.2 2.2.1 2002 PSF yes
|
||||
2.2.3 2.2.2 2003 PSF yes
|
||||
2.3 2.2.2 2002-2003 PSF yes
|
||||
2.3.1 2.3 2002-2003 PSF yes
|
||||
2.3.2 2.3.1 2002-2003 PSF yes
|
||||
2.3.3 2.3.2 2002-2003 PSF yes
|
||||
2.3.4 2.3.3 2004 PSF yes
|
||||
2.3.5 2.3.4 2005 PSF yes
|
||||
2.4 2.3 2004 PSF yes
|
||||
2.4.1 2.4 2005 PSF yes
|
||||
2.4.2 2.4.1 2005 PSF yes
|
||||
2.4.3 2.4.2 2006 PSF yes
|
||||
2.5 2.4 2006 PSF yes
|
||||
2.5.1 2.5 2007 PSF yes
|
||||
2.5.2 2.5.1 2008 PSF yes
|
||||
2.5.3 2.5.2 2008 PSF yes
|
||||
2.6 2.5 2008 PSF yes
|
||||
2.6.1 2.6 2008 PSF yes
|
||||
2.6.2 2.6.1 2009 PSF yes
|
||||
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.7 2.6 2010 PSF yes
|
||||
|
||||
Footnotes:
|
||||
|
||||
(1) GPL-compatible doesn't mean that we're distributing Python under
|
||||
the GPL. All Python licenses, unlike the GPL, let you distribute
|
||||
a modified version without making your changes open source. The
|
||||
GPL-compatible licenses make it possible to combine Python with
|
||||
other software that is released under the GPL; the others don't.
|
||||
|
||||
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
|
||||
because its license has a choice of law clause. According to
|
||||
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
|
||||
is "not incompatible" with the GPL.
|
||||
|
||||
Thanks to the many outside volunteers who have worked under Guido's
|
||||
direction to make these releases possible.
|
||||
|
||||
|
||||
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
|
||||
===============================================================
|
||||
|
||||
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
||||
--------------------------------------------
|
||||
|
||||
1. This LICENSE AGREEMENT is between the Python Software Foundation
|
||||
("PSF"), and the Individual or Organization ("Licensee") accessing and
|
||||
otherwise using this software ("Python") in source or binary form and
|
||||
its associated documentation.
|
||||
|
||||
2. Subject to the terms and conditions of this License Agreement, PSF
|
||||
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
||||
license to reproduce, analyze, test, perform and/or display publicly,
|
||||
prepare derivative works, distribute, and otherwise use Python
|
||||
alone or in any derivative version, provided, however, that PSF's
|
||||
License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
|
||||
All Rights Reserved" are retained in Python alone or in any derivative
|
||||
version prepared by Licensee.
|
||||
|
||||
3. In the event Licensee prepares a derivative work that is based on
|
||||
or incorporates Python or any part thereof, and wants to make
|
||||
the derivative work available to others as provided herein, then
|
||||
Licensee hereby agrees to include in any such work a brief summary of
|
||||
the changes made to Python.
|
||||
|
||||
4. PSF is making Python available to Licensee on an "AS IS"
|
||||
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
|
||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
6. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
7. Nothing in this License Agreement shall be deemed to create any
|
||||
relationship of agency, partnership, or joint venture between PSF and
|
||||
Licensee. This License Agreement does not grant permission to use PSF
|
||||
trademarks or trade name in a trademark sense to endorse or promote
|
||||
products or services of Licensee, or any third party.
|
||||
|
||||
8. By copying, installing or otherwise using Python, Licensee
|
||||
agrees to be bound by the terms and conditions of this License
|
||||
Agreement.
|
||||
|
||||
|
||||
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
|
||||
-------------------------------------------
|
||||
|
||||
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
|
||||
|
||||
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
|
||||
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
|
||||
Individual or Organization ("Licensee") accessing and otherwise using
|
||||
this software in source or binary form and its associated
|
||||
documentation ("the Software").
|
||||
|
||||
2. Subject to the terms and conditions of this BeOpen Python License
|
||||
Agreement, BeOpen hereby grants Licensee a non-exclusive,
|
||||
royalty-free, world-wide license to reproduce, analyze, test, perform
|
||||
and/or display publicly, prepare derivative works, distribute, and
|
||||
otherwise use the Software alone or in any derivative version,
|
||||
provided, however, that the BeOpen Python License is retained in the
|
||||
Software, alone or in any derivative version prepared by Licensee.
|
||||
|
||||
3. BeOpen is making the Software available to Licensee on an "AS IS"
|
||||
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
|
||||
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
|
||||
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
|
||||
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
5. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
6. This License Agreement shall be governed by and interpreted in all
|
||||
respects by the law of the State of California, excluding conflict of
|
||||
law provisions. Nothing in this License Agreement shall be deemed to
|
||||
create any relationship of agency, partnership, or joint venture
|
||||
between BeOpen and Licensee. This License Agreement does not grant
|
||||
permission to use BeOpen trademarks or trade names in a trademark
|
||||
sense to endorse or promote products or services of Licensee, or any
|
||||
third party. As an exception, the "BeOpen Python" logos available at
|
||||
http://www.pythonlabs.com/logos.html may be used according to the
|
||||
permissions granted on that web page.
|
||||
|
||||
7. By copying, installing or otherwise using the software, Licensee
|
||||
agrees to be bound by the terms and conditions of this License
|
||||
Agreement.
|
||||
|
||||
|
||||
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
|
||||
---------------------------------------
|
||||
|
||||
1. This LICENSE AGREEMENT is between the Corporation for National
|
||||
Research Initiatives, having an office at 1895 Preston White Drive,
|
||||
Reston, VA 20191 ("CNRI"), and the Individual or Organization
|
||||
("Licensee") accessing and otherwise using Python 1.6.1 software in
|
||||
source or binary form and its associated documentation.
|
||||
|
||||
2. Subject to the terms and conditions of this License Agreement, CNRI
|
||||
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
||||
license to reproduce, analyze, test, perform and/or display publicly,
|
||||
prepare derivative works, distribute, and otherwise use Python 1.6.1
|
||||
alone or in any derivative version, provided, however, that CNRI's
|
||||
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
|
||||
1995-2001 Corporation for National Research Initiatives; All Rights
|
||||
Reserved" are retained in Python 1.6.1 alone or in any derivative
|
||||
version prepared by Licensee. Alternately, in lieu of CNRI's License
|
||||
Agreement, Licensee may substitute the following text (omitting the
|
||||
quotes): "Python 1.6.1 is made available subject to the terms and
|
||||
conditions in CNRI's License Agreement. This Agreement together with
|
||||
Python 1.6.1 may be located on the Internet using the following
|
||||
unique, persistent identifier (known as a handle): 1895.22/1013. This
|
||||
Agreement may also be obtained from a proxy server on the Internet
|
||||
using the following URL: http://hdl.handle.net/1895.22/1013".
|
||||
|
||||
3. In the event Licensee prepares a derivative work that is based on
|
||||
or incorporates Python 1.6.1 or any part thereof, and wants to make
|
||||
the derivative work available to others as provided herein, then
|
||||
Licensee hereby agrees to include in any such work a brief summary of
|
||||
the changes made to Python 1.6.1.
|
||||
|
||||
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
|
||||
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
|
||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
|
||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||
|
||||
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
|
||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||
|
||||
6. This License Agreement will automatically terminate upon a material
|
||||
breach of its terms and conditions.
|
||||
|
||||
7. This License Agreement shall be governed by the federal
|
||||
intellectual property law of the United States, including without
|
||||
limitation the federal copyright law, and, to the extent such
|
||||
U.S. federal law does not apply, by the law of the Commonwealth of
|
||||
Virginia, excluding Virginia's conflict of law provisions.
|
||||
Notwithstanding the foregoing, with regard to derivative works based
|
||||
on Python 1.6.1 that incorporate non-separable material that was
|
||||
previously distributed under the GNU General Public License (GPL), the
|
||||
law of the Commonwealth of Virginia shall govern this License
|
||||
Agreement only as to issues arising under or with respect to
|
||||
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
|
||||
License Agreement shall be deemed to create any relationship of
|
||||
agency, partnership, or joint venture between CNRI and Licensee. This
|
||||
License Agreement does not grant permission to use CNRI trademarks or
|
||||
trade name in a trademark sense to endorse or promote products or
|
||||
services of Licensee, or any third party.
|
||||
|
||||
8. By clicking on the "ACCEPT" button where indicated, or by copying,
|
||||
installing or otherwise using Python 1.6.1, Licensee agrees to be
|
||||
bound by the terms and conditions of this License Agreement.
|
||||
|
||||
ACCEPT
|
||||
|
||||
|
||||
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
|
||||
--------------------------------------------------
|
||||
|
||||
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
|
||||
The Netherlands. All rights reserved.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Stichting Mathematisch
|
||||
Centrum or CWI not be used in advertising or publicity pertaining to
|
||||
distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
||||
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
|
||||
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
Licenses and Acknowledgements for Incorporated Software
|
||||
=======================================================
|
||||
|
||||
Mersenne Twister
|
||||
----------------
|
||||
|
||||
The `_random' module includes code based on a download from
|
||||
`http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html'. The
|
||||
following are the verbatim comments from the original code:
|
||||
|
||||
A C-program for MT19937, with initialization improved 2002/1/26.
|
||||
Coded by Takuji Nishimura and Makoto Matsumoto.
|
||||
|
||||
Before using, initialize the state by using init_genrand(seed)
|
||||
or init_by_array(init_key, key_length).
|
||||
|
||||
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The names of its contributors may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Any feedback is very welcome.
|
||||
http://www.math.keio.ac.jp/matumoto/emt.html
|
||||
email: matumoto@math.keio.ac.jp
|
||||
|
||||
|
||||
Sockets
|
||||
-------
|
||||
|
||||
The `socket' module uses the functions, `getaddrinfo', and
|
||||
`getnameinfo', which are coded in separate source files from the WIDE
|
||||
Project, `http://www.wide.ad.jp/about/index.html'.
|
||||
|
||||
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the project nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
GAI_ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
FOR GAI_ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON GAI_ANY THEORY OF LIABILITY, WHETHER
|
||||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN GAI_ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
Floating point exception control
|
||||
--------------------------------
|
||||
|
||||
The source for the `fpectl' module includes the following notice:
|
||||
|
||||
---------------------------------------------------------------------
|
||||
/ Copyright (c) 1996. \
|
||||
| The Regents of the University of California. |
|
||||
| All rights reserved. |
|
||||
| |
|
||||
| Permission to use, copy, modify, and distribute this software for |
|
||||
| any purpose without fee is hereby granted, provided that this en- |
|
||||
| tire notice is included in all copies of any software which is or |
|
||||
| includes a copy or modification of this software and in all |
|
||||
| copies of the supporting documentation for such software. |
|
||||
| |
|
||||
| This work was produced at the University of California, Lawrence |
|
||||
| Livermore National Laboratory under contract no. W-7405-ENG-48 |
|
||||
| between the U.S. Department of Energy and The Regents of the |
|
||||
| University of California for the operation of UC LLNL. |
|
||||
| |
|
||||
| DISCLAIMER |
|
||||
| |
|
||||
| This software was prepared as an account of work sponsored by an |
|
||||
| agency of the United States Government. Neither the United States |
|
||||
| Government nor the University of California nor any of their em- |
|
||||
| ployees, makes any warranty, express or implied, or assumes any |
|
||||
| liability or responsibility for the accuracy, completeness, or |
|
||||
| usefulness of any information, apparatus, product, or process |
|
||||
| disclosed, or represents that its use would not infringe |
|
||||
| privately-owned rights. Reference herein to any specific commer- |
|
||||
| cial products, process, or service by trade name, trademark, |
|
||||
| manufacturer, or otherwise, does not necessarily constitute or |
|
||||
| imply its endorsement, recommendation, or favoring by the United |
|
||||
| States Government or the University of California. The views and |
|
||||
| opinions of authors expressed herein do not necessarily state or |
|
||||
| reflect those of the United States Government or the University |
|
||||
| of California, and shall not be used for advertising or product |
|
||||
\ endorsement purposes. /
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
||||
Cookie management
|
||||
-----------------
|
||||
|
||||
The `Cookie' module contains the following notice:
|
||||
|
||||
Copyright 2000 by Timothy O'Malley <timo@alum.mit.edu>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software
|
||||
and its documentation for any purpose and without fee is hereby
|
||||
granted, provided that the above copyright notice appear in all
|
||||
copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation, and that the name of
|
||||
Timothy O'Malley not be used in advertising or publicity
|
||||
pertaining to distribution of the software without specific, written
|
||||
prior permission.
|
||||
|
||||
Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL Timothy O'Malley BE LIABLE FOR
|
||||
ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
Execution tracing
|
||||
-----------------
|
||||
|
||||
The `trace' module contains the following notice:
|
||||
|
||||
portions copyright 2001, Autonomous Zones Industries, Inc., all rights...
|
||||
err... reserved and offered to the public under the terms of the
|
||||
Python 2.2 license.
|
||||
Author: Zooko O'Whielacronx
|
||||
http://zooko.com/
|
||||
mailto:zooko@zooko.com
|
||||
|
||||
Copyright 2000, Mojam Media, Inc., all rights reserved.
|
||||
Author: Skip Montanaro
|
||||
|
||||
Copyright 1999, Bioreason, Inc., all rights reserved.
|
||||
Author: Andrew Dalke
|
||||
|
||||
Copyright 1995-1997, Automatrix, Inc., all rights reserved.
|
||||
Author: Skip Montanaro
|
||||
|
||||
Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved.
|
||||
|
||||
Permission to use, copy, modify, and distribute this Python software and
|
||||
its associated documentation for any purpose without fee is hereby
|
||||
granted, provided that the above copyright notice appears in all copies,
|
||||
and that both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of neither Automatrix,
|
||||
Bioreason or Mojam Media be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
|
||||
UUencode and UUdecode functions
|
||||
-------------------------------
|
||||
|
||||
The `uu' module contains the following notice:
|
||||
|
||||
Copyright 1994 by Lance Ellinghouse
|
||||
Cathedral City, California Republic, United States of America.
|
||||
All Rights Reserved
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Lance Ellinghouse
|
||||
not be used in advertising or publicity pertaining to distribution
|
||||
of the software without specific, written prior permission.
|
||||
LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
||||
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE CENTRUM BE LIABLE
|
||||
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
Modified by Jack Jansen, CWI, July 1995:
|
||||
- Use binascii module to do the actual line-by-line conversion
|
||||
between ascii and binary. This results in a 1000-fold speedup. The C
|
||||
version is still 5 times faster, though.
|
||||
- Arguments more compliant with python standard
|
||||
|
||||
|
||||
XML Remote Procedure Calls
|
||||
--------------------------
|
||||
|
||||
The `xmlrpclib' module contains the following notice:
|
||||
|
||||
The XML-RPC client interface is
|
||||
|
||||
Copyright (c) 1999-2002 by Secret Labs AB
|
||||
Copyright (c) 1999-2002 by Fredrik Lundh
|
||||
|
||||
By obtaining, using, and/or copying this software and/or its
|
||||
associated documentation, you agree that you have read, understood,
|
||||
and will comply with the following terms and conditions:
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and
|
||||
its associated documentation for any purpose and without fee is
|
||||
hereby granted, provided that the above copyright notice appears in
|
||||
all copies, and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation, and that the name of
|
||||
Secret Labs AB or the author not be used in advertising or publicity
|
||||
pertaining to distribution of the software without specific, written
|
||||
prior permission.
|
||||
|
||||
SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
|
||||
ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
|
||||
BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
|
||||
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
OF THIS SOFTWARE.
|
||||
|
||||
Licenses for Software linked to
|
||||
===============================
|
||||
|
||||
Note that the choice of GPL compatibility outlined above doesn't extend
|
||||
to modules linked to particular libraries, since they change the
|
||||
effective License of the module binary.
|
||||
|
||||
|
||||
GNU Readline
|
||||
------------
|
||||
|
||||
The 'readline' module makes use of GNU Readline.
|
||||
|
||||
The GNU Readline Library is free software; you can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or (at
|
||||
your option) any later version.
|
||||
|
||||
On Debian systems, you can find the complete statement in
|
||||
/usr/share/doc/readline-common/copyright'. A copy of the GNU General
|
||||
Public License is available in /usr/share/common-licenses/GPL-2'.
|
||||
|
||||
|
||||
OpenSSL
|
||||
-------
|
||||
|
||||
The '_ssl' module makes use of OpenSSL.
|
||||
|
||||
The OpenSSL toolkit stays under a dual license, i.e. both the
|
||||
conditions of the OpenSSL License and the original SSLeay license
|
||||
apply to the toolkit. Actually both licenses are BSD-style Open
|
||||
Source licenses. Note that both licenses are incompatible with
|
||||
the GPL.
|
||||
|
||||
On Debian systems, you can find the complete license text in
|
||||
/usr/share/doc/openssl/copyright'.
|
||||
|
||||
|
||||
Files with other licenses than the Python License
|
||||
-------------------------------------------------
|
||||
|
||||
Files: Lib/profile.py Lib/pstats.py
|
||||
Copyright: Disney Enterprises, Inc. All Rights Reserved.
|
||||
License: # Licensed to PSF under a Contributor Agreement
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
either express or implied. See the License for the specific language
|
||||
overning permissions and limitations under the License.
|
||||
|
||||
On Debian systems, the Apache 2.0 license can be found in
|
||||
/usr/share/common-licenses/Apache-2.0.
|
||||
|
||||
Files: Modules/zlib/*
|
||||
Copyright: (C) 1995-2010 Jean-loup Gailly and Mark Adler
|
||||
License: This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
If you use the zlib library in a product, we would appreciate *not* receiving
|
||||
lengthy legal documents to sign. The sources are provided for free but without
|
||||
warranty of any kind. The library has been entirely written by Jean-loup
|
||||
Gailly and Mark Adler; it does not include third-party code.
|
||||
|
||||
Files: Modules/_ctypes/libffi/*
|
||||
Copyright: Copyright (C) 1996-2009 Red Hat, Inc and others.
|
||||
License: Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Documentation:
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version. A copy of the license is included in the
|
||||
section entitled ``GNU General Public License''.
|
||||
|
||||
Files: Modules/expat/*
|
||||
Copyright: Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
|
||||
and Clark Cooper
|
||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers
|
||||
License: Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Files: Misc/python-mode.el
|
||||
Copyright: Copyright (C) 1992,1993,1994 Tim Peters
|
||||
License: This software is provided as-is, without express or implied
|
||||
warranty. Permission to use, copy, modify, distribute or sell this
|
||||
software, without fee, for any purpose and by any individual or
|
||||
organization, is hereby granted, provided that the above copyright
|
||||
notice and this paragraph appear in all copies.
|
||||
|
||||
Files: PC/_subprocess.c
|
||||
Copyright: Copyright (c) 2004 by Fredrik Lundh <fredrik@pythonware.com>
|
||||
Copyright (c) 2004 by Secret Labs AB, http://www.pythonware.com
|
||||
Copyright (c) 2004 by Peter Astrand <astrand@lysator.liu.se>
|
||||
License:
|
||||
* Permission to use, copy, modify, and distribute this software and
|
||||
* its associated documentation for any purpose and without fee is
|
||||
* hereby granted, provided that the above copyright notice appears in
|
||||
* all copies, and that both that copyright notice and this permission
|
||||
* notice appear in supporting documentation, and that the name of the
|
||||
* authors not be used in advertising or publicity pertaining to
|
||||
* distribution of the software without specific, written prior
|
||||
* permission.
|
||||
*
|
||||
* THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
|
||||
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
Files: PC/winsound.c
|
||||
Copyright: Copyright (c) 1999 Toby Dickenson
|
||||
License: * Permission to use this software in any way is granted without
|
||||
* fee, provided that the copyright notice above appears in all
|
||||
* copies. This software is provided "as is" without any warranty.
|
||||
*/
|
||||
|
||||
/* Modified by Guido van Rossum */
|
||||
/* Beep added by Mark Hammond */
|
||||
/* Win9X Beep and platform identification added by Uncle Timmy */
|
||||
|
||||
Files: Lib/ensurepip/_bundled/setuptools-*.whl
|
||||
License: see above, some license as Python.
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl
|
||||
Copyright: Copyright © 2008-2013 The pip developers:
|
||||
Alex Grönholm
|
||||
Alex Morega
|
||||
Alexandre Conrad
|
||||
Andrey Bulgakov
|
||||
Antti Kaihola
|
||||
Armin Ronacher
|
||||
Aziz Köksal
|
||||
Ben Rosser
|
||||
Brian Rosner
|
||||
Carl Meyer
|
||||
Chris McDonough
|
||||
Christian Oudard
|
||||
Clay McClure
|
||||
Cody Soyland
|
||||
Daniel Holth
|
||||
Dave Abrahams
|
||||
David (d1b)
|
||||
Dmitry Gladkov
|
||||
Donald Stufft
|
||||
Francesco
|
||||
Geoffrey Lehée
|
||||
Georgi Valkov
|
||||
Hugo Lopes Tavares
|
||||
Ian Bicking
|
||||
Igor Sobreira
|
||||
Ionel Maries Cristian
|
||||
Jakub Vysoky
|
||||
James Cleveland
|
||||
Jannis Leidel
|
||||
Jay Graves
|
||||
John-Scott Atlakson
|
||||
Jon Parise
|
||||
Jonas Nockert
|
||||
Josh Bronson
|
||||
Kamal Bin Mustafa
|
||||
Kelsey Hightower
|
||||
Kenneth Belitzky
|
||||
Kumar McMillan
|
||||
Luke Macken
|
||||
Masklinn
|
||||
Marc Abramowitz
|
||||
Marcus Smith
|
||||
Markus Hametner
|
||||
Matt Maker
|
||||
Maxime R.
|
||||
Miguel Araujo
|
||||
Nick Stenning
|
||||
Nowell Strite
|
||||
Oliver Tonnhofer
|
||||
Olivier Girardot
|
||||
Patrick Jenkins
|
||||
Paul Moore
|
||||
Paul Nasrat
|
||||
Paul Oswald
|
||||
Paul van der Linden
|
||||
Peter Waller
|
||||
Phil Whelan
|
||||
Piet Delport
|
||||
Przemek Wrzos
|
||||
Qiangning Hong
|
||||
Rafael Caricio
|
||||
Rene Dudfield
|
||||
Roey Berman
|
||||
Ronny Pfannschmidt
|
||||
Rory McCann
|
||||
Simon Cross
|
||||
Stavros Korokithakis
|
||||
Thomas Fenzl
|
||||
Thomas Johansson
|
||||
Vinay Sajip
|
||||
Vitaly Babiy
|
||||
W Trevor King
|
||||
Wil Tan
|
||||
Hsiaoming Yang
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/ipaddress.py
|
||||
Copyright: 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved
|
||||
2007 Google Inc.
|
||||
License: PSF-2
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/retrying.py
|
||||
Copyright: (c) 2013-2014, <ray@blacklocus.com>
|
||||
(c) 2014, Derek Wilson <dwilson@domaintools.com>
|
||||
(c) 2014, Alex Kuang <akuang@bizo.com>
|
||||
License: Apache-2
|
||||
|
||||
License: Apache-2
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
.
|
||||
On Debian-based systems the full text of the Apache version 2.0 license
|
||||
can be found in /usr/share/common-licenses/Apache-2.0.
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/six.py
|
||||
Copyright: Copyright (c) 2010-2014 Benjamin Peterson
|
||||
License: Expat
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/cachecontrol
|
||||
Copyright: 2015 Eric Larson
|
||||
License: Apache-2.0
|
||||
Copyright 2015 Eric Larson
|
||||
.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
.
|
||||
On Debian systems, the license is available at
|
||||
/usr/share/common-licenses/Apache-2.0
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/colorama
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/distlib
|
||||
Copyright: Copyright (C) 2012-2013 The Python Software Foundation
|
||||
Copyright (C) 2012-2013 Vinay Sajip
|
||||
License: Python
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/html5lib
|
||||
html5lib is Copyright (c) 2006 The Authors
|
||||
Authors:
|
||||
James Graham - james@hoppipolla.co.uk
|
||||
Anne van Kesteren - annevankesteren@gmail.com
|
||||
Lachlan Hunt - lachlan.hunt@lachy.id.au
|
||||
Matt McDonald - kanashii@kanashii.ca
|
||||
Sam Ruby - rubys@intertwingly.net
|
||||
Ian Hickson (Google) - ian@hixie.ch
|
||||
Thomas Broyer - t.broyer@gmail.com
|
||||
|
||||
License:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/lockfile
|
||||
Copyright:
|
||||
© 2014–2015 OpenStack Foundation <openstack-dev@lists.openstack.org>
|
||||
© 2007–2012 Skip Montanaro <skip@pobox.com>
|
||||
© 2008–2014 Ben Finney <ben+python@benfinney.id.au>
|
||||
License: Expat
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/packaging
|
||||
Copyright: Copyright (C) 2014 Donald Stufft
|
||||
Copyright (C) 2012-2013 Vinay Sajip
|
||||
License: Apache-2.0
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/progress
|
||||
Copyright: Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com>
|
||||
License: ISC
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/requests
|
||||
Copyright: 2016, Kenneth Reitz
|
||||
License: Apache
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/requests/packages/urllib3/*
|
||||
Copyright: 2008-2016, Andrey Petrov
|
||||
License: Expat
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/requests/packages/urllib3/packages/ordered_dict.py
|
||||
Copyright: 2009, Raymond Hettinger
|
||||
License: Expat
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py
|
||||
Copyright: 2011, Python Software Foundation
|
||||
License: PSF-2
|
||||
|
||||
Files: Lib/ensurepip/_bundled/pip-*.whl/pip/_vendor/requests/packages/chardet/*
|
||||
Copyright: 2006-2008, Mark Pilgrim
|
||||
2012-2013, Ian Cordasco
|
||||
License: LGPL-2.1+
|
||||
199
debian/depgraph.py
vendored
Normal file
199
debian/depgraph.py
vendored
Normal file
@@ -0,0 +1,199 @@
|
||||
#! /usr/bin/python2.7
|
||||
|
||||
# Copyright 2004 Toby Dickenson
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject
|
||||
# to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import sys, getopt, colorsys, imp, md5
|
||||
|
||||
class pydepgraphdot:
|
||||
|
||||
def main(self,argv):
|
||||
opts,args = getopt.getopt(argv,'',['mono'])
|
||||
self.colored = 1
|
||||
for o,v in opts:
|
||||
if o=='--mono':
|
||||
self.colored = 0
|
||||
self.render()
|
||||
|
||||
def fix(self,s):
|
||||
# Convert a module name to a syntactically correct node name
|
||||
return s.replace('.','_')
|
||||
|
||||
def render(self):
|
||||
p,t = self.get_data()
|
||||
|
||||
# normalise our input data
|
||||
for k,d in p.items():
|
||||
for v in d.keys():
|
||||
if not p.has_key(v):
|
||||
p[v] = {}
|
||||
|
||||
f = self.get_output_file()
|
||||
|
||||
f.write('digraph G {\n')
|
||||
#f.write('concentrate = true;\n')
|
||||
#f.write('ordering = out;\n')
|
||||
f.write('ranksep=1.0;\n')
|
||||
f.write('node [style=filled,fontname=Helvetica,fontsize=10];\n')
|
||||
allkd = p.items()
|
||||
allkd.sort()
|
||||
for k,d in allkd:
|
||||
tk = t.get(k)
|
||||
if self.use(k,tk):
|
||||
allv = d.keys()
|
||||
allv.sort()
|
||||
for v in allv:
|
||||
tv = t.get(v)
|
||||
if self.use(v,tv) and not self.toocommon(v,tv):
|
||||
f.write('%s -> %s' % ( self.fix(k),self.fix(v) ) )
|
||||
self.write_attributes(f,self.edge_attributes(k,v))
|
||||
f.write(';\n')
|
||||
f.write(self.fix(k))
|
||||
self.write_attributes(f,self.node_attributes(k,tk))
|
||||
f.write(';\n')
|
||||
f.write('}\n')
|
||||
|
||||
def write_attributes(self,f,a):
|
||||
if a:
|
||||
f.write(' [')
|
||||
f.write(','.join(a))
|
||||
f.write(']')
|
||||
|
||||
def node_attributes(self,k,type):
|
||||
a = []
|
||||
a.append('label="%s"' % self.label(k))
|
||||
if self.colored:
|
||||
a.append('fillcolor="%s"' % self.color(k,type))
|
||||
else:
|
||||
a.append('fillcolor=white')
|
||||
if self.toocommon(k,type):
|
||||
a.append('peripheries=2')
|
||||
return a
|
||||
|
||||
def edge_attributes(self,k,v):
|
||||
a = []
|
||||
weight = self.weight(k,v)
|
||||
if weight!=1:
|
||||
a.append('weight=%d' % weight)
|
||||
length = self.alien(k,v)
|
||||
if length:
|
||||
a.append('minlen=%d' % length)
|
||||
return a
|
||||
|
||||
def get_data(self):
|
||||
t = eval(sys.stdin.read())
|
||||
return t['depgraph'],t['types']
|
||||
|
||||
def get_output_file(self):
|
||||
return sys.stdout
|
||||
|
||||
def use(self,s,type):
|
||||
# Return true if this module is interesting and should be drawn. Return false
|
||||
# if it should be completely omitted. This is a default policy - please override.
|
||||
if s=='__main__':
|
||||
return 0
|
||||
#if s in ('os','sys','time','__future__','types','re','string'):
|
||||
if s in ('sys'):
|
||||
# nearly all modules use all of these... more or less. They add nothing to
|
||||
# our diagram.
|
||||
return 0
|
||||
if s.startswith('encodings.'):
|
||||
return 0
|
||||
if self.toocommon(s,type):
|
||||
# A module where we dont want to draw references _to_. Dot doesnt handle these
|
||||
# well, so it is probably best to not draw them at all.
|
||||
return 0
|
||||
return 1
|
||||
|
||||
def toocommon(self,s,type):
|
||||
# Return true if references to this module are uninteresting. Such references
|
||||
# do not get drawn. This is a default policy - please override.
|
||||
#
|
||||
if s=='__main__':
|
||||
# references *to* __main__ are never interesting. omitting them means
|
||||
# that main floats to the top of the page
|
||||
return 1
|
||||
#if type==imp.PKG_DIRECTORY:
|
||||
# # dont draw references to packages.
|
||||
# return 1
|
||||
return 0
|
||||
|
||||
def weight(self,a,b):
|
||||
# Return the weight of the dependency from a to b. Higher weights
|
||||
# usually have shorter straighter edges. Return 1 if it has normal weight.
|
||||
# A value of 4 is usually good for ensuring that a related pair of modules
|
||||
# are drawn next to each other. This is a default policy - please override.
|
||||
#
|
||||
if b.split('.')[-1].startswith('_'):
|
||||
# A module that starts with an underscore. You need a special reason to
|
||||
# import these (for example random imports _random), so draw them close
|
||||
# together
|
||||
return 4
|
||||
return 1
|
||||
|
||||
def alien(self,a,b):
|
||||
# Return non-zero if references to this module are strange, and should be drawn
|
||||
# extra-long. the value defines the length, in rank. This is also good for putting some
|
||||
# vertical space between seperate subsystems. This is a default policy - please override.
|
||||
#
|
||||
return 0
|
||||
|
||||
def label(self,s):
|
||||
# Convert a module name to a formatted node label. This is a default policy - please override.
|
||||
#
|
||||
return '\\.\\n'.join(s.split('.'))
|
||||
|
||||
def color(self,s,type):
|
||||
# Return the node color for this module name. This is a default policy - please override.
|
||||
#
|
||||
# Calculate a color systematically based on the hash of the module name. Modules in the
|
||||
# same package have the same color. Unpackaged modules are grey
|
||||
t = self.normalise_module_name_for_hash_coloring(s,type)
|
||||
return self.color_from_name(t)
|
||||
|
||||
def normalise_module_name_for_hash_coloring(self,s,type):
|
||||
if type==imp.PKG_DIRECTORY:
|
||||
return s
|
||||
else:
|
||||
i = s.rfind('.')
|
||||
if i<0:
|
||||
return ''
|
||||
else:
|
||||
return s[:i]
|
||||
|
||||
def color_from_name(self,name):
|
||||
n = md5.md5(name).digest()
|
||||
hf = float(ord(n[0])+ord(n[1])*0xff)/0xffff
|
||||
sf = float(ord(n[2]))/0xff
|
||||
vf = float(ord(n[3]))/0xff
|
||||
r,g,b = colorsys.hsv_to_rgb(hf, 0.3+0.6*sf, 0.8+0.2*vf)
|
||||
return '#%02x%02x%02x' % (r*256,g*256,b*256)
|
||||
|
||||
|
||||
def main():
|
||||
pydepgraphdot().main(sys.argv[1:])
|
||||
|
||||
if __name__=='__main__':
|
||||
main()
|
||||
|
||||
|
||||
|
||||
28
debian/dh_doclink
vendored
Normal file
28
debian/dh_doclink
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#! /bin/sh
|
||||
|
||||
pkg=`echo $1 | sed 's/^-p//'`
|
||||
target=$2
|
||||
|
||||
ln -sf $target debian/$pkg/usr/share/doc/$pkg
|
||||
|
||||
f=debian/$pkg.postinst.debhelper
|
||||
if [ ! -e $f ] || [ "`grep -c '^# dh_doclink' $f`" -eq 0 ]; then
|
||||
cat >> $f <<EOF
|
||||
# dh_doclink
|
||||
if [ "\$1" = "configure" ]; then
|
||||
if [ -d /usr/doc -a ! -e /usr/doc/$pkg -a -d /usr/share/doc/$pkg ]; then
|
||||
ln -sf ../share/doc/$pkg /usr/doc/$pkg
|
||||
fi
|
||||
fi
|
||||
EOF
|
||||
fi
|
||||
|
||||
f=debian/$pkg.prerm.debhelper
|
||||
if [ ! -e $f ] || [ "`grep -c '^# dh_doclink' $f`" -eq 0 ]; then
|
||||
cat >> $f <<EOF
|
||||
# dh_doclink
|
||||
if [ \( "\$1" = "upgrade" -o "\$1" = "remove" \) -a -L /usr/doc/$pkg ]; then
|
||||
rm -f /usr/doc/$pkg
|
||||
fi
|
||||
EOF
|
||||
fi
|
||||
10
debian/dh_rmemptydirs
vendored
Normal file
10
debian/dh_rmemptydirs
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
#! /bin/sh -e
|
||||
|
||||
pkg=`echo $1 | sed 's/^-p//'`
|
||||
|
||||
: # remove empty directories, when all components are in place
|
||||
for d in `find debian/$pkg -depth -type d -empty 2> /dev/null`; do \
|
||||
while rmdir $$d 2> /dev/null; do d=`dirname $$d`; done; \
|
||||
done
|
||||
|
||||
exit 0
|
||||
104
debian/idle-PVER.1.in
vendored
Normal file
104
debian/idle-PVER.1.in
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
.TH IDLE 1 "21 September 2004"
|
||||
.SH NAME
|
||||
\fBIDLE\fP \- An Integrated DeveLopment Environment for Python
|
||||
.SH SYNTAX
|
||||
.B idle [ \fI-dins\fP ] [ \fI-t title\fP ] [ \fIfile\fP ...]
|
||||
.PP
|
||||
.B idle [ \fI-dins\fP ] [ \fI-t title\fP ] ( \fI-c cmd\fP | \fI-r file\fP ) [ \fIarg\fP ...]
|
||||
.PP
|
||||
.B idle [ \fI-dins\fP ] [ \fI-t title\fP ] - [ \fIarg\fP ...]
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.BR idle
|
||||
command.
|
||||
This manual page was written for Debian
|
||||
because the original program does not have a manual page.
|
||||
For more information, refer to IDLE's help menu.
|
||||
.PP
|
||||
.B IDLE
|
||||
is an Integrated DeveLopment Environment for Python. IDLE is based on
|
||||
Tkinter, Python's bindings to the Tk widget set. Features are 100% pure
|
||||
Python, multi-windows with multiple undo and Python colorizing, a Python
|
||||
shell window subclass, a debugger. IDLE is cross-platform, i.e. it works
|
||||
on all platforms where Tk is installed.
|
||||
.LP
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-h
|
||||
.PD
|
||||
Print this help message and exit.
|
||||
.TP
|
||||
.B \-n
|
||||
.PD
|
||||
Run IDLE without a subprocess (see Help/IDLE Help for details).
|
||||
.PP
|
||||
The following options will override the IDLE 'settings' configuration:
|
||||
.TP
|
||||
.B \-e
|
||||
.PD
|
||||
Open an edit window.
|
||||
.TP
|
||||
.B \-i
|
||||
.PD
|
||||
Open a shell window.
|
||||
.PP
|
||||
The following options imply -i and will open a shell:
|
||||
.TP
|
||||
.B \-c cmd
|
||||
.PD
|
||||
Run the command in a shell, or
|
||||
.TP
|
||||
.B \-r file
|
||||
.PD
|
||||
Run script from file.
|
||||
.PP
|
||||
.TP
|
||||
.B \-d
|
||||
.PD
|
||||
Enable the debugger.
|
||||
.TP
|
||||
.B \-s
|
||||
.PD
|
||||
Run $IDLESTARTUP or $PYTHONSTARTUP before anything else.
|
||||
.TP
|
||||
.B \-t title
|
||||
.PD
|
||||
Set title of shell window.
|
||||
.PP
|
||||
A default edit window will be bypassed when -c, -r, or - are used.
|
||||
.PP
|
||||
[arg]* and [file]* are passed to the command (-c) or script (-r) in sys.argv[1:].
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
idle
|
||||
.PD
|
||||
Open an edit window or shell depending on IDLE's configuration.
|
||||
.TP
|
||||
idle foo.py foobar.py
|
||||
.PD
|
||||
Edit the files, also open a shell if configured to start with shell.
|
||||
.TP
|
||||
idle -est "Baz" foo.py
|
||||
.PD
|
||||
Run $IDLESTARTUP or $PYTHONSTARTUP, edit foo.py, and open a shell
|
||||
window with the title "Baz".
|
||||
.TP
|
||||
idle -c "import sys; print sys.argv" "foo"
|
||||
.PD
|
||||
Open a shell window and run the command, passing "-c" in sys.argv[0]
|
||||
and "foo" in sys.argv[1].
|
||||
.TP
|
||||
idle -d -s -r foo.py "Hello World"
|
||||
.PD
|
||||
Open a shell window, run a startup script, enable the debugger, and
|
||||
run foo.py, passing "foo.py" in sys.argv[0] and "Hello World" in
|
||||
sys.argv[1].
|
||||
.TP
|
||||
echo "import sys; print sys.argv" | idle - "foobar"
|
||||
.PD
|
||||
Open a shell window, run the script piped in, passing '' in sys.argv[0]
|
||||
and "foobar" in sys.argv[1].
|
||||
.SH SEE ALSO
|
||||
python(1).
|
||||
.SH AUTHORS
|
||||
Various.
|
||||
5
debian/idle-PVER.overrides.in
vendored
Normal file
5
debian/idle-PVER.overrides.in
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# icon in dependent package
|
||||
idle-@PVER@ binary: menu-icon-missing
|
||||
|
||||
idle-@PVER@ binary: command-with-path-in-maintainer-script
|
||||
idle-@PVER@ binary: image-file-in-usr-lib
|
||||
32
debian/idle-PVER.postinst.in
vendored
Normal file
32
debian/idle-PVER.postinst.in
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# postinst script for the Debian idle-@PVER@ package.
|
||||
# Written 1998 by Gregor Hoffleit <flight@debian.org>.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
DIRLIST="/usr/lib/python@VER@/idlelib"
|
||||
|
||||
case "$1" in
|
||||
configure|abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
for i in $DIRLIST ; do
|
||||
/usr/bin/@PVER@ /usr/lib/@PVER@/compileall.py -q $i
|
||||
if grep -sq '^byte-compile[^#]*optimize' /etc/python/debian_config
|
||||
then
|
||||
/usr/bin/@PVER@ -O /usr/lib/@PVER@/compileall.py -q $i
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
11
debian/idle-PVER.postrm.in
vendored
Normal file
11
debian/idle-PVER.postrm.in
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
rm -rf /etc/idle-@PVER@
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
17
debian/idle-PVER.prerm.in
vendored
Normal file
17
debian/idle-PVER.prerm.in
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# sample prerm script for the Debian idle-@PVER@ package.
|
||||
# Written 1998 by Gregor Hoffleit <flight@debian.org>.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE=`basename $0 .prerm`
|
||||
|
||||
dpkg --listfiles $PACKAGE |
|
||||
awk '$0~/\.py$/ {print $0"c\n" $0"o"}' |
|
||||
xargs rm -f >&2
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
9
debian/idle.desktop.in
vendored
Normal file
9
debian/idle.desktop.in
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=IDLE (using Python-@VER@)
|
||||
Comment=Integrated Development Environment for Python (using Python-@VER@)
|
||||
Exec=/usr/bin/idle-@PVER@
|
||||
Icon=/usr/share/pixmaps/@PVER@.xpm
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Application;Development;
|
||||
StartupNotify=true
|
||||
7
debian/libPVER-dbg.overrides.in
vendored
Normal file
7
debian/libPVER-dbg.overrides.in
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
lib@PVER@-dbg binary: package-name-doesnt-match-sonames
|
||||
lib@PVER@-dbg binary: non-dev-pkg-with-shlib-symlink
|
||||
|
||||
lib@PVER@-dbg binary: arch-dependent-file-not-in-arch-specific-directory
|
||||
|
||||
# pointless lintian ...
|
||||
lib@PVER@-dbg binary: hardening-no-fortify-functions
|
||||
12
debian/libPVER-dbg.postinst.in
vendored
Normal file
12
debian/libPVER-dbg.postinst.in
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = configure ]; then
|
||||
# _sysconfigdata_d.py now found in the platform directory
|
||||
rm -f /usr/lib/python2.7/_sysconfigdata_d.py[co]
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
23
debian/libPVER-dbg.prerm.in
vendored
Normal file
23
debian/libPVER-dbg.prerm.in
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
dpkg -L lib@PVER@-dbg@HOST_QUAL@ \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
;;
|
||||
upgrade)
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
33
debian/libPVER-dbg.symbols.in
vendored
Normal file
33
debian/libPVER-dbg.symbols.in
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
libpython@VER@_d.so.1.0 libpython@VER@-dbg #MINVER#
|
||||
Py_InitModule4TraceRefs@Base @VER@
|
||||
#include "libpython.symbols"
|
||||
_PyDict_Dummy@Base @VER@
|
||||
_PyMem_DebugFree@Base @VER@
|
||||
_PyMem_DebugMalloc@Base @VER@
|
||||
_PyMem_DebugRealloc@Base @VER@
|
||||
_PyObject_DebugCheckAddress@Base @VER@
|
||||
_PyObject_DebugCheckAddressApi@Base @VER@
|
||||
_PyObject_DebugDumpAddress@Base @VER@
|
||||
_PyObject_DebugFree@Base @VER@
|
||||
_PyObject_DebugFreeApi@Base @VER@
|
||||
_PyObject_DebugMalloc@Base @VER@
|
||||
_PyObject_DebugMallocApi@Base @VER@
|
||||
_PyObject_DebugMallocStats@Base @VER@
|
||||
_PyObject_DebugRealloc@Base @VER@
|
||||
_PyObject_DebugReallocApi@Base @VER@
|
||||
_PySet_Dummy@Base @VER@
|
||||
_Py_AddToAllObjects@Base @VER@
|
||||
_Py_Dealloc@Base @VER@
|
||||
_Py_ForgetReference@Base @VER@
|
||||
_Py_GetObjects@Base @VER@
|
||||
_Py_GetRefTotal@Base @VER@
|
||||
_Py_HashSecret_Initialized@Base @VER@
|
||||
_Py_NegativeRefcount@Base @VER@
|
||||
_Py_NewReference@Base @VER@
|
||||
_Py_PrintReferenceAddresses@Base @VER@
|
||||
_Py_PrintReferences@Base @VER@
|
||||
_Py_RefTotal@Base @VER@
|
||||
_Py_dumptree@Base @VER@
|
||||
_Py_printtree@Base @VER@
|
||||
_Py_showtree@Base @VER@
|
||||
_Py_tok_dump@Base @VER@
|
||||
3
debian/libPVER-dev.overrides.in
vendored
Normal file
3
debian/libPVER-dev.overrides.in
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
lib@PVER@-dev binary: python-script-but-no-python-dep
|
||||
|
||||
lib@PVER@-dev binary: arch-dependent-file-not-in-arch-specific-directory
|
||||
1
debian/libPVER-minimal.overrides.in
vendored
Normal file
1
debian/libPVER-minimal.overrides.in
vendored
Normal file
@@ -0,0 +1 @@
|
||||
lib@PVER@-minimal binary: python-script-but-no-python-dep
|
||||
17
debian/libPVER-minimal.postinst.in
vendored
Normal file
17
debian/libPVER-minimal.postinst.in
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -f /etc/@PVER@/sitecustomize.py ]; then
|
||||
cat <<-EOF
|
||||
# Empty sitecustomize.py to avoid a dangling symlink
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$1" = configure ]; then
|
||||
rm -f /etc/@PVER@/cert-verification.conf
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
27
debian/libPVER-minimal.postrm.in
vendored
Normal file
27
debian/libPVER-minimal.postrm.in
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" ]; then
|
||||
pc=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' -W lib@PVER@-minimal \
|
||||
| grep -v '^.n' | wc -l)
|
||||
if [ "$pc" -le 1 ]; then
|
||||
find /usr/lib/@PVER@ -name '*.py[co]' -print0 | xargs -r0 rm -f
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
pc=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' -W lib@PVER@-minimal \
|
||||
| grep -v '^.n' | wc -l)
|
||||
if [ "$pc" -le 1 ]; then
|
||||
rm -f /etc/@PVER@/site.py /etc/@PVER@/sitecustomize.py
|
||||
if [ -d /etc/@PVER@ ]; then
|
||||
rmdir --ignore-fail-on-non-empty /etc/@PVER@ 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
rm -f /etc/@PVER@/cert-verification.conf
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
35
debian/libPVER-minimal.prerm.in
vendored
Normal file
35
debian/libPVER-minimal.prerm.in
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
remove_bytecode()
|
||||
{
|
||||
pkg=$1
|
||||
dpkg -L $1 \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
pc=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' -W lib@PVER@-minimal \
|
||||
| grep -v '^.n' | wc -l)
|
||||
if [ "$pc" -le 1 ]; then
|
||||
remove_bytecode lib@PVER@-minimal@HOST_QUAL@
|
||||
fi
|
||||
;;
|
||||
upgrade)
|
||||
remove_bytecode lib@PVER@-minimal@HOST_QUAL@
|
||||
# byte compilation in @PVER@-minimal postinst, strict dependency
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
14
debian/libPVER-stdlib.overrides.in
vendored
Normal file
14
debian/libPVER-stdlib.overrides.in
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# idlelib images
|
||||
lib@PVER@-stdlib binary: image-file-in-usr-lib
|
||||
|
||||
# license file referred by the standard library
|
||||
lib@PVER@-stdlib binary: extra-license-file
|
||||
|
||||
# template files
|
||||
lib@PVER@-stdlib binary: interpreter-not-absolute usr/lib/python3.3/venv/scripts/posix/pydoc #!__VENV_PYTHON__
|
||||
lib@PVER@-stdlib binary: unusual-interpreter usr/lib/python3.3/venv/scripts/posix/pydoc #!__VENV_PYTHON__
|
||||
|
||||
# the split is the reason for that
|
||||
lib@PVER@-stdlib binary: python-script-but-no-python-dep
|
||||
|
||||
lib@PVER@-stdlib binary: arch-dependent-file-not-in-arch-specific-directory
|
||||
35
debian/libPVER-stdlib.prerm.in
vendored
Normal file
35
debian/libPVER-stdlib.prerm.in
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
remove_bytecode()
|
||||
{
|
||||
pkg=$1
|
||||
dpkg -L $1 \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
pc=$(dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' -W lib@PVER@-stdlib \
|
||||
| grep -v '^.n' | wc -l)
|
||||
if [ "$pc" -le 1 ]; then
|
||||
remove_bytecode lib@PVER@-stdlib@HOST_QUAL@
|
||||
fi
|
||||
;;
|
||||
upgrade)
|
||||
remove_bytecode lib@PVER@-stdlib@HOST_QUAL@
|
||||
# byte compilation in @PVER@ postinst, strict dependency
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
4
debian/libPVER-testsuite.overrides.in
vendored
Normal file
4
debian/libPVER-testsuite.overrides.in
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
lib@PVER@-testsuite binary: python-script-but-no-python-dep
|
||||
lib@PVER@-testsuite binary: image-file-in-usr-lib
|
||||
lib@PVER@-testsuite binary: privacy-breach-generic
|
||||
lib@PVER@-testsuite binary: command-with-path-in-maintainer-script
|
||||
30
debian/libPVER-testsuite.prerm.in
vendored
Normal file
30
debian/libPVER-testsuite.prerm.in
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
remove_bytecode()
|
||||
{
|
||||
pkg=$1
|
||||
dpkg -L $1 \
|
||||
| awk '/\.py$/ {print $0"c\n" $0"o"}' \
|
||||
| xargs -r rm -f >&2
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
remove_bytecode lib@PVER@-testsuite
|
||||
;;
|
||||
upgrade)
|
||||
remove_bytecode lib@PVER@-testsuite
|
||||
;;
|
||||
deconfigure)
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
1
debian/libPVER.overrides.in
vendored
Normal file
1
debian/libPVER.overrides.in
vendored
Normal file
@@ -0,0 +1 @@
|
||||
lib@PVER@ binary: package-name-doesnt-match-sonames
|
||||
3
debian/libPVER.symbols.in
vendored
Normal file
3
debian/libPVER.symbols.in
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
libpython@VER@.so.1.0 libpython@VER@ #MINVER#
|
||||
Py_InitModule4@Base @VER@
|
||||
#include "libpython.symbols"
|
||||
1352
debian/libpython.symbols.in
vendored
Normal file
1352
debian/libpython.symbols.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
31
debian/locale-gen
vendored
Normal file
31
debian/locale-gen
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
|
||||
LOCPATH=`pwd`/locales
|
||||
export LOCPATH
|
||||
|
||||
[ -d $LOCPATH ] || mkdir -p $LOCPATH
|
||||
|
||||
umask 022
|
||||
|
||||
echo "Generating locales..."
|
||||
while read locale charset; do
|
||||
case $locale in \#*) continue;; esac
|
||||
[ -n "$locale" -a -n "$charset" ] || continue
|
||||
echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"
|
||||
echo -n ".$charset"
|
||||
echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`
|
||||
echo -n '...'
|
||||
if [ -f $LOCPATH/$locale ]; then
|
||||
input=$locale
|
||||
else
|
||||
input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`
|
||||
fi
|
||||
localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias
|
||||
echo ' done'; \
|
||||
done <<EOF
|
||||
# This file lists locales that the python testsuite depends on
|
||||
en_US ISO-8859-1
|
||||
en_US.UTF-8 UTF-8
|
||||
EOF
|
||||
|
||||
echo "Generation complete."
|
||||
41
debian/mincheck.py
vendored
Normal file
41
debian/mincheck.py
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
import sys
|
||||
|
||||
def get_listed(fn):
|
||||
modules = set()
|
||||
for line in file(fn).readlines():
|
||||
modules.add(line.split()[1])
|
||||
return modules
|
||||
|
||||
def get_dependencies(fn):
|
||||
t = eval(file(fn).read())
|
||||
modules = set()
|
||||
depgraph = t['depgraph']
|
||||
for mod, deps in depgraph.iteritems():
|
||||
if mod != '__main__':
|
||||
modules.add(mod)
|
||||
modules.update(deps.keys())
|
||||
return depgraph, modules
|
||||
|
||||
def main():
|
||||
mods = get_listed(sys.argv[1])
|
||||
depgraph, deps = get_dependencies(sys.argv[2])
|
||||
print "Listed modules:", sorted(mods)
|
||||
print
|
||||
print "Dependent modules:", sorted(deps)
|
||||
print
|
||||
|
||||
missing = deps.difference(mods)
|
||||
if missing:
|
||||
print "Missing modules in python-minimal:"
|
||||
print missing
|
||||
for m in missing:
|
||||
users = []
|
||||
for caller, callees in depgraph.iteritems():
|
||||
if m in callees:
|
||||
users.append(caller)
|
||||
print m, "used in: ", users
|
||||
sys.exit(len(missing))
|
||||
|
||||
main()
|
||||
|
||||
17
debian/mkbinfmt.py
vendored
Normal file
17
debian/mkbinfmt.py
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# mkbinfmt.py
|
||||
import imp, sys, string, os.path
|
||||
|
||||
magic = string.join(["\\x%.2x" % ord(c) for c in imp.get_magic()],"")
|
||||
|
||||
name = sys.argv[1]
|
||||
|
||||
binfmt = '''\
|
||||
package %s
|
||||
interpreter /usr/bin/%s
|
||||
magic %s\
|
||||
''' % (name, name, magic)
|
||||
|
||||
#filename = '/usr/share/binfmts/' + name
|
||||
#open(filename,'w+').write(binfmt)
|
||||
|
||||
print binfmt
|
||||
123
debian/multiarch.h.in
vendored
Normal file
123
debian/multiarch.h.in
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
#if defined(__linux__)
|
||||
# if defined(__x86_64__) && defined(__LP64__)
|
||||
# include <x86_64-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__x86_64__) && defined(__ILP32__)
|
||||
# include <x86_64-linux-gnux32/@subdir@/@header@>
|
||||
# elif defined(__i386__)
|
||||
# include <i386-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EL__)
|
||||
# if defined(__ILP32__)
|
||||
# include <aarch64_ilp32-linux-gnu/@subdir@/@header@>
|
||||
# else
|
||||
# include <aarch64-linux-gnu/@subdir@/@header@>
|
||||
# endif
|
||||
# elif defined(__aarch64__) && defined(__AARCH64EB__)
|
||||
# if defined(__ILP32__)
|
||||
# include <aarch64_be_ilp32-linux-gnu/@subdir@/@header@>
|
||||
# else
|
||||
# include <aarch64_be-linux-gnu/@subdir@/@header@>
|
||||
# endif
|
||||
# elif defined(__alpha__)
|
||||
# include <alpha-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
# include <arm-linux-gnueabihf/@subdir@/@header@>
|
||||
# else
|
||||
# include <armeb-linux-gnueabihf/@subdir@/@header@>
|
||||
# endif
|
||||
# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
|
||||
# if defined(__ARMEL__)
|
||||
# include <arm-linux-gnueabi/@subdir@/@header@>
|
||||
# else
|
||||
# include <armeb-linux-gnueabi/@subdir@/@header@>
|
||||
# endif
|
||||
# elif defined(__hppa__)
|
||||
# include <hppa-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__ia64__)
|
||||
# include <ia64-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__m68k__) && !defined(__mcoldfire__)
|
||||
# include <m68k-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) && defined(_MIPSEL)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
# include <mipsisa32r6el-linux-gnu/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
# include <mipsisa64r6el-linux-gnuabin32/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
# include <mipsisa64r6el-linux-gnuabi64/@subdir@/@header@>
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
# include <mipsisa32r6-linux-gnu/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
# include <mipsisa64r6-linux-gnuabin32/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
# include <mipsisa64r6-linux-gnuabi64/@subdir@/@header@>
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
# elif defined(__mips_hard_float) && defined(_MIPSEL)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
# include <mipsel-linux-gnu/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
# include <mips64el-linux-gnuabin32/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
# include <mips64el-linux-gnuabi64/@subdir@/@header@>
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
# elif defined(__mips_hard_float)
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
# include <mips-linux-gnu/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABIN32
|
||||
# include <mips64-linux-gnuabin32/@subdir@/@header@>
|
||||
# elif _MIPS_SIM == _ABI64
|
||||
# include <mips64-linux-gnuabi64/@subdir@/@header@>
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
# elif defined(__or1k__)
|
||||
# include <or1k-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__powerpc__) && defined(__SPE__)
|
||||
# include <powerpc-linux-gnuspe/@subdir@/@header@>
|
||||
# elif defined(__powerpc64__)
|
||||
# if defined(__LITTLE_ENDIAN__)
|
||||
# include <powerpc64le-linux-gnu/@subdir@/@header@>
|
||||
# else
|
||||
# include <powerpc64-linux-gnu/@subdir@/@header@>
|
||||
# endif
|
||||
# elif defined(__powerpc__)
|
||||
# include <powerpc-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__s390x__)
|
||||
# include <s390x-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__s390__)
|
||||
# include <s390-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__sh__) && defined(__LITTLE_ENDIAN__)
|
||||
# include <sh4-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__sparc__) && defined(__arch64__)
|
||||
# include <sparc64-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__sparc__)
|
||||
# include <sparc-linux-gnu/@subdir@/@header@>
|
||||
# elif defined(__riscv)
|
||||
# if __riscv_xlen == 64
|
||||
# include <riscv64-linux-gnu/@subdir@/@header@>
|
||||
# else
|
||||
# include <riscv32-linux-gnu/@subdir@/@header@>
|
||||
# endif
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
#elif defined(__FreeBSD_kernel__)
|
||||
# if defined(__LP64__)
|
||||
# include <x86_64-kfreebsd-gnu/@subdir@/@header@>
|
||||
# elif defined(__i386__)
|
||||
# include <i386-kfreebsd-gnu/@subdir@/@header@>
|
||||
# else
|
||||
# error unknown multiarch location for @header@
|
||||
# endif
|
||||
#elif defined(__gnu_hurd__)
|
||||
# include <i386-gnu/@subdir@/@header@>
|
||||
#else
|
||||
# error unknown multiarch location for @header@
|
||||
#endif
|
||||
7
debian/openssl.cnf
vendored
Normal file
7
debian/openssl.cnf
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
openssl_conf = default_conf
|
||||
[default_conf]
|
||||
ssl_conf = ssl_sect
|
||||
[ssl_sect]
|
||||
system_default = system_default_sect
|
||||
[system_default_sect]
|
||||
CipherString = DEFAULT@SECLEVEL=1
|
||||
26
debian/patches/CVE-2019-20907.diff
vendored
Normal file
26
debian/patches/CVE-2019-20907.diff
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
From 47a2955589bdb1a114d271496ff803ad73f954b8 Mon Sep 17 00:00:00 2001
|
||||
From: "Miss Islington (bot)"
|
||||
<31488909+miss-islington@users.noreply.github.com>
|
||||
Date: Wed, 15 Jul 2020 05:36:36 -0700
|
||||
Subject: [PATCH] bpo-39017: Avoid infinite loop in the tarfile module
|
||||
(GH-21454) (#21485)
|
||||
|
||||
Avoid infinite loop when reading specially crafted TAR files using the tarfile module
|
||||
(CVE-2019-20907).
|
||||
(cherry picked from commit 5a8d121a1f3ef5ad7c105ee378cc79a3eac0c7d4)
|
||||
|
||||
Co-authored-by: Rishi <rishi_devan@mail.com>
|
||||
|
||||
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
|
||||
index adf91d5..574a6bb 100644
|
||||
--- a/Lib/tarfile.py
|
||||
+++ b/Lib/tarfile.py
|
||||
@@ -1400,6 +1400,8 @@ class TarInfo(object):
|
||||
|
||||
length, keyword = match.groups()
|
||||
length = int(length)
|
||||
+ if length == 0:
|
||||
+ raise InvalidHeaderError("invalid header")
|
||||
value = buf[match.end(2) + 1:match.start(1) + length - 1]
|
||||
|
||||
keyword = keyword.decode("utf8")
|
||||
26
debian/patches/CVE-2020-8492.diff
vendored
Normal file
26
debian/patches/CVE-2020-8492.diff
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
Backport of 0b297d4ff1c0e4480ad33acae793fbaf4bf015b4, trimmed down to the
|
||||
fix for CVE-2020-8492
|
||||
|
||||
Co-Authored-By: Serhiy Storchaka <storchaka@gmail.com>
|
||||
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
|
||||
index 8b634ad..11a62a4 100644
|
||||
--- a/Lib/urllib2.py
|
||||
+++ b/Lib/urllib2.py
|
||||
@@ -856,8 +856,15 @@ class AbstractBasicAuthHandler:
|
||||
|
||||
# allow for double- and single-quoted realm values
|
||||
# (single quotes are a violation of the RFC, but appear in the wild)
|
||||
- rx = re.compile('(?:.*,)*[ \t]*([^ \t]+)[ \t]+'
|
||||
- 'realm=(["\']?)([^"\']*)\\2', re.I)
|
||||
+ rx = re.compile('(?:^|,)' # start of the string or ','
|
||||
+ '[ \t]*' # optional whitespaces
|
||||
+ '([^ \t]+)' # scheme like "Basic"
|
||||
+ '[ \t]+' # mandatory whitespaces
|
||||
+ # realm=xxx
|
||||
+ # realm='xxx'
|
||||
+ # realm="xxx"
|
||||
+ 'realm=(["\']?)([^"\']*)\\2',
|
||||
+ re.I)
|
||||
|
||||
# XXX could pre-emptively send auth info already accepted (RFC 2617,
|
||||
# end of section 2, and section 1.2 immediately after "credentials"
|
||||
472
debian/patches/CVE-2021-23336.diff
vendored
Normal file
472
debian/patches/CVE-2021-23336.diff
vendored
Normal file
@@ -0,0 +1,472 @@
|
||||
From fcbe0cb04d35189401c0c880ebfb4311e952d776 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Goldschmidt <adamgold7@gmail.com>
|
||||
Date: Mon, 15 Feb 2021 00:41:57 +0200
|
||||
Subject: [PATCH] bpo-42967: only use '&' as a query string separator (#24297)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
bpo-42967: [security] Address a web cache-poisoning issue reported in urllib.parse.parse_qsl().
|
||||
|
||||
urllib.parse will only us "&" as query string separator by default instead of both ";" and "&" as allowed in earlier versions. An optional argument seperator with default value "&" is added to specify the separator.
|
||||
|
||||
|
||||
Co-authored-by: Éric Araujo <merwok@netwok.org>
|
||||
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
|
||||
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
|
||||
Co-authored-by: Éric Araujo <merwok@netwok.org>
|
||||
---
|
||||
Doc/library/cgi.rst | 9 ++-
|
||||
Doc/library/urllib.parse.rst | 16 ++++-
|
||||
Doc/whatsnew/3.10.rst | 13 ++++
|
||||
Doc/whatsnew/3.6.rst | 13 ++++
|
||||
Doc/whatsnew/3.7.rst | 13 ++++
|
||||
Doc/whatsnew/3.8.rst | 13 ++++
|
||||
Doc/whatsnew/3.9.rst | 15 +++-
|
||||
Lib/cgi.py | 23 ++++---
|
||||
Lib/test/test_cgi.py | 29 ++++++--
|
||||
Lib/test/test_urlparse.py | 68 +++++++++++++------
|
||||
Lib/urllib/parse.py | 20 ++++--
|
||||
.../2021-02-14-15-59-16.bpo-42967.YApqDS.rst | 1 +
|
||||
12 files changed, 186 insertions(+), 47 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2021-02-14-15-59-16.bpo-42967.YApqDS.rst
|
||||
|
||||
Backport:
|
||||
* Drop Doc/whatsnew and Misc/NEWS.d
|
||||
* urllib.parse.urlencode -> urllib.urlencode
|
||||
* urllib.parse -> urlparse
|
||||
* Significant refactoring due to differences in arguments
|
||||
* Avoid using TestCase.subTest
|
||||
|
||||
diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
|
||||
index 4048592e73..05d9cdf424 100644
|
||||
--- a/Doc/library/cgi.rst
|
||||
+++ b/Doc/library/cgi.rst
|
||||
@@ -277,24 +277,25 @@ These are useful if you want more control, or if you want to employ some of the
|
||||
algorithms implemented in this module in other circumstances.
|
||||
|
||||
|
||||
-.. function:: parse(fp[, environ[, keep_blank_values[, strict_parsing]]])
|
||||
+.. function:: parse(fp[, environ[, keep_blank_values[, strict_parsing[, separator="&"]]]])
|
||||
|
||||
Parse a query in the environment or from a file (the file defaults to
|
||||
- ``sys.stdin`` and environment defaults to ``os.environ``). The *keep_blank_values* and *strict_parsing* parameters are
|
||||
+ ``sys.stdin`` and environment defaults to ``os.environ``). The
|
||||
+ *keep_blank_values*, *strict_parsing* and *separator* parameters are
|
||||
passed to :func:`urlparse.parse_qs` unchanged.
|
||||
|
||||
|
||||
-.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
|
||||
+.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields[, separator]]]])
|
||||
|
||||
This function is deprecated in this module. Use :func:`urlparse.parse_qs`
|
||||
instead. It is maintained here only for backward compatibility.
|
||||
|
||||
-.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
|
||||
+.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields[, separator]]]])
|
||||
|
||||
This function is deprecated in this module. Use :func:`urlparse.parse_qsl`
|
||||
instead. It is maintained here only for backward compatibility.
|
||||
|
||||
-.. function:: parse_multipart(fp, pdict)
|
||||
+.. function:: parse_multipart(fp, pdict, separator="&")
|
||||
|
||||
Parse input of type :mimetype:`multipart/form-data` (for file uploads).
|
||||
Arguments are *fp* for the input file and *pdict* for a dictionary containing
|
||||
@@ -303,6 +303,9 @@ algorithms implemented in this module in other circumstances.
|
||||
Note that this does not parse nested multipart parts --- use
|
||||
:class:`FieldStorage` for that.
|
||||
|
||||
+ .. versionchanged:: 2.7 security update
|
||||
+ Added the *separator* parameter.
|
||||
+
|
||||
|
||||
.. function:: parse_header(string)
|
||||
|
||||
diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
|
||||
index f9c8ba7398..1a79078239 100644
|
||||
--- a/Doc/library/urlparse.rst
|
||||
+++ b/Doc/library/urlparse.rst
|
||||
@@ -165,7 +165,7 @@ or on combining URL components into a URL string.
|
||||
Added IPv6 URL parsing capabilities.
|
||||
|
||||
|
||||
-.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
|
||||
+.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields[, separator='&']]]])
|
||||
|
||||
Parse a query string given as a string argument (data of type
|
||||
:mimetype:`application/x-www-form-urlencoded`). Data are returned as a
|
||||
@@ -190,6 +190,8 @@ or on combining URL components into a URL string.
|
||||
read. If set, then throws a :exc:`ValueError` if there are more than
|
||||
*max_num_fields* fields read.
|
||||
|
||||
+ The optional argument *separator* is the symbol to use for separating the query arguments. It defaults to `&`.
|
||||
+
|
||||
Use the :func:`urllib.urlencode` function to convert such dictionaries into
|
||||
query strings.
|
||||
|
||||
@@ -201,7 +203,12 @@ or on combining URL components into a URL string.
|
||||
.. versionchanged:: 2.7.16
|
||||
Added *max_num_fields* parameter.
|
||||
|
||||
-.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
|
||||
+ .. versionchanged:: 2.7 security update
|
||||
+ Added *separator* parameter with the default value of `&`. Python versions earlier than Python 3.10 allowed using both ";" and "&" as
|
||||
+ query parameter separator. This has been changed to allow only a single separator key, with "&" as the default separator.
|
||||
+
|
||||
+
|
||||
+.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields[, separator='&']]]])
|
||||
|
||||
Parse a query string given as a string argument (data of type
|
||||
:mimetype:`application/x-www-form-urlencoded`). Data are returned as a list of
|
||||
@@ -226,6 +232,8 @@ or on combining URL components into a URL string.
|
||||
read. If set, then throws a :exc:`ValueError` if there are more than
|
||||
*max_num_fields* fields read.
|
||||
|
||||
+ The optional argument *separator* is the symbol to use for separating the query arguments. It defaults to `&`.
|
||||
+
|
||||
Use the :func:`urllib.urlencode` function to convert such lists of pairs into
|
||||
query strings.
|
||||
|
||||
@@ -235,6 +243,11 @@ or on combining URL components into a URL string.
|
||||
.. versionchanged:: 2.7.16
|
||||
Added *max_num_fields* parameter.
|
||||
|
||||
+ .. versionchanged:: 2.7 security update
|
||||
+ Added *separator* parameter with the default value of `&`. Python versions earlier than Python 3.10 allowed using both ";" and "&" as
|
||||
+ query parameter separator. This has been changed to allow only a single separator key, with "&" as the default separator.
|
||||
+
|
||||
+
|
||||
.. function:: urlunparse(parts)
|
||||
|
||||
Construct a URL from a tuple as returned by ``urlparse()``. The *parts* argument
|
||||
diff --git a/Lib/cgi.py b/Lib/cgi.py
|
||||
index 6018c36086..6c72507c20 100755
|
||||
--- a/Lib/cgi.py
|
||||
+++ b/Lib/cgi.py
|
||||
@@ -115,7 +115,8 @@ def closelog():
|
||||
# 0 ==> unlimited input
|
||||
maxlen = 0
|
||||
|
||||
-def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
|
||||
+def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0,
|
||||
+ separator='&'):
|
||||
"""Parse a query in the environment or from a file (default stdin)
|
||||
|
||||
Arguments, all optional:
|
||||
@@ -134,6 +135,9 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
|
||||
strict_parsing: flag indicating what to do with parsing errors.
|
||||
If false (the default), errors are silently ignored.
|
||||
If true, errors raise a ValueError exception.
|
||||
+
|
||||
+ separator: str. The symbol to use for separating the query arguments.
|
||||
+ Defaults to &.
|
||||
"""
|
||||
if fp is None:
|
||||
fp = sys.stdin
|
||||
@@ -154,7 +158,7 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
|
||||
if environ['REQUEST_METHOD'] == 'POST':
|
||||
ctype, pdict = parse_header(environ['CONTENT_TYPE'])
|
||||
if ctype == 'multipart/form-data':
|
||||
- return parse_multipart(fp, pdict)
|
||||
+ return parse_multipart(fp, pdict, separator=separator)
|
||||
elif ctype == 'application/x-www-form-urlencoded':
|
||||
clength = int(environ['CONTENT_LENGTH'])
|
||||
if maxlen and clength > maxlen:
|
||||
@@ -178,27 +182,30 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
|
||||
else:
|
||||
qs = ""
|
||||
environ['QUERY_STRING'] = qs # XXX Shouldn't, really
|
||||
- return urlparse.parse_qs(qs, keep_blank_values, strict_parsing)
|
||||
+ return urlparse.parse_qs(qs, keep_blank_values, strict_parsing,
|
||||
+ separator=separator)
|
||||
|
||||
|
||||
# parse query string function called from urlparse,
|
||||
# this is done in order to maintain backward compatibility.
|
||||
|
||||
-def parse_qs(qs, keep_blank_values=0, strict_parsing=0):
|
||||
+def parse_qs(qs, keep_blank_values=0, strict_parsing=0, separator='&'):
|
||||
"""Parse a query given as a string argument."""
|
||||
warn("cgi.parse_qs is deprecated, use urlparse.parse_qs instead",
|
||||
PendingDeprecationWarning, 2)
|
||||
- return urlparse.parse_qs(qs, keep_blank_values, strict_parsing)
|
||||
+ return urlparse.parse_qs(qs, keep_blank_values, strict_parsing,
|
||||
+ separator=separator)
|
||||
|
||||
|
||||
-def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
|
||||
+def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None,
|
||||
+ separator='&'):
|
||||
"""Parse a query given as a string argument."""
|
||||
warn("cgi.parse_qsl is deprecated, use urlparse.parse_qsl instead",
|
||||
PendingDeprecationWarning, 2)
|
||||
return urlparse.parse_qsl(qs, keep_blank_values, strict_parsing,
|
||||
- max_num_fields)
|
||||
+ max_num_fields, separator=separator)
|
||||
|
||||
-def parse_multipart(fp, pdict):
|
||||
+def parse_multipart(fp, pdict, separator='&'):
|
||||
"""Parse multipart input.
|
||||
|
||||
Arguments:
|
||||
@@ -315,7 +319,7 @@ class FieldStorage:
|
||||
|
||||
def __init__(self, fp=None, headers=None, outerboundary="",
|
||||
environ=os.environ, keep_blank_values=0, strict_parsing=0,
|
||||
- max_num_fields=None):
|
||||
+ max_num_fields=None, separator='&'):
|
||||
"""Constructor. Read multipart/* until last part.
|
||||
|
||||
Arguments, all optional:
|
||||
@@ -363,6 +367,7 @@ def __init__(self, fp=None, headers=None, outerboundary=b'',
|
||||
self.keep_blank_values = keep_blank_values
|
||||
self.strict_parsing = strict_parsing
|
||||
self.max_num_fields = max_num_fields
|
||||
+ self.separator = separator
|
||||
if 'REQUEST_METHOD' in environ:
|
||||
method = environ['REQUEST_METHOD'].upper()
|
||||
self.qs_on_post = None
|
||||
@@ -589,7 +594,8 @@ def read_urlencoded(self):
|
||||
if self.qs_on_post:
|
||||
qs += '&' + self.qs_on_post
|
||||
query = urlparse.parse_qsl(qs, self.keep_blank_values,
|
||||
- self.strict_parsing, self.max_num_fields)
|
||||
+ self.strict_parsing, self.max_num_fields,
|
||||
+ separator=self.separator)
|
||||
self.list = [MiniFieldStorage(key, value) for key, value in query]
|
||||
self.skip_lines()
|
||||
|
||||
@@ -605,7 +610,8 @@ def read_multi(self, environ, keep_blank_values, strict_parsing):
|
||||
query = urlparse.parse_qsl(self.qs_on_post,
|
||||
self.keep_blank_values,
|
||||
self.strict_parsing,
|
||||
- self.max_num_fields)
|
||||
+ self.max_num_fields,
|
||||
+ separator=self.separator)
|
||||
self.list.extend(MiniFieldStorage(key, value)
|
||||
for key, value in query)
|
||||
FieldStorageClass = None
|
||||
@@ -649,7 +654,7 @@ def read_multi(self, environ, keep_blank_values, strict_parsing):
|
||||
klass = self.FieldStorageClass or self.__class__
|
||||
part = klass(self.fp, {}, ib,
|
||||
environ, keep_blank_values, strict_parsing,
|
||||
- max_num_fields)
|
||||
+ max_num_fields, separator=self.separator)
|
||||
|
||||
# Throw first part away
|
||||
while not part.done:
|
||||
diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py
|
||||
index 6b29759da4..239d97589c 100644
|
||||
--- a/Lib/test/test_cgi.py
|
||||
+++ b/Lib/test/test_cgi.py
|
||||
@@ -53,12 +53,9 @@ def do_test(buf, method):
|
||||
("", ValueError("bad query field: ''")),
|
||||
("&", ValueError("bad query field: ''")),
|
||||
("&&", ValueError("bad query field: ''")),
|
||||
- (";", ValueError("bad query field: ''")),
|
||||
- (";&;", ValueError("bad query field: ''")),
|
||||
# Should the next few really be valid?
|
||||
("=", {}),
|
||||
("=&=", {}),
|
||||
- ("=;=", {}),
|
||||
# This rest seem to make sense
|
||||
("=a", {'': ['a']}),
|
||||
("&=a", ValueError("bad query field: ''")),
|
||||
@@ -73,8 +70,6 @@ def do_test(buf, method):
|
||||
("a=a+b&b=b+c", {'a': ['a b'], 'b': ['b c']}),
|
||||
("a=a+b&a=b+a", {'a': ['a b', 'b a']}),
|
||||
("x=1&y=2.0&z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
|
||||
- ("x=1;y=2.0&z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
|
||||
- ("x=1;y=2.0;z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
|
||||
("Hbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=env",
|
||||
{'Hbc5161168c542333633315dee1182227:key_store_seqid': ['400006'],
|
||||
'cuyer': ['r'],
|
||||
@@ -201,6 +196,30 @@ def test_strict(self):
|
||||
self.assertEqual(expect[k], v)
|
||||
self.assertItemsEqual(expect.values(), d.values())
|
||||
|
||||
+ def test_separator(self):
|
||||
+ parse_semicolon = [
|
||||
+ ("x=1;y=2.0", {'x': ['1'], 'y': ['2.0']}),
|
||||
+ ("x=1;y=2.0;z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
|
||||
+ (";", ValueError("bad query field: ''")),
|
||||
+ (";;", ValueError("bad query field: ''")),
|
||||
+ ("=;a", ValueError("bad query field: 'a'")),
|
||||
+ (";b=a", ValueError("bad query field: ''")),
|
||||
+ ("b;=a", ValueError("bad query field: 'b'")),
|
||||
+ ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}),
|
||||
+ ("a=a+b;a=b+a", {'a': ['a b', 'b a']}),
|
||||
+ ]
|
||||
+ for orig, expect in parse_semicolon:
|
||||
+ env = {'QUERY_STRING': orig}
|
||||
+ fs = cgi.FieldStorage(separator=';', environ=env)
|
||||
+ if isinstance(expect, dict):
|
||||
+ for key in expect.keys():
|
||||
+ expect_val = expect[key]
|
||||
+ self.assertIn(key, fs)
|
||||
+ if len(expect_val) > 1:
|
||||
+ self.assertEqual(fs.getvalue(key), expect_val)
|
||||
+ else:
|
||||
+ self.assertEqual(fs.getvalue(key), expect_val[0])
|
||||
+
|
||||
def test_log(self):
|
||||
cgi.log("Testing")
|
||||
|
||||
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
|
||||
index 762500789f..3b1c360625 100644
|
||||
--- a/Lib/test/test_urlparse.py
|
||||
+++ b/Lib/test/test_urlparse.py
|
||||
@@ -32,16 +32,10 @@
|
||||
("&a=b", [('a', 'b')]),
|
||||
("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]),
|
||||
("a=1&a=2", [('a', '1'), ('a', '2')]),
|
||||
- (";", []),
|
||||
- (";;", []),
|
||||
- (";a=b", [('a', 'b')]),
|
||||
- ("a=a+b;b=b+c", [('a', 'a b'), ('b', 'b c')]),
|
||||
- ("a=1;a=2", [('a', '1'), ('a', '2')]),
|
||||
- (b";", []),
|
||||
- (b";;", []),
|
||||
- (b";a=b", [(b'a', b'b')]),
|
||||
- (b"a=a+b;b=b+c", [(b'a', b'a b'), (b'b', b'b c')]),
|
||||
- (b"a=1;a=2", [(b'a', b'1'), (b'a', b'2')]),
|
||||
+ (";a=b", [(';a', 'b')]),
|
||||
+ ("a=a+b;b=b+c", [('a', 'a b;b=b c')]),
|
||||
+ (b";a=b", [(b';a', b'b')]),
|
||||
+ (b"a=a+b;b=b+c", [(b'a', b'a b;b=b c')]),
|
||||
]
|
||||
|
||||
parse_qs_test_cases = [
|
||||
@@ -68,16 +62,10 @@
|
||||
(b"&a=b", {b'a': [b'b']}),
|
||||
(b"a=a+b&b=b+c", {b'a': [b'a b'], b'b': [b'b c']}),
|
||||
(b"a=1&a=2", {b'a': [b'1', b'2']}),
|
||||
- (";", {}),
|
||||
- (";;", {}),
|
||||
- (";a=b", {'a': ['b']}),
|
||||
- ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}),
|
||||
- ("a=1;a=2", {'a': ['1', '2']}),
|
||||
- (b";", {}),
|
||||
- (b";;", {}),
|
||||
- (b";a=b", {b'a': [b'b']}),
|
||||
- (b"a=a+b;b=b+c", {b'a': [b'a b'], b'b': [b'b c']}),
|
||||
- (b"a=1;a=2", {b'a': [b'1', b'2']}),
|
||||
+ (";a=b", {';a': ['b']}),
|
||||
+ ("a=a+b;b=b+c", {'a': ['a b;b=b c']}),
|
||||
+ (b";a=b", {b';a': [b'b']}),
|
||||
+ (b"a=a+b;b=b+c", {b'a':[ b'a b;b=b c']}),
|
||||
]
|
||||
|
||||
class UrlParseTestCase(unittest.TestCase):
|
||||
@@ -886,6 +874,42 @@ def test_parse_qsl_encoding(self):
|
||||
self.assertEqual(urlparse.urlparse("http://www.python.org:80"),
|
||||
('http','www.python.org:80','','','',''))
|
||||
|
||||
+ def test_parse_qs_separator(self):
|
||||
+ parse_qs_semicolon_cases = [
|
||||
+ (";", {}),
|
||||
+ (";;", {}),
|
||||
+ (";a=b", {'a': ['b']}),
|
||||
+ ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}),
|
||||
+ ("a=1;a=2", {'a': ['1', '2']}),
|
||||
+ (b";", {}),
|
||||
+ (b";;", {}),
|
||||
+ (b";a=b", {b'a': [b'b']}),
|
||||
+ (b"a=a+b;b=b+c", {b'a': [b'a b'], b'b': [b'b c']}),
|
||||
+ (b"a=1;a=2", {b'a': [b'1', b'2']}),
|
||||
+ ]
|
||||
+ for orig, expect in parse_qs_semicolon_cases:
|
||||
+ result = urlparse.parse_qs(orig, separator=';')
|
||||
+ self.assertEqual(result, expect, "Error parsing %r" % orig)
|
||||
+
|
||||
+
|
||||
+ def test_parse_qsl_separator(self):
|
||||
+ parse_qsl_semicolon_cases = [
|
||||
+ (";", []),
|
||||
+ (";;", []),
|
||||
+ (";a=b", [('a', 'b')]),
|
||||
+ ("a=a+b;b=b+c", [('a', 'a b'), ('b', 'b c')]),
|
||||
+ ("a=1;a=2", [('a', '1'), ('a', '2')]),
|
||||
+ (b";", []),
|
||||
+ (b";;", []),
|
||||
+ (b";a=b", [(b'a', b'b')]),
|
||||
+ (b"a=a+b;b=b+c", [(b'a', b'a b'), (b'b', b'b c')]),
|
||||
+ (b"a=1;a=2", [(b'a', b'1'), (b'a', b'2')]),
|
||||
+ ]
|
||||
+ for orig, expect in parse_qsl_semicolon_cases:
|
||||
+ result = urlparse.parse_qsl(orig, separator=';')
|
||||
+ self.assertEqual(result, expect, "Error parsing %r" % orig)
|
||||
+
|
||||
+
|
||||
def test_main():
|
||||
test_support.run_unittest(UrlParseTestCase)
|
||||
|
||||
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
|
||||
index ea897c3032..5bd067895b 100644
|
||||
--- a/Lib/urlparse.py
|
||||
+++ b/Lib/urlparse.py
|
||||
@@ -662,7 +662,8 @@ def unquote(string, encoding='utf-8', errors='replace'):
|
||||
append(item)
|
||||
return ''.join(res)
|
||||
|
||||
-def parse_qs(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
|
||||
+def parse_qs(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None,
|
||||
+ separator='&'):
|
||||
"""Parse a query given as a string argument.
|
||||
|
||||
Arguments:
|
||||
@@ -686,10 +686,13 @@ def parse_qs(qs, keep_blank_values=False, strict_parsing=False,
|
||||
|
||||
max_num_fields: int. If set, then throws a ValueError if there
|
||||
are more than n fields read by parse_qsl().
|
||||
+
|
||||
+ separator: str. The symbol to use for separating the query arguments.
|
||||
+ Defaults to &.
|
||||
"""
|
||||
dict = {}
|
||||
for name, value in parse_qsl(qs, keep_blank_values, strict_parsing,
|
||||
- max_num_fields):
|
||||
+ max_num_fields, separator=separator):
|
||||
if name in dict:
|
||||
dict[name].append(value)
|
||||
else:
|
||||
@@ -701,7 +704,8 @@ def parse_qs(qs, keep_blank_values=False, strict_parsing=False,
|
||||
dict[name] = [value]
|
||||
return dict
|
||||
|
||||
-def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
|
||||
+def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None,
|
||||
+ separator='&'):
|
||||
"""Parse a query given as a string argument.
|
||||
|
||||
Arguments:
|
||||
@@ -724,17 +727,23 @@ def parse_qsl(qs, keep_blank_values=False, strict_parsing=False,
|
||||
max_num_fields: int. If set, then throws a ValueError if there
|
||||
are more than n fields read by parse_qsl().
|
||||
|
||||
+ separator: str. The symbol to use for separating the query arguments.
|
||||
+ Defaults to &.
|
||||
+
|
||||
Returns a list, as G-d intended.
|
||||
"""
|
||||
+ if not separator or not isinstance(separator, str):
|
||||
+ raise ValueError("Separator must be of type str.")
|
||||
+
|
||||
# If max_num_fields is defined then check that the number of fields
|
||||
# is less than max_num_fields. This prevents a memory exhaustion DOS
|
||||
# attack via post bodies with many fields.
|
||||
if max_num_fields is not None:
|
||||
- num_fields = 1 + qs.count('&') + qs.count(';')
|
||||
+ num_fields = 1 + qs.count(separator)
|
||||
if max_num_fields < num_fields:
|
||||
raise ValueError('Max number of fields exceeded')
|
||||
|
||||
- pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
|
||||
+ pairs = [s1 for s1 in qs.split(separator)]
|
||||
r = []
|
||||
for name_value in pairs:
|
||||
if not name_value and not strict_parsing:
|
||||
--
|
||||
2.40.1
|
||||
|
||||
149
debian/patches/CVE-2021-3177.diff
vendored
Normal file
149
debian/patches/CVE-2021-3177.diff
vendored
Normal file
@@ -0,0 +1,149 @@
|
||||
bpo-42938: Replace snprintf with Python unicode formatting in ctypes param reprs.
|
||||
--- a/Lib/ctypes/test/test_parameters.py
|
||||
+++ b/Lib/ctypes/test/test_parameters.py
|
||||
@@ -206,6 +206,49 @@ class SimpleTypesTestCase(unittest.TestC
|
||||
with self.assertRaises(ZeroDivisionError):
|
||||
WorseStruct().__setstate__({}, b'foo')
|
||||
|
||||
+ def test_parameter_repr(self):
|
||||
+ from ctypes import (
|
||||
+ c_bool,
|
||||
+ c_char,
|
||||
+ c_wchar,
|
||||
+ c_byte,
|
||||
+ c_ubyte,
|
||||
+ c_short,
|
||||
+ c_ushort,
|
||||
+ c_int,
|
||||
+ c_uint,
|
||||
+ c_long,
|
||||
+ c_ulong,
|
||||
+ c_longlong,
|
||||
+ c_ulonglong,
|
||||
+ c_float,
|
||||
+ c_double,
|
||||
+ c_longdouble,
|
||||
+ c_char_p,
|
||||
+ c_wchar_p,
|
||||
+ c_void_p,
|
||||
+ )
|
||||
+ self.assertRegexpMatches(repr(c_bool.from_param(True)), r"^<cparam '\?' at 0x[A-Fa-f0-9]+>$")
|
||||
+ self.assertEqual(repr(c_char.from_param('a')), "<cparam 'c' (a)>")
|
||||
+ self.assertRegexpMatches(repr(c_wchar.from_param('a')), r"^<cparam 'u' at 0x[A-Fa-f0-9]+>$")
|
||||
+ self.assertEqual(repr(c_byte.from_param(98)), "<cparam 'b' (98)>")
|
||||
+ self.assertEqual(repr(c_ubyte.from_param(98)), "<cparam 'B' (98)>")
|
||||
+ self.assertEqual(repr(c_short.from_param(511)), "<cparam 'h' (511)>")
|
||||
+ self.assertEqual(repr(c_ushort.from_param(511)), "<cparam 'H' (511)>")
|
||||
+ self.assertRegexpMatches(repr(c_int.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_uint.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_long.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_ulong.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_longlong.from_param(20000)), r"^<cparam '[liq]' \(20000\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_ulonglong.from_param(20000)), r"^<cparam '[LIQ]' \(20000\)>$")
|
||||
+ self.assertEqual(repr(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
|
||||
+ self.assertEqual(repr(c_double.from_param(1.5)), "<cparam 'd' (1.5)>")
|
||||
+ self.assertEqual(repr(c_double.from_param(1e300)), "<cparam 'd' (1e+300)>")
|
||||
+ self.assertRegexpMatches(repr(c_longdouble.from_param(1.5)), r"^<cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")
|
||||
+ self.assertRegexpMatches(repr(c_char_p.from_param(b'hihi')), "^<cparam 'z' \(0x[A-Fa-f0-9]+\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_wchar_p.from_param('hihi')), "^<cparam 'Z' \(0x[A-Fa-f0-9]+\)>$")
|
||||
+ self.assertRegexpMatches(repr(c_void_p.from_param(0x12)), r"^<cparam 'P' \(0x0*12\)>$")
|
||||
+
|
||||
################################################################
|
||||
|
||||
if __name__ == '__main__':
|
||||
--- a/Modules/_ctypes/callproc.c
|
||||
+++ b/Modules/_ctypes/callproc.c
|
||||
@@ -460,50 +460,53 @@ PyCArg_dealloc(PyCArgObject *self)
|
||||
static PyObject *
|
||||
PyCArg_repr(PyCArgObject *self)
|
||||
{
|
||||
- char buffer[256];
|
||||
switch(self->tag) {
|
||||
case 'b':
|
||||
case 'B':
|
||||
- sprintf(buffer, "<cparam '%c' (%d)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%d)>",
|
||||
self->tag, self->value.b);
|
||||
- break;
|
||||
case 'h':
|
||||
case 'H':
|
||||
- sprintf(buffer, "<cparam '%c' (%d)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%d)>",
|
||||
self->tag, self->value.h);
|
||||
- break;
|
||||
case 'i':
|
||||
case 'I':
|
||||
- sprintf(buffer, "<cparam '%c' (%d)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%d)>",
|
||||
self->tag, self->value.i);
|
||||
- break;
|
||||
case 'l':
|
||||
case 'L':
|
||||
- sprintf(buffer, "<cparam '%c' (%ld)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%ld)>",
|
||||
self->tag, self->value.l);
|
||||
- break;
|
||||
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case 'q':
|
||||
case 'Q':
|
||||
- sprintf(buffer,
|
||||
- "<cparam '%c' (%" PY_FORMAT_LONG_LONG "d)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%" PY_FORMAT_LONG_LONG "d)>",
|
||||
self->tag, self->value.q);
|
||||
- break;
|
||||
#endif
|
||||
case 'd':
|
||||
- sprintf(buffer, "<cparam '%c' (%f)>",
|
||||
- self->tag, self->value.d);
|
||||
- break;
|
||||
- case 'f':
|
||||
- sprintf(buffer, "<cparam '%c' (%f)>",
|
||||
- self->tag, self->value.f);
|
||||
- break;
|
||||
+ case 'f': {
|
||||
+ PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);
|
||||
+ if (f == NULL) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ PyObject *r = PyObject_Repr(f);
|
||||
+ Py_DECREF(f);
|
||||
+ if (r == NULL) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ char *value = PyString_AsString(r);
|
||||
+ if (value == NULL) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ PyObject *result = PyString_FromFormat("<cparam '%c' (%s)>", self->tag, value);
|
||||
+ Py_DECREF(r);
|
||||
+ return result;
|
||||
+ }
|
||||
|
||||
case 'c':
|
||||
- sprintf(buffer, "<cparam '%c' (%c)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%c)>",
|
||||
self->tag, self->value.c);
|
||||
- break;
|
||||
|
||||
/* Hm, are these 'z' and 'Z' codes useful at all?
|
||||
Shouldn't they be replaced by the functionality of c_string
|
||||
@@ -512,16 +515,13 @@ PyCArg_repr(PyCArgObject *self)
|
||||
case 'z':
|
||||
case 'Z':
|
||||
case 'P':
|
||||
- sprintf(buffer, "<cparam '%c' (%p)>",
|
||||
+ return PyString_FromFormat("<cparam '%c' (%p)>",
|
||||
self->tag, self->value.p);
|
||||
- break;
|
||||
|
||||
default:
|
||||
- sprintf(buffer, "<cparam '%c' at %p>",
|
||||
+ return PyString_FromFormat("<cparam '%c' at %p>",
|
||||
self->tag, self);
|
||||
- break;
|
||||
}
|
||||
- return PyString_FromString(buffer);
|
||||
}
|
||||
|
||||
static PyMemberDef PyCArgType_members[] = {
|
||||
151
debian/patches/CVE-2022-0391.diff
vendored
Normal file
151
debian/patches/CVE-2022-0391.diff
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
From 76cd81d60310d65d01f9d7b48a8985d8ab89c8b4 Mon Sep 17 00:00:00 2001
|
||||
From: Senthil Kumaran <senthil@uthcode.com>
|
||||
Date: Thu, 29 Apr 2021 10:16:50 -0700
|
||||
Subject: [PATCH] bpo-43882 - urllib.parse should sanitize urls containing
|
||||
ASCII newline and tabs. (GH-25595)
|
||||
|
||||
* issue43882 - urllib.parse should sanitize urls containing ASCII newline and tabs.
|
||||
|
||||
Co-authored-by: Gregory P. Smith <greg@krypto.org>
|
||||
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
|
||||
---
|
||||
Doc/library/urllib.parse.rst | 13 +++++++++
|
||||
Lib/test/test_urlparse.py | 29 +++++++++++++++++++
|
||||
Lib/urllib/parse.py | 6 ++++
|
||||
.../2021-04-25-07-46-37.bpo-43882.Jpwx85.rst | 6 ++++
|
||||
4 files changed, 54 insertions(+)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2021-04-25-07-46-37.bpo-43882.Jpwx85.rst
|
||||
|
||||
From 985ac016373403e8ad41f8d563c4355ffa8d49ff Mon Sep 17 00:00:00 2001
|
||||
From: Senthil Kumaran <senthil@uthcode.com>
|
||||
Date: Wed, 5 May 2021 15:50:05 -0700
|
||||
Subject: [PATCH] bpo-43882 Remove the newline, and tab early. From query and
|
||||
fragments. (GH-25921)
|
||||
|
||||
---
|
||||
Lib/test/test_urlparse.py | 24 ++++++++++++++++--------
|
||||
Lib/urllib/parse.py | 8 +++++---
|
||||
2 files changed, 21 insertions(+), 11 deletions(-)
|
||||
|
||||
Backport:
|
||||
* Drop Misc/NEWS.d
|
||||
* urllib.parse -> urlparse
|
||||
* Update hunk context
|
||||
|
||||
diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
|
||||
index 67c2120819..0aaac56288 100644
|
||||
--- a/Doc/library/urlparse.rst
|
||||
+++ b/Doc/library/urlparse.rst
|
||||
@@ -312,6 +312,9 @@ or on combining URL components into a URL string.
|
||||
decomposed before parsing, or is not a Unicode string, no error will be
|
||||
raised.
|
||||
|
||||
+ Following the `WHATWG spec`_ that updates RFC 3986, ASCII newline
|
||||
+ ``\n``, ``\r`` and tab ``\t`` characters are stripped from the URL.
|
||||
+
|
||||
.. versionadded:: 2.2
|
||||
|
||||
.. versionchanged:: 2.5
|
||||
@@ -320,6 +323,10 @@ or on combining URL components into a URL string.
|
||||
Characters that affect netloc parsing under NFKC normalization will
|
||||
now raise :exc:`ValueError`.
|
||||
|
||||
+ .. versionchanged:: 2.7 security update
|
||||
+ ASCII newline and tab characters are stripped from the URL.
|
||||
+
|
||||
+.. _WHATWG spec: https://url.spec.whatwg.org/#concept-basic-url-parser
|
||||
|
||||
.. function:: urlunsplit(parts)
|
||||
|
||||
@@ -674,6 +681,10 @@ task isn't already covered by the URL parsing functions above.
|
||||
|
||||
.. seealso::
|
||||
|
||||
+ `WHATWG`_ - URL Living standard
|
||||
+ Working Group for the URL Standard that defines URLs, domains, IP addresses, the
|
||||
+ application/x-www-form-urlencoded format, and their API.
|
||||
+
|
||||
:rfc:`3986` - Uniform Resource Identifiers
|
||||
This is the current standard (STD66). Any changes to urlparse module
|
||||
should conform to this. Certain deviations could be observed, which are
|
||||
@@ -697,6 +708,8 @@ task isn't already covered by the URL parsing functions above.
|
||||
|
||||
:rfc:`1738` - Uniform Resource Locators (URL)
|
||||
This specifies the formal syntax and semantics of absolute URLs.
|
||||
+
|
||||
+.. _WHATWG: https://url.spec.whatwg.org/
|
||||
|
||||
|
||||
.. _urlparse-result-object:
|
||||
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
|
||||
--- a/Lib/test/test_urlparse.py
|
||||
+++ b/Lib/test/test_urlparse.py
|
||||
@@ -612,6 +612,43 @@
|
||||
self.assertEqual(p1.params, 'phone-context=+1-914-555')
|
||||
|
||||
|
||||
+ def test_urlsplit_remove_unsafe_bytes(self):
|
||||
+ # Remove ASCII tabs and newlines from input
|
||||
+ url = "http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"
|
||||
+ p = urlparse.urlsplit(url)
|
||||
+ self.assertEqual(p.scheme, "http")
|
||||
+ self.assertEqual(p.netloc, "www.python.org")
|
||||
+ self.assertEqual(p.path, "/javascript:alert('msg')/")
|
||||
+ self.assertEqual(p.query, "query=something")
|
||||
+ self.assertEqual(p.fragment, "fragment")
|
||||
+ self.assertEqual(p.username, None)
|
||||
+ self.assertEqual(p.password, None)
|
||||
+ self.assertEqual(p.hostname, "www.python.org")
|
||||
+ self.assertEqual(p.port, None)
|
||||
+ self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment")
|
||||
+
|
||||
+ # Remove ASCII tabs and newlines from input as bytes.
|
||||
+ url = b"http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"
|
||||
+ p = urlparse.urlsplit(url)
|
||||
+ self.assertEqual(p.scheme, b"http")
|
||||
+ self.assertEqual(p.netloc, b"www.python.org")
|
||||
+ self.assertEqual(p.path, b"/javascript:alert('msg')/")
|
||||
+ self.assertEqual(p.query, b"query=something")
|
||||
+ self.assertEqual(p.fragment, b"fragment")
|
||||
+ self.assertEqual(p.username, None)
|
||||
+ self.assertEqual(p.password, None)
|
||||
+ self.assertEqual(p.hostname, b"www.python.org")
|
||||
+ self.assertEqual(p.port, None)
|
||||
+ self.assertEqual(p.geturl(), b"http://www.python.org/javascript:alert('msg')/?query=something#fragment")
|
||||
+
|
||||
+ # with scheme as cache-key
|
||||
+ url = "http://www.python.org/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"
|
||||
+ scheme = "ht\ntp"
|
||||
+ for _ in range(2):
|
||||
+ p = urlparse.urlsplit(url, scheme=scheme)
|
||||
+ self.assertEqual(p.scheme, "http")
|
||||
+ self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment")
|
||||
+
|
||||
def test_attributes_bad_port(self):
|
||||
"""Check handling of non-integer ports."""
|
||||
p = urlparse.urlsplit("http://www.example.net:foo")
|
||||
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
|
||||
--- a/Lib/urlparse.py
|
||||
+++ b/Lib/urlparse.py
|
||||
@@ -78,6 +78,9 @@
|
||||
'0123456789'
|
||||
'+-.')
|
||||
|
||||
+# Unsafe bytes to be removed per WHATWG spec
|
||||
+_UNSAFE_URL_BYTES_TO_REMOVE = ['\t', '\r', '\n']
|
||||
+
|
||||
MAX_CACHE_SIZE = 20
|
||||
_parse_cache = {}
|
||||
|
||||
@@ -456,6 +456,11 @@ def urlsplit(url, scheme='', allow_fragments=True):
|
||||
Return a 5-tuple: (scheme, netloc, path, query, fragment).
|
||||
Note that we don't break the components up in smaller bits
|
||||
(e.g. netloc is a single string) and we don't expand % escapes."""
|
||||
+
|
||||
+ for b in _UNSAFE_URL_BYTES_TO_REMOVE:
|
||||
+ url = url.replace(b, "")
|
||||
+ scheme = scheme.replace(b, "")
|
||||
+
|
||||
allow_fragments = bool(allow_fragments)
|
||||
key = url, scheme, allow_fragments, type(url), type(scheme)
|
||||
cached = _parse_cache.get(key, None)
|
||||
155
debian/patches/CVE-2022-48560.diff
vendored
Normal file
155
debian/patches/CVE-2022-48560.diff
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
From 79f89e6e5a659846d1068e8b1bd8e491ccdef861 Mon Sep 17 00:00:00 2001
|
||||
From: Pablo Galindo <Pablogsal@gmail.com>
|
||||
Date: Thu, 23 Jan 2020 14:07:05 +0000
|
||||
Subject: [PATCH] bpo-39421: Fix posible crash in heapq with custom comparison
|
||||
operators (GH-18118)
|
||||
|
||||
* bpo-39421: Fix posible crash in heapq with custom comparison operators
|
||||
|
||||
* fixup! bpo-39421: Fix posible crash in heapq with custom comparison operators
|
||||
|
||||
* fixup! fixup! bpo-39421: Fix posible crash in heapq with custom comparison operators
|
||||
---
|
||||
Lib/test/test_heapq.py | 31 ++++++++++++++++
|
||||
.../2020-01-22-15-53-37.bpo-39421.O3nG7u.rst | 2 ++
|
||||
Modules/_heapqmodule.c | 35 ++++++++++++++-----
|
||||
3 files changed, 59 insertions(+), 9 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
|
||||
|
||||
Backport:
|
||||
* Drop Misc/NEWS.d
|
||||
* test_heapq.py:
|
||||
+ Update hunk context
|
||||
+ list.clear() -> del list[:]
|
||||
* _heapqmodule.c: Port the patch with significant changes
|
||||
+ PyObject_RichCompareBool -> cmp_lt
|
||||
+ X[Y] -> PyList_GET_ITEM(X, Y)
|
||||
+ 4th hunk: newitem refcount is already incremented, parent refcount extended
|
||||
|
||||
diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py
|
||||
index 861ba7540d..6902573e8f 100644
|
||||
--- a/Lib/test/test_heapq.py
|
||||
+++ b/Lib/test/test_heapq.py
|
||||
@@ -432,6 +432,37 @@ def test_heappop_mutating_heap(self):
|
||||
with self.assertRaises((IndexError, RuntimeError)):
|
||||
self.module.heappop(heap)
|
||||
|
||||
+ def test_comparison_operator_modifiying_heap(self):
|
||||
+ # See bpo-39421: Strong references need to be taken
|
||||
+ # when comparing objects as they can alter the heap
|
||||
+ class EvilClass(int):
|
||||
+ def __lt__(self, o):
|
||||
+ del heap[:]
|
||||
+ return NotImplemented
|
||||
+
|
||||
+ heap = []
|
||||
+ self.module.heappush(heap, EvilClass(0))
|
||||
+ self.assertRaises(IndexError, self.module.heappushpop, heap, 1)
|
||||
+
|
||||
+ def test_comparison_operator_modifiying_heap_two_heaps(self):
|
||||
+
|
||||
+ class h(int):
|
||||
+ def __lt__(self, o):
|
||||
+ del list2[:]
|
||||
+ return NotImplemented
|
||||
+
|
||||
+ class g(int):
|
||||
+ def __lt__(self, o):
|
||||
+ del list1[:]
|
||||
+ return NotImplemented
|
||||
+
|
||||
+ list1, list2 = [], []
|
||||
+
|
||||
+ self.module.heappush(list1, h(0))
|
||||
+ self.module.heappush(list2, g(0))
|
||||
+
|
||||
+ self.assertRaises((IndexError, RuntimeError), self.module.heappush, list1, g(1))
|
||||
+ self.assertRaises((IndexError, RuntimeError), self.module.heappush, list2, h(1))
|
||||
|
||||
class TestErrorHandlingPython(TestErrorHandling):
|
||||
module = py_heapq
|
||||
diff --git a/Modules/_heapqmodule.c b/Modules/_heapqmodule.c
|
||||
index a84cade3aa..6bc18b5f82 100644
|
||||
--- a/Modules/_heapqmodule.c
|
||||
+++ b/Modules/_heapqmodule.c
|
||||
@@ -36,7 +36,11 @@ siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
|
||||
while (pos > startpos) {
|
||||
parentpos = (pos - 1) >> 1;
|
||||
parent = PyList_GET_ITEM(heap, parentpos);
|
||||
+ Py_INCREF(newitem);
|
||||
+ Py_INCREF(parent);
|
||||
cmp = cmp_lt(newitem, parent);
|
||||
+ Py_DECREF(parent);
|
||||
+ Py_DECREF(newitem);
|
||||
if (cmp == -1)
|
||||
return -1;
|
||||
if (size != PyList_GET_SIZE(heap)) {
|
||||
@@ -78,9 +82,13 @@ siftup(PyListObject *heap, Py_ssize_t pos)
|
||||
childpos = 2*pos + 1; /* leftmost child position */
|
||||
rightpos = childpos + 1;
|
||||
if (rightpos < endpos) {
|
||||
- cmp = cmp_lt(
|
||||
- PyList_GET_ITEM(heap, childpos),
|
||||
- PyList_GET_ITEM(heap, rightpos));
|
||||
+ PyObject* a = PyList_GET_ITEM(heap, childpos);
|
||||
+ PyObject* b = PyList_GET_ITEM(heap, rightpos);
|
||||
+ Py_INCREF(a);
|
||||
+ Py_INCREF(b);
|
||||
+ cmp = cmp_lt(a, b);
|
||||
+ Py_DECREF(a);
|
||||
+ Py_DECREF(b);
|
||||
if (cmp == -1)
|
||||
return -1;
|
||||
if (cmp == 0)
|
||||
@@ -264,7 +271,10 @@ _heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)
|
||||
return item;
|
||||
}
|
||||
|
||||
- cmp = cmp_lt(PyList_GET_ITEM(heap, 0), item);
|
||||
+ PyObject* top = PyList_GET_ITEM(heap, 0);
|
||||
+ Py_INCREF(top);
|
||||
+ cmp = cmp_lt(top, item);
|
||||
+ Py_DECREF(top);
|
||||
if (cmp == -1)
|
||||
return NULL;
|
||||
if (cmp == 0) {
|
||||
@@ -420,14 +430,17 @@ siftdown_max(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
|
||||
while (pos > startpos){
|
||||
parentpos = (pos - 1) >> 1;
|
||||
parent = PyList_GET_ITEM(heap, parentpos);
|
||||
+ Py_INCREF(parent);
|
||||
cmp = cmp_lt(parent, newitem);
|
||||
if (cmp == -1) {
|
||||
+ Py_DECREF(parent);
|
||||
Py_DECREF(newitem);
|
||||
return -1;
|
||||
}
|
||||
- if (cmp == 0)
|
||||
+ if (cmp == 0) {
|
||||
+ Py_DECREF(parent);
|
||||
break;
|
||||
+ }
|
||||
- Py_INCREF(parent);
|
||||
Py_DECREF(PyList_GET_ITEM(heap, pos));
|
||||
PyList_SET_ITEM(heap, pos, parent);
|
||||
pos = parentpos;
|
||||
@@ -462,9 +476,13 @@ siftup_max(PyListObject *heap, Py_ssize_t pos)
|
||||
childpos = 2*pos + 1; /* leftmost child position */
|
||||
rightpos = childpos + 1;
|
||||
if (rightpos < endpos) {
|
||||
- cmp = cmp_lt(
|
||||
- PyList_GET_ITEM(heap, rightpos),
|
||||
- PyList_GET_ITEM(heap, childpos));
|
||||
+ PyObject* a = PyList_GET_ITEM(heap, rightpos);
|
||||
+ PyObject* b = PyList_GET_ITEM(heap, childpos);
|
||||
+ Py_INCREF(a);
|
||||
+ Py_INCREF(b);
|
||||
+ cmp = cmp_lt(a, b);
|
||||
+ Py_DECREF(a);
|
||||
+ Py_DECREF(b);
|
||||
if (cmp == -1) {
|
||||
Py_DECREF(newitem);
|
||||
return -1;
|
||||
--
|
||||
2.40.1
|
||||
|
||||
90
debian/patches/CVE-2022-48565.diff
vendored
Normal file
90
debian/patches/CVE-2022-48565.diff
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
From 05ee790f4d1cd8725a90b54268fc1dfe5b4d1fa2 Mon Sep 17 00:00:00 2001
|
||||
From: Ronald Oussoren <ronaldoussoren@mac.com>
|
||||
Date: Mon, 19 Oct 2020 20:13:49 +0200
|
||||
Subject: [PATCH] bpo-42051: Reject XML entity declarations in plist files
|
||||
(#22760)
|
||||
|
||||
---
|
||||
Lib/plistlib.py | 7 +++++++
|
||||
Lib/test/test_plistlib.py | 18 ++++++++++++++++++
|
||||
.../2020-10-19-10-56-27.bpo-42051.EU_B7u.rst | 3 +++
|
||||
3 files changed, 28 insertions(+)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2020-10-19-10-56-27.bpo-42051.EU_B7u.rst
|
||||
|
||||
Backport:
|
||||
* Drop Misc/NEWS.d
|
||||
* plistlib.py:
|
||||
* Handle cAmElCaSe vs under_scores
|
||||
* self.parser vs parser
|
||||
* Degrade InvalidFileException to ValueError
|
||||
* test_plistlib.py:
|
||||
* Update hunk context
|
||||
* Drop b"" prefix
|
||||
* Degrade InvalidFileException to ValueError
|
||||
* Adapt parser invocation to older API
|
||||
* Reimplement assertRaisesRegexp
|
||||
|
||||
diff --git a/Lib/plistlib.py b/Lib/plistlib.py
|
||||
index aff5fe36ca..ba7ac19364 100644
|
||||
--- a/Lib/plistlib.py
|
||||
+++ b/Lib/plistlib.py
|
||||
@@ -173,9 +173,16 @@ def parse(self, fileobj):
|
||||
parser.StartElementHandler = self.handleBeginElement
|
||||
parser.EndElementHandler = self.handleEndElement
|
||||
parser.CharacterDataHandler = self.handleData
|
||||
+ parser.EntityDeclHandler = self.handleEntityDecl
|
||||
parser.ParseFile(fileobj)
|
||||
return self.root
|
||||
|
||||
+ def handleEntityDecl(self, entity_name, is_parameter_entity, value, base, system_id, public_id, notation_name):
|
||||
+ # Reject plist files with entity declarations to avoid XML vulnerabilies in expat.
|
||||
+ # Regular plist files don't contain those declerations, and Apple's plutil tool does not
|
||||
+ # accept them either.
|
||||
+ raise ValueError("XML entity declarations are not supported in plist files")
|
||||
+
|
||||
def handleBeginElement(self, element, attrs):
|
||||
self.data = []
|
||||
handler = getattr(self, "begin_" + element, None)
|
||||
diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py
|
||||
index e5c9b5b6b2..cb071da1f3 100644
|
||||
--- a/Lib/test/test_plistlib.py
|
||||
+++ b/Lib/test/test_plistlib.py
|
||||
@@ -106,6 +106,19 @@
|
||||
</plist>
|
||||
""".replace(" " * 8, "\t") # Apple as well as plistlib.py output hard tabs
|
||||
|
||||
+XML_PLIST_WITH_ENTITY='''\
|
||||
+<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" [
|
||||
+ <!ENTITY entity "replacement text">
|
||||
+ ]>
|
||||
+<plist version="1.0">
|
||||
+ <dict>
|
||||
+ <key>A</key>
|
||||
+ <string>&entity;</string>
|
||||
+ </dict>
|
||||
+</plist>
|
||||
+'''
|
||||
+
|
||||
|
||||
class TestPlistlib(unittest.TestCase):
|
||||
|
||||
@@ -524,6 +537,15 @@ def test_modified_uid_huge(self):
|
||||
self.assertEqual(test1, result1)
|
||||
self.assertEqual(test2, result2)
|
||||
|
||||
+ def test_xml_plist_with_entity_decl(self):
|
||||
+ try:
|
||||
+ plistlib.readPlistFromString(XML_PLIST_WITH_ENTITY)
|
||||
+ except ValueError as e:
|
||||
+ self.assertIn("XML entity declarations are not supported",
|
||||
+ e.message)
|
||||
+ else:
|
||||
+ self.fail("expected ValueError to be raised")
|
||||
+
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(TestPlistlib)
|
||||
--
|
||||
2.40.1
|
||||
|
||||
40
debian/patches/CVE-2022-48566.diff
vendored
Normal file
40
debian/patches/CVE-2022-48566.diff
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
From c1bbca5b004b3f74d240ef8a76ff445cc1a27efb Mon Sep 17 00:00:00 2001
|
||||
From: "Miss Islington (bot)"
|
||||
<31488909+miss-islington@users.noreply.github.com>
|
||||
Date: Sat, 21 Nov 2020 01:18:41 -0800
|
||||
Subject: [PATCH] bpo-40791: Make compare_digest more constant-time. (GH-20444)
|
||||
|
||||
* bpo-40791: Make compare_digest more constant-time.
|
||||
|
||||
The existing volatile `left`/`right` pointers guarantee that the reads will all occur, but does not guarantee that they will be _used_. So a compiler can still short-circuit the loop, saving e.g. the overhead of doing the xors and especially the overhead of the data dependency between `result` and the reads. That would change performance depending on where the first unequal byte occurs. This change removes that optimization.
|
||||
|
||||
(This is change GH-1 from https://bugs.python.org/issue40791 .)
|
||||
(cherry picked from commit 31729366e2bc09632e78f3896dbce0ae64914f28)
|
||||
|
||||
Co-authored-by: Devin Jeanpierre <jeanpierreda@google.com>
|
||||
---
|
||||
.../next/Security/2020-05-28-06-06-47.bpo-40791.QGZClX.rst | 1 +
|
||||
Modules/_operator.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2020-05-28-06-06-47.bpo-40791.QGZClX.rst
|
||||
|
||||
Backport:
|
||||
* Drop Misc/NEWS.d
|
||||
* _operator.c -> operator.c
|
||||
|
||||
diff --git a/Modules/_operator.c b/Modules/_operator.c
|
||||
index 8a54829e5b..6f8f68f459 100644
|
||||
--- a/Modules/operator.c
|
||||
+++ b/Modules/operator.c
|
||||
@@ -735,7 +735,7 @@ _tscmp(const unsigned char *a, const unsigned char *b,
|
||||
volatile const unsigned char *left;
|
||||
volatile const unsigned char *right;
|
||||
Py_ssize_t i;
|
||||
- unsigned char result;
|
||||
+ volatile unsigned char result;
|
||||
|
||||
/* loop count depends on length of b */
|
||||
length = len_b;
|
||||
--
|
||||
2.40.1
|
||||
|
||||
264
debian/patches/CVE-2023-24329.diff
vendored
Normal file
264
debian/patches/CVE-2023-24329.diff
vendored
Normal file
@@ -0,0 +1,264 @@
|
||||
From 439b9cfaf43080e91c4ad69f312f21fa098befc7 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Kallus <49924171+kenballus@users.noreply.github.com>
|
||||
Date: Sun, 13 Nov 2022 18:25:55 +0000
|
||||
Subject: [PATCH] gh-99418: Make urllib.parse.urlparse enforce that a scheme
|
||||
must begin with an alphabetical ASCII character. (#99421)
|
||||
|
||||
Prevent urllib.parse.urlparse from accepting schemes that don't begin with an alphabetical ASCII character.
|
||||
|
||||
RFC 3986 defines a scheme like this: `scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )`
|
||||
RFC 2234 defines an ALPHA like this: `ALPHA = %x41-5A / %x61-7A`
|
||||
|
||||
The WHATWG URL spec defines a scheme like this:
|
||||
`"A URL-scheme string must be one ASCII alpha, followed by zero or more of ASCII alphanumeric, U+002B (+), U+002D (-), and U+002E (.)."`
|
||||
---
|
||||
Lib/test/test_urlparse.py | 18 ++++++++++++++++++
|
||||
Lib/urllib/parse.py | 2 +-
|
||||
...22-11-12-15-45-51.gh-issue-99418.FxfAXS.rst | 2 ++
|
||||
3 files changed, 21 insertions(+), 1 deletion(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Library/2022-11-12-15-45-51.gh-issue-99418.FxfAXS.rst
|
||||
|
||||
From 2f630e1ce18ad2e07428296532a68b11dc66ad10 Mon Sep 17 00:00:00 2001
|
||||
From: Illia Volochii <illia.volochii@gmail.com>
|
||||
Date: Wed, 17 May 2023 11:49:20 +0300
|
||||
Subject: [PATCH] gh-102153: Start stripping C0 control and space chars in
|
||||
`urlsplit` (#102508)
|
||||
|
||||
`urllib.parse.urlsplit` has already been respecting the WHATWG spec a bit #25595.
|
||||
|
||||
This adds more sanitizing to respect the "Remove any leading C0 control or space from input" [rule](https://url.spec.whatwg.org/#url-parsing:~:text=Remove%20any%20leading%20and%20trailing%20C0%20control%20or%20space%20from%20input.) in response to [CVE-2023-24329](https://nvd.nist.gov/vuln/detail/CVE-2023-24329).
|
||||
|
||||
---------
|
||||
|
||||
Co-authored-by: Gregory P. Smith [Google] <greg@krypto.org>
|
||||
---
|
||||
Doc/library/urllib.parse.rst | 46 +++++++++++++-
|
||||
Lib/test/test_urlparse.py | 61 ++++++++++++++++++-
|
||||
Lib/urllib/parse.py | 12 ++++
|
||||
...-03-07-20-59-17.gh-issue-102153.14CLSZ.rst | 3 +
|
||||
4 files changed, 119 insertions(+), 3 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2023-03-07-20-59-17.gh-issue-102153.14CLSZ.rst
|
||||
|
||||
Backport:
|
||||
* Drop Misc/NEWS.d
|
||||
* urllib.parse -> urlparse
|
||||
* Update hunk context
|
||||
* Implement str.isascii
|
||||
* test_urlparse.py:
|
||||
* Various str vs bytes issues
|
||||
* Drop hunk in test_attributes_bad_port
|
||||
* Avoid using TestCase.subTest
|
||||
* Don't use non-ascii in source
|
||||
|
||||
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
|
||||
--- a/Lib/test/test_urlparse.py
|
||||
+++ b/Lib/test/test_urlparse.py
|
||||
@@ -654,6 +654,65 @@ def test_urlsplit_remove_unsafe_bytes(self):
|
||||
self.assertEqual(p.scheme, "http")
|
||||
self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment")
|
||||
|
||||
+ def test_urlsplit_strip_url(self):
|
||||
+ noise = "".join(map(chr, range(0, 0x20 + 1)))
|
||||
+ base_url = "http://User:Pass@www.python.org:080/doc/?query=yes#frag"
|
||||
+
|
||||
+ url = (noise + base_url).decode("utf8")
|
||||
+ p = urlparse.urlsplit(url)
|
||||
+ self.assertEqual(p.scheme, u"http")
|
||||
+ self.assertEqual(p.netloc, u"User:Pass@www.python.org:080")
|
||||
+ self.assertEqual(p.path, u"/doc/")
|
||||
+ self.assertEqual(p.query, u"query=yes")
|
||||
+ self.assertEqual(p.fragment, u"frag")
|
||||
+ self.assertEqual(p.username, u"User")
|
||||
+ self.assertEqual(p.password, u"Pass")
|
||||
+ self.assertEqual(p.hostname, u"www.python.org")
|
||||
+ self.assertEqual(p.port, 80)
|
||||
+ self.assertEqual(p.geturl(), base_url.decode("utf8"))
|
||||
+
|
||||
+ url = noise + base_url
|
||||
+ p = urlparse.urlsplit(url)
|
||||
+ self.assertEqual(p.scheme, b"http")
|
||||
+ self.assertEqual(p.netloc, b"User:Pass@www.python.org:080")
|
||||
+ self.assertEqual(p.path, b"/doc/")
|
||||
+ self.assertEqual(p.query, b"query=yes")
|
||||
+ self.assertEqual(p.fragment, b"frag")
|
||||
+ self.assertEqual(p.username, b"User")
|
||||
+ self.assertEqual(p.password, b"Pass")
|
||||
+ self.assertEqual(p.hostname, b"www.python.org")
|
||||
+ self.assertEqual(p.port, 80)
|
||||
+ self.assertEqual(p.geturl(), base_url)
|
||||
+
|
||||
+ # Test that trailing space is preserved as some applications rely on
|
||||
+ # this within query strings.
|
||||
+ query_spaces_url = "https://www.python.org:88/doc/?query= "
|
||||
+ p = urlparse.urlsplit(noise + query_spaces_url)
|
||||
+ self.assertEqual(p.scheme, "https")
|
||||
+ self.assertEqual(p.netloc, "www.python.org:88")
|
||||
+ self.assertEqual(p.path, "/doc/")
|
||||
+ self.assertEqual(p.query, "query= ")
|
||||
+ self.assertEqual(p.port, 88)
|
||||
+ self.assertEqual(p.geturl(), query_spaces_url)
|
||||
+
|
||||
+ p = urlparse.urlsplit("www.pypi.org ")
|
||||
+ # That "hostname" gets considered a "path" due to the
|
||||
+ # trailing space and our existing logic... YUCK...
|
||||
+ # and re-assembles via geturl aka unurlsplit into the original.
|
||||
+ # django.core.validators.URLValidator (at least through v3.2) relies on
|
||||
+ # this, for better or worse, to catch it in a ValidationError via its
|
||||
+ # regular expressions.
|
||||
+ # Here we test the basic round trip concept of such a trailing space.
|
||||
+ self.assertEqual(urlparse.urlunsplit(p), "www.pypi.org ")
|
||||
+
|
||||
+ # with scheme as cache-key
|
||||
+ url = "//www.python.org/"
|
||||
+ scheme = noise + "https" + noise
|
||||
+ for _ in range(2):
|
||||
+ p = urlparse.urlsplit(url, scheme=scheme)
|
||||
+ self.assertEqual(p.scheme, "https")
|
||||
+ self.assertEqual(p.geturl(), "https://www.python.org/")
|
||||
+
|
||||
def test_attributes_bad_port(self):
|
||||
"""Check handling of non-integer ports."""
|
||||
p = urlparse.urlsplit("http://www.example.net:foo")
|
||||
@@ -668,6 +668,23 @@ def test_attributes_bad_port(self):
|
||||
self.assertEqual(p.netloc, "www.example.net:foo")
|
||||
self.assertRaises(ValueError, lambda: p.port)
|
||||
|
||||
+ def test_attributes_bad_scheme(self):
|
||||
+ """Check handling of invalid schemes."""
|
||||
+ for bytes in (False, True):
|
||||
+ for parse in (urlparse.urlsplit, urlparse.urlparse):
|
||||
+ for scheme in (u".", u"+", u"-", u"0", u"http&", u"\xe0http"):
|
||||
+ url = scheme + u"://www.example.net"
|
||||
+ if bytes:
|
||||
+ if all(ord(c) < 128 for c in url):
|
||||
+ url = url.encode("ascii")
|
||||
+ else:
|
||||
+ continue
|
||||
+ p = parse(url)
|
||||
+ if bytes:
|
||||
+ self.assertEqual(p.scheme, b"")
|
||||
+ else:
|
||||
+ self.assertEqual(p.scheme, u"")
|
||||
+
|
||||
def test_attributes_without_netloc(self):
|
||||
# This example is straight from RFC 3261. It looks like it
|
||||
# should allow the username, hostname, and port to be filled
|
||||
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
|
||||
index 9a3102afd6..4f6867accb 100644
|
||||
--- a/Lib/urlparse.py
|
||||
+++ b/Lib/urlparse.py
|
||||
@@ -25,6 +25,10 @@
|
||||
scenarios for parsing, and for backward compatibility purposes, some
|
||||
parsing quirks from older RFCs are retained. The testcases in
|
||||
test_urlparse.py provides a good indicator of parsing behavior.
|
||||
+
|
||||
+The WHATWG URL Parser spec should also be considered. We are not compliant with
|
||||
+it either due to existing user code API behavior expectations (Hyrum's Law).
|
||||
+It serves as a useful guide when making changes.
|
||||
|
||||
"""
|
||||
|
||||
@@ -80,6 +84,10 @@
|
||||
'0123456789'
|
||||
'+-.')
|
||||
|
||||
+# Leading and trailing C0 control and space to be stripped per WHATWG spec.
|
||||
+# == "".join([chr(i) for i in range(0, 0x20 + 1)])
|
||||
+_WHATWG_C0_CONTROL_OR_SPACE = '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f '
|
||||
+
|
||||
# Unsafe bytes to be removed per WHATWG spec
|
||||
_UNSAFE_URL_BYTES_TO_REMOVE = ['\t', '\r', '\n']
|
||||
|
||||
@@ -464,9 +472,13 @@ def urlsplit(url, scheme='', allow_fragments=True):
|
||||
return cached
|
||||
if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth
|
||||
clear_cache()
|
||||
+ # Only lstrip url as some applications rely on preserving trailing space.
|
||||
+ # (https://url.spec.whatwg.org/#concept-basic-url-parser would strip both)
|
||||
+ url = url.lstrip(_WHATWG_C0_CONTROL_OR_SPACE)
|
||||
+ scheme = scheme.strip(_WHATWG_C0_CONTROL_OR_SPACE)
|
||||
netloc = query = fragment = ''
|
||||
i = url.find(':')
|
||||
- if i > 0:
|
||||
+ if i > 0 and ord(url[0]) < 128 and url[0].isalpha():
|
||||
if url[:i] == 'http': # optimize the common case
|
||||
scheme = url[:i].lower()
|
||||
url = url[i+1:]
|
||||
diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
|
||||
index 96b3965107..5a9a53f83d 100644
|
||||
--- a/Doc/library/urlparse.rst
|
||||
+++ b/Doc/library/urlparse.rst
|
||||
@@ -159,6 +159,11 @@ or on combining URL components into a URL string.
|
||||
decomposed before parsing, or is not a Unicode string, no error will be
|
||||
raised.
|
||||
|
||||
+ .. warning::
|
||||
+
|
||||
+ :func:`urlparse` does not perform validation. See :ref:`URL parsing
|
||||
+ security <url-parsing-security>` for details.
|
||||
+
|
||||
.. versionchanged:: 2.5
|
||||
Added attributes to return value.
|
||||
|
||||
@@ -324,6 +328,15 @@ or on combining URL components into a URL string.
|
||||
Following the `WHATWG spec`_ that updates RFC 3986, ASCII newline
|
||||
``\n``, ``\r`` and tab ``\t`` characters are stripped from the URL.
|
||||
|
||||
+ Following some of the `WHATWG spec`_ that updates RFC 3986, leading C0
|
||||
+ control and space characters are stripped from the URL. ``\n``,
|
||||
+ ``\r`` and tab ``\t`` characters are removed from the URL at any position.
|
||||
+
|
||||
+ .. warning::
|
||||
+
|
||||
+ :func:`urlsplit` does not perform validation. See :ref:`URL parsing
|
||||
+ security <url-parsing-security>` for details.
|
||||
+
|
||||
.. versionadded:: 2.2
|
||||
|
||||
.. versionchanged:: 2.5
|
||||
@@ -338,6 +348,9 @@ or on combining URL components into a URL string.
|
||||
.. versionchanged:: 2.7 security update
|
||||
ASCII newline and tab characters are stripped from the URL.
|
||||
|
||||
+ .. versionchanged:: 2.7 security update
|
||||
+ Leading WHATWG C0 control and space characters are stripped from the URL.
|
||||
+
|
||||
.. _WHATWG spec: https://url.spec.whatwg.org/#concept-basic-url-parser
|
||||
|
||||
.. function:: urlunsplit(parts)
|
||||
@@ -414,6 +427,35 @@ or on combining URL components into a URL string.
|
||||
.. _WHATWG: https://url.spec.whatwg.org/
|
||||
|
||||
|
||||
+.. _url-parsing-security:
|
||||
+
|
||||
+URL parsing security
|
||||
+--------------------
|
||||
+
|
||||
+The :func:`urlsplit` and :func:`urlparse` APIs do not perform **validation** of
|
||||
+inputs. They may not raise errors on inputs that other applications consider
|
||||
+invalid. They may also succeed on some inputs that might not be considered
|
||||
+URLs elsewhere. Their purpose is for practical functionality rather than
|
||||
+purity.
|
||||
+
|
||||
+Instead of raising an exception on unusual input, they may instead return some
|
||||
+component parts as empty strings. Or components may contain more than perhaps
|
||||
+they should.
|
||||
+
|
||||
+We recommend that users of these APIs where the values may be used anywhere
|
||||
+with security implications code defensively. Do some verification within your
|
||||
+code before trusting a returned component part. Does that ``scheme`` make
|
||||
+sense? Is that a sensible ``path``? Is there anything strange about that
|
||||
+``hostname``? etc.
|
||||
+
|
||||
+What constitutes a URL is not universally well defined. Different applications
|
||||
+have different needs and desired constraints. For instance the living `WHATWG
|
||||
+spec`_ describes what user facing web clients such as a web browser require.
|
||||
+While :rfc:`3986` is more general. These functions incorporate some aspects of
|
||||
+both, but cannot be claimed compliant with either. The APIs and existing user
|
||||
+code with expectations on specific behaviors predate both standards leading us
|
||||
+to be very cautious about making API behavior changes.
|
||||
+
|
||||
.. _urlparse-result-object:
|
||||
|
||||
Results of :func:`urlparse` and :func:`urlsplit`
|
||||
321
debian/patches/CVE-2023-40217.diff
vendored
Normal file
321
debian/patches/CVE-2023-40217.diff
vendored
Normal file
@@ -0,0 +1,321 @@
|
||||
From 0cb0c238d520a8718e313b52cffc356a5a7561bf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C5=81ukasz=20Langa?= <lukasz@langa.pl>
|
||||
Date: Tue, 22 Aug 2023 19:53:15 +0200
|
||||
Subject: [PATCH] gh-108310: Fix CVE-2023-40217: Check for & avoid the ssl
|
||||
pre-close flaw (#108315)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Instances of `ssl.SSLSocket` were vulnerable to a bypass of the TLS handshake
|
||||
and included protections (like certificate verification) and treating sent
|
||||
unencrypted data as if it were post-handshake TLS encrypted data.
|
||||
|
||||
The vulnerability is caused when a socket is connected, data is sent by the
|
||||
malicious peer and stored in a buffer, and then the malicious peer closes the
|
||||
socket within a small timing window before the other peers’ TLS handshake can
|
||||
begin. After this sequence of events the closed socket will not immediately
|
||||
attempt a TLS handshake due to not being connected but will also allow the
|
||||
buffered data to be read as if a successful TLS handshake had occurred.
|
||||
|
||||
Co-authored-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
|
||||
---
|
||||
Lib/ssl.py | 31 ++-
|
||||
Lib/test/test_ssl.py | 211 ++++++++++++++++++
|
||||
...-08-22-17-39-12.gh-issue-108310.fVM3sg.rst | 7 +
|
||||
3 files changed, 248 insertions(+), 1 deletion(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Security/2023-08-22-17-39-12.gh-issue-108310.fVM3sg.rst
|
||||
|
||||
From 64f99350351bc46e016b2286f36ba7cd669b79e3 Mon Sep 17 00:00:00 2001
|
||||
From: Victor Stinner <vstinner@python.org>
|
||||
Date: Wed, 23 Aug 2023 07:26:01 +0200
|
||||
Subject: [PATCH] gh-108342: Break ref cycle in SSLSocket._create() exc
|
||||
(#108344)
|
||||
|
||||
Explicitly break a reference cycle when SSLSocket._create() raises an
|
||||
exception. Clear the variable storing the exception, since the
|
||||
exception traceback contains the variables and so creates a reference
|
||||
cycle.
|
||||
|
||||
This test leak was introduced by the test added for the fix of #108310.
|
||||
---
|
||||
Lib/ssl.py | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
Backport:
|
||||
* ssl.py:
|
||||
* There is no socket.getblocking. In the connected case, we do not retain the
|
||||
timeout, because #8524 was never fixed on Python 2.7. In the disconnected
|
||||
case, we have to modify the timeout and therefore restore it.
|
||||
* Cannot use self.recv in c'tor, because it would access self._sslobj
|
||||
* socket.socket raises socket.error rather than OSError
|
||||
* test_ssl.py:
|
||||
* Merge imports
|
||||
* Inline socket_helper.bind_port
|
||||
* Delete non_linux_skip_if_other_okay_error: This backport is Linux-only
|
||||
* socket.socket isn't a ContextManager yet
|
||||
* http.client -> httplib
|
||||
* Implement assertRaises
|
||||
* Remove use of keyword-only arguments
|
||||
* Do not use f"strings"
|
||||
* Drop Misc/NEWS.d
|
||||
|
||||
diff --git a/Lib/ssl.py b/Lib/ssl.py
|
||||
index 1d58737264..ff363c75e7 100644
|
||||
--- a/Lib/ssl.py
|
||||
+++ b/Lib/ssl.py
|
||||
@@ -994,6 +994,38 @@ def _create(cls, sock, server_side=False, do_handshake_on_connect=True,
|
||||
if e.errno != errno.ENOTCONN:
|
||||
raise
|
||||
connected = False
|
||||
+ sock_timeout = self.gettimeout()
|
||||
+ self.settimeout(0)
|
||||
+ try:
|
||||
+ # We are not connected so this is not supposed to block, but
|
||||
+ # testing revealed otherwise on macOS and Windows so we do
|
||||
+ # the non-blocking dance regardless. Our raise when any data
|
||||
+ # is found means consuming the data is harmless.
|
||||
+ notconn_pre_handshake_data = self._sock.recv(1)
|
||||
+ except socket_error as e:
|
||||
+ # EINVAL occurs for recv(1) on non-connected on unix sockets.
|
||||
+ if e.errno not in (errno.ENOTCONN, errno.EINVAL):
|
||||
+ raise
|
||||
+ notconn_pre_handshake_data = b''
|
||||
+ self.settimeout(sock_timeout)
|
||||
+ if notconn_pre_handshake_data:
|
||||
+ # This prevents pending data sent to the socket before it was
|
||||
+ # closed from escaping to the caller who could otherwise
|
||||
+ # presume it came through a successful TLS connection.
|
||||
+ reason = "Closed before TLS handshake with data in recv buffer."
|
||||
+ notconn_pre_handshake_data_error = SSLError(e.errno, reason)
|
||||
+ # Add the SSLError attributes that _ssl.c always adds.
|
||||
+ notconn_pre_handshake_data_error.reason = reason
|
||||
+ notconn_pre_handshake_data_error.library = None
|
||||
+ try:
|
||||
+ self.close()
|
||||
+ except socket_error:
|
||||
+ pass
|
||||
+ try:
|
||||
+ raise notconn_pre_handshake_data_error
|
||||
+ finally:
|
||||
+ # Explicitly break the reference cycle.
|
||||
+ notconn_pre_handshake_data_error = None
|
||||
else:
|
||||
connected = True
|
||||
|
||||
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
|
||||
index 6117ca3fdb..ad5377ec05 100644
|
||||
--- a/Lib/test/test_ssl.py
|
||||
+++ b/Lib/test/test_ssl.py
|
||||
@@ -10,9 +10,11 @@
|
||||
import asyncore
|
||||
import socket
|
||||
import select
|
||||
+import struct
|
||||
import time
|
||||
import datetime
|
||||
import gc
|
||||
+import httplib
|
||||
import os
|
||||
import errno
|
||||
import pprint
|
||||
@@ -4659,5 +4662,196 @@ def sni_cb(sock, servername, ctx):
|
||||
if _have_threads:
|
||||
support.threading_cleanup(*thread_info)
|
||||
|
||||
+def set_socket_so_linger_on_with_zero_timeout(sock):
|
||||
+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
|
||||
+
|
||||
+
|
||||
+class TestPreHandshakeClose(unittest.TestCase):
|
||||
+ """Verify behavior of close sockets with received data before to the handshake.
|
||||
+ """
|
||||
+
|
||||
+ class SingleConnectionTestServerThread(threading.Thread):
|
||||
+
|
||||
+ def __init__(self, name, call_after_accept):
|
||||
+ self.call_after_accept = call_after_accept
|
||||
+ self.received_data = b'' # set by .run()
|
||||
+ self.wrap_error = None # set by .run()
|
||||
+ self.listener = None # set by .start()
|
||||
+ self.port = None # set by .start()
|
||||
+ super().__init__(name=name)
|
||||
+
|
||||
+ def __enter__(self):
|
||||
+ self.start()
|
||||
+ return self
|
||||
+
|
||||
+ def __exit__(self, *args):
|
||||
+ try:
|
||||
+ if self.listener:
|
||||
+ self.listener.close()
|
||||
+ except OSError:
|
||||
+ pass
|
||||
+ self.join()
|
||||
+ self.wrap_error = None # avoid dangling references
|
||||
+
|
||||
+ def start(self):
|
||||
+ self.ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
|
||||
+ self.ssl_ctx.verify_mode = ssl.CERT_REQUIRED
|
||||
+ self.ssl_ctx.load_verify_locations(cafile=ONLYCERT)
|
||||
+ self.ssl_ctx.load_cert_chain(certfile=ONLYCERT, keyfile=ONLYKEY)
|
||||
+ self.listener = socket.socket()
|
||||
+ self.listener.bind((None, 0))
|
||||
+ self.port = self.listener.getsockname()[1]
|
||||
+ self.listener.settimeout(2.0)
|
||||
+ self.listener.listen(1)
|
||||
+ super().start()
|
||||
+
|
||||
+ def run(self):
|
||||
+ conn, address = self.listener.accept()
|
||||
+ self.listener.close()
|
||||
+ with conn:
|
||||
+ if self.call_after_accept(conn):
|
||||
+ return
|
||||
+ try:
|
||||
+ tls_socket = self.ssl_ctx.wrap_socket(conn, server_side=True)
|
||||
+ except OSError as err: # ssl.SSLError inherits from OSError
|
||||
+ self.wrap_error = err
|
||||
+ else:
|
||||
+ try:
|
||||
+ self.received_data = tls_socket.recv(400)
|
||||
+ except OSError:
|
||||
+ pass # closed, protocol error, etc.
|
||||
+
|
||||
+ def test_preauth_data_to_tls_server(self):
|
||||
+ server_accept_called = threading.Event()
|
||||
+ ready_for_server_wrap_socket = threading.Event()
|
||||
+
|
||||
+ def call_after_accept(unused):
|
||||
+ server_accept_called.set()
|
||||
+ if not ready_for_server_wrap_socket.wait(2.0):
|
||||
+ raise RuntimeError("wrap_socket event never set, test may fail.")
|
||||
+ return False # Tell the server thread to continue.
|
||||
+
|
||||
+ server = self.SingleConnectionTestServerThread(
|
||||
+ call_after_accept=call_after_accept,
|
||||
+ name="preauth_data_to_tls_server")
|
||||
+ self.enterContext(server) # starts it & unittest.TestCase stops it.
|
||||
+
|
||||
+ with closing(socket.socket()) as client:
|
||||
+ client.connect(server.listener.getsockname())
|
||||
+ # This forces an immediate connection close via RST on .close().
|
||||
+ set_socket_so_linger_on_with_zero_timeout(client)
|
||||
+ client.setblocking(False)
|
||||
+
|
||||
+ server_accept_called.wait()
|
||||
+ client.send(b"DELETE /data HTTP/1.0\r\n\r\n")
|
||||
+ client.close() # RST
|
||||
+
|
||||
+ ready_for_server_wrap_socket.set()
|
||||
+ server.join()
|
||||
+ wrap_error = server.wrap_error
|
||||
+ self.assertEqual(b"", server.received_data)
|
||||
+ self.assertIsInstance(wrap_error, OSError) # All platforms.
|
||||
+ self.assertIsInstance(wrap_error, ssl.SSLError)
|
||||
+ self.assertIn("before TLS handshake with data", wrap_error.args[1])
|
||||
+ self.assertIn("before TLS handshake with data", wrap_error.reason)
|
||||
+ self.assertNotEqual(0, wrap_error.args[0])
|
||||
+ self.assertIsNone(wrap_error.library, msg="attr must exist")
|
||||
+
|
||||
+ def test_preauth_data_to_tls_client(self):
|
||||
+ client_can_continue_with_wrap_socket = threading.Event()
|
||||
+
|
||||
+ def call_after_accept(conn_to_client):
|
||||
+ # This forces an immediate connection close via RST on .close().
|
||||
+ set_socket_so_linger_on_with_zero_timeout(conn_to_client)
|
||||
+ conn_to_client.send(
|
||||
+ b"HTTP/1.0 307 Temporary Redirect\r\n"
|
||||
+ b"Location: https://example.com/someone-elses-server\r\n"
|
||||
+ b"\r\n")
|
||||
+ conn_to_client.close() # RST
|
||||
+ client_can_continue_with_wrap_socket.set()
|
||||
+ return True # Tell the server to stop.
|
||||
+
|
||||
+ server = self.SingleConnectionTestServerThread(
|
||||
+ call_after_accept=call_after_accept,
|
||||
+ name="preauth_data_to_tls_client")
|
||||
+ self.enterContext(server) # starts it & unittest.TestCase stops it.
|
||||
+ # Redundant; call_after_accept sets SO_LINGER on the accepted conn.
|
||||
+ set_socket_so_linger_on_with_zero_timeout(server.listener)
|
||||
+
|
||||
+ with closing(socket.socket()) as client:
|
||||
+ client.connect(server.listener.getsockname())
|
||||
+ if not client_can_continue_with_wrap_socket.wait(2.0):
|
||||
+ self.fail("test server took too long.")
|
||||
+ ssl_ctx = ssl.create_default_context()
|
||||
+ try:
|
||||
+ tls_client = ssl_ctx.wrap_socket(
|
||||
+ client, server_hostname="localhost")
|
||||
+ except OSError as err: # SSLError inherits from OSError
|
||||
+ wrap_error = err
|
||||
+ received_data = b""
|
||||
+ else:
|
||||
+ wrap_error = None
|
||||
+ received_data = tls_client.recv(400)
|
||||
+ tls_client.close()
|
||||
+
|
||||
+ server.join()
|
||||
+ self.assertEqual(b"", received_data)
|
||||
+ self.assertIsInstance(wrap_error, OSError) # All platforms.
|
||||
+ self.assertIsInstance(wrap_error, ssl.SSLError)
|
||||
+ self.assertIn("before TLS handshake with data", wrap_error.args[1])
|
||||
+ self.assertIn("before TLS handshake with data", wrap_error.reason)
|
||||
+ self.assertNotEqual(0, wrap_error.args[0])
|
||||
+ self.assertIsNone(wrap_error.library, msg="attr must exist")
|
||||
+
|
||||
+ def test_https_client_non_tls_response_ignored(self):
|
||||
+
|
||||
+ server_responding = threading.Event()
|
||||
+
|
||||
+ class SynchronizedHTTPSConnection(httplib.HTTPSConnection):
|
||||
+ def connect(self):
|
||||
+ httplib.HTTPConnection.connect(self)
|
||||
+ # Wait for our fault injection server to have done its thing.
|
||||
+ if not server_responding.wait(1.0) and support.verbose:
|
||||
+ sys.stdout.write("server_responding event never set.")
|
||||
+ self.sock = self._context.wrap_socket(
|
||||
+ self.sock, server_hostname=self.host)
|
||||
+
|
||||
+ def call_after_accept(conn_to_client):
|
||||
+ # This forces an immediate connection close via RST on .close().
|
||||
+ set_socket_so_linger_on_with_zero_timeout(conn_to_client)
|
||||
+ conn_to_client.send(
|
||||
+ b"HTTP/1.0 402 Payment Required\r\n"
|
||||
+ b"\r\n")
|
||||
+ conn_to_client.close() # RST
|
||||
+ server_responding.set()
|
||||
+ return True # Tell the server to stop.
|
||||
+
|
||||
+ server = self.SingleConnectionTestServerThread(
|
||||
+ call_after_accept=call_after_accept,
|
||||
+ name="non_tls_http_RST_responder")
|
||||
+ self.enterContext(server) # starts it & unittest.TestCase stops it.
|
||||
+ # Redundant; call_after_accept sets SO_LINGER on the accepted conn.
|
||||
+ set_socket_so_linger_on_with_zero_timeout(server.listener)
|
||||
+
|
||||
+ connection = SynchronizedHTTPSConnection(
|
||||
+ "localhost",
|
||||
+ port=server.port,
|
||||
+ context=ssl.create_default_context(),
|
||||
+ timeout=2.0,
|
||||
+ )
|
||||
+ # There are lots of reasons this raises as desired, long before this
|
||||
+ # test was added. Sending the request requires a successful TLS wrapped
|
||||
+ # socket; that fails if the connection is broken. It may seem pointless
|
||||
+ # to test this. It serves as an illustration of something that we never
|
||||
+ # want to happen... properly not happening.
|
||||
+ try:
|
||||
+ connection.request("HEAD", "/test", headers={"Host": "localhost"})
|
||||
+ response = connection.getresponse()
|
||||
+ except OSError:
|
||||
+ pass
|
||||
+ else:
|
||||
+ self.fail("http request did not raise OSError")
|
||||
+
|
||||
+
|
||||
if __name__ == "__main__":
|
||||
test_main()
|
||||
--
|
||||
2.40.1
|
||||
|
||||
174
debian/patches/add-python-config-sh.diff
vendored
Normal file
174
debian/patches/add-python-config-sh.diff
vendored
Normal file
@@ -0,0 +1,174 @@
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1196,6 +1196,8 @@ python-config: $(srcdir)/Misc/python-con
|
||||
# Substitution happens here, as the completely-expanded BINDIR
|
||||
# is not available in configure
|
||||
sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
|
||||
+ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
|
||||
+ sed -e "s,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g" < Misc/python-config.sh >python-config.sh
|
||||
|
||||
# Install the include files
|
||||
INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
|
||||
@@ -1255,6 +1257,7 @@ libainstall: @DEF_MAKE_RULE@ python-conf
|
||||
$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
|
||||
$(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
|
||||
rm python-config
|
||||
+ $(INSTALL_SCRIPT) python-config.sh $(DESTDIR)$(BINDIR)/python-config.sh
|
||||
@if [ -s Modules/python.exp -a \
|
||||
"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
|
||||
echo; echo "Installing support files for building shared extension modules on AIX:"; \
|
||||
--- a/Misc/python-config.in
|
||||
+++ b/Misc/python-config.in
|
||||
@@ -56,3 +56,11 @@ for opt in opt_flags:
|
||||
libs.extend(getvar('LINKFORSHARED').split())
|
||||
print ' '.join(libs)
|
||||
|
||||
+ elif opt == '--extension-suffix':
|
||||
+ print sysconfig.get_config_var('SO')
|
||||
+
|
||||
+ elif opt == '--abiflags':
|
||||
+ print ''
|
||||
+
|
||||
+ elif opt == '--configdir':
|
||||
+ print sysconfig.get_config_var('LIBPL')
|
||||
--- /dev/null
|
||||
+++ b/Misc/python-config.sh.in
|
||||
@@ -0,0 +1,103 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+exit_with_usage ()
|
||||
+{
|
||||
+ echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--configdir"
|
||||
+ exit $1
|
||||
+}
|
||||
+
|
||||
+if [ "$1" = "" ] ; then
|
||||
+ exit_with_usage 1
|
||||
+fi
|
||||
+
|
||||
+# Returns the actual prefix where this script was installed to.
|
||||
+installed_prefix ()
|
||||
+{
|
||||
+ local RESULT=$(dirname $(cd $(dirname "$1") && pwd -P))
|
||||
+ if [ $(which readlink) ] ; then
|
||||
+ RESULT=$(readlink -f "$RESULT")
|
||||
+ fi
|
||||
+ echo $RESULT
|
||||
+}
|
||||
+
|
||||
+prefix_build="@prefix@"
|
||||
+prefix_real=$(installed_prefix "$0")
|
||||
+
|
||||
+# Use sed to fix paths from their built to locations to their installed to locations.
|
||||
+prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#")
|
||||
+exec_prefix_build="@exec_prefix@"
|
||||
+exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#")
|
||||
+includedir=$(echo "@includedir@" | sed "s#$prefix_build#$prefix_real#")
|
||||
+libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#")
|
||||
+CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#")
|
||||
+VERSION="@VERSION@"
|
||||
+LIBM="@LIBM@"
|
||||
+LIBC="@LIBC@"
|
||||
+SYSLIBS="$LIBM $LIBC"
|
||||
+ABIFLAGS="@DEBUG_EXT@"
|
||||
+MULTIARCH="@MULTIARCH@"
|
||||
+LIBS="-lpython${VERSION}${ABIFLAGS} @LIBS@ $SYSLIBS"
|
||||
+BASECFLAGS="@BASECFLAGS@"
|
||||
+LDLIBRARY="@LDLIBRARY@"
|
||||
+LINKFORSHARED="@LINKFORSHARED@"
|
||||
+OPT="@OPT@"
|
||||
+PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
|
||||
+LIBDEST=${prefix}/lib/python${VERSION}
|
||||
+LIBPL=${LIBDEST}/config-${MULTIARCH}${ABIFLAGS}
|
||||
+SO="${ABIFLAGS}.so"
|
||||
+PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
|
||||
+INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
|
||||
+PLATINCDIR="-I$includedir/$MULTIARCH/python${VERSION}${ABIFLAGS}"
|
||||
+
|
||||
+# Scan for --help or unknown argument.
|
||||
+for ARG in $*
|
||||
+do
|
||||
+ case $ARG in
|
||||
+ --help)
|
||||
+ exit_with_usage 0
|
||||
+ ;;
|
||||
+ --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--configdir)
|
||||
+ ;;
|
||||
+ *)
|
||||
+ exit_with_usage 1
|
||||
+ ;;
|
||||
+ esac
|
||||
+done
|
||||
+
|
||||
+for ARG in $*
|
||||
+do
|
||||
+ case $ARG in
|
||||
+ --prefix)
|
||||
+ echo "$prefix"
|
||||
+ ;;
|
||||
+ --exec-prefix)
|
||||
+ echo "$exec_prefix"
|
||||
+ ;;
|
||||
+ --includes)
|
||||
+ echo "$INCDIR" "$PLATINCDIR"
|
||||
+ ;;
|
||||
+ --cflags)
|
||||
+ echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT"
|
||||
+ ;;
|
||||
+ --libs)
|
||||
+ echo "$LIBS"
|
||||
+ ;;
|
||||
+ --ldflags)
|
||||
+ LINKFORSHAREDUSED=
|
||||
+ if [ -z "$PYTHONFRAMEWORK" ] ; then
|
||||
+ LINKFORSHAREDUSED=$LINKFORSHARED
|
||||
+ fi
|
||||
+ LIBPLUSED=
|
||||
+ if [ "$PY_ENABLE_SHARED" = "0" ] ; then
|
||||
+ LIBPLUSED="-L$LIBPL"
|
||||
+ fi
|
||||
+ echo "$LIBPLUSED -L$libdir $LIBS $LINKFORSHAREDUSED"
|
||||
+ ;;
|
||||
+ --extension-suffix)
|
||||
+ echo "$SO"
|
||||
+ ;;
|
||||
+ --configdir)
|
||||
+ echo "$LIBPL"
|
||||
+ ;;
|
||||
+esac
|
||||
+done
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -915,6 +915,7 @@ fi
|
||||
|
||||
# Other platforms follow
|
||||
if test $enable_shared = "yes"; then
|
||||
+ PY_ENABLE_SHARED=1
|
||||
AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
|
||||
case $ac_sys_system in
|
||||
BeOS*)
|
||||
@@ -975,6 +976,7 @@ if test $enable_shared = "yes"; then
|
||||
|
||||
esac
|
||||
else # shared is disabled
|
||||
+ PY_ENABLE_SHARED=0
|
||||
case $ac_sys_system in
|
||||
CYGWIN*)
|
||||
BLDLIBRARY='$(LIBRARY)'
|
||||
@@ -982,6 +984,7 @@ else # shared is disabled
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
+AC_SUBST(PY_ENABLE_SHARED)
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
RUNSHARED=
|
||||
@@ -4959,7 +4962,7 @@ AC_MSG_RESULT($ENSUREPIP)
|
||||
AC_SUBST(ENSUREPIP)
|
||||
|
||||
# generate output files
|
||||
-AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
|
||||
+AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh)
|
||||
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
|
||||
AC_OUTPUT
|
||||
|
||||
34
debian/patches/atomic-pyc-rename.diff
vendored
Normal file
34
debian/patches/atomic-pyc-rename.diff
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
--- a/Lib/py_compile.py
|
||||
+++ b/Lib/py_compile.py
|
||||
@@ -120,13 +120,24 @@
|
||||
return
|
||||
if cfile is None:
|
||||
cfile = file + (__debug__ and 'c' or 'o')
|
||||
- with open(cfile, 'wb') as fc:
|
||||
- fc.write('\0\0\0\0')
|
||||
- wr_long(fc, timestamp)
|
||||
- marshal.dump(codeobject, fc)
|
||||
- fc.flush()
|
||||
- fc.seek(0, 0)
|
||||
- fc.write(MAGIC)
|
||||
+ # Atomically write the pyc/pyo file. Issue #13146.
|
||||
+ # id() is used to generate a pseudo-random filename.
|
||||
+ path_tmp = '{}.{}'.format(cfile, id(cfile))
|
||||
+ try:
|
||||
+ with open(path_tmp, 'wb') as fc:
|
||||
+ fc.write('\0\0\0\0')
|
||||
+ wr_long(fc, timestamp)
|
||||
+ marshal.dump(codeobject, fc)
|
||||
+ fc.flush()
|
||||
+ fc.seek(0, 0)
|
||||
+ fc.write(MAGIC)
|
||||
+ os.rename(path_tmp, cfile)
|
||||
+ except OSError:
|
||||
+ try:
|
||||
+ os.unlink(path_tmp)
|
||||
+ except OSError:
|
||||
+ pass
|
||||
+ raise
|
||||
|
||||
def main(args=None):
|
||||
"""Compile several source files.
|
||||
25
debian/patches/bdist-wininst-notfound.diff
vendored
Normal file
25
debian/patches/bdist-wininst-notfound.diff
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# DP: the wininst-* files cannot be built within Debian, needing a
|
||||
# DP: zlib mingw build, which the zlib maintainer isn't going to provide.
|
||||
|
||||
--- a/Lib/distutils/command/bdist_wininst.py
|
||||
+++ b/Lib/distutils/command/bdist_wininst.py
|
||||
@@ -14,6 +14,7 @@
|
||||
from distutils.core import Command
|
||||
from distutils.dir_util import remove_tree
|
||||
from distutils.errors import DistutilsOptionError, DistutilsPlatformError
|
||||
+from distutils.errors import DistutilsFileError
|
||||
from distutils import log
|
||||
from distutils.util import get_platform
|
||||
|
||||
@@ -360,7 +361,10 @@
|
||||
sfix = ''
|
||||
|
||||
filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix))
|
||||
- f = open(filename, "rb")
|
||||
+ try:
|
||||
+ f = open(filename, "rb")
|
||||
+ except IOError, msg:
|
||||
+ raise DistutilsFileError, str(msg) + ', %s not included in the Debian packages.' % filename
|
||||
try:
|
||||
return f.read()
|
||||
finally:
|
||||
19
debian/patches/bsddb-libpath.diff
vendored
Normal file
19
debian/patches/bsddb-libpath.diff
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# DP: Don't add the bsddb multilib path, if already in the standard lib path
|
||||
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -1136,7 +1136,13 @@ class PyBuildExt(build_ext):
|
||||
if db_setup_debug:
|
||||
print "bsddb using BerkeleyDB lib:", db_ver, dblib
|
||||
print "bsddb lib dir:", dblib_dir, " inc dir:", db_incdir
|
||||
- db_incs = [db_incdir]
|
||||
+ # only add db_incdir/dblib_dir if not in the standard paths
|
||||
+ if db_incdir in inc_dirs:
|
||||
+ db_incs = []
|
||||
+ else:
|
||||
+ db_incs = [db_incdir]
|
||||
+ if dblib_dir[0] in lib_dirs:
|
||||
+ dblib_dir = []
|
||||
dblibs = [dblib]
|
||||
# We add the runtime_library_dirs argument because the
|
||||
# BerkeleyDB lib we're linking against often isn't in the
|
||||
22
debian/patches/build-hash.diff
vendored
Normal file
22
debian/patches/build-hash.diff
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
# DP: Always build the _md5, _sha1, _sha256 and _sha512 extension modules.
|
||||
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -920,7 +920,7 @@ class PyBuildExt(build_ext):
|
||||
print ("warning: openssl 0x%08x is too old for _hashlib" %
|
||||
openssl_ver)
|
||||
missing.append('_hashlib')
|
||||
- if COMPILED_WITH_PYDEBUG or not have_usable_openssl:
|
||||
+ if True or COMPILED_WITH_PYDEBUG or not have_usable_openssl:
|
||||
# The _sha module implements the SHA1 hash algorithm.
|
||||
exts.append( Extension('_sha', ['shamodule.c']) )
|
||||
# The _md5 module implements the RSA Data Security, Inc. MD5
|
||||
@@ -931,7 +931,7 @@ class PyBuildExt(build_ext):
|
||||
depends = ['md5.h']) )
|
||||
|
||||
min_sha2_openssl_ver = 0x00908000
|
||||
- if COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver:
|
||||
+ if True or COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver:
|
||||
# OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash
|
||||
exts.append( Extension('_sha256', ['sha256module.c']) )
|
||||
exts.append( Extension('_sha512', ['sha512module.c']) )
|
||||
24
debian/patches/build-libpython.diff
vendored
Normal file
24
debian/patches/build-libpython.diff
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# DP: Don't include object files twice in libpython.
|
||||
|
||||
Index: b/Makefile.pre.in
|
||||
===================================================================
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -400,7 +400,7 @@ LIBRARY_OBJS= \
|
||||
$(PYTHON_OBJS) \
|
||||
$(MODULE_OBJS) \
|
||||
$(SIGNAL_OBJS) \
|
||||
- $(MODOBJS)
|
||||
+ $(sort $(MODOBJS))
|
||||
|
||||
#########################################################################
|
||||
# Rules
|
||||
@@ -542,7 +542,7 @@ $(LIBRARY): $(LIBRARY_OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(PYTHON_OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
|
||||
- $(AR) $(ARFLAGS) $@ $(MODOBJS)
|
||||
+ $(AR) $(ARFLAGS) $@ $(sort $(MODOBJS))
|
||||
$(RANLIB) $@
|
||||
|
||||
libpython$(VERSION).so: $(LIBRARY_OBJS)
|
||||
39
debian/patches/cthreads.diff
vendored
Normal file
39
debian/patches/cthreads.diff
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# DP: Remove cthreads detection
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2154,7 +2154,6 @@
|
||||
|
||||
# Templates for things AC_DEFINEd more than once.
|
||||
# For a single AC_DEFINE, no template is needed.
|
||||
-AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
|
||||
AH_TEMPLATE(_REENTRANT,
|
||||
[Define to force use of thread-safe errno, h_errno, and other functions])
|
||||
AH_TEMPLATE(WITH_THREAD,
|
||||
@@ -2236,17 +2235,6 @@
|
||||
AC_MSG_RESULT($unistd_defines_pthreads)
|
||||
|
||||
AC_DEFINE(_REENTRANT)
|
||||
- AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
|
||||
- AC_DEFINE(C_THREADS)
|
||||
- AC_DEFINE(HURD_C_THREADS, 1,
|
||||
- [Define if you are using Mach cthreads directly under /include])
|
||||
- LIBS="$LIBS -lthreads"
|
||||
- THREADOBJ="Python/thread.o"],[
|
||||
- AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
|
||||
- AC_DEFINE(C_THREADS)
|
||||
- AC_DEFINE(MACH_C_THREADS, 1,
|
||||
- [Define if you are using Mach cthreads under mach /])
|
||||
- THREADOBJ="Python/thread.o"],[
|
||||
AC_MSG_CHECKING(for --with-pth)
|
||||
AC_ARG_WITH([pth],
|
||||
AS_HELP_STRING([--with-pth], [use GNU pth threading libraries]),
|
||||
@@ -2301,7 +2289,7 @@
|
||||
LIBS="$LIBS -lcma"
|
||||
THREADOBJ="Python/thread.o"],[
|
||||
USE_THREAD_MODULE="#"])
|
||||
- ])])])])])])])])])])
|
||||
+ ])])])])])])])])
|
||||
|
||||
AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
|
||||
LIBS="$LIBS -lmpc"
|
||||
34
debian/patches/ctypes-arm.diff
vendored
Normal file
34
debian/patches/ctypes-arm.diff
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
Index: b/Lib/ctypes/util.py
|
||||
===================================================================
|
||||
--- a/Lib/ctypes/util.py
|
||||
+++ b/Lib/ctypes/util.py
|
||||
@@ -236,16 +236,27 @@ elif os.name == "posix":
|
||||
|
||||
def _findSoname_ldconfig(name):
|
||||
import struct
|
||||
+ # XXX this code assumes that we know all unames and that a single
|
||||
+ # ABI is supported per uname; instead we should find what the
|
||||
+ # ABI is (e.g. check ABI of current process) or simply ask libc
|
||||
+ # to load the library for us
|
||||
+ uname = os.uname()[4]
|
||||
+ # ARM has a variety of unames, e.g. armv7l
|
||||
+ if uname.startswith("arm"):
|
||||
+ uname = "arm"
|
||||
if struct.calcsize('l') == 4:
|
||||
- machine = os.uname()[4] + '-32'
|
||||
+ machine = uname + '-32'
|
||||
else:
|
||||
- machine = os.uname()[4] + '-64'
|
||||
+ machine = uname + '-64'
|
||||
mach_map = {
|
||||
'x86_64-64': 'libc6,x86-64',
|
||||
'ppc64-64': 'libc6,64bit',
|
||||
'sparc64-64': 'libc6,64bit',
|
||||
's390x-64': 'libc6,64bit',
|
||||
'ia64-64': 'libc6,IA-64',
|
||||
+ # this actually breaks on biarch or multiarch as the first
|
||||
+ # library wins; uname doesn't tell us which ABI we're using
|
||||
+ 'arm-32': 'libc6(,hard-float)?',
|
||||
}
|
||||
abi_type = mach_map.get(machine, 'libc6')
|
||||
|
||||
73
debian/patches/deb-locations.diff
vendored
Normal file
73
debian/patches/deb-locations.diff
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
# DP: adjust locations of directories to debian policy
|
||||
|
||||
Index: b/Demo/tkinter/guido/ManPage.py
|
||||
===================================================================
|
||||
--- a/Demo/tkinter/guido/ManPage.py
|
||||
+++ b/Demo/tkinter/guido/ManPage.py
|
||||
@@ -189,8 +189,9 @@ ManPage = ReadonlyManPage
|
||||
def test():
|
||||
import os
|
||||
import sys
|
||||
- # XXX This directory may be different on your system
|
||||
- MANDIR = '/usr/local/man/mann'
|
||||
+ # XXX This directory may be different on your system,
|
||||
+ # it is here set for Debian GNU/Linux.
|
||||
+ MANDIR = '/usr/share/man'
|
||||
DEFAULTPAGE = 'Tcl'
|
||||
formatted = 0
|
||||
if sys.argv[1:] and sys.argv[1] == '-f':
|
||||
Index: b/Demo/tkinter/guido/tkman.py
|
||||
===================================================================
|
||||
--- a/Demo/tkinter/guido/tkman.py
|
||||
+++ b/Demo/tkinter/guido/tkman.py
|
||||
@@ -9,8 +9,8 @@ import re
|
||||
from Tkinter import *
|
||||
from ManPage import ManPage
|
||||
|
||||
-MANNDIRLIST = ['/depot/sundry/man/mann','/usr/local/man/mann']
|
||||
-MAN3DIRLIST = ['/depot/sundry/man/man3','/usr/local/man/man3']
|
||||
+MANNDIRLIST = ['/depot/sundry/man/mann','/usr/share/man/mann']
|
||||
+MAN3DIRLIST = ['/depot/sundry/man/man3','/usr/share/man/man3']
|
||||
|
||||
foundmanndir = 0
|
||||
for dir in MANNDIRLIST:
|
||||
Index: b/Misc/python.man
|
||||
===================================================================
|
||||
--- a/Misc/python.man
|
||||
+++ b/Misc/python.man
|
||||
@@ -337,7 +337,7 @@ exception). Error messages are written
|
||||
These are subject to difference depending on local installation
|
||||
conventions; ${prefix} and ${exec_prefix} are installation-dependent
|
||||
and should be interpreted as for GNU software; they may be the same.
|
||||
-The default for both is \fI/usr/local\fP.
|
||||
+On Debian GNU/{Hurd,Linux} the default for both is \fI/usr\fP.
|
||||
.IP \fI${exec_prefix}/bin/python\fP
|
||||
Recommended location of the interpreter.
|
||||
.PP
|
||||
Index: b/Tools/faqwiz/faqconf.py
|
||||
===================================================================
|
||||
--- a/Tools/faqwiz/faqconf.py
|
||||
+++ b/Tools/faqwiz/faqconf.py
|
||||
@@ -21,7 +21,7 @@ OWNERNAME = "FAQ owner"
|
||||
OWNEREMAIL = "nobody@anywhere.org" # Email for feedback
|
||||
HOMEURL = "http://www.python.org" # Related home page
|
||||
HOMENAME = "Python home" # Name of related home page
|
||||
-RCSBINDIR = "/usr/local/bin/" # Directory containing RCS commands
|
||||
+RCSBINDIR = "/usr/bin/" # Directory containing RCS commands
|
||||
# (must end in a slash)
|
||||
|
||||
# Parameters you can normally leave alone
|
||||
Index: b/Tools/webchecker/webchecker.py
|
||||
===================================================================
|
||||
--- a/Tools/webchecker/webchecker.py
|
||||
+++ b/Tools/webchecker/webchecker.py
|
||||
@@ -19,7 +19,8 @@ file index.html in that directory is ret
|
||||
a directory listing is returned. Now, you can point webchecker to the
|
||||
document tree in the local file system of your HTTP daemon, and have
|
||||
most of it checked. In fact the default works this way if your local
|
||||
-web tree is located at /usr/local/etc/httpd/htdpcs (the default for
|
||||
+web tree is located at /var/www, which is the default for Debian
|
||||
+GNU/Linux. Other systems use /usr/local/etc/httpd/htdocs (the default for
|
||||
the NCSA HTTP daemon and probably others).
|
||||
|
||||
Report printed:
|
||||
19
debian/patches/deb-setup.diff
vendored
Normal file
19
debian/patches/deb-setup.diff
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# DP: Don't include /usr/local/include and /usr/local/lib as gcc search paths
|
||||
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -500,10 +500,10 @@ class PyBuildExt(build_ext):
|
||||
os.unlink(tmpfile)
|
||||
|
||||
def detect_modules(self):
|
||||
- # Ensure that /usr/local is always used
|
||||
- if not cross_compiling:
|
||||
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ # On Debian /usr/local is always used, so we don't include it twice
|
||||
+ #if not cross_compiling:
|
||||
+ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
+ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
if cross_compiling:
|
||||
self.add_gcc_paths()
|
||||
self.add_multiarch_paths()
|
||||
228
debian/patches/debug-build.diff
vendored
Normal file
228
debian/patches/debug-build.diff
vendored
Normal file
@@ -0,0 +1,228 @@
|
||||
# DP: Change the interpreter to build and install python extensions
|
||||
# DP: built with the python-dbg interpreter with a different name into
|
||||
# DP: the same path (by appending `_d' to the extension name).
|
||||
|
||||
--- a/Lib/distutils/command/build.py
|
||||
+++ b/Lib/distutils/command/build.py
|
||||
@@ -91,7 +91,8 @@ class build(Command):
|
||||
# 'lib.<plat>' under the base build directory. We only use one of
|
||||
# them for a given distribution, though --
|
||||
if self.build_purelib is None:
|
||||
- self.build_purelib = os.path.join(self.build_base, 'lib')
|
||||
+ self.build_purelib = os.path.join(self.build_base,
|
||||
+ 'lib' + plat_specifier)
|
||||
if self.build_platlib is None:
|
||||
self.build_platlib = os.path.join(self.build_base,
|
||||
'lib' + plat_specifier)
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -100,7 +100,7 @@ def get_python_inc(plat_specific=0, pref
|
||||
# Include is located in the srcdir
|
||||
inc_dir = os.path.join(srcdir, "Include")
|
||||
return inc_dir
|
||||
- return os.path.join(prefix, "include", "python" + get_python_version())
|
||||
+ return os.path.join(prefix, "include", "python" + get_python_version())+(sys.pydebug and "_d" or "")
|
||||
elif os.name == "nt":
|
||||
return os.path.join(prefix, "include")
|
||||
elif os.name == "os2":
|
||||
@@ -270,7 +270,7 @@ def get_makefile_filename():
|
||||
if python_build:
|
||||
return os.path.join(project_base, "Makefile")
|
||||
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
|
||||
- return os.path.join(lib_dir, "config", "Makefile")
|
||||
+ return os.path.join(lib_dir, "config"+(sys.pydebug and "_d" or ""), "Makefile")
|
||||
|
||||
|
||||
def parse_config_h(fp, g=None):
|
||||
--- a/Lib/sysconfig.py
|
||||
+++ b/Lib/sysconfig.py
|
||||
@@ -338,7 +338,7 @@ def get_makefile_filename():
|
||||
"""Return the path of the Makefile."""
|
||||
if _PYTHON_BUILD:
|
||||
return os.path.join(_PROJECT_BASE, "Makefile")
|
||||
- return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config", "Makefile")
|
||||
+ return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" + (sys.pydebug and "_d" or ""), "Makefile")
|
||||
|
||||
# Issue #22199: retain undocumented private name for compatibility
|
||||
_get_makefile_filename = get_makefile_filename
|
||||
@@ -470,7 +470,7 @@ def get_config_h_filename():
|
||||
else:
|
||||
inc_dir = _PROJECT_BASE
|
||||
else:
|
||||
- inc_dir = get_path('platinclude').replace("/usr/local","/usr",1)
|
||||
+ inc_dir = get_path('platinclude').replace("/usr/local","/usr",1)+(sys.pydebug and "_d" or "")
|
||||
return os.path.join(inc_dir, 'pyconfig.h')
|
||||
|
||||
def get_scheme_names():
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -121,8 +121,8 @@ SCRIPTDIR= $(prefix)/lib
|
||||
# Detailed destination directories
|
||||
BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
||||
LIBDEST= $(SCRIPTDIR)/python$(VERSION)
|
||||
-INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
|
||||
-CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)
|
||||
+INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)$(DEBUG_EXT)
|
||||
+CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)$(DEBUG_EXT)
|
||||
LIBP= $(LIBDIR)/python$(VERSION)
|
||||
|
||||
# Symbols used for using shared libraries
|
||||
@@ -136,6 +136,8 @@ DESTSHARED= $(BINLIBDEST)/lib-dynload
|
||||
EXE= @EXEEXT@
|
||||
BUILDEXE= @BUILDEXEEXT@
|
||||
|
||||
+DEBUG_EXT= @DEBUG_EXT@
|
||||
+
|
||||
# Short name and location for Mac OS X Python framework
|
||||
UNIVERSALSDK=@UNIVERSALSDK@
|
||||
PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
|
||||
@@ -545,7 +547,7 @@ $(LIBRARY): $(LIBRARY_OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(sort $(MODOBJS))
|
||||
$(RANLIB) $@
|
||||
|
||||
-libpython$(VERSION).so: $(LIBRARY_OBJS)
|
||||
+libpython$(VERSION)$(DEBUG_EXT).so: $(LIBRARY_OBJS)
|
||||
if test $(INSTSONAME) != $(LDLIBRARY); then \
|
||||
$(BLDSHARED) $(PY_LDFLAGS) $(CCSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||||
$(LN) -f $(INSTSONAME) $@; \
|
||||
@@ -1207,8 +1209,8 @@ inclinstall:
|
||||
$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
|
||||
|
||||
# Install the library and miscellaneous stuff needed for extending/embedding
|
||||
-# This goes into $(exec_prefix)
|
||||
-LIBPL= $(LIBP)/config
|
||||
+# This goes into $(exec_prefix)$(DEBUG_EXT)
|
||||
+LIBPL= $(LIBP)/config$(DEBUG_EXT)
|
||||
|
||||
# pkgconfig directory
|
||||
LIBPC= $(LIBDIR)/pkgconfig
|
||||
--- a/Misc/python-config.in
|
||||
+++ b/Misc/python-config.in
|
||||
@@ -44,7 +44,7 @@ for opt in opt_flags:
|
||||
print ' '.join(flags)
|
||||
|
||||
elif opt in ('--libs', '--ldflags'):
|
||||
- libs = ['-lpython' + pyver]
|
||||
+ libs = ['-lpython' + pyver + (sys.pydebug and "_d" or "")]
|
||||
libs += getvar('LIBS').split()
|
||||
libs += getvar('SYSLIBS').split()
|
||||
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
|
||||
--- a/Python/dynload_shlib.c
|
||||
+++ b/Python/dynload_shlib.c
|
||||
@@ -46,6 +46,10 @@ const struct filedescr _PyImport_DynLoad
|
||||
{"module.exe", "rb", C_EXTENSION},
|
||||
{"MODULE.EXE", "rb", C_EXTENSION},
|
||||
#else
|
||||
+#ifdef Py_DEBUG
|
||||
+ {"_d.so", "rb", C_EXTENSION},
|
||||
+ {"module_d.so", "rb", C_EXTENSION},
|
||||
+#endif
|
||||
{".so", "rb", C_EXTENSION},
|
||||
{"module.so", "rb", C_EXTENSION},
|
||||
#endif
|
||||
--- a/Python/sysmodule.c
|
||||
+++ b/Python/sysmodule.c
|
||||
@@ -1524,6 +1524,12 @@ _PySys_Init(void)
|
||||
PyString_FromString("legacy"));
|
||||
#endif
|
||||
|
||||
+#ifdef Py_DEBUG
|
||||
+ PyDict_SetItemString(sysdict, "pydebug", Py_True);
|
||||
+#else
|
||||
+ PyDict_SetItemString(sysdict, "pydebug", Py_False);
|
||||
+#endif
|
||||
+
|
||||
#undef SET_SYS_FROM_STRING
|
||||
if (PyErr_Occurred())
|
||||
return NULL;
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -777,7 +777,7 @@ AC_SUBST(LIBRARY)
|
||||
AC_MSG_CHECKING(LIBRARY)
|
||||
if test -z "$LIBRARY"
|
||||
then
|
||||
- LIBRARY='libpython$(VERSION).a'
|
||||
+ LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a'
|
||||
fi
|
||||
AC_MSG_RESULT($LIBRARY)
|
||||
|
||||
@@ -923,8 +923,8 @@ if test $enable_shared = "yes"; then
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
;;
|
||||
Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
|
||||
- LDLIBRARY='libpython$(VERSION).so'
|
||||
- BLDLIBRARY='-L. -lpython$(VERSION)'
|
||||
+ LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
|
||||
+ BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
case $ac_sys_system in
|
||||
FreeBSD*)
|
||||
@@ -1050,6 +1050,12 @@ else AC_MSG_RESULT(no); Py_DEBUG='false'
|
||||
fi],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
+if test "$Py_DEBUG" = 'true'
|
||||
+then
|
||||
+ DEBUG_EXT=_d
|
||||
+fi
|
||||
+AC_SUBST(DEBUG_EXT)
|
||||
+
|
||||
# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
|
||||
# merged with this chunk of code?
|
||||
|
||||
@@ -2129,7 +2135,7 @@ then
|
||||
esac
|
||||
;;
|
||||
CYGWIN*) SO=.dll;;
|
||||
- *) SO=.so;;
|
||||
+ *) SO=$DEBUG_EXT.so;;
|
||||
esac
|
||||
else
|
||||
# this might also be a termcap variable, see #610332
|
||||
--- a/Lib/distutils/tests/test_build_ext.py
|
||||
+++ b/Lib/distutils/tests/test_build_ext.py
|
||||
@@ -295,8 +295,8 @@ class BuildExtTestCase(support.TempdirMa
|
||||
finally:
|
||||
os.chdir(old_wd)
|
||||
self.assertTrue(os.path.exists(so_file))
|
||||
- self.assertEqual(os.path.splitext(so_file)[-1],
|
||||
- sysconfig.get_config_var('SO'))
|
||||
+ so_ext = sysconfig.get_config_var('SO')
|
||||
+ self.assertEqual(so_file[len(so_file)-len(so_ext):], so_ext)
|
||||
so_dir = os.path.dirname(so_file)
|
||||
self.assertEqual(so_dir, other_tmp_dir)
|
||||
cmd.compiler = None
|
||||
@@ -304,8 +304,7 @@ class BuildExtTestCase(support.TempdirMa
|
||||
cmd.run()
|
||||
so_file = cmd.get_outputs()[0]
|
||||
self.assertTrue(os.path.exists(so_file))
|
||||
- self.assertEqual(os.path.splitext(so_file)[-1],
|
||||
- sysconfig.get_config_var('SO'))
|
||||
+ self.assertEqual(so_file[len(so_file)-len(so_ext):], so_ext)
|
||||
so_dir = os.path.dirname(so_file)
|
||||
self.assertEqual(so_dir, cmd.build_lib)
|
||||
|
||||
--- a/Lib/distutils/tests/test_build.py
|
||||
+++ b/Lib/distutils/tests/test_build.py
|
||||
@@ -20,10 +20,6 @@ class BuildTestCase(support.TempdirManag
|
||||
# if not specified, plat_name gets the current platform
|
||||
self.assertEqual(cmd.plat_name, get_platform())
|
||||
|
||||
- # build_purelib is build + lib
|
||||
- wanted = os.path.join(cmd.build_base, 'lib')
|
||||
- self.assertEqual(cmd.build_purelib, wanted)
|
||||
-
|
||||
# build_platlib is 'build/lib.platform-x.x[-pydebug]'
|
||||
# examples:
|
||||
# build/lib.macosx-10.3-i386-2.7
|
||||
@@ -34,6 +30,10 @@ class BuildTestCase(support.TempdirManag
|
||||
wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)
|
||||
self.assertEqual(cmd.build_platlib, wanted)
|
||||
|
||||
+ # build_purelib is build + lib
|
||||
+ wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)
|
||||
+ self.assertEqual(cmd.build_purelib, wanted)
|
||||
+
|
||||
# by default, build_lib = build_purelib
|
||||
self.assertEqual(cmd.build_lib, cmd.build_purelib)
|
||||
|
||||
28
debian/patches/disable-sem-check.diff
vendored
Normal file
28
debian/patches/disable-sem-check.diff
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# DP: Assume working semaphores on Linux, don't rely on running kernel for the check.
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4061,6 +4061,11 @@ int main(void) {
|
||||
[ac_cv_posix_semaphores_enabled=no],
|
||||
[ac_cv_posix_semaphores_enabled=yes])
|
||||
)
|
||||
+case $ac_sys_system in
|
||||
+ Linux*)
|
||||
+ # assume enabled, see https://launchpad.net/bugs/630511
|
||||
+ ac_cv_posix_semaphores_enabled=yes
|
||||
+esac
|
||||
AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
|
||||
if test $ac_cv_posix_semaphores_enabled = no
|
||||
then
|
||||
@@ -4097,6 +4102,11 @@ int main(void){
|
||||
[ac_cv_broken_sem_getvalue=yes],
|
||||
[ac_cv_broken_sem_getvalue=yes])
|
||||
)
|
||||
+case $ac_sys_system in
|
||||
+ Linux*)
|
||||
+ # assume enabled, see https://launchpad.net/bugs/630511
|
||||
+ ac_cv_broken_sem_getvalue=no
|
||||
+esac
|
||||
AC_MSG_RESULT($ac_cv_broken_sem_getvalue)
|
||||
if test $ac_cv_broken_sem_getvalue = yes
|
||||
then
|
||||
13
debian/patches/disable-utimes.diff
vendored
Normal file
13
debian/patches/disable-utimes.diff
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# DP: disable check for utimes function, which is broken in glibc-2.3.2
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2698,7 +2698,7 @@
|
||||
setsid setpgid setpgrp setuid setvbuf snprintf \
|
||||
sigaction siginterrupt sigrelse strftime \
|
||||
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
|
||||
- truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
|
||||
+ truncate uname unsetenv waitpid wait3 wait4 wcscoll _getpty)
|
||||
|
||||
# For some functions, having a definition is not sufficient, since
|
||||
# we want to take their address.
|
||||
380
debian/patches/distutils-install-layout.diff
vendored
Normal file
380
debian/patches/distutils-install-layout.diff
vendored
Normal file
@@ -0,0 +1,380 @@
|
||||
# DP: distutils: Add an option --install-layout=deb, which
|
||||
# DP: - installs into $prefix/dist-packages instead of $prefix/site-packages.
|
||||
# DP: - doesn't encode the python version into the egg name.
|
||||
|
||||
--- a/Doc/install/index.rst
|
||||
+++ b/Doc/install/index.rst
|
||||
@@ -255,6 +255,8 @@ is pure Python or contains extensions ("
|
||||
+-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
|
||||
| Platform | Standard installation location | Default value | Notes |
|
||||
+=================+=====================================================+==================================================+=======+
|
||||
+| Debian/Ubuntu | :file:`{prefix}/lib/python{X.Y}/dist-packages` | :file:`/usr/local/lib/python{X.Y}/dist-packages` | \(0) |
|
||||
++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
|
||||
| Unix (pure) | :file:`{prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
|
||||
+-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
|
||||
| Unix (non-pure) | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
|
||||
@@ -264,6 +266,14 @@ is pure Python or contains extensions ("
|
||||
|
||||
Notes:
|
||||
|
||||
+(0)
|
||||
+ Starting with Python-2.6 Debian/Ubuntu uses for the Python which comes within
|
||||
+ the Linux distribution a non-default name for the installation directory. This
|
||||
+ is to avoid overwriting of the python modules which come with the distribution,
|
||||
+ which unfortunately is the upstream behaviour of the installation tools. The
|
||||
+ non-default name in :file:`/usr/local` is used not to overwrite a local python
|
||||
+ installation (defaulting to :file:`/usr/local`).
|
||||
+
|
||||
(1)
|
||||
Most Linux distributions include Python as a standard part of the system, so
|
||||
:file:`{prefix}` and :file:`{exec-prefix}` are usually both :file:`/usr` on
|
||||
@@ -448,6 +458,15 @@ them to go in :file:`/usr/local/lib/pyth
|
||||
|
||||
/usr/bin/python setup.py install --prefix=/usr/local
|
||||
|
||||
+Starting with Python-2.6 Debian/Ubuntu does use
|
||||
+:file:`/usr/lib/python{X.Y}/dist-packages` and
|
||||
+:file:`/usr/local/lib/python{X.Y}/dist-packages` for the installation
|
||||
+of python modules included in the Linux distribution. To overwrite
|
||||
+the name of the site directory, explicitely use the :option:`--prefix`
|
||||
+option, however make sure that the installation path is included in
|
||||
+``sys.path``. For packaging of python modules for Debian/Ubuntu, use
|
||||
+the new ``setup.py install`` option :option:`--install-layout=deb`.
|
||||
+
|
||||
Another possibility is a network filesystem where the name used to write to a
|
||||
remote directory is different from the name used to read it: for example, the
|
||||
Python interpreter accessed as :file:`/usr/local/bin/python` might search for
|
||||
@@ -699,6 +718,17 @@ Add-on Python modules might then belong
|
||||
import them, this directory must be added to ``sys.path``. There are several
|
||||
different ways to add the directory.
|
||||
|
||||
+On Debian/Ubuntu, starting with Python-2.6 the convention for system
|
||||
+installed packages is to put then in the
|
||||
+:file:`/usr/lib/python{X.Y}/dist-packages/` directory, and for locally
|
||||
+installed packages is to put them in the
|
||||
+:file:`/usr/lib/python{X.Y}/dist-packages/` directory. To share the
|
||||
+locally installed packages for the system provided Python with the
|
||||
+locally installed packages of a local python installation, make
|
||||
+:file:`/usr/lib/python{X.Y}/dist-packages/` a symbolic link to the
|
||||
+:file:`{...}/site-packages/` directory of your local python
|
||||
+installation.
|
||||
+
|
||||
The most convenient way is to add a path configuration file to a directory
|
||||
that's already on Python's path, usually to the :file:`.../site-packages/`
|
||||
directory. Path configuration files have an extension of :file:`.pth`, and each
|
||||
--- a/Lib/distutils/command/install.py
|
||||
+++ b/Lib/distutils/command/install.py
|
||||
@@ -47,6 +47,20 @@ INSTALL_SCHEMES = {
|
||||
'scripts': '$base/bin',
|
||||
'data' : '$base',
|
||||
},
|
||||
+ 'unix_local': {
|
||||
+ 'purelib': '$base/local/lib/python$py_version_short/dist-packages',
|
||||
+ 'platlib': '$platbase/local/lib/python$py_version_short/dist-packages',
|
||||
+ 'headers': '$base/local/include/python$py_version_short/$dist_name',
|
||||
+ 'scripts': '$base/local/bin',
|
||||
+ 'data' : '$base/local',
|
||||
+ },
|
||||
+ 'deb_system': {
|
||||
+ 'purelib': '$base/lib/python$py_version_short/dist-packages',
|
||||
+ 'platlib': '$platbase/lib/python$py_version_short/dist-packages',
|
||||
+ 'headers': '$base/include/python$py_version_short/$dist_name',
|
||||
+ 'scripts': '$base/bin',
|
||||
+ 'data' : '$base',
|
||||
+ },
|
||||
'unix_home': {
|
||||
'purelib': '$base/lib/python',
|
||||
'platlib': '$base/lib/python',
|
||||
@@ -154,6 +168,9 @@ class install (Command):
|
||||
|
||||
('record=', None,
|
||||
"filename in which to record list of installed files"),
|
||||
+
|
||||
+ ('install-layout=', None,
|
||||
+ "installation layout to choose (known values: deb, unix)"),
|
||||
]
|
||||
|
||||
boolean_options = ['compile', 'force', 'skip-build', 'user']
|
||||
@@ -168,6 +185,7 @@ class install (Command):
|
||||
self.exec_prefix = None
|
||||
self.home = None
|
||||
self.user = 0
|
||||
+ self.prefix_option = None
|
||||
|
||||
# These select only the installation base; it's up to the user to
|
||||
# specify the installation scheme (currently, that means supplying
|
||||
@@ -189,6 +207,9 @@ class install (Command):
|
||||
self.install_userbase = USER_BASE
|
||||
self.install_usersite = USER_SITE
|
||||
|
||||
+ # enable custom installation, known values: deb
|
||||
+ self.install_layout = None
|
||||
+
|
||||
self.compile = None
|
||||
self.optimize = None
|
||||
|
||||
@@ -421,6 +442,7 @@ class install (Command):
|
||||
self.install_base = self.install_platbase = self.home
|
||||
self.select_scheme("unix_home")
|
||||
else:
|
||||
+ self.prefix_option = self.prefix
|
||||
if self.prefix is None:
|
||||
if self.exec_prefix is not None:
|
||||
raise DistutilsOptionError, \
|
||||
@@ -435,7 +457,23 @@ class install (Command):
|
||||
|
||||
self.install_base = self.prefix
|
||||
self.install_platbase = self.exec_prefix
|
||||
- self.select_scheme("unix_prefix")
|
||||
+ if self.install_layout:
|
||||
+ if self.install_layout.lower() in ['deb']:
|
||||
+ self.select_scheme("deb_system")
|
||||
+ elif self.install_layout.lower() in ['posix', 'unix']:
|
||||
+ self.select_scheme("unix_prefix")
|
||||
+ else:
|
||||
+ raise DistutilsOptionError(
|
||||
+ "unknown value for --install-layout")
|
||||
+ elif (self.prefix_option and os.path.normpath(self.prefix) != '/usr/local') \
|
||||
+ or 'PYTHONUSERBASE' in os.environ \
|
||||
+ or 'real_prefix' in sys.__dict__:
|
||||
+ self.select_scheme("unix_prefix")
|
||||
+ else:
|
||||
+ if os.path.normpath(self.prefix) == '/usr/local':
|
||||
+ self.select_scheme("deb_system")
|
||||
+ else:
|
||||
+ self.select_scheme("unix_local")
|
||||
|
||||
# finalize_unix ()
|
||||
|
||||
--- a/Lib/distutils/command/install_egg_info.py
|
||||
+++ b/Lib/distutils/command/install_egg_info.py
|
||||
@@ -14,18 +14,37 @@ class install_egg_info(Command):
|
||||
description = "Install package's PKG-INFO metadata as an .egg-info file"
|
||||
user_options = [
|
||||
('install-dir=', 'd', "directory to install to"),
|
||||
+ ('install-layout', None, "custom installation layout"),
|
||||
]
|
||||
|
||||
def initialize_options(self):
|
||||
self.install_dir = None
|
||||
+ self.install_layout = None
|
||||
+ self.prefix_option = None
|
||||
|
||||
def finalize_options(self):
|
||||
self.set_undefined_options('install_lib',('install_dir','install_dir'))
|
||||
- basename = "%s-%s-py%s.egg-info" % (
|
||||
- to_filename(safe_name(self.distribution.get_name())),
|
||||
- to_filename(safe_version(self.distribution.get_version())),
|
||||
- sys.version[:3]
|
||||
- )
|
||||
+ self.set_undefined_options('install',('install_layout','install_layout'))
|
||||
+ self.set_undefined_options('install',('prefix_option','prefix_option'))
|
||||
+ if self.install_layout:
|
||||
+ basename = "%s-%s.egg-info" % (
|
||||
+ to_filename(safe_name(self.distribution.get_name())),
|
||||
+ to_filename(safe_version(self.distribution.get_version()))
|
||||
+ )
|
||||
+ if not self.install_layout.lower() in ['deb']:
|
||||
+ raise DistutilsOptionError(
|
||||
+ "unknown value for --install-layout")
|
||||
+ elif self.prefix_option or 'real_prefix' in sys.__dict__:
|
||||
+ basename = "%s-%s-py%s.egg-info" % (
|
||||
+ to_filename(safe_name(self.distribution.get_name())),
|
||||
+ to_filename(safe_version(self.distribution.get_version())),
|
||||
+ sys.version[:3]
|
||||
+ )
|
||||
+ else:
|
||||
+ basename = "%s-%s.egg-info" % (
|
||||
+ to_filename(safe_name(self.distribution.get_name())),
|
||||
+ to_filename(safe_version(self.distribution.get_version()))
|
||||
+ )
|
||||
self.target = os.path.join(self.install_dir, basename)
|
||||
self.outputs = [self.target]
|
||||
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -125,6 +125,7 @@ def get_python_lib(plat_specific=0, stan
|
||||
If 'prefix' is supplied, use it instead of sys.prefix or
|
||||
sys.exec_prefix -- i.e., ignore 'plat_specific'.
|
||||
"""
|
||||
+ is_default_prefix = not prefix or os.path.normpath(prefix) in ('/usr', '/usr/local')
|
||||
if prefix is None:
|
||||
prefix = plat_specific and EXEC_PREFIX or PREFIX
|
||||
|
||||
@@ -133,6 +134,8 @@ def get_python_lib(plat_specific=0, stan
|
||||
"lib", "python" + get_python_version())
|
||||
if standard_lib:
|
||||
return libpython
|
||||
+ elif is_default_prefix and 'PYTHONUSERBASE' not in os.environ and 'real_prefix' not in sys.__dict__:
|
||||
+ return os.path.join(libpython, "dist-packages")
|
||||
else:
|
||||
return os.path.join(libpython, "site-packages")
|
||||
|
||||
--- a/Lib/site.py
|
||||
+++ b/Lib/site.py
|
||||
@@ -273,6 +273,13 @@ def addusersitepackages(known_paths):
|
||||
|
||||
if ENABLE_USER_SITE and os.path.isdir(user_site):
|
||||
addsitedir(user_site, known_paths)
|
||||
+ if ENABLE_USER_SITE:
|
||||
+ for dist_libdir in ("local/lib", "lib"):
|
||||
+ user_site = os.path.join(USER_BASE, dist_libdir,
|
||||
+ "python" + sys.version[:3],
|
||||
+ "dist-packages")
|
||||
+ if os.path.isdir(user_site):
|
||||
+ addsitedir(user_site, known_paths)
|
||||
return known_paths
|
||||
|
||||
def getsitepackages():
|
||||
--- a/Lib/sysconfig.py
|
||||
+++ b/Lib/sysconfig.py
|
||||
@@ -16,6 +16,26 @@ _INSTALL_SCHEMES = {
|
||||
'scripts': '{base}/bin',
|
||||
'data': '{base}',
|
||||
},
|
||||
+ 'posix_local': {
|
||||
+ 'stdlib': '{base}/lib/python{py_version_short}',
|
||||
+ 'platstdlib': '{platbase}/lib/python{py_version_short}',
|
||||
+ 'purelib': '{base}/local/lib/python{py_version_short}/dist-packages',
|
||||
+ 'platlib': '{platbase}/local/lib/python{py_version_short}/dist-packages',
|
||||
+ 'include': '{base}/local/include/python{py_version_short}',
|
||||
+ 'platinclude': '{platbase}/local/include/python{py_version_short}',
|
||||
+ 'scripts': '{base}/local/bin',
|
||||
+ 'data': '{base}/local',
|
||||
+ },
|
||||
+ 'deb_system': {
|
||||
+ 'stdlib': '{base}/lib/python{py_version_short}',
|
||||
+ 'platstdlib': '{platbase}/lib/python{py_version_short}',
|
||||
+ 'purelib': '{base}/lib/python{py_version_short}/dist-packages',
|
||||
+ 'platlib': '{platbase}/lib/python{py_version_short}/dist-packages',
|
||||
+ 'include': '{base}/include/python{py_version_short}',
|
||||
+ 'platinclude': '{platbase}/include/python{py_version_short}',
|
||||
+ 'scripts': '{base}/bin',
|
||||
+ 'data': '{base}',
|
||||
+ },
|
||||
'posix_home': {
|
||||
'stdlib': '{base}/lib/python',
|
||||
'platstdlib': '{base}/lib/python',
|
||||
@@ -134,7 +154,7 @@ def is_python_build():
|
||||
_PYTHON_BUILD = is_python_build()
|
||||
|
||||
if _PYTHON_BUILD:
|
||||
- for scheme in ('posix_prefix', 'posix_home'):
|
||||
+ for scheme in ('posix_prefix', 'posix_local', 'deb_system', 'posix_home'):
|
||||
_INSTALL_SCHEMES[scheme]['include'] = '{projectbase}/Include'
|
||||
_INSTALL_SCHEMES[scheme]['platinclude'] = '{srcdir}'
|
||||
|
||||
@@ -168,7 +188,10 @@ def _expand_vars(scheme, vars):
|
||||
|
||||
def _get_default_scheme():
|
||||
if os.name == 'posix':
|
||||
- # the default scheme for posix is posix_prefix
|
||||
+ # the default scheme for posix on Debian/Ubuntu is posix_local
|
||||
+ is_default_prefix = os.path.normpath(sys.exec_prefix or sys.prefix) in ('/usr', '/usr/local')
|
||||
+ if is_default_prefix and 'PYTHONUSERBASE' not in os.environ and 'real_prefix' not in sys.__dict__:
|
||||
+ return 'posix_local'
|
||||
return 'posix_prefix'
|
||||
return os.name
|
||||
|
||||
@@ -315,7 +338,7 @@ def get_makefile_filename():
|
||||
"""Return the path of the Makefile."""
|
||||
if _PYTHON_BUILD:
|
||||
return os.path.join(_PROJECT_BASE, "Makefile")
|
||||
- return os.path.join(get_path('platstdlib'), "config", "Makefile")
|
||||
+ return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config", "Makefile")
|
||||
|
||||
# Issue #22199: retain undocumented private name for compatibility
|
||||
_get_makefile_filename = get_makefile_filename
|
||||
@@ -447,7 +470,7 @@ def get_config_h_filename():
|
||||
else:
|
||||
inc_dir = _PROJECT_BASE
|
||||
else:
|
||||
- inc_dir = get_path('platinclude')
|
||||
+ inc_dir = get_path('platinclude').replace("/usr/local","/usr",1)
|
||||
return os.path.join(inc_dir, 'pyconfig.h')
|
||||
|
||||
def get_scheme_names():
|
||||
--- a/Lib/test/test_import.py
|
||||
+++ b/Lib/test/test_import.py
|
||||
@@ -301,7 +301,7 @@ class ImportTests(unittest.TestCase):
|
||||
with check_warnings(('', ImportWarning)):
|
||||
# Just a random non-package directory we always expect to be
|
||||
# somewhere in sys.path...
|
||||
- self.assertRaises(ImportError, __import__, "site-packages")
|
||||
+ self.assertRaises(ImportError, __import__, "dist-packages")
|
||||
|
||||
def test_import_by_filename(self):
|
||||
path = os.path.abspath(TESTFN)
|
||||
--- a/Lib/test/test_site.py
|
||||
+++ b/Lib/test/test_site.py
|
||||
@@ -255,10 +255,13 @@ class HelperFunctionsTests(unittest.Test
|
||||
elif os.sep == '/':
|
||||
# OS X, Linux, FreeBSD, etc
|
||||
self.assertEqual(len(dirs), 2)
|
||||
- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
|
||||
- 'site-packages')
|
||||
+ wanted = os.path.join('xoxo', 'local', 'lib',
|
||||
+ 'python' + sys.version[:3],
|
||||
+ 'dist-packages')
|
||||
self.assertEqual(dirs[0], wanted)
|
||||
- wanted = os.path.join('xoxo', 'lib', 'site-python')
|
||||
+ wanted = os.path.join('xoxo', 'lib',
|
||||
+ 'python' + sys.version[:3],
|
||||
+ 'dist-packages')
|
||||
self.assertEqual(dirs[1], wanted)
|
||||
else:
|
||||
# other platforms
|
||||
--- a/Lib/test/test_sysconfig.py
|
||||
+++ b/Lib/test/test_sysconfig.py
|
||||
@@ -239,8 +239,8 @@ class TestSysConfig(unittest.TestCase):
|
||||
self.assertTrue(os.path.isfile(config_h), config_h)
|
||||
|
||||
def test_get_scheme_names(self):
|
||||
- wanted = ('nt', 'nt_user', 'os2', 'os2_home', 'osx_framework_user',
|
||||
- 'posix_home', 'posix_prefix', 'posix_user')
|
||||
+ wanted = ('deb_system', 'nt', 'nt_user', 'os2', 'os2_home', 'osx_framework_user',
|
||||
+ 'posix_home', 'posix_local', 'posix_prefix', 'posix_user')
|
||||
self.assertEqual(get_scheme_names(), wanted)
|
||||
|
||||
@unittest.skipIf(sys.platform.startswith('win'),
|
||||
--- a/Lib/distutils/tests/test_install.py
|
||||
+++ b/Lib/distutils/tests/test_install.py
|
||||
@@ -194,7 +194,7 @@ class InstallTestCase(support.TempdirMan
|
||||
|
||||
found = [os.path.basename(line) for line in content.splitlines()]
|
||||
expected = ['hello.py', 'hello.pyc', 'sayhi',
|
||||
- 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
|
||||
+ 'UNKNOWN-0.0.0.egg-info']
|
||||
self.assertEqual(found, expected)
|
||||
|
||||
def test_record_extensions(self):
|
||||
@@ -224,7 +224,7 @@ class InstallTestCase(support.TempdirMan
|
||||
|
||||
found = [os.path.basename(line) for line in content.splitlines()]
|
||||
expected = [_make_ext_name('xx'),
|
||||
- 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
|
||||
+ 'UNKNOWN-0.0.0.egg-info']
|
||||
self.assertEqual(found, expected)
|
||||
|
||||
def test_debug_mode(self):
|
||||
--- a/Lib/distutils/tests/test_bdist_dumb.py
|
||||
+++ b/Lib/distutils/tests/test_bdist_dumb.py
|
||||
@@ -87,7 +87,7 @@ class BuildDumbTestCase(support.TempdirM
|
||||
fp.close()
|
||||
|
||||
contents = sorted(filter(None, map(os.path.basename, contents)))
|
||||
- wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
|
||||
+ wanted = ['foo-0.1.egg-info', 'foo.py']
|
||||
if not sys.dont_write_bytecode:
|
||||
wanted.append('foo.pyc')
|
||||
self.assertEqual(contents, sorted(wanted))
|
||||
--- a/Lib/pydoc.py
|
||||
+++ b/Lib/pydoc.py
|
||||
@@ -392,6 +392,7 @@ class Doc:
|
||||
'marshal', 'posix', 'signal', 'sys',
|
||||
'thread', 'zipimport') or
|
||||
(file.startswith(basedir) and
|
||||
+ not file.startswith(os.path.join(basedir, 'dist-packages')) and
|
||||
not file.startswith(os.path.join(basedir, 'site-packages')))) and
|
||||
object.__name__ not in ('xml.etree', 'test.pydoc_mod')):
|
||||
if docloc.startswith(("http://", "https://")):
|
||||
20
debian/patches/distutils-link.diff
vendored
Normal file
20
debian/patches/distutils-link.diff
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# DP: Don't add standard library dirs to library_dirs and runtime_library_dirs.
|
||||
|
||||
Index: b/Lib/distutils/unixccompiler.py
|
||||
===================================================================
|
||||
--- a/Lib/distutils/unixccompiler.py
|
||||
+++ b/Lib/distutils/unixccompiler.py
|
||||
@@ -157,7 +157,12 @@ class UnixCCompiler(CCompiler):
|
||||
objects, output_dir = self._fix_object_args(objects, output_dir)
|
||||
libraries, library_dirs, runtime_library_dirs = \
|
||||
self._fix_lib_args(libraries, library_dirs, runtime_library_dirs)
|
||||
-
|
||||
+ # filter out standard library paths, which are not explicitely needed
|
||||
+ # for linking
|
||||
+ library_dirs = [dir for dir in library_dirs
|
||||
+ if not dir in ('/lib', '/lib64', '/usr/lib', '/usr/lib64')]
|
||||
+ runtime_library_dirs = [dir for dir in runtime_library_dirs
|
||||
+ if not dir in ('/lib', '/lib64', '/usr/lib', '/usr/lib64')]
|
||||
lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs,
|
||||
libraries)
|
||||
if type(output_dir) not in (StringType, NoneType):
|
||||
57
debian/patches/distutils-sysconfig.diff
vendored
Normal file
57
debian/patches/distutils-sysconfig.diff
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
# DP: Allow setting BASECFLAGS, OPT and EXTRA_LDFLAGS (like, CC, CXX, CPP,
|
||||
# DP: CFLAGS, CPPFLAGS, CCSHARED, LDSHARED) from the environment.
|
||||
|
||||
--- a/Lib/distutils/sysconfig.py
|
||||
+++ b/Lib/distutils/sysconfig.py
|
||||
@@ -184,10 +184,12 @@ def customize_compiler(compiler):
|
||||
_osx_support.customize_compiler(_config_vars)
|
||||
_config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
|
||||
|
||||
- (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
|
||||
- get_config_vars('CC', 'CXX', 'CFLAGS',
|
||||
- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
|
||||
- 'ARFLAGS')
|
||||
+ (cc, cxx, cflags, extra_cflags, basecflags,
|
||||
+ ccshared, ldshared, so_ext, ar, ar_flags,
|
||||
+ configure_cppflags, configure_cflags, configure_ldflags) = \
|
||||
+ get_config_vars('CC', 'CXX', 'CFLAGS', 'EXTRA_CFLAGS', 'BASECFLAGS',
|
||||
+ 'CCSHARED', 'LDSHARED', 'SO', 'AR', 'ARFLAGS',
|
||||
+ 'CONFIGURE_CPPFLAGS', 'CONFIGURE_CFLAGS', 'CONFIGURE_LDFLAGS')
|
||||
|
||||
if 'CC' in os.environ:
|
||||
newcc = os.environ['CC']
|
||||
@@ -208,13 +210,24 @@ def customize_compiler(compiler):
|
||||
cpp = cc + " -E" # not always
|
||||
if 'LDFLAGS' in os.environ:
|
||||
ldshared = ldshared + ' ' + os.environ['LDFLAGS']
|
||||
+ elif configure_ldflags:
|
||||
+ ldshared = ldshared + ' ' + configure_ldflags
|
||||
+ if 'BASECFLAGS' in os.environ:
|
||||
+ basecflags = os.environ['BASECFLAGS']
|
||||
if 'CFLAGS' in os.environ:
|
||||
- cflags = cflags + ' ' + os.environ['CFLAGS']
|
||||
+ cflags = ' '.join(str(x) for x in (basecflags, os.environ['CFLAGS'], extra_cflags) if x)
|
||||
ldshared = ldshared + ' ' + os.environ['CFLAGS']
|
||||
+ elif configure_cflags:
|
||||
+ cflags = ' '.join(str(x) for x in (basecflags, configure_cflags, extra_cflags) if x)
|
||||
+ ldshared = ldshared + ' ' + configure_cflags
|
||||
if 'CPPFLAGS' in os.environ:
|
||||
cpp = cpp + ' ' + os.environ['CPPFLAGS']
|
||||
cflags = cflags + ' ' + os.environ['CPPFLAGS']
|
||||
ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
|
||||
+ elif configure_cppflags:
|
||||
+ cpp = cpp + ' ' + configure_cppflags
|
||||
+ cflags = cflags + ' ' + configure_cppflags
|
||||
+ ldshared = ldshared + ' ' + configure_cppflags
|
||||
if 'AR' in os.environ:
|
||||
ar = os.environ['AR']
|
||||
if 'ARFLAGS' in os.environ:
|
||||
@@ -228,7 +241,7 @@ def customize_compiler(compiler):
|
||||
compiler=cc_cmd,
|
||||
compiler_so=cc_cmd + ' ' + ccshared,
|
||||
compiler_cxx=cxx,
|
||||
- linker_so=ldshared,
|
||||
+ linker_so=ldshared + ' ' + ccshared,
|
||||
linker_exe=cc,
|
||||
archiver=archiver)
|
||||
|
||||
13
debian/patches/doc-nodownload.diff
vendored
Normal file
13
debian/patches/doc-nodownload.diff
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# DP: Don't try to download documentation tools
|
||||
|
||||
--- a/Doc/Makefile
|
||||
+++ b/Doc/Makefile
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
update: clean checkout
|
||||
|
||||
-build: checkout
|
||||
+build:
|
||||
mkdir -p build/$(BUILDER) build/doctrees
|
||||
$(PYTHON) tools/sphinx-build.py $(ALLSPHINXOPTS)
|
||||
@echo
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user