mikeferguson / buildbot-ros

A buildbot configuration for building ROS debians, docs, and tests.
51 stars 27 forks source link

Updates for Trusty #33

Closed mikeferguson closed 10 years ago

mikeferguson commented 10 years ago

Trusty ships with a newer version of git-buildpackage. Still working on the required updates.

mikeferguson commented 10 years ago

Related to https://github.com/ros-infrastructure/bloom/issues/211, we need to add --git-upstream-tree=TAG and --git-upstream-tag=releases/indigo/package/version-patch during the source build.

mikeferguson commented 10 years ago

Changed title of ticket to reflect all changes for trusty. First committed fix: fe2901e828de4cd440e74e41672f55b313e4d3ae handles non-absolute path problem in nosetests within testbuilds

mikeferguson commented 10 years ago

Commits needed are in trusty branch, not sure how to merge them exactly yet.

jonbinney commented 10 years ago

I'm going to try and get things working on trusty. Is the trusty branch the most up to date attempt at this, or the trusty-updates branch?

mikeferguson commented 10 years ago

trusty is the up-to-date branch -- although note the error in the last commit - "apt-get intall" should be "apt-get install". The trusty-updates branch fixes this, but lacks the actual git-buildpackage fixes. I was intending to make the updates branch mergable with the mainline, but I still haven't come up with a clean solution....

jonbinney commented 10 years ago

I'll cherry pick the necessary commits for now; what is blocking the merge? Does it need checks to change behavior depending on the version of git-buildpackage in order to be backwards compatible?

mikeferguson commented 10 years ago

Newer versions of git-buildpackage need different command line arguments, and the older version will not take them. This gets a bit tricky, because of twisted's use of deferreds, the fact that git-buildpackage runs on the buildslave, and the version of git-buildpackage depends on the buildslave, not the actual distro being built.

I think in the end, the only fix is to have a script that gets downloaded to the buildslave, checks version, and emits the correct flags, which are then set as a build variable.

jonbinney commented 10 years ago

Yikes. Ok I'll see if I can get that sorted, once I wrap my head around how this stuff works. Would it be too much of a hack to create a python script called "git-buildpackage" which gets put into the path on the slave, so that it gets called instead of the system git-buildpackage? This script would just fix the arguments passed to it and then call the actuall git-buildpackage binary with the correct arguments for that platform.