This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Port module setup to PY_STDLIB_MOD() macro and addext()
Type: enhancement Stage: patch review
Components: Build Versions: Python 3.11
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: arhadthedev, christian.heimes, erlendaasland, miss-islington, ned.deily, pablogsal
Priority: Keywords: patch

Created on 2021-11-19 16:56 by christian.heimes, last changed 2022-04-11 14:59 by admin.

Pull Requests
URL Status Linked Edit
PR 29642 merged christian.heimes, 2021-11-19 17:04
PR 29644 merged christian.heimes, 2021-11-19 21:23
PR 29660 merged christian.heimes, 2021-11-20 14:05
PR 29668 merged christian.heimes, 2021-11-20 16:45
PR 29685 merged christian.heimes, 2021-11-21 10:28
PR 29688 merged erlendaasland, 2021-11-21 16:24
PR 29689 merged erlendaasland, 2021-11-21 17:33
PR 29690 merged erlendaasland, 2021-11-21 17:33
PR 29696 merged erlendaasland, 2021-11-22 10:01
PR 29697 merged christian.heimes, 2021-11-22 10:06
PR 29699 merged christian.heimes, 2021-11-22 10:54
PR 29702 merged christian.heimes, 2021-11-22 12:37
PR 29703 merged erlendaasland, 2021-11-22 13:23
PR 29705 merged erlendaasland, 2021-11-22 14:06
PR 29706 merged christian.heimes, 2021-11-22 14:18
PR 29707 merged erlendaasland, 2021-11-22 14:44
PR 29713 merged erlendaasland, 2021-11-22 18:00
PR 29715 merged erlendaasland, 2021-11-22 21:34
PR 29720 merged christian.heimes, 2021-11-23 09:11
PR 29725 merged christian.heimes, 2021-11-23 11:59
PR 29727 merged christian.heimes, 2021-11-23 14:21
PR 29738 merged erlendaasland, 2021-11-23 22:58
PR 29741 merged christian.heimes, 2021-11-24 08:40
PR 29743 merged christian.heimes, 2021-11-24 09:20
PR 29747 merged christian.heimes, 2021-11-24 11:37
PR 29768 merged erlendaasland, 2021-11-25 00:11
PR 29769 merged erlendaasland, 2021-11-25 00:28
PR 29833 merged christian.heimes, 2021-11-29 08:14
PR 29844 merged christian.heimes, 2021-11-29 14:01
PR 29914 merged christian.heimes, 2021-12-04 12:39
PR 29946 merged christian.heimes, 2021-12-06 19:16
PR 29967 closed christian.heimes, 2021-12-07 17:44
PR 29969 merged christian.heimes, 2021-12-07 18:39
PR 31698 merged erlendaasland, 2022-03-05 18:28
PR 32229 open christian.heimes, 2022-04-01 10:27
PR 32299 merged arhadthedev, 2022-04-04 08:48
PR 32328 merged ned.deily, 2022-04-05 04:08
Messages (61)
msg406597 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-19 16:56
bpo-45573 added the PY_STDLIB_MOD() autoconf macro, Modules/Setup.stdlib.in template, and setup.py helper method addext().

The macro sets up

* MODULE_{NAME}_TRUE/FALSE conditional
* MODULE_{NAME} variable with values yes, disabled, missing, or n/a
* MODULE_{NAME}_CFLAGS
* MODULE_{NAME}_LDFLAGS

Additionally there is a MODULE_{NAME}_DEPS variable with dependency information.

The Modules/Setup.stdlib.in template and addext() method consume the variables and set up extension compilation and linking. There is no need to look for headers or libraries in setup.py any more.

Let's port all modules to the new approach.
msg406618 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-19 19:20
New changeset c8c21bdd199f9feb75fc6cdb398a686dc133b99f by Christian Heimes in branch 'main':
bpo-45847: Port builtin hashlib extensions to PY_STDLIB_MOD (GH-29642)
https://github.com/python/cpython/commit/c8c21bdd199f9feb75fc6cdb398a686dc133b99f
msg406646 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-20 09:18
New changeset 5596909eac4abdc9927c2e7751bea34fbcfdc624 by Christian Heimes in branch 'main':
bpo-45847: Port _scproxy to PY_STDLIB_MOD (GH-29644)
https://github.com/python/cpython/commit/5596909eac4abdc9927c2e7751bea34fbcfdc624
msg406662 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-20 15:43
New changeset f36c69a26ee880acf62a5ae8c5da49312e84c66d by Christian Heimes in branch 'main':
bpo-45847: Port test modules to PY_STDLIB_MOD (GH-29660)
https://github.com/python/cpython/commit/f36c69a26ee880acf62a5ae8c5da49312e84c66d
msg406703 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-21 09:45
New changeset f201d261cf53365b5769a434ca2bb21a892bd23f by Christian Heimes in branch 'main':
bpo-45847: Port grp, spwd, termios, resource, syslog to PY_STDLIB_MOD (GH-29668)
https://github.com/python/cpython/commit/f201d261cf53365b5769a434ca2bb21a892bd23f
msg406714 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-21 13:08
New changeset 2afa1a12669e1812a9fe8130c8f60052c4ad8bf8 by Christian Heimes in branch 'main':
bpo-45847: Port codecs and unicodedata to PY_STDLIB_MOD (GH-29685)
https://github.com/python/cpython/commit/2afa1a12669e1812a9fe8130c8f60052c4ad8bf8
msg406746 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 08:05
New changeset 133c65a870e8bdcce7cd6a2bc6bd0cefbb2fa9f3 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port array, _contextvars, math, and cmath to PY_STDLIB_MOD_SIMPLE (GH-29688)
https://github.com/python/cpython/commit/133c65a870e8bdcce7cd6a2bc6bd0cefbb2fa9f3
msg406751 - (view) Author: miss-islington (miss-islington) Date: 2021-11-22 08:45
New changeset 718cee08cc082ece590f5a012253a405422da03d by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _bisect, _heapq, _json, _pickle, _random, and _zoneinfo to PY_STDLIB_MOD_SIMPLE (GH-29689)
https://github.com/python/cpython/commit/718cee08cc082ece590f5a012253a405422da03d
msg406754 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2021-11-22 09:56
45 down, 35 to go.
msg406755 - (view) Author: miss-islington (miss-islington) Date: 2021-11-22 09:57
New changeset 39f7d2ff01eb03f1dd87a019472a32cde6250e84 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _lfprof, _opcode, _asyncio, _queue, _statistics, and _typing to PY_STDLIB_MOD_SIMPLE (GH-29690)
https://github.com/python/cpython/commit/39f7d2ff01eb03f1dd87a019472a32cde6250e84
msg406763 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 11:09
New changeset 29699a2a2aa2f0d6e790beeae55967fc2f35fe50 by Christian Heimes in branch 'main':
bpo-45847: Various PY_STDLIB_MOD cleanups (GH-29697)
https://github.com/python/cpython/commit/29699a2a2aa2f0d6e790beeae55967fc2f35fe50
msg406771 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 13:02
New changeset 5b946cadaa1175a5caae98bd2d309840bea52a58 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port fcntl to Py_STDLIB_MOD (GH-29696)
https://github.com/python/cpython/commit/5b946cadaa1175a5caae98bd2d309840bea52a58
msg406777 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 13:50
New changeset b451673f93465a27ee61e408190ee61cb9dbd5b6 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port mmap, select, and _xxsubinterpreters to Py_STDLIB_MOD (GH-29703)
https://github.com/python/cpython/commit/b451673f93465a27ee61e408190ee61cb9dbd5b6
msg406779 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 13:52
New changeset d9cedabeba0d87799f99c0717e81743a1c2d34ce by Christian Heimes in branch 'main':
bpo-45847: Port compression libs to PY_STDLIB_MOD (GH-29702)
https://github.com/python/cpython/commit/d9cedabeba0d87799f99c0717e81743a1c2d34ce
msg406781 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 14:18
New changeset c6dec7e27a82cba33539d07ef8d7346e0a232421 by Christian Heimes in branch 'main':
bpo-45847: Port nis module to PY_STDLIB_MOD (GH-29699)
https://github.com/python/cpython/commit/c6dec7e27a82cba33539d07ef8d7346e0a232421
msg406782 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 14:25
Not converted yet:

readline
_curses
_curses_panel
_crypt
_socket
_ssl
_hashlib
_dbm
_gdbm
_ctypes
_multiprocessing
_posixshmem
_tkinter
_uuid
xxlimited
xxlimited_35
msg406783 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2021-11-22 14:28
_socket coming up...
msg406784 - (view) Author: miss-islington (miss-islington) Date: 2021-11-22 14:37
New changeset eee683cbde499e62fc90ad366f7c45625fe92150 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port audioop, _csv, and _posixsubprocess to PY_STDLIB_MOD_SIMPLE (GH-29705)
https://github.com/python/cpython/commit/eee683cbde499e62fc90ad366f7c45625fe92150
msg406785 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 14:42
_crypt is powered by pkgconf libcrypt or libxcrypt on Linux. On my system  and on Debian, libcrypt.pc is a symlink to libxcrypt.pc. Linux has crypt() and/or crypt_r() in <crypt.h>. On FreeBSD crypt_r() is in <unistd.h> and libc.

_uuid needs similar special handling. It's <uuid/uuid.h>, -luuid, and uuid.pc on Linux. On BSD it's <uuid.h> and symbols are in libc.

_readline uses either libreadline (readline.pc) or libeditline (libeditline.pc). It also needs special handling of tinfo and termcap on some platforms.

ndbm, gdbm, and libdb have no pkgconf providers. My PR GH-29534 has some code to detect them in configure.
msg406788 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 14:58
New changeset 0e1c2f3ef84572b79fa7d8498a69bc5a56ff0d8d by Christian Heimes in branch 'main':
bpo-45847: port _struct to PY_STDLIB_MOD (GH-29706)
https://github.com/python/cpython/commit/0e1c2f3ef84572b79fa7d8498a69bc5a56ff0d8d
msg406801 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-22 20:27
New changeset 2dc7d3dda61e7ce07721f46b14c706fbc879dfd6 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port xxlimited and xxlimited_35 to PY_STDLIB_MOD (GH-29707)
https://github.com/python/cpython/commit/2dc7d3dda61e7ce07721f46b14c706fbc879dfd6
msg406822 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 07:51
New changeset 758a23d1c4db97b578bc16e0ea110074d65c4c52 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Fix xxlimited and xxlimited_35 build conditions (GH-29715)
https://github.com/python/cpython/commit/758a23d1c4db97b578bc16e0ea110074d65c4c52
msg406823 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 07:52
New changeset d82f2caf942fa8b94e797a2f116ee54ec303c2df by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _socket to PY_STDLIB_MOD (GH-29713)
https://github.com/python/cpython/commit/d82f2caf942fa8b94e797a2f116ee54ec303c2df
msg406842 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 14:41
We are down to 9 missing modules:

readline
_curses
_curses_panel
_dbm
_ctypes
_multiprocessing
_posixshmem
_tkinter
_uuid
msg406890 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 21:26
New changeset 095bc8f0d6845dded8f67fbc6eca20dfac8b3929 by Christian Heimes in branch 'main':
bpo-45847: Port _crypt to PY_STDLIB_MOD (GH-29725)
https://github.com/python/cpython/commit/095bc8f0d6845dded8f67fbc6eca20dfac8b3929
msg406891 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 21:58
New changeset b9e9292d75fdea621e05e39b8629e6935d282d0d by Christian Heimes in branch 'main':
bpo-45847: Port _ssl and _hashlib to PY_STDLIB_MOD (GH-29727)
https://github.com/python/cpython/commit/b9e9292d75fdea621e05e39b8629e6935d282d0d
msg406892 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-23 21:58
New changeset 9cf5646bb465b7d3d68bfe6d4711feb43d565051 by Christian Heimes in branch 'main':
bpo-45847: Port _gdbm to PY_STDLIB_MOD (GH-29720)
https://github.com/python/cpython/commit/9cf5646bb465b7d3d68bfe6d4711feb43d565051
msg406905 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-24 07:19
New changeset 324527012fa1078428a6207918640cf860e28c81 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _posixshmem to PY_STDLIB_MOD (GH-29738)
https://github.com/python/cpython/commit/324527012fa1078428a6207918640cf860e28c81
msg406913 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-24 09:20
New changeset 8af6481f6b7d43646c47d8fa6cc6d5eb465e2b0f by Christian Heimes in branch 'main':
bpo-45847: Port _uuid to PY_STDLIB_MOD (GH-29741)
https://github.com/python/cpython/commit/8af6481f6b7d43646c47d8fa6cc6d5eb465e2b0f
msg406914 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-24 09:47
New changeset 64c3807da93fc3e0c15bc376f220b2d24551023e by Christian Heimes in branch 'main':
bpo-45847: Fix _crypt detection on Ubuntu (GH-29743)
https://github.com/python/cpython/commit/64c3807da93fc3e0c15bc376f220b2d24551023e
msg407077 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2021-11-26 18:03
Some info regarding _multiprocessing:

Modules/_multiprocessing/semaphore.c is currently conditionally included in setup.py (HAVE_SEM_OPEN && !POSIX_SEMAPHORES_NOT_ENABLED), but always included in Modules/Setup.

Here's some historical bpo's (more or less) relevant to Modules/_multiprocessing/semaphore.c:

- bpo-7272
- bpo-5545
- bpo-3770


Commit 99c48a8d315fe55c8e1e8eac2e01cd930cb89686 message says:
    Author: Hye-Shik Chang <hyeshik@gmail.com>
    Date:   Sat Jun 28 01:04:31 2008 +0000

    Give information for compililation of _multiprocessing.SemLock on FreeBSD:
    
    FreeBSD's P1003.1b semaphore support is highly experimental and
    it's disabled by default.  Even if a user loads the experimental
    kernel module manually, _multiprocessing doesn't work correctly due
    to several known incompatibilities around sem_unlink and sem_getvalue,
    yet.


Excerpt from the FreeBSD 9.0 release notes[^1], released four years later (2012-01-12):

    kern.features.sysv_sem.                   System V semaphores support
    kern.features.p1003_1b_mqueue.            POSIX P1003.1B message queues support
    kern.features.p1003_1b_semaphores.        POSIX P1003.1B semaphores support
    kern.features.kposix_priority_scheduling  POSIX P1003.1B real-time extensions


I haven't checked OpenBSD or NetBSD yet.


Other relevant commits:

  - c4920e86ef7511b4e858028e870b1811437a71d0
  - 40a6164afa79f6b97e7e40e0f35f6081fde437c2



[^1]: https://www.freebsd.org/releases/9.0R/relnotes-detailed/
msg407199 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-28 12:00
New changeset aaf42222cfd5774d23ca48ff304ace1f64426201 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _multiprocessing to PY_STDLIB_MOD (GH-29768)
https://github.com/python/cpython/commit/aaf42222cfd5774d23ca48ff304ace1f64426201
msg407249 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-29 08:15
GH-29768 broke builds on platforms without sem_open (e.g. wasm). GH-29833 fixes the issue.

emcc -Wsign-compare -g -O0 -Wall    -std=c99 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../../Include/internal -IObjects -IInclude -IPython -I. -I../../Include    -DPy_BUILD_CORE_BUILTIN -I../../Modules/_multiprocessing -c ../../Modules/_multiprocessing/semaphore.c -o Modules/_multiprocessing/semaphore.o
../../Modules/_multiprocessing/semaphore.c:16:5: error: unknown type name 'SEM_HANDLE'
    SEM_HANDLE handle;
    ^
In file included from ../../Modules/_multiprocessing/semaphore.c:38:
../../Modules/_multiprocessing/clinic/semaphore.c.h:220:60: error: unknown type name 'SEM_HANDLE'
msg407255 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-29 09:36
New changeset 4dc198dedd66e3247aa934fb91c9a158c3eea15a by Christian Heimes in branch 'main':
bpo-45847: Fix _multiprocessing on platforms without sem_open (GH-29833)
https://github.com/python/cpython/commit/4dc198dedd66e3247aa934fb91c9a158c3eea15a
msg407274 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-29 13:57
New changeset f7a62f24053c82cf38c3db5848d9ff014470fa40 by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Make socket module conditional (GH-29769)
https://github.com/python/cpython/commit/f7a62f24053c82cf38c3db5848d9ff014470fa40
msg407287 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-11-29 15:34
New changeset b394af13f69c1a2ac0e7d32dabf6d86443606ab2 by Christian Heimes in branch 'main':
bpo-45847: PY_STDLIB_MOD_SIMPLE now checks py_stdlib_not_available (GH-29844)
https://github.com/python/cpython/commit/b394af13f69c1a2ac0e7d32dabf6d86443606ab2
msg407654 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-04 10:21
New changeset 4045392e0e3446362841b3336497cb6eeccfcd23 by Christian Heimes in branch 'main':
bpo-45847: Port _ctypes partly to PY_STDLIB_MOD (GH-29747)
https://github.com/python/cpython/commit/4045392e0e3446362841b3336497cb6eeccfcd23
msg407668 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-04 14:14
New changeset 64be8d369b7e3878078dbef466804ae8be49c1cf by Christian Heimes in branch 'main':
bpo-45847: Update whatsnew and add place holder entries for missing extensions (GH-29914)
https://github.com/python/cpython/commit/64be8d369b7e3878078dbef466804ae8be49c1cf
msg407861 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-06 20:43
New changeset fc012d801202a9ea139df143b934778060d51a60 by Christian Heimes in branch 'main':
bpo-45847: Fix uuid detection on macOS (GH-29946)
https://github.com/python/cpython/commit/fc012d801202a9ea139df143b934778060d51a60
msg407949 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-07 17:00
I just noticed that the PKG_CHECK_MODULES() fallbacks override the PKG_CONFIG environment variables. We should do something like

   ZLIB_CFLAGS=${ZLIB_CFLAGS:-""}
   ZLIB_LIBS=${ZLIB_LIBS:-"-lz"}

for all env vars. I prefer the syntax over ${ZLIB_CFLAGS:=""} because it is more obvious what is happening.

Env vars:

  LIBUUID_CFLAGS
              C compiler flags for LIBUUID, overriding pkg-config
  LIBUUID_LIBS
              linker flags for LIBUUID, overriding pkg-config
  LIBFFI_CFLAGS
              C compiler flags for LIBFFI, overriding pkg-config
  LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config
  LIBNSL_CFLAGS
              C compiler flags for LIBNSL, overriding pkg-config
  LIBNSL_LIBS linker flags for LIBNSL, overriding pkg-config
  LIBSQLITE3_CFLAGS
              C compiler flags for LIBSQLITE3, overriding pkg-config
  LIBSQLITE3_LIBS
              linker flags for LIBSQLITE3, overriding pkg-config
  GDBM_CFLAGS C compiler flags for gdbm
  GDBM_LIBS   additional linker flags for gdbm
  ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
  ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config
  BZIP2_CFLAGS
              C compiler flags for BZIP2, overriding pkg-config
  BZIP2_LIBS  linker flags for BZIP2, overriding pkg-config
  LIBLZMA_CFLAGS
              C compiler flags for LIBLZMA, overriding pkg-config
  LIBLZMA_LIBS
              linker flags for LIBLZMA, overriding pkg-config
  LIBCRYPT_CFLAGS
              C compiler flags for LIBCRYPT, overriding pkg-config
  LIBCRYPT_LIBS
              linker flags for LIBCRYPT, overriding pkg-config
msg407958 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2021-12-07 18:04
After PR29747, some buildbots are failing:

https://buildbot.python.org/all/#/builders/58/builds/1217

for example:

```
0:35:41 load avg: 3.70 Re-running failed tests in verbose mode
0:35:41 load avg: 3.70 Re-running test_code in verbose mode
test_bad_index (test.test_code.CoExtra) ... ok
test_free_called (test.test_code.CoExtra) ... Fatal Python error: Illegal instruction
Current thread 0xb7bd4700 (most recent call first):
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/test_code.py", line 575 in test_free_called
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/case.py", line 547 in _callTestMethod
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/case.py", line 591 in run
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/case.py", line 646 in __call__
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 122 in run
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 84 in __call__
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 122 in run
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 84 in __call__
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 122 in run
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/suite.py", line 84 in __call__
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/unittest/runner.py", line 197 in run
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/support/__init__.py", line 1009 in _run_suite
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/support/__init__.py", line 1135 in run_unittest
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/runtest.py", line 273 in _test_module
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/runtest.py", line 309 in _runtest_inner2
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/runtest.py", line 352 in _runtest_inner
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/runtest.py", line 227 in _runtest
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/runtest.py", line 257 in runtest
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/main.py", line 337 in rerun_failed_tests
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/main.py", line 715 in _main
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/main.py", line 658 in main
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/libregrtest/main.py", line 736 in main
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/test/__main__.py", line 2 in <module>
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/runpy.py", line 86 in _run_code
  File "/buildbot/buildarea/cpython/3.x.ware-gentoo-x86.nondebug/build/Lib/runpy.py", line 196 in _run_module_as_main
```

unfortunately, this is blocking the release of Python 3.11 :(
msg407959 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2021-12-07 18:04
I may need to revert this commit to unblock the release if no one can take a look today
msg407962 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-07 19:56
New changeset 91b59a3fcdcb93d74bb89cce536f11d2990f655d by Christian Heimes in branch 'main':
bpo-45847: Revert Port _ctypes partly to PY_STDLIB_MOD (GH-29747) (GH-29969)
https://github.com/python/cpython/commit/91b59a3fcdcb93d74bb89cce536f11d2990f655d
msg407981 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2021-12-07 23:05
Quoting msg407949:
> [...] We should do something like
>
>   ZLIB_CFLAGS=${ZLIB_CFLAGS:-""}
>   ZLIB_LIBS=${ZLIB_LIBS:-"-lz"}
>
> for all env vars.

I think we should use ${VAR-default} instead of ${VAR:-default}; we only want to override if the variable is _not_ set:

    $ TEST=
    $ echo ${TEST-default}
    
    $ echo ${TEST:-default}
    default
    $ unset TEST
    $ echo ${TEST-default} 
    default
    $ echo ${TEST:-default}
    default


> I prefer the syntax over ${ZLIB_CFLAGS:=""} because it is more obvious what
> is happening.

I agree. I also prefer `TEST=${TEST-""}` to `TEST=${TEST-}` for empty strings.
msg408008 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-08 10:52
New changeset 0461c68cdff1392a5299ebd8c37ddce0b60dd6cc by Christian Heimes in branch 'main':
bpo-45847: Don't override user overrides for CFLAGS/LIBS (GH-29967)
https://github.com/python/cpython/commit/0461c68cdff1392a5299ebd8c37ddce0b60dd6cc
msg414642 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-03-07 08:49
Regarding _tkinter (Tcl/Tk):

Based on discussion on Discourse (https://discuss.python.org/t/simplifying-tcl-tk-detection/14066), my current plan is to just use pkg-config, and drop the rest of the autodetect hackery. GH-31698 sort'a works given that pkg-config provides us with correct info. Sadly it doesn't for Ubuntu:

```
$ grep lib /usr/lib/x86_64-linux-gnu/pkgconfig/tcl8.6.pc
libdir=/usr/lib/x86_64-linux-gnu
Requires.private: zlib >= 1.2.3
Libs: -L${libdir} -ltcl8.6 -ltclstub8.6
$ ls -ld /usr/lib/x86_64-linux-gnu/{tcl,tk}*
drwxr-xr-x 2 root root 4096 Mar  6 23:59 /usr/lib/x86_64-linux-gnu/tcl8.6
lrwxrwxrwx 1 root root   19 Feb 23  2019 /usr/lib/x86_64-linux-gnu/tclConfig.sh -> tcl8.6/tclConfig.sh
lrwxrwxrwx 1 root root   21 Feb 23  2019 /usr/lib/x86_64-linux-gnu/tclooConfig.sh -> tcl8.6/tclooConfig.sh
drwxr-xr-x 2 root root 4096 Mar  6 23:59 /usr/lib/x86_64-linux-gnu/tk8.6
lrwxrwxrwx 1 root root   17 Feb 23  2019 /usr/lib/x86_64-linux-gnu/tkConfig.sh -> tk8.6/tkConfig.sh
```

As you can see, the linker is given the wrong search path, so `AC_LINK_IFELSE` fails:

```
$ grep -A4 "gcc.*tcl" config.log
configure:12380: gcc -o conftest  -I/usr/include/tcl8.6  -ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6  conftest.c -lpthread -ldl  >&5
/usr/bin/ld: /tmp/ccMuHSnh.o: in function `main':
conftest.c:(.text+0xb): undefined reference to `Tcl_Init'
/usr/bin/ld: conftest.c:(.text+0x16): undefined reference to `Tk_Init'
collect2: error: ld returned 1 exit status
```

I haven't checked Debian yet, but they may have the same problem.

Plan B:
1. try to push a fix upstream
2. add temporarily hack for Ubuntu/Debian in autoconf
3. remove hack in a year or two

Plan C
1. try to push a fix upstream
2. leave the current hackery as it is and wait another year or two
msg414645 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-03-07 09:10
FYI, tested GH-31698 on Debian 10.3, and it works swell there.
msg414648 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-03-07 09:42
> GH-31698 sort'a works given that pkg-config provides us with correct info. Sadly it doesn't for Ubuntu [...]

Hm, looking more closely at Ubuntu (20.4), I see that the pkg-config files is actually correct. I'll have to debug this further; perhaps there is an easy way out :)
msg414649 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-03-07 09:52
FTR:

$ strings /lib/x86_64-linux-gnu/libtcl8.6.so | grep -E "\<Tcl_Init\>"
Tcl_Init
$ strings /lib/x86_64-linux-gnu/libtk8.6.so | grep -E "\<Tk_Init\>"
Tk_Init
msg414656 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-03-07 11:11
Solved: Ubuntu is fine, we just need to treat LIBS and LDFLAGS with care in configure.ac. GH-31698 is updated with a fix.
msg416425 - (view) Author: miss-islington (miss-islington) Date: 2022-03-31 10:19
New changeset b36d222110d0d6d84dc8e973ca87d976c2423f5d by Erlend Egeberg Aasland in branch 'main':
bpo-45847: Port _tkinter to PY_STDLIB_MOD (GH-31698)
https://github.com/python/cpython/commit/b36d222110d0d6d84dc8e973ca87d976c2423f5d
msg416565 - (view) Author: Anthony Sottile (Anthony Sottile) * Date: 2022-04-02 16:43
this appears to break the tkinter extension for ubuntu bionic (18.04) -- I'm not entirely sure on the correct fix here but I get the following from trying to build there:

2022-04-02T15:52:08.0910452Z Python build finished successfully!
2022-04-02T15:52:08.0911924Z The necessary bits to build these optional modules were not found:
2022-04-02T15:52:08.0913469Z _tkinter


this is the tk I have available:

f0dd06a3e87c">root@f0dd06a3e87c:/# dpkg -l | grep libtk
ii  libtk8.6:amd64                   8.6.8-4                             amd64        Tk toolkit for Tcl and X11 v8.6 - run-time files
msg416566 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2022-04-02 16:54
Please attach your config.log file. Did configure tell you that you are missing pkg-config?
msg416567 - (view) Author: Anthony Sottile (Anthony Sottile) * Date: 2022-04-02 16:54
the `tk-dev` package on ubuntu bionic does not ship with a `pkg-config` file for tk so it does not build properly there: 

```
f0dd06a3e87c">root@f0dd06a3e87c:/cpython# dpkg -L tk8.6-dev | grep pc
f0dd06a3e87c">root@f0dd06a3e87c:/cpython# 
```

(a note: bionic reaches end of life in april 2023 so it is likely to still see significant use until then)
msg416568 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2022-04-02 17:23
Could you please open a distro bug with Ubuntu and report the issue? We require a pkg-config file for TCL/TK.
msg416569 - (view) Author: Anthony Sottile (Anthony Sottile) * Date: 2022-04-02 17:33
I could, but it's very unlikely to get fixed given I believe 18.04 is in security-only fixes and backporting a pkg-config file seems unlikely

this worked two days ago before this patch
msg416570 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2022-04-02 17:38
As I said already, we require a pkg-config file for TCL/TK detection. It turned out to be too painful and too complicated to implement manual TCL/TK detection in configure.ac. Erlend and I tried and eventually gave up.

If your platform does not provide the pkg-config files, then you need to work around the problem or contribute a patch.
msg416575 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2022-04-02 18:44
PS: Check out ./configure --help
msg416600 - (view) Author: Erlend E. Aasland (erlendaasland) * (Python triager) Date: 2022-04-02 22:18
Anthony: you should be able to build the _tkinter by manually specifying the compiler and linker flags using the `TCLTK_CFLAGS` and `TCLTK_LIBS` environment variables. AFAICS, the flags provided by pkgconfig in Ubuntu 20.04 should work well in 18.04 (possibly with minor adjustments; I didn't check).
msg416712 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2022-04-05 01:18
New changeset 5a7506de7374c10e6eb9ae5a232cc88d4d588450 by Oleg Iarygin in branch 'main':
Fix "Contributed ... in bpo-bpo-45847" (GH-32299)
https://github.com/python/cpython/commit/5a7506de7374c10e6eb9ae5a232cc88d4d588450
msg416750 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2022-04-05 04:46
New changeset a0c700480b52dffab830d52e9c4eba15d4b57a89 by Ned Deily in branch 'main':
bpo-45847: Adapt macOS installer build to use new tkinter configure vars (GH-32328)
https://github.com/python/cpython/commit/a0c700480b52dffab830d52e9c4eba15d4b57a89
History
Date User Action Args
2022-04-11 14:59:52adminsetgithub: 90005
2022-04-05 04:48:03Anthony Sottilesetnosy: - Anthony Sottile
2022-04-05 04:46:18ned.deilysetmessages: + msg416750
2022-04-05 04:08:15ned.deilysetpull_requests: + pull_request30387
2022-04-05 01:18:23ned.deilysetnosy: + ned.deily
messages: + msg416712
2022-04-04 08:48:58arhadthedevsetpull_requests: + pull_request30361
2022-04-04 08:43:59arhadthedevsetpull_requests: - pull_request30358
2022-04-04 08:29:49arhadthedevsetnosy: + arhadthedev
pull_requests: + pull_request30358
2022-04-02 22:18:29erlendaaslandsetmessages: + msg416600
2022-04-02 18:44:13christian.heimessetmessages: + msg416575
2022-04-02 17:38:46christian.heimessetmessages: + msg416570
2022-04-02 17:33:04Anthony Sottilesetmessages: + msg416569
2022-04-02 17:23:08christian.heimessetmessages: + msg416568
2022-04-02 16:54:52Anthony Sottilesetmessages: + msg416567
2022-04-02 16:54:15christian.heimessetmessages: + msg416566
2022-04-02 16:43:30Anthony Sottilesetnosy: + Anthony Sottile
messages: + msg416565
2022-04-01 10:27:04christian.heimessetpull_requests: + pull_request30301
2022-03-31 10:19:19miss-islingtonsetmessages: + msg416425
2022-03-07 11:11:07erlendaaslandsetmessages: + msg414656
2022-03-07 09:52:55erlendaaslandsetmessages: + msg414649
2022-03-07 09:42:20erlendaaslandsetmessages: + msg414648
2022-03-07 09:10:04erlendaaslandsetmessages: + msg414645
2022-03-07 08:49:26erlendaaslandsetmessages: + msg414642
2022-03-05 18:28:25erlendaaslandsetpull_requests: + pull_request29818
2021-12-08 10:52:29christian.heimessetmessages: + msg408008
2021-12-07 23:22:54pablogsalsetpriority: release blocker ->
2021-12-07 23:05:24erlendaaslandsetmessages: + msg407981
2021-12-07 19:56:55christian.heimessetmessages: + msg407962
2021-12-07 18:39:05christian.heimessetpull_requests: + pull_request28194
2021-12-07 18:04:52pablogsalsetmessages: + msg407959
2021-12-07 18:04:24pablogsalsetpriority: normal -> release blocker
nosy: + pablogsal
messages: + msg407958

2021-12-07 17:44:35christian.heimessetpull_requests: + pull_request28192
2021-12-07 17:00:56christian.heimessetmessages: + msg407949
2021-12-06 20:43:53christian.heimessetmessages: + msg407861
2021-12-06 19:16:24christian.heimessetpull_requests: + pull_request28171
2021-12-04 14:14:56christian.heimessetmessages: + msg407668
2021-12-04 12:39:59christian.heimessetpull_requests: + pull_request28139
2021-12-04 10:21:49christian.heimessetmessages: + msg407654
2021-11-29 15:34:25christian.heimessetmessages: + msg407287
2021-11-29 14:01:50christian.heimessetpull_requests: + pull_request28073
2021-11-29 13:57:44christian.heimessetmessages: + msg407274
2021-11-29 09:36:14christian.heimessetmessages: + msg407255
2021-11-29 08:15:16christian.heimessetmessages: + msg407249
2021-11-29 08:14:34christian.heimessetpull_requests: + pull_request28064
2021-11-28 12:00:57christian.heimessetmessages: + msg407199
2021-11-26 18:03:43erlendaaslandsetmessages: + msg407077
2021-11-25 00:28:02erlendaaslandsetpull_requests: + pull_request28006
2021-11-25 00:11:21erlendaaslandsetpull_requests: + pull_request28005
2021-11-24 11:37:34christian.heimessetpull_requests: + pull_request27984
2021-11-24 09:47:30christian.heimessetmessages: + msg406914
2021-11-24 09:20:48christian.heimessetmessages: + msg406913
2021-11-24 09:20:22christian.heimessetpull_requests: + pull_request27980
2021-11-24 08:40:37christian.heimessetpull_requests: + pull_request27979
2021-11-24 07:19:32christian.heimessetmessages: + msg406905
2021-11-23 22:58:30erlendaaslandsetpull_requests: + pull_request27976
2021-11-23 21:58:48christian.heimessetmessages: + msg406892
2021-11-23 21:58:22christian.heimessetmessages: + msg406891
2021-11-23 21:26:59christian.heimessetmessages: + msg406890
2021-11-23 14:41:06christian.heimessetmessages: + msg406842
2021-11-23 14:21:11christian.heimessetpull_requests: + pull_request27964
2021-11-23 11:59:57christian.heimessetpull_requests: + pull_request27962
2021-11-23 09:11:37christian.heimessetpull_requests: + pull_request27956
2021-11-23 07:52:09christian.heimessetmessages: + msg406823
2021-11-23 07:51:35christian.heimessetmessages: + msg406822
2021-11-22 21:34:35erlendaaslandsetpull_requests: + pull_request27951
2021-11-22 20:27:32christian.heimessetmessages: + msg406801
2021-11-22 18:00:17erlendaaslandsetpull_requests: + pull_request27948
2021-11-22 14:58:53christian.heimessetmessages: + msg406788
2021-11-22 14:44:59erlendaaslandsetpull_requests: + pull_request27943
2021-11-22 14:42:42christian.heimessetmessages: + msg406785
2021-11-22 14:37:34miss-islingtonsetmessages: + msg406784
2021-11-22 14:28:16erlendaaslandsetmessages: + msg406783
2021-11-22 14:25:45christian.heimessetmessages: + msg406782
2021-11-22 14:18:48christian.heimessetmessages: + msg406781
2021-11-22 14:18:22christian.heimessetpull_requests: + pull_request27942
2021-11-22 14:06:21erlendaaslandsetpull_requests: + pull_request27941
2021-11-22 13:52:37christian.heimessetmessages: + msg406779
2021-11-22 13:50:08christian.heimessetmessages: + msg406777
2021-11-22 13:23:57erlendaaslandsetpull_requests: + pull_request27939
2021-11-22 13:02:40christian.heimessetmessages: + msg406771
2021-11-22 12:37:32christian.heimessetpull_requests: + pull_request27938
2021-11-22 11:09:21christian.heimessetmessages: + msg406763
2021-11-22 10:54:10christian.heimessetpull_requests: + pull_request27935
2021-11-22 10:06:51christian.heimessetpull_requests: + pull_request27933
2021-11-22 10:01:46erlendaaslandsetpull_requests: + pull_request27932
2021-11-22 09:57:57miss-islingtonsetmessages: + msg406755
2021-11-22 09:56:41erlendaaslandsetmessages: + msg406754
2021-11-22 08:45:49miss-islingtonsetnosy: + miss-islington
messages: + msg406751
2021-11-22 08:05:40christian.heimessetmessages: + msg406746
2021-11-21 17:33:42erlendaaslandsetpull_requests: + pull_request27928
2021-11-21 17:33:25erlendaaslandsetpull_requests: + pull_request27927
2021-11-21 16:24:48erlendaaslandsetpull_requests: + pull_request27926
2021-11-21 13:08:55christian.heimessetmessages: + msg406714
2021-11-21 10:28:02christian.heimessetpull_requests: + pull_request27924
2021-11-21 09:45:35christian.heimessetmessages: + msg406703
2021-11-20 16:45:49christian.heimessetpull_requests: + pull_request27909
2021-11-20 15:43:16christian.heimessetmessages: + msg406662
2021-11-20 14:05:57christian.heimessetpull_requests: + pull_request27902
2021-11-20 09:18:58christian.heimessetmessages: + msg406646
2021-11-19 21:23:11christian.heimessetpull_requests: + pull_request27877
2021-11-19 19:20:40christian.heimessetmessages: + msg406618
2021-11-19 19:11:38erlendaaslandsetnosy: + erlendaasland
2021-11-19 17:04:17christian.heimessetkeywords: + patch
stage: patch review
pull_requests: + pull_request27874
2021-11-19 16:56:30christian.heimescreate