Release: waf vs install directories
James Browning
jamesb192 at jamesb192.com
Tue Mar 25 12:30:31 UTC 2025
On Monday, March 24, 2025 8:25:10 PM Pacific Daylight Time you wrote:
> > The code has changed, behavior is not noticeably different than it was
> > before.
> Didn't it change from dist-packages to site-packages on Debian and friends?
Yes, it does due to upstream waf and/or Python changes.
According to the table I made (below), waf 2.0 on Ubuntu wrongly installs in
the dist packages folder and PYTHON{,ARCH}DIR are only separated on Fedora
running Python 3 and waf 2.0; I didn't check other distributions.
Distro | Python | waf | PYTHONDIR / PYTHONARCHDIR |
------ | ---- | ------ | ------------------------- |
Fedora | 2. 7 | 2.0.25 | /usr/local/lib/python2.7/site-packages |
Fedora | 2. 7 | 2.1. 4 | /usr/local/lib/python2.7/site-packages |
Fedora | 3.13 | 2.0.25 | /usr/local/lib{,64}/python3.13/site-packages |
Fedora | 3.13 | 2.1. 4 | /usr/local/lib/python3.13/site-packages |
Ubuntu | 2. 7 | 2.0.25 | /usr/local/lib/python2.7/dist-packages |
Ubuntu | 2. 7 | 2.1. 4 | /usr/local/lib/python2.7/site-packages |
Ubuntu | 3.12 | 2.0.25 | /usr/local/lib/python3/dist-packages |
Ubuntu | 3.12 | 2.1. 4 | /usr/local/lib/python3.12/site-packages |
The source for PYTHONDIR and PYTHONARCHDIR changed sometime between waf
2.0.25 and 2.14.
waf 2.0.25 tries to get them from distutils.sysconfig.get_python_lib, or if
that fails sysconfig.get_path via a wrapper in waflib.Tools.python
waf 2.1.4 OTOH only uses sysconfig.get_path via a waflib.Tools.python wrapper
TLDW details are in the .waf-* folders after an initial waf run.
More information about the devel
mailing list