Phoenix icon indicating copy to clipboard operation
Phoenix copied to clipboard

WAF build in venv fails due to python-config output parsing

Open Tristan971 opened this issue 1 year ago • 6 comments

Operating system: Linux (Fedora 39) wxPython version & source: 4.2.1 from source Python version & source: Stock 3.10.13 via PyEnv

Description of the problem:

The build fails with the following error:

  Running command: build_py
  Checking for /tmp/tmpz108wmnq/wxPython-4.2.1/bin/waf-2.0.24...
  "/tmp/tmpnqs7wx48/.venv/bin/python" /tmp/tmpz108wmnq/wxPython-4.2.1/bin/waf-2.0.24 --wx_config=/tmp/tmpz108wmnq/wxPython-4.2.1/build/wxbld/gtk3/wx-config --gtk3 --python="/tmp/tmpnqs7wx48/.venv/bin/python" --out=build/waf/3.10/gtk3 configure build 
  Setting top to                           : /tmp/tmpz108wmnq/wxPython-4.2.1 
  Setting out to                           : /tmp/tmpz108wmnq/wxPython-4.2.1/build/waf/3.10/gtk3 
  Checking for 'gcc' (C compiler)          : /usr/bin/gcc 
  Checking for 'g++' (C++ compiler)        : /usr/bin/g++ 
  Checking for program 'python'            : /tmp/tmpnqs7wx48/.venv/bin/python 
  Checking for python version >= 3.7.0     : 3.10.13 
  python-config                            : /home/tristan/.pyenv/shims/python3.10-config 
  Asking python-config for pyext '--cflags --libs --ldflags' flags : not found 
  The configuration failed
  (complete log in /tmp/tmpz108wmnq/wxPython-4.2.1/build/waf/3.10/gtk3/config.log)
  Command '"/tmp/tmpnqs7wx48/.venv/bin/python" /tmp/tmpz108wmnq/wxPython-4.2.1/bin/waf-2.0.24 --wx_config=/tmp/tmpz108wmnq/wxPython-4.2.1/build/wxbld/gtk3/wx-config --gtk3 --python="/tmp/tmpnqs7wx48/.venv/bin/python" --out=build/waf/3.10/gtk3 configure build ' failed with exit code 1.
  Finished command: build_py (0.674s)
  Finished command: build (1m2.111s)
  WARNING: Building this way assumes that all generated files have been 
  generated already.  If that is not the case then use build.py directly 
  to generate the source and perform the build stage.  You can use 
  --skip-build with the bdist_* or install commands to avoid this 
  message and the wxWidgets and Phoenix build steps in the future.
  
  "/tmp/tmpnqs7wx48/.venv/bin/python" -u build.py build
  Command '"/tmp/tmpnqs7wx48/.venv/bin/python" -u build.py build' failed with exit code 1.

It's a bit noisy but I believe the issue is:

Asking python-config for pyext '--cflags --libs --ldflags' flags : not found 

Which is surprising because:

$ python-config --cflags --libs --ldflags
-I/home/tristan/.pyenv/versions/3.10.13/include/python3.10 -I/home/tristan/.pyenv/versions/3.10.13/include/python3.10  -Wno-unused-result -Wsign-compare  -DNDEBUG -g -fwrapv -O3 -Wall
 -lcrypt -ldl  -lm -lm 
 -L/home/tristan/.pyenv/versions/3.10.13/lib  -lcrypt -ldl  -lm -lm 

Does this somehow look like an odd output for it? Because afaict it's the same as my system Python one:

$ python-config --cflags --libs --ldflags
-I/usr/include/python3.12 -I/usr/include/python3.12  -fno-strict-overflow -Wsign-compare -fcf-protection -fexceptions   -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions 
 -ldl  -lm 
 -L/usr/lib64  -ldl  -lm

Well, admittedly there a few duplicated flags in my venv's Python for whatever reason... :thinking:

Tristan971 avatar Nov 13 '23 00:11 Tristan971

Seems like a WAF issue, so I raised https://gitlab.com/ita1024/waf/-/issues/2420, and over there it seems like it might be a PyEnv issue... Waiting for feedback from upstream for now.

Tristan971 avatar Nov 14 '23 13:11 Tristan971

Any update on the issue @Tristan971? I saw there on gitlab they recommended you spoke with people from pyenv, had any luck with them?

Lucas-Froguel avatar Dec 15 '23 16:12 Lucas-Froguel

Unfortunately I didn't pursue further at that point, since getting to that already took longer than I could afford on it... :/ I ended up installing the binary wheel

Tristan971 avatar Dec 15 '23 16:12 Tristan971

I bet. I've spent quite some hours figuring this out before I stumbled here. Unfortunately, there are no wheels for arch, so I'm kinda stuck not being able to use it.

Lucas-Froguel avatar Dec 15 '23 17:12 Lucas-Froguel

If you are coming here from ARCH/ARCH based distros trying to build WXPython, I think that is currently not possible, however I did manage do use the ubuntu22.04 pre-built wheels made available by the developers and it did run properly, given I had to install libtiff.so.5 via yay -S libtiff5. Not great, but at least it worked.

Lucas-Froguel avatar Dec 18 '23 12:12 Lucas-Froguel

@Lucas-Froguel Thanks for the tip, I tried 3 hours yesterday and spent only 5 minutes after reading your comment and managed to get wxpython on arch.

adam-coates avatar May 14 '24 16:05 adam-coates