New submission from Ned Deily <n...@python.org>:

./configure supports using the system or third-party-supplied pkg-config 
utility to find or override the default location of header and library files 
when building a few C extensions in the standard library, namely from OpenSSL 
for the _ssl module, libffi for ctypes, and, new in 3.10, Tcl/Tk for _tkinter 
(bpo-42603). However, currently for 3.10.0, pkg-config usage is broken for 
libffi and Tcl/Tk (but not OpenSSL). When running ./configure, there is an 
unexpected warning that is easily overlooked:

[...]
checking for --with-libs... no
./configure: line 10545: PKG_PROG_PKG_CONFIG: command not found
checking for --with-system-expat... no
[...]

PKG_PROG_PKG_CONFIG is a macro provided by GNU Autotools that is supposed to be 
in aclocal.m4. Unfortunately, it appears to have been inadvertently deleted in 
2fc857a5721a5b42bcb696c9cae1bbcc82a91b17 (PR 25860) probably due to an autoconf 
version mismatch. The net effect is that the configure variable PKG_CONFIG, the 
location of the pkg-config utility, is undefined so tests in configure for the 
location of libffi and of Tcl and Tk do not take into account any pkg-config 
info and use any default locations (i.e. /usr/include). For most builds, that 
likely still produces the desired results. But it won't if a builder is trying 
to override these locations or is building on a platform with different default 
or is using a third-party package manager and pkg-config to supply libraries.  
Note, the _ssl module builds are not affected by this problem as the 
AX_CHECK_OPENSSL macro in aclocal.m4 does not depend on PKG_PROG_PKG_CONFIG to 
find pkg-config.

It appears that the problem can be worked around by explicitly setting the 
PKG_CONFIG build variable when invoking configure, something like:

  ./configure [...] PKG_CONFIG=$(which pkg-config)

But the PR 25860 changes to aclocal.a4 should be carefully reviewed and the 
pkg-config related deletes restored; there might be other problems, too. This 
is not the first time we've been caught up by unexpected autoconf changes and, 
as is clear here, it is too easy for them to go unnoticied. Perhaps we should 
try to figure out how to reduce those risks.

----------
assignee: pablogsal
components: Build
messages: 403076
nosy: ned.deily, pablogsal
priority: high
severity: normal
stage: needs patch
status: open
title: configure incorrectly ignores pkg-config information for libffi and 
Tcl/Tk in 3.10
versions: Python 3.10, Python 3.11

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue45350>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to