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

瀏覽次數:141 次
跳到第一則未讀訊息

Douglas Thor

未讀,
2015年7月23日 下午2:38:552015/7/23
收件者:wxPython-users
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 (https://travis-ci.org/dougthor42/wafer_map/builds/72217442).

Werner

未讀,
2015年7月24日 清晨5:59:452015/7/24
收件者:wxpytho...@googlegroups.com
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

Douglas Thor

未讀,
2015年7月24日 中午12:28:062015/7/24
收件者:wxPython-users、wern...@gmx.ch
Yes, I've read over the README.rst multiple times :-)   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.
2. Adding python3.4-dev to the package list

and let people know how it goes.

Thanks,

Douglas Thor

未讀,
2015年7月24日 下午3:24:302015/7/24
收件者:wxPython-users、wern...@gmx.ch、doug...@gmail.com
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: https://travis-ci.org/dougthor42/wafer_map/builds/72493336

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'

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.
------------------------------------------------------------


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

Werner

未讀,
2015年7月25日 凌晨4:30:022015/7/25
收件者:wxPython-users
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

Douglas Thor

未讀,
2015年7月26日 下午3:50:272015/7/26
收件者:wxPython-users、wern...@gmx.ch
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.

Werner

未讀,
2015年7月26日 下午4:57:572015/7/26
收件者:wxPython-users
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

Robin Dunn

未讀,
2015年8月10日 晚上8:00:372015/8/10
收件者:wxpytho...@googlegroups.com
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 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: https://travis-ci.org/dougthor42/wafer_map/builds/72493336

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:

- 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'

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.
------------------------------------------------------------


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.

--
Robin Dunn
Software Craftsman
http://wxPython.org

Douglas Thor

未讀,
2015年8月10日 晚上10:27:012015/8/10
收件者:wxPython-users
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

未讀,
2015年8月10日 晚上10:48:372015/8/10
收件者:wxpytho...@googlegroups.com
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

未讀,
2015年8月10日 晚上11:19:542015/8/10
收件者:wxpytho...@googlegroups.com
It looks like it's a no go, so I'll look at implementing Plan B after dinner.

Douglas Thor

未讀,
2015年8月11日 晚上7:12:262015/8/11
收件者:wxPython-users
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 :-)

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

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.

Douglas Thor

未讀,
2015年8月12日 下午5:52:242015/8/12
收件者:wxPython-users
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
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!
回覆所有人
回覆作者
轉寄
0 則新訊息