summaryrefslogtreecommitdiffstats
path: root/setup.py
Commit message (Collapse)AuthorAgeFilesLines
* [3.9] bpo-41100: Support macOS 11 and Apple Silicon (GH-22855) (GH-23295)Ronald Oussoren2020-11-221-49/+45
| | | | | | | | | | | | | | | | | | | | * [3.9] bpo-41100: Support macOS 11 and Apple Silicon (GH-22855) Co-authored-by: Lawrence D’Anna <lawrence_danna@apple.com> * Add support for macOS 11 and Apple Silicon (aka arm64) As a side effect of this work use the system copy of libffi on macOS, and remove the vendored copy * Support building on recent versions of macOS while deploying to older versions This allows building installers on macOS 11 while still supporting macOS 10.9.. (cherry picked from commit 41761933c1c30bb6003b65eef1ba23a83db4eae4) Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> * Back port of changes to _decimal to support arm64 * temp_dir is in test.support in 3.9
* bpo-41116: Ensure system supplied libraries are found on macOS 11 (GH-23301) ↵Miss Islington (bot)2020-11-221-27/+4
| | | | | | | | | | | (GH-23455) On macOS system provided libraries are in a shared library cache and not at their usual location. This PR teaches distutils to search in the SDK, even if there was no "-sysroot" argument in the compiler flags. (cherry picked from commit 404a719b5127602c1a948f8e189ab61cd3f147d8) Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
* Typo fix (GH-22496)Miss Skeleton (bot)2020-10-041-5/+5
| | | | | | | | Multiple typo fixes in code comments Automerge-Triggered-By: @Mariatta (cherry picked from commit 619f98045d73859688e5cfdb946d183e6d493a64) Co-authored-by: Manan Kumar Garg <62146744+MananKGarg@users.noreply.github.com>
* [3.9] bpo-41043: Escape literal part of the path for glob(). (GH-20994). ↵Serhiy Storchaka2020-07-021-4/+4
| | | | | (GH-21275) (cherry picked from commit 935586845815f5b4c7814794413f6a812d4bd45f)
* Revert "bpo-26317: Support OBJC and OBJCXX configure command line variables ↵Ned Deily2020-05-181-3/+2
| | | | | | | | | (GH-20176)" (GH-20182) This reverts commit 0da546665075aefbb476e192ed64122d340164f4. The commit is causing make failures on a FreeBSD buildbot. Due to the imminent 3.9.0b1 cutoff, revert this commit for now pending further investigation.
* bpo-26317: Support OBJC and OBJCXX configure command line variables (GH-20176)Ned Deily2020-05-181-2/+3
| | | | | | Add support to the configure script for OBJC and OBJCXX command line options so that the macOS builds can use the clang compiler for the macOS-specific Objective C source files. This allows third-party compilers, like GNU gcc, to be used to build the rest of the project since some of the Objective C system header files are not compilable by GNU gcc. Co-authored-by: Jeffrey Kintscher <websurfer@surf2c.net> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* bpo-34956: Fix macOS _tkinter use of Tcl/Tk in /Library/Frameworks (GH-20171)Ned Deily2020-05-181-43/+110
| | | | | | | | _tkinter now builds and links with non-system Tcl and Tk frameworks if they are installed in /Library/Frameworks as had been the case on older releases of macOS. If a macOS SDK is explicitly configured, by using ./configure --enable-universalsdk= or -isysroot, only a Library/Frameworks directory in the SDK itself is searched. The default behavior can still be overridden with configure --with-tcltk-includes and --with-tcltk-libs.
* bpo-31033: Improve the traceback for cancelled asyncio tasks (GH-19951)Chris Jerdonek2020-05-181-1/+2
| | | | | When an asyncio.Task is cancelled, the exception traceback now starts with where the task was first interrupted. Previously, the traceback only had "depth one."
* bpo-35569: Expose RFC 3542 IPv6 socket options on macOS (GH-19526)Erlend Egeberg Aasland2020-05-171-2/+6
|
* bpo-40503: PEP 615: Tests and implementation for zoneinfo (GH-19909)Paul Ganssle2020-05-161-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the initial implementation of PEP 615, the zoneinfo module, ported from the standalone reference implementation (see https://www.python.org/dev/peps/pep-0615/#reference-implementation for a link, which has a more detailed commit history). This includes (hopefully) all functional elements described in the PEP, but documentation is found in a separate PR. This includes: 1. A pure python implementation of the ZoneInfo class 2. A C accelerated implementation of the ZoneInfo class 3. Tests with 100% branch coverage for the Python code (though C code coverage is less than 100%). 4. A compile-time configuration option on Linux (though not on Windows) Differences from the reference implementation: - The module is arranged slightly differently: the accelerated module is `_zoneinfo` rather than `zoneinfo._czoneinfo`, which also necessitates some changes in the test support function. (Suggested by Victor Stinner and Steve Dower.) - The tests are arranged slightly differently and do not include the property tests. The tests live at test/test_zoneinfo/test_zoneinfo.py rather than test/test_zoneinfo.py or test/test_zoneinfo/__init__.py because we may do some refactoring in the future that would likely require this separation anyway; we may: - include the property tests - automatically run all the tests against both pure Python and C, rather than manually constructing C and Python test classes (similar to the way this works with test_datetime.py, which generates C and Python test cases from datetimetester.py). - This includes a compile-time configuration option on Linux (though not on Windows); added with much help from Thomas Wouters. - Integration into the CPython build system is obviously different from building a standalone zoneinfo module wheel. - This includes configuration to install the tzdata package as part of CI, though only on the coverage jobs. Introducing a PyPI dependency as part of the CI build was controversial, and this is seen as less of a major change, since the coverage jobs already depend on pip and PyPI. Additional changes that were introduced as part of this PR, most / all of which were backported to the reference implementation: - Fixed reference and memory leaks With much debugging help from Pablo Galindo - Added smoke tests ensuring that the C and Python modules are built The import machinery can be somewhat fragile, and the "seamlessly falls back to pure Python" nature of this module makes it so that a problem building the C extension or a failure to import the pure Python version might easily go unnoticed. - Adjustments to zoneinfo.__dir__ Suggested by Petr Viktorin. - Slight refactorings as suggested by Steve Dower. - Removed unnecessary if check on std_abbr Discovered this because of a missing line in branch coverage.
* bpo-40637: Add option to disable builtin hashes (GH-20121)Christian Heimes2020-05-151-30/+76
| | | | | Signed-off-by: Christian Heimes <christian@python.org> Automerge-Triggered-By: @tiran
* bpo-38360: macOS: support alternate form of -isysroot flag (GH-16480)Joshua Root2020-04-221-1/+1
| | | | | | | It is possible to use either '-isysroot /some/path' (with a space) or '-isysroot/some/path' (no space in between). Support both forms in places where special handling of -isysroot is done, rather than just the first form. Co-authored-by: Ned Deily <nad@python.org>
* bpo-40286: Add randbytes() method to random.Random (GH-19527)Victor Stinner2020-04-171-1/+2
| | | | | | | | | | | | Add random.randbytes() function and random.Random.randbytes() method to generate random bytes. Modify secrets.token_bytes() to use SystemRandom.randbytes() rather than calling directly os.urandom(). Rename also genrand_int32() to genrand_uint32(), since it returns an unsigned 32-bit integer, not a signed integer. The _random module is now built with Py_BUILD_CORE_MODULE defined.
* bpo-40302: Add pycore_byteswap.h header file (GH-19552)Victor Stinner2020-04-171-1/+3
| | | | | | | | | | | | | | Add a new internal pycore_byteswap.h header file with the following functions: * _Py_bswap16() * _Py_bswap32() * _Py_bswap64() Use these functions in _ctypes, sha256 and sha512 modules, and also use in the UTF-32 encoder. sha256, sha512 and _ctypes modules are now built with the internal C API.
* bpo-40094: Add os.waitstatus_to_exitcode() (GH-19201)Victor Stinner2020-04-011-2/+1
| | | | | | | | | | | | | | Add os.waitstatus_to_exitcode() function to convert a wait status to an exitcode. Suggest waitstatus_to_exitcode() usage in the documentation when appropriate. Use waitstatus_to_exitcode() in: * multiprocessing, os, subprocess and _bootsubprocess modules; * test.support.wait_process(); * setup.py: run_command(); * and many tests.
* bpo-40094: Add run_command() to setup.py (GH-19266)Victor Stinner2020-03-311-16/+22
|
* bpo-39763: Add _bootsubprocess to build Python on AIX (GH-18872)Victor Stinner2020-03-091-41/+5
| | | | | | | | Add _bootsubprocess module to bootstrap Python: subprocess implementation which only uses the os module. On AIX, distutils.util uses _aix_support which calls subprocess.check_output(), before the _posixsubprocess module is built. Implement check_output() with os.system() in _bootsubprocess.
* bpo-39763: Refactor setup.py (GH-18778)Victor Stinner2020-03-041-13/+32
| | | | | Split long build_extensions() method into sub-methods. Fix also a typo in Popen.wait(): replace sts with status.
* bpo-39763: distutils.spawn now uses subprocess (GH-18743)Victor Stinner2020-03-041-0/+60
| | | | | | | | Reimplement distutils.spawn.spawn() function with the subprocess module. setup.py now uses a basic implementation of the subprocess module if the subprocess module is not available: before required C extension modules are built.
* bpo-35081: Move dtoa.h header to the internal C API (GH-18489)Victor Stinner2020-02-121-0/+2
| | | | | | | Move the dtoa.h header file to the internal C API as pycore_dtoa.h: it only contains private functions (prefixed by "_Py"). The math and cmath modules must now be compiled with the Py_BUILD_CORE macro defined.
* bpo-37798: Add C fastpath for statistics.NormalDist.inv_cdf() (GH-15266)Dong-hee Na2019-08-231-0/+2
|
* closes bpo-37347: Fix refcount problem in sqlite3. (GH-14268)gescheit2019-07-131-1/+1
|
* Rename memory.c to mpalloc.c for consistency with the header file. (#14687)Stefan Krah2019-07-101-1/+1
|
* bpo-37437: Pass -Wno-unreachable-code when compiling expat. (GH-14470)Benjamin Peterson2019-06-291-2/+2
|
* bpo-36210: update optional extension handling for AIX (GH-12202)Michael Felt2019-06-211-8/+17
| | | | | | * Switch to officially supported curses from 3rd-party ASIS supported ncurses * stop saying optional modules osaudiodev and spwd are missing on AIX Patch by M.Felt
* bpo-36231: Support building on macOS without /usr/include (GH-13773)Ned Deily2019-06-031-7/+45
|
* bpo-34271: Add ssl debugging helpers (GH-10031)Christian Heimes2019-05-311-5/+7
| | | | | | | | | | | The ssl module now can dump key material to a keylog file and trace TLS protocol messages with a tracing callback. The default and stdlib contexts also support SSLKEYLOGFILE env var. The msg_callback and related enums are private members. The feature is designed for internal debugging and not for end users. Signed-off-by: Christian Heimes <christian@python.org>
* bpo-31525: Increase minimum sqlite version number check (GH-12923)Charles Pigott2019-04-261-3/+3
|
* bpo-36635, bpo-36696: Fix setup.py on AIX (GH-12922)Victor Stinner2019-04-231-3/+3
| | | xlc compiler doesn't support "-D define" flag only "-Ddefine".
* bpo-36635: Add _testinternalcapi module (GH-12841)Victor Stinner2019-04-181-0/+4
| | | | | | Add a new _testinternalcapi module to test the internal C API. Move _Py_GetConfigsAsDict() function to the internal C API: _testembed now uses _testinternalcapi to access the function.
* bpo-36635: Change pyport.h for Py_BUILD_CORE_MODULE define (GH-12853)Victor Stinner2019-04-171-3/+3
| | | | | | | | | | | | | | | | | | | | Change PyAPI_FUNC(type), PyAPI_DATA(type) and PyMODINIT_FUNC macros of pyport.h when Py_BUILD_CORE_MODULE is defined. The Py_BUILD_CORE_MODULE define must be now be used to build a C extension as a dynamic library accessing Python internals: export the PyInit_xxx() function in DLL exports on Windows. Changes: * Py_BUILD_CORE_BUILTIN and Py_BUILD_CORE_MODULE now imply Py_BUILD_CORE directy in pyport.h. * ceval.c compilation now fails with an error if Py_BUILD_CORE is not defined, just to ensure that Python is build with the correct defines. * setup.py now compiles _pickle.c with Py_BUILD_CORE_MODULE define. * setup.py compiles _json.c with Py_BUILD_CORE_MODULE define, rather than Py_BUILD_CORE_BUILTIN define * PCbuild/pythoncore.vcxproj: Add Py_BUILD_CORE_BUILTIN define.
* bpo-31904: Don't build the _crypt extension on VxWorks (GH-12833)pxinwr2019-04-151-6/+7
|
* bpo-36577: setup.py reports missing OpenSSL again (GH-12746)Christian Heimes2019-04-091-0/+2
| | | | | | | | | | | [bpo-36146](https://bugs.python.org/issue36146) introduced another regression. In case of missing OpenSSL libraries or headers, setup.py no longer reported _hashlib and _ssl to be missing. Signed-off-by: Christian Heimes <christian@python.org> https://bugs.python.org/issue36577
* bpo-36544 : Fix regression introduced in bpo-36146 (GH-12708)xdegaye2019-04-091-0/+2
| | | https://bugs.python.org/issue36544
* bpo-36503: remove references to 'aix3' and 'aix4' (GH-12658)Michael Felt2019-04-081-3/+0
|
* bpo-36097: Use only public C-API in the_xxsubinterpreters module (adding as ↵Eric Snow2019-03-151-3/+1
| | | | necessary). (gh-12359)
* Revert: bpo-33608: Factor out a private, per-interpreter ↵Victor Stinner2019-03-041-1/+3
| | | | | | | | | | | | | | | | | | | _Py_AddPendingCall(). (GH-11617) (GH-12159) * Revert "bpo-36097: Use only public C-API in the_xxsubinterpreters module (adding as necessary). (#12003)" This reverts commit bcfa450f210074e16feb761ae5b3e966a2532fcf. * Revert "bpo-33608: Simplify ceval's DISPATCH by hoisting eval_breaker ahead of time. (gh-12062)" This reverts commit bda918bf65a88560ec453aaba0758a9c0d49b449. * Revert "bpo-33608: Use _Py_AddPendingCall() in _PyCrossInterpreterData_Release(). (gh-12024)" This reverts commit b05b711a2cef6c6c381e01069dedac372e0b9fb2. * Revert "bpo-33608: Factor out a private, per-interpreter _Py_AddPendingCall(). (GH-11617)" This reverts commit ef4ac967e2f3a9a18330cc6abe14adb4bc3d0465.
* bpo-36097: Use only public C-API in the_xxsubinterpreters module (adding as ↵Eric Snow2019-03-011-3/+1
| | | | necessary). (#12003)
* bpo-36146: Add TEST_EXTENSIONS to setup.py (GH-12129)Victor Stinner2019-03-011-81/+84
| | | | | | | | | | | | | Add TEST_EXTENSIONS constant to setup.py to allow to not build test extensions like _testcapi. Changes: * Add add_ldflags_cppflags() subfunction * Rename add_compiler_directories() to configure_compiler(). * Remove unused COMPILED_WITH_PYDEBUG constant. * Use self.add() rather than accessing directly self.extensions. * Remove module_enabled() function: check differently if curses extension is built or not.
* bpo-36146: Don't run code at setup.py top level (GH-12127)Victor Stinner2019-03-011-76/+64
| | | | | | | | | * Move set_compiler_flags() calls and concurrent.future hack from module top-level to main() * Remove unused variables 'macros' and 'libraries' from detect_multiprocessing(). * Move SUMMARY and CLASSIFIERS constants at the top, move set_compiler_flags() function below these constants. * Add some empty new lines to respect PEP 8.
* bpo-36146: Split setup.py into subfunctions (GH-12125)Victor Stinner2019-03-011-228/+249
| | | | | | * Split PyBuildExt.detect_modules() huge function into subfunctions. * Move curses, hashlib and some other code to reorganize the code. * detect_tkinter() now returns False if the extension is missing. * Add PyBuildExt.config_h_vars attribute
* bpo-36146: Refactor setup.py: Add PyBuildExt.srcdir (GH-12124)Victor Stinner2019-03-011-98/+99
| | | | | | | | | | | * Add PyBuildExt.srcdir atribute in setup.py: the source directory is now always absolute. * Add PyBuildExt.inc_dirs and PyBuildExt.lib_dirs attributes: replace 'inc_dirs' and 'lib_dirs' local variables of detect_modules(). * Replace "from distutils.errors import *" with "from distutils.errors import CCompilerError, DistutilsError" to be able to use static analyzers like pyflakes * Reorder imports.
* bpo-36146: Refactor setup.py: PyBuildExt.add() method (GH-12097)Victor Stinner2019-03-011-227/+204
| | | | | | | | | | | | * Add PyBuildExt.add() which adds the extension directly to self.extensions, rather than using a temporary 'exts' local variable in detect_modules() and then add 'exts' to self.extensions * Convert 'missing' local variable from detect_modules() into PyBuildExt.missing attribute * _detect_openssl(), _decimal_ext() and _detect_nis() now call directly self.add(), rather than returning an extension (or None if not found). * Rename _decimal_ext() to _detect_decimal() for consistency with other methods.
* bpo-36146: Fix inc_dirs in setup.py on macOS (GH-12098)Victor Stinner2019-03-011-2/+3
| | | | Fix setup.py on macOS: only add /usr/include/ffi to include directories of _ctypes, not for all extensions.
* bpo-36146: Refactor setup.py (GH-12093)Victor Stinner2019-02-281-69/+72
| | | | | | | | | | | | * Rename globals to upper case to better distinguish if a variable is global or local: * Rename cross_compiling to CROSS_COMPILING * Rename host_platform to HOST_PLATFORM * Rename disabled_module_list to DISABLED_MODULE_LIST * Add MS_WINDOWS, CYGWIN and MACOS constants. * Use booleans: replace "return 0" with "return False" and replace "return 1" with "return True"
* bpo-31904: Add cross-build support for VxWorks RTOS (GH-11968)pxinwr2019-02-271-14/+32
|
* Clean up code which checked presence of os.{stat,lstat,chmod} (#11643)Anthony Sottile2019-02-251-5/+0
|
* bpo-35903: Use autoconfig to probe for shm_open() and shm_unlink(). (#11765)Neil Schemenauer2019-02-081-3/+4
| | | | | | Use autoconfig to probe for shm_open() and shm_unlink(). Set SHM_NEEDS_LIBRT if we must link with librt to get the shm_* functions. Change setup.py to use the autoconfig defines. These changes should make it more likely that _multiprocessing/posixshmem.c gets built correctly on different platforms.
* bpo-35813: Added shared_memory submodule of multiprocessing. (#11664)Davin Potts2019-02-021-0/+11
| | | Added shared_memory submodule to multiprocessing in time for first alpha with cross-platform tests soon to follow.
* bpo-35257: Avoid leaking LTO linker flags into distutils (GH-10900)stratakis2018-12-191-5/+10
| | | | | | When compiling 3rd party C extensions, the linker flags used by the compiler for the interpreter and the stdlib modules, will get leaked into distutils. In order to avoid that, the PY_CORE_LDFLAGS and PY_LDFLAGS_NODIST are introduced to keep those flags separated.