If the version of zlib used to compile the zlib module is incompatible
with the one that is actually linked in, then calls into zlib will fail.
This can leave attributes of the z_stream uninitialized, so we must take
care to avoid segfaulting by trying to use an invalid pointer.
Fix by Richard M. Tew.
I need to copy the xxmodule.c file in other tests, so I moved the
support code to distutils.tests.support and improved it:
- don’t skip when run from the Lib/distutils/tests directory
- use proper skip machinery instead of custom print/return/test suite
fiddling.
I also took out the fixup_build_ext function, which is needed for tests
to pass on Unix shared builds and Windows debug builds.
Finally, I cleaned up a few things:
- don’t remove directories in tearDown when the parent class’ tearDown
has already registered the directories for removal
- simplify restoration of sys.path
- remove a few unused names found by pyflakes.
The line about the test suite will still get printed for changes in
Tools for example, which aren’t covered by the test suite, but it’s not
a big deal IMO.
Apart from adding a section to describe the user scheme, this changeset
also does some much needed cleanup:
- fixed inverted reST targets
- fixed some paths
- avoided duplicating the same options listing five or six times
- added missing entries for C headers locations
- added documentation for --install-lib
- fixed a few misuses of the option role (see #9312), but not all (not
worth the time, but will do it in packaging docs)
- fixed some markup
The paths fixes were done with an eye on the source code in the install
command, so they really describe what’s actually done. The situation on
Mac OS X is rather messy: the fix for #8084 touched site and sysconfig,
but distutils does not use these files anymore since the Great Revert.
I suspect we have a mismatched stdlib at the moment, and the fix is not
even clear (see discussion on #8084).
site.USER_BASE and site.USER_SITE are now fully documented. PEP 370 is
outdated with respects to the Mac framework situation, but the code in
sysconfig and the example in the 3.2 What’s New document helped me find
the right values to document for Mac OS X.
The command-line interface of the site module is also described in the
module docs.
The purpose of the usercustomize module is explained in the site docs,
with a gentle introduction in the tutorial (right after the section that
talks about PYTHONSTARTUP; a comment mentions it should be moved from
the tutorial to another file, but that will be another bug).
Various markup and wording improvements were made along the way in the
site module docs. Duplicate and incomplete declarations of environment
variables have also been removed (the original bug report was actually
about these entries :). The site module docs are still a bit messy;
I’ll see about improving them for #11553.
All these sections are copiously interlinked and findable from the doc
indexes.
This update includes new entries that apply to 2.7 too, mention of class
decorators, mention of nonlocal, notes about bytecode, markup fixes and
some rewrappings. Future backports of changes should be slightly
easier.
No change was necessary to make the file build, contrary to cporting.rst
that uses markup like :c:func: that needs to be changed to :cfunc: in
2.7. Future backports should be straightforward.