Building Phoenix on Travis-CI (Ubuntu 12.04) fails at build_py step

First of all, sorry if this is a duplicate post - I don’t remember if I hit “Post” or “Discard” on the last one. ¯_(ツ)_/¯

I’m trying to build wxPython Phoenix from source on Travis-CI (which is effectively Ubuntu 12.04).

For some reason, build/build.py sip does not correctly download sip. I’ve gotten around this by building sip from source. Below is the process flow I’m following. I separate out each build.py step to help me debug.

1. DL, extract, and build sip from source.

2. Create environment variable ‘SIP’ which points to the install

3. DL wxPython Phoenix source tarball, extract, cd to extracted dir

4. python ./build.py --build_dir=./bld dox

5. python ./build.py --build_dir=./bld touch

6. python ./build.py --build_dir=./bld etg --nodoc

**7. **sudo -E python ./build.py --build_dir=./bld sip # I’ve found that I need sudo for this step. -E is to keep environment variables.

**8. **python ./build.py --build_dir=./bld build_wx

Up to here, everything appears to work fine. But when I run

**9. **python ./build.py --build_dir=./bld build_py

I get a “no member named ‘api_get_reference’” error during [188/712] cxx: sip/cpp/sip_corewxHeaderCtrlEvent.cpp → build/waf/3.4/sip/cpp/sip_corewxHeaderCtrlEvent.cpp.3.o.

Does anyone know how to fix this? Am I missing a package? Is there a configuration item I can set to skip this?

System and Version Info:

OS: Ubuntu 12.04 LTS (precise)

Linux Version: 2.6.32-042stab090.5

Python: 3.4.2 x86_64

wxPython: 3.0.3.dev1820+49a8884

sip: 4.16.9

Here’s the full error text, starting with [188/712]:

···

[188/712] cxx: sip/cpp/sip_corewxHeaderCtrlEvent.cpp → build/waf/3.4/sip/cpp/sip_corewxHeaderCtrlEvent.cpp.3.o

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_arrowColour(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:113:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelBitmap(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:184:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelColour(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:223:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelFont(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:265:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_labelText(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:304:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp: In function ‘PyObject* varget_wxHeaderButtonParams_m_selectionColour(void*, PyObject*, PyObject*)’:

…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp:346:13: error: ‘const sipAPIDef’ has no member named ‘api_get_reference’

Waf: Leaving directory `/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4’

Build failed

→ task in ‘_core’ failed (exit status 1):

{task 140029216390280: cxx sip_corewxHeaderButtonParams.cpp -> sip_corewxHeaderButtonParams.cpp.3.o}

[‘/usr/bin/g++’, ‘-fPIC’, ‘-pthread’, ‘-pthread’, ‘-pthread’, ‘-I/usr/include/gtk-2.0’, ‘-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include’, ‘-I/usr/include/atk-1.0’, ‘-I/usr/include/cairo’, ‘-I/usr/include/gdk-pixbuf-2.0’, ‘-I/usr/include/pango-1.0’, ‘-I/usr/include/gio-unix-2.0/’, ‘-I/usr/include/glib-2.0’, ‘-I/usr/lib/x86_64-linux-gnu/glib-2.0/include’, ‘-I/usr/include/pixman-1’, ‘-I/usr/include/freetype2’, ‘-I/usr/include/libpng12’, ‘-UNDEBUG’, ‘-g’, ‘-pthread’, ‘-fwrapv’, ‘-fstack-protector’, ‘-fno-strict-aliasing’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bld/lib/wx/include/gtk2-unicode-3.0’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/ext/wxWidgets/include’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4/sip/siplib’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/sip/siplib’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/build/waf/3.4/src’, ‘-I/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/src’, ‘-I/opt/python/3.4.2/include/python3.4m’, ‘-DPYTHONDIR=“/usr/local/lib/python3.4/site-packages”’, ‘-DPYTHONARCHDIR=“/usr/local/lib/python3.4/site-packages”’, ‘-DHAVE_PYTHON_H=1’, ‘-DHAVE_WX=1’, ‘-DHAVE_WXADV=1’, ‘-DHAVE_WXSTC=1’, ‘-DHAVE_WXHTML=1’, ‘-DHAVE_WXGL=1’, ‘-DHAVE_WXWEBVIEW=1’, ‘-DHAVE_WXXML=1’, ‘-DHAVE_WXXRC=1’, ‘-DHAVE_WXRICHTEXT=1’, ‘-D_FILE_OFFSET_BITS=64’, ‘-DWXUSINGDLL’, ‘-D__WXGTK__’, ‘…/…/…/sip/cpp/sip_corewxHeaderButtonParams.cpp’, ‘-c’, ‘-o’, ‘sip/cpp/sip_corewxHeaderButtonParams.cpp.3.o’]

Command '“/home/travis/virtualenv/python3.4.2/bin/python” /home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bin/waf-1.7.15-p1 --wx_config=/home/travis/build/dougthor42/wafer_map/wxPython_Phoenix-3.0.3.dev1820+49a8884/bld/wx-config --python=“/home/travis/virtualenv/python3.4.2/bin/python” --out=build/waf/3.4 configure build ’ failed with exit code 1.

Finished command: build_py (2m3.778s)

The command “python ./build.py --build_dir=./bld build_py” failed and exited with 1 during .

Your build has been stopped.


You can see the entire Travis build log here (Travis CI).

Hi Douglas,

IIRC the SIP Robin uses is patched and should be in the repo.

Have you reviewed the info in README.rst?

I also noted that you commented the Python dev dependency in your .travis-yml file, although this is not the reason for your current problem, and you also seem to use a snapshot build and not the repo.

https://github.com/wxWidgets/Phoenix

Werner

Yes, I’ve read over the README.rst multiple times :slight_smile: That’s how I found out that I could separate out the build commands and that I could use a different SIP install via environment variable.

I’m using a snapshot build since that’s what I’m running in my main (Windows) development environment.

If I try building the snapshot build directly from the script, such as with

pip install --upgrade --pre --trusted-host wxpython.org -f Index of /Phoenix/snapshot-builds wxPython_Phoenix

the travis build times out. If I add verbosity (-vvv), then the build fails somewhere in SIP.

I’ll try the following:

  1. Building from a repo clone of commit 49a8884 rather than a snapshot build.
  • which means using SIP found in the repo rather than downloaded.
  1. Adding python3.4-dev to the package list

and let people know how it goes.

Thanks,

···

On Friday, July 24, 2015 at 2:59:45 AM UTC-7, werner wrote:

Hi Douglas,

IIRC the SIP Robin uses is patched and should be in the repo.

Have you reviewed the info in README.rst?

I also noted that you commented the Python dev dependency in your
.travis-yml file, although this is not the reason for your current
problem, and you also seem to use a snapshot build and not the repo.

https://github.com/wxWidgets/Phoenix

Werner

Building from the repo clone also doesn’t work, at least not right out of the box.

Summary:

SIP failing to start, claiming Error #126 (Permission Denied / File Not Executable).

Can’t download SIP via build.py script, so I did it myself (this time from Phoenix/tools).

**Issue #1: Error with build.py dox command **(Solved)

build.py thinks that it downloaded doxygen OK, but then it can’t find the file. /shrug

Error text:

···

$ python ./build.py --build_dir=./bld dox
Build using: "/home/travis/virtualenv/python3.4.2/bin/python"
3.4.2 (default, Feb 5 2015, 15:56:51) [GCC 4.6.3]
Python's architecture is 64bit
cfg.VERSION: 3.0.3
Running command: dox
Checking for /home/travis/build/dougthor42/wafer_map/Phoenix/bin/doxygen-1.8.8-linux...
Not found. Attempting to download...
Connection successful...
Data downloaded...
Checking for /home/travis/build/dougthor42/wafer_map/Phoenix/bin/doxygen-1.8.8-linux...
Traceback (most recent call last):
File "./build.py", line 1653, in <module>
main(sys.argv[1:]) File "./build.py", line 170, in main
function(options, args)
File "./build.py", line 708, in cmd_dox
_doDox('xml')
File "./build.py", line 701, in _doDox
pwd = pushDir(posixjoin(wxDir(), 'docs/doxygen'))
File "./build.py", line 434, in __init__
os.chdir(newDir)
FileNotFoundError: [Errno 2] No such file or directory: '/home/travis/build/dougthor42/wafer_map/Phoenix/ext/wxWidgets/docs/doxygen'
Finished command: dox (0m1.725s)
The command "python ./build.py --build_dir=./bld dox" failed and exited with 1 during .
Your build has been stopped.

Solution:

I manually download doxygen from http://wxpython.org/Phoenix/tools/doxygen-1.8.8-linux.bz2, extract it, and chmod:

  • bzip2 -d doxygen-1.8.8-linux.bz2
  • mv doxygen-1.8.8-linux ./bin/doxygen-1.8.8-linux
  • chmod 755 ./bin/doxygen-1.8.8-linux

Now the build can get through the dox step.

Error #2: build.py cannot find sip (Unsolved):

build.py cannot find sip, claiming that the file doesn’t exist.

You can see the error text at the bottom of this: Travis CI

So I tried the same thing as I did with dox: tried getting sip manually from Phoenix/tools:

  • bzip2 -d sip-4.16.7-linux.bz2
  • mv sip-4.16.7-linux ./bin/sip-4.16.7-linux
  • chmod 755 ./bin/sip-4.16.7-linux

But that didn’t work entirely. I got a new error:

No such file or directory: ‘/home/travis/build/dougthor42/wafer_map/Phoenix/bin/sip-4.16.7-linux’

(See Travis CI)

So I thought, OK fine, I need to set the envion var. So I do so

  • export SIP=/home/travis/build/dougthor42/wafer_map/Phoenix/bin
  • set | grep SIP
  • env | grep SIP

and get error 126: permission denied or command not executable. Note that I am using sudo.


[0K$ sudo -E python ./build.py --build_dir=./bld sip

Build using: “/usr/bin/python”

2.7.3 (default, Dec 18 2014, 19:10:20)

[GCC 4.6.3]

Python’s architecture is 64bit

cfg.VERSION: 3.0.3

Running command: sip

/home/travis/build/dougthor42/wafer_map/Phoenix/bin/ -w -o -I /home/travis/build/dougthor42/wafer_map/Phoenix/src -I /home/travis/build/dougthor42/wafer_map/Phoenix/sip/gen -c /tmp/tmp3J61Ec -b sip/cpp/_core.sbf -X pycode_core:wx/core.py sip/gen/_core.sip

/bin/sh: 1: /home/travis/build/dougthor42/wafer_map/Phoenix/bin/: Permission denied

Command ‘/home/travis/build/dougthor42/wafer_map/Phoenix/bin/ -w -o -I /home/travis/build/dougthor42/wafer_map/Phoenix/src -I /home/travis/build/dougthor42/wafer_map/Phoenix/sip/gen -c /tmp/tmp3J61Ec -b sip/cpp/_core.sbf -X pycode_core:wx/core.py sip/gen/_core.sip’ failed with exit code 126.

Finished command: sip (0.153s)

travis_time:end:08d6a602:start=1437760360345360560,finish=1437760360873592795,duration=528232235

[0K

[31;1mThe command “sudo -E python ./build.py --build_dir=./bld sip” failed and exited with 126 during .[0m

Your build has been stopped.


See Travis CI

So that’s where I’m at right now. SIP unable to start.

On Friday, July 24, 2015 at 9:28:06 AM UTC-7, Douglas Thor wrote:

Yes, I’ve read over the README.rst multiple times :slight_smile: That’s how I found out that I could separate out the build commands and that I could use a different SIP install via environment variable.

I’m using a snapshot build since that’s what I’m running in my main (Windows) development environment.

If I try building the snapshot build directly from the script, such as with

pip install --upgrade --pre --trusted-host wxpython.org -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix

the travis build times out. If I add verbosity (-vvv), then the build fails somewhere in SIP.

I’ll try the following:

  1. Building from a repo clone of commit 49a8884 rather than a snapshot build.
  • which means using SIP found in the repo rather than downloaded.
  1. Adding python3.4-dev to the package list

and let people know how it goes.

Thanks,

On Friday, July 24, 2015 at 2:59:45 AM UTC-7, werner wrote:

Hi Douglas,

IIRC the SIP Robin uses is patched and should be in the repo.

Have you reviewed the info in README.rst?

I also noted that you commented the Python dev dependency in your
.travis-yml file, although this is not the reason for your current
problem, and you also seem to use a snapshot build and not the repo.

https://github.com/wxWidgets/Phoenix

Werner

Hi,

Can you build without using Travis-CI? If not you might want to check the archive of the list. IIRC there was someone else having problems within the last few month and I believe it got resolved.

Werner

I have a linux box at home, but it’s Mint 17.1 (Ubuntu 14.04 base) rather than 12.04 base.

I ran through the steps, and everything appeared to work fine.

build.py dox: script successfully downloaded doxygen for me.

build.py touch: no change from Travis-CI result

build.py etg --nodoc: no change from Travis-CI result

build.py sip: script successfully downloaded sip for me.

build.py build_wx: no change from Travis-CI result

build.py build_py: successfully builds.

So I sadly cannot recreate the issue.

I’ve been searching for the solution to this for a few weeks now. If I didn’t find the previous post that you’re referring to, I doubt I will now. Do you remember any keywords about it? Perhaps they used a unique word or phrase.

···

On Saturday, July 25, 2015 at 1:30:02 AM UTC-7, werner wrote:

Hi,

Can you build without using Travis-CI? If not you might want to check
the archive of the list. IIRC there was someone else having problems
within the last few month and I believe it got resolved.

Werner

Hi,

···

On 7/26/2015 21:50, Douglas Thor wrote:

I have a linux box at home, but it's Mint 17.1 (Ubuntu 14.04 base)
rather than 12.04 base.

I ran through the steps, and everything appeared to work fine.

*build.py dox:* script successfully downloaded doxygen for me.
*build.py touch: *no change from Travis-CI result
*build.py etg --nodoc: *no change from Travis-CI result
*build.py sip: *script successfully downloaded sip for me.
*build.py build_wx: *no change from Travis-CI result
*build.py build_py: *successfully builds.

So I sadly cannot recreate the issue.

I've been searching for the solution to this for a few weeks now. If I
didn't find the previous post that you're referring to, I doubt I will
now. Do you remember any keywords about it? Perhaps they used a unique
word or phrase.

I am not sure, but these threads talk about build issues:

[wxPython-dev] Phoenix: Build fails on master but not snapshot
[wxPython-dev] Phoenix: Issues encountered doing a Windows build from a git clone

Could it be that you only searched the wxPython-users list?

Werner

Douglas Thor wrote:

Building from the repo clone also doesn’t work, at least not right out of the box.

Summary:

SIP
failing to start, claiming Error #126 (Permission Denied / File Not Executable).

Can’t download SIP via build.py script, so I did it myself (this time from Phoenix/tools).

** Issue
#1: Error with build.py dox command **(Solved)

build.py
thinks that it downloaded doxygen OK, but then it can’t find the file. /shrug

Error text:



$ python ./build.py --build_dir=./bld dox
Build using: "/home/travis/virtualenv/python3.4.2/bin/python"
3.4.2 (default, Feb 5 2015, 15:56:51) [GCC 4.6.3]
Python's architecture is 64bit
cfg.VERSION: 3.0.3
Running command: dox
Checking for /home/travis/build/dougthor42/wafer_map/Phoenix/bin/doxygen-1.8.8-linux...
Not found. Attempting to download...
Connection successful...
Data downloaded...
Checking for /home/travis/build/dougthor42/wafer_map/Phoenix/bin/doxygen-1.8.8-linux...
Traceback (most recent call last):
File "./build.py", line 1653, in <module>
main(sys.argv[1:]) File "./build.py", line 170, in main
function(options, args)
File "./build.py", line 708, in cmd_dox
_doDox('xml')
File "./build.py", line 701, in _doDox
pwd = pushDir(posixjoin(wxDir(), 'docs/doxygen'))
File "./build.py", line 434, in __init__
os.chdir(newDir)
FileNotFoundError: [Errno 2] No such file or directory: '/home/travis/build/dougthor42/wafer_map/Phoenix/ext/wxWidgets/docs/doxygen'
Finished command: dox (0m1.725s)
The command "python ./build.py --build_dir=./bld dox" failed and exited with 1 during .
Your build has been stopped.

This error is not due to the doxygen executable not being found, but rather that the …/Phoenix/ext/wxWidgets/docs/doxygen folder
was not found. Did you checkout the wxWidgets submodule in addition to
Phoenix?


Solution:

I
manually download doxygen from , extract it, and chmod:

  • wget
  • bzip2 -d doxygen-1.8.8-linux.bz2
  • mv doxygen-1.8.8-linux ./bin/doxygen-1.8.8-linux
  • chmod
    755 ./bin/doxygen-1.8.8-linux

Now
the build can get through the dox step.

** Error
#2: build.py cannot find sip (Unsolved):**

build.py
cannot find sip, claiming that the file doesn’t exist.

You
can see the error text at the bottom of this:

That is actually the same error as the above.

So I tried the same thing as I did with dox: tried getting sip manually from Phoenix/tools:

  • wget
  • bzip2 -d sip-4.16.7-linux.bz2
  • mv sip-4.16.7-linux ./bin/sip-4.16.7-linux
  • chmod 755 ./bin/sip-4.16.7-linux

But that didn’t work entirely. I got a new error:

No such file or directory: ‘/home/travis/build/dougthor42/wafer_map/Phoenix/bin/sip-4.16.7-linux’

(See )

So
I thought, OK fine, I need to set the envion var. So I do so

  • export SIP=/home/travis/build/dougthor42/wafer_map/Phoenix/bin
  • set | grep SIP
  • env | grep SIP

and
get error 126: permission denied or command not executable. Note that I
am using sudo.

I wonder if perhaps it is because of using sudo parts of the build that the ownership and permissions are getting confused and it is causing problems elsewhere. It really should not be needed, because the builder
will have full permissions to do whatever is needed within the workspace.


[0K$ sudo -E python ./build.py --build_dir=./bld sip

Build
using: “/usr/bin/python”

2.7.3 (default, Dec 18 2014, 19:10:20)

[GCC 4.6.3]

Python’s architecture is 64bit

cfg.VERSION: 3.0.3

Running command: sip

/home/travis/build/dougthor42/wafer_map/Phoenix/bin/
-w -o -I /home/travis/build/dougthor42/wafer_map/Phoenix/src -I /home/travis/build/dougthor42/wafer_map/Phoenix/sip/gen -c /tmp/tmp3J61Ec -b sip/cpp/_core.sbf -X pycode_core:wx/core.py sip/gen/_core.sip

/bin/sh: 1: /home/travis/build/dougthor42/wafer_map/Phoenix/bin/: Permission denied

Notice that there isn’t anything after the …/Phoenix/bin/ ? That is where the sip executable filename should be, and so the error is because
the bin folder is not an executable. Perhaps there was an issue in setting the envvar.

Command ‘/home/travis/build/dougthor42/wafer_map/Phoenix/bin/ -w -o -I /home/travis/build/dougthor42/wafer_map/Phoenix/src -I /home/travis/build/dougthor42/wafer_map/Phoenix/sip/gen -c /tmp/tmp3J61Ec -b sip/cpp/_core.sbf -X pycode_core:wx/core.py sip/gen/_core.sip’ failed with exit code 126.

Finished command: sip (0.153s)

travis_time:end:08d6a602:start=1437760360345360560,finish=1437760360873592795,duration=528232235

[0K

[31;1mThe command “sudo -E python ./build.py --build_dir=./bld sip” failed and exited with 126 during . [0m

Your
build has been stopped.


See

So
that’s where I’m at right now. SIP unable to start.

It really would be better to figure out why it’s not downloading the tools in build.py, or is unable to use them, and fix the problem there.
Is it something that travis is preventing? What were the errors when it tried to do the download of the tools? The only potential issue I can think of is if the linux build host is 32-bit, because the tools are compiled for 64-bit.

···

http://wxpython.org/Phoenix/tools/doxygen-1.8.8-linux.bz2http://wxpython.org/Phoenix/tools/doxygen-1.8.8-linux.bz2https://travis-ci.org/dougthor42/wafer_map/builds/72493336http://wxpython.org/Phoenix/tools/sip-4.16.7-linux.bz2https://travis-ci.org/dougthor42/wafer_map/builds/72498645https://travis-ci.org/dougthor42/wafer_map/builds/72501284

Robin Dunn

Software Craftsman

http://wxPython.org

Did you checkout the wxWidgets submodule in addition to Phoenix?
If you mean via “git submodule init” and “git submodule update”, then yes.

I don’t remember exactly when I implemented that, but as of right now the build script successfully downloads and runs doxygen. It may be that I was having the doxygen error before checking out the wxWidgets submodule.

···

It really would be better to figure out why it’s not downloading the tools in build.py, or is unable to use them, and fix the problem there.
I agree, that would make things much easier.

Is it something that travis is preventing? What were the errors when it tried to do the download of the tools?
There’s nothing preventing downloads that I’m aware of - other items are downloaded and run successfully. There only error displayed was “no file or directory” after the download of SIP:

================== SIP Download Error Text ==================

$ python ./build.py --build_dir=./bld sip

Build using: “/home/travis/virtualenv/python3.4.2/bin/python”

3.4.2 (default, Feb 5 2015, 15:56:51)

[GCC 4.6.3]

Python’s architecture is 64bit

cfg.VERSION: 3.0.3

Running command: sip

Checking for /home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux…

Not found. Attempting to download…

Connection successful…

Data downloaded…

Checking for /home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux…

ERROR: Could not execute /home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux, got “[Errno 2] No such file or directory: ‘/home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux’”

   Set SIP in the environment to use a local build of sip instead

Finished command: sip (0.519s)

The command “python ./build.py --build_dir=./bld sip” failed and exited with 1 during .

Your build has been stopped.

================ End SIP Download Error Text ================

What’s odd is that it says the connection is successful and (apparently) the data is downloaded.

To check if SIP was actually downloaded, I checked the wxPython directories with ‘ls -lh’:

$ ls -lh /home/travis/build/dougthor42/ci_setup_testing/Phoenix/

total 208K

-rwxrwxr-x 1 travis travis 268 Aug 11 01:49 b

drwxrwxr-x 2 travis travis 4.0K Aug 11 01:51 bin

drwxrwxr-x 2 travis travis 40 Aug 11 01:49 buildbot

-rwxrwxr-x 1 travis travis 58K Aug 11 01:49 build.py

drwxrwxr-x 3 travis travis 122 Aug 11 01:50 buildtools

drwxrwxr-x 7 travis travis 8.0K Aug 11 01:49 demo

drwxrwxr-x 3 travis travis 99 Aug 11 01:49 docs

drwxrwxr-x 3 travis travis 8.0K Aug 11 01:51 etg

drwxrwxr-x 3 travis travis 4.0K Aug 11 01:51 etgtools

drwxrwxr-x 3 travis travis 39 Aug 11 01:49 ext

-rw-rw-r-- 1 travis travis 11K Aug 11 01:49 ez_setup.py

-rw-rw-r-- 1 travis travis 339 Aug 11 01:49 MANIFEST.in

drwxrwxr-x 2 travis travis 94 Aug 11 01:49 packaging

-rw-rw-r-- 1 travis travis 16K Aug 11 01:49 README.rst

drwxrwxr-x 15 travis travis 4.0K Aug 11 01:49 samples

-rw-rw-r-- 1 travis travis 13K Aug 11 01:49 setup.py

drwxrwxr-x 5 travis travis 39 Aug 11 01:49 sip

drwxrwxr-x 3 travis travis 4.0K Aug 11 01:51 sphinxtools

drwxrwxr-x 2 travis travis 4.0K Aug 11 01:49 src

-rw-rw-r-- 1 travis travis 6.6K Aug 11 01:49 TODO.txt

drwxrwxr-x 4 travis travis 12K Aug 11 01:49 unittests

-rw-rw-r-- 1 travis travis 24K Aug 11 01:49 wscript

drwxrwxr-x 5 travis travis 4.0K Aug 11 01:51 wx

$ ls -lh /home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin

total 13M

-rw-rw-r-- 1 travis travis 1.3K Aug 11 01:49 build-sip-msw

-rwxrwxr-x 1 travis travis 1.5K Aug 11 01:49 build-sip-posix

-rwxr-xr-x 1 travis travis 12M Aug 11 01:50 doxygen-1.8.8-linux

-rwxrwxr-x 1 travis travis 4.0K Aug 11 01:49 make-new-etg-file.py

-rwxrwxr-x 1 travis travis 1.6K Aug 11 01:49 make-new-unittest-file.py

-rw-rw-r-- 1 travis travis 286 Aug 11 01:49 mymd5.py

-rwxr-xr-x 1 travis travis 325K Aug 11 01:51 sip-4.16.7-linux

$ file /home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux

/home/travis/build/dougthor42/ci_setup_testing/Phoenix/bin/sip-4.16.7-linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xbfa6be84e8c98068db168af694fcb1aaf3814683, not stripped

As you can see, it looks like sip-4.16.7-linux is downloaded successfully. Size is 325K and it has the read-write-execute permissions. However, the build script can’t seem to find/execute that file.


The only potential issue I can think of is if the linux build host is 32-bit, because the tools are compiled for 64-bit.
According to uname -a on the system, it’s 64-bit:

& uname -a

Linux testing-worker-linux-docker-40ad31a9-3196-linux-7 3.13.0-40-generic #69-Ubuntu SMP Thu Nov 13 17:53:56 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Robin Dunn wrote:

It really would be better to figure out why it’s not downloading
the tools in build.py, or is unable to use them, and fix the problem there.
Is it something that travis is preventing? What were the errors when it tried to do the download of the tools? The only potential issue I can think of is if the linux build host is 32-bit, because the tools are compiled for 64-bit.

Actually, I was misremembering. The sip binary is built for 32-bit in order to be more widely compatible, but if the target system is 64-bit and doesn’t have the ia32-libs package installed then it will give you an error (file not found I think).

I’ve started on an official travis recipe for Phoenix so I’ll see if I can work it out. If travis doesn’t allow ia32-libs (testing it now) then I’ll switch to two sip binaries for linux. Keep an eye on this branch:

···

https://github.com/RobinD42/Phoenix/tree/travis-setup


Robin Dunn

Software Craftsman

http://wxPython.org

Robin Dunn wrote:

Robin Dunn wrote:

It really would be better to figure out why it’s not downloading
the tools in build.py, or is unable to use them, and fix the problem there.
Is it something that travis is preventing? What were the errors when it tried to do the download of the tools? The only potential issue I can think of is if the linux build host is 32-bit, because the tools are compiled for 64-bit.

Actually, I was misremembering. The sip binary is built for 32-bit in order to be more widely compatible, but if the target system is 64-bit and doesn’t have the ia32-libs package installed then it will give you an error (file not found I think).

I’ve started on an official travis recipe for Phoenix so I’ll see if I can work it out. If travis doesn’t allow ia32-libs (testing it now) then I’ll switch to two sip binaries for linux. Keep an eye on this branch:

It looks like it’s a no go, so I’ll look at implementing Plan B after dinner.

···

https://github.com/RobinD42/Phoenix/tree/travis-setup

Robin Dunn

Software Craftsman

http://wxPython.org

Hey Robin,

I noticed that you merged your travis-setup branch back into your master and that you added a 64-bit version of SIP to http://wxpython.org/Phoenix/tools/.

I re-ran one of my old travis builds and some newer ones and everything appears to work wonderfully (aside from taking a long time like you mentioned in the commit messages).

Thanks for getting the 64bit SIP! It means I don’t have to jump through any of the hoops that I had been trying to get these builds working :slight_smile:

···

======================

As for speeding the Travis build up, I wonder if a dedicated Travis-CI linux wheel could be made. I’m running a build on Travis right now that will (hopefully) create a whl artifact, but I don’t have an AWS account so I can’t upload the build artifact anywhere. /shrug.

I made a linux wheel using Linux Mint 17.1 (Ubuntu 14.04 base) and tried it on Travis. It appears to have worked. (Horray!)

The original post in this thread was in order to install wxPython Phoenix in Travis to run CI on my projects that use Phoenix - not to build Phoenix from source within Travis (though that was the primary workaround that I tried).

That said, there is now a Python34, 64bit, linux wheel for wxPython Phoenix which solves my original issue. This file can be found at

http://dougthor42.github.io/tools/wxPython-3.0.3-cp34-cp34m-linux_x86_64.whl

for those that want to use it. The file was built from a git clone of the master branch of Phoenix, using commit # 49a8884e7c. Please remember that this is not an official wheel of Phoenix and, while I intended to keep everything the same as commit # 49a8884e7c, there may have been some environment settings or packages or whatnot that were different on my home linux system. So please use at your own risk.

Here’s how I use it in my .travis.yml file:

install:

It takes about 12s to download and install, vs the 30 minutes to build wxPython Phoenix from source.

So in the end, I am very very happy with this outcome. I can finally get all my projects’ linux CI working!