orocos-toolchain / build

The master autoproj configuration to build the toolchain
3 stars 4 forks source link

bootstrap.sh for toolchain-2.8 throws builder errors on a clean system #1

Open thedman9052 opened 8 years ago

thedman9052 commented 8 years ago

On a fresh install of Ubuntu 14.04 with Ruby 1.9, using bootstrap.sh from the toolchain-2.8 branch does not build successfully. Autoproj throws an error:

typelib, which is selected in the layout, cannot be built: typelib is selected in the manifest or on the command line, but it is excluded from the build: it depends on bundler, which is neither the name of a source package, nor an osdep that is available on this operating system (dependency chain: typelib>utilrb)

The Autoproj logfiles indicate that Autoproj is pulling orocos-toolchain packages from the master branch instead of toolchain-2.8.

utilrb-import.log.txt (Renamed so GitHub would let me upload)

Packages in the master branch have a dependency on builder, while packages from the toolchain-2.8 branch do not (they depend on hoe and rake instead).

Adding branch overrides to the Autoproj overrides.yml fixes the orocos-toolchain package dependency issues, but it does not fix a bundler dependency issue with metaruby.

ernestum commented 8 years ago

I have this issue too. Did you solve it for you somehow?

thedman9052 commented 8 years ago

Here's the instructions I wrote for my group, the "overrides.yml" file is attached (rename it to remove the .txt extension).

Currently (Jan. 2016), installing the Orocos toolchain 2.8 from GitHub is broken. This is an installation procedure with a couple of "hacks" that will make it work on a fresh Ubuntu 14.04 install.

Firstly, install git and ruby:

$ sudo apt-get install git ruby

Set up the git username and email:

$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

Create a directory for the Orocos files to go and clone the GitHub repository with the bootstrap script:

$ mkdir ~/orocos
$ cd ~/orocos
$ git clone -b toolchain-2.8 https://github.com/orocos-toolchain/build.git

Run the bootstrap:

$ cd build
$ ./bootstrap

Press 'Enter' to select the default options whenever the script stops to ask you. At some point the script WLLL FAIL. We were expecting this.

A Ruby utility called Autoproj should have already downloaded some folders. Go into the Autoproj folder:

$ cd autoproj

There should be a file called 'overrides.yml'. Replace it with overrides.yml.txt (remove the .txt extension). If you look in the replacement 'overrides.yml', you should see a list of Orocos GitHub repository names with the 'branch' option set to 'toolchain-2.8'. The reason Autoproj failed earlier is because it is pulling from the 'master' branch on the Orocos GitHub, which has different dependencies than the 2.8 branch. The 'overrides' file will force Autoproj to use the correct branch when it clones the repositories.

Start autoproj again, this time manually:

$ cd ~/orocos/build
$ source env.sh
$ autoproj update

You should get another error similar to the first. Change to the metaruby directory:

$ cd ~/orocos/build/metaruby

This package didn't come from Orocos, and it still has the dependency issue, so we're going to fix that ourselves.

Edit the 'manifest.xml' and delete the following line:

<depend package="bundler" />

Also edit 'Rakefile' and remove:

require "bundler/gem_tasks"

You will need root privileges to do so (use sudo in front of your editor command).

Return to the build folder and build Orocos:

$ cd ~/orocos/build
$ autoproj update
$ autoproj fast-build

That should do it!

thachdd88 commented 8 years ago

I follow the instruction of thedman9052 but I got an error while executing autoproj update

autoproj: importing and loading selected packages
  updated log4cpp
  updated ocl
  updated orogen
  updated rtt
  updated rtt_typelib
  updated typelib
  updated utilmm
  updated utilrb
  updated tools/metaruby
  building initial autoproj import log, this may take a while
  looking for RubyGems updates
  installing OS packages: cmake, liblua5.1-0-dev, libnetcdf-dev, libomniorb4-dev, libxml-xpath-perl, libxml2-dev, omniidl, omniorb-nameserver, ruby-facets
Command failed
autoproj: failed in osdeps phase
    '/bin/bash /tmp/osdeps_sh20160811-8391-11mapeo' returned status 100
    see /home/user/dev/orocos-2.8/build/install/log/autoproj-osdeps.log for details
    last 10 lines are:

      'XDG_SESSION_COOKIE'='3dd641cce40b0b6e45b848d400000001-1470876010.480842-1964473827'
      '_'='/home/user/dev/orocos-2.8/build/.gems/bin/autoproj'

    2016-08-11 09:56:00 +0900: running
        /bin/bash /tmp/osdeps_sh20160811-8391-11mapeo
    in directory /home/user/dev/orocos-2.8/build
    Reading package lists...
    Building dependency tree..
    Reading state information...
    E: Unable to locate package ruby-facets

I already installed ruby-facets by the following command: gem install facets

My system information:

doudou commented 8 years ago

Ubuntu 12.04

Is that officially supported for toolchain 2.8 ?

In any case, this is weird. It attempts to install ruby-facets, but the osdeps list the gem for 'facets'. Could you post the complete autoproj output for autoproj osdeps ?

thachdd88 commented 8 years ago

Hi doudou,

Actually, when I moved to Ubuntu 14.04, there was no such kind of error.

Anyway, below is the output for autoproj osdeps

How should I interact with gitorious.org (http, ssh): http,ssh
  How should I interact with github.com (git, http, ssh): http,ssh
  Which prepackaged software (a.k.a. 'osdeps') should autoproj install automatically (all, none or a comma-separate                                           d list of: os gem pip) ? os,gem,pip
  operating system: debian - unstable,sid
autoproj: loading ...
run 'autoproj reconfigure' to change configuration options
and use 'autoproj switch-config' to change the remote source for
autoproj's main build configuration
  the target operating system for Orocos/RTT (gnulinux or xenomai): gnulinux
  which CORBA implementation should the RTT use ? omniorb

autoproj: importing and loading selected packages
  looking for RubyGems updates
  installing OS packages: cmake, liblua5.1-0-dev, libnetcdf-dev, libomniorb4-dev, libxml-xpath-perl, libxml2-dev, o                                           mniidl, omniorb-nameserver, ruby-facets
Command failed
autoproj: failed in osdeps phase
    '/bin/bash /tmp/osdeps_sh20160812-3296-1dei6oo' returned status 100
    see /home/user/dev/orocos-2.8/build/install/log/autoproj-osdeps.log for details
    last 10 lines are:

      'XDG_SESSION_COOKIE'='3dd641cce40b0b6e45b848d400000001-1470962569.393978-1905248659'
      '_'='/home/user/dev/orocos-2.8/build/.gems/bin/autoproj'

    2016-08-12 09:48:05 +0900: running
        /bin/bash /tmp/osdeps_sh20160812-3296-1dei6oo
    in directory /home/user/dev/orocos-2.8/build
    Reading package lists...
    Building dependency tree...
    Reading state information...
    E: Unable to locate package ruby-facets
meyerj commented 8 years ago

I have no experience with autoproj, but I could install the toolchain version 2.8 successfully with the above instructions in Ubuntu 12.04.

Maybe the OS detection somehow fails, because in the output you posted it says

  How should I interact with gitorious.org (http, ssh): http,ssh
  How should I interact with github.com (git, http, ssh): http,ssh
  Which prepackaged software (a.k.a. 'osdeps') should autoproj install automatically (all, none or a comma-separate                                           d list of: os gem pip) ? os,gem,pip
  operating system: debian - unstable,sid

while on my test system (12.04 with Ruby 1.9.1 installed from package ruby1.9.1-dev) it says

  How should I interact with gitorious.org (http, ssh): http,ssh
  How should I interact with github.com (git, http, ssh): http,ssh
  Which prepackaged software (a.k.a. 'osdeps') should autoproj install automatically (all, none or a comma-separated list of: os gem pip) ? os,gem,pip
  operating system: ubuntu,debian - 12.04,12.04.5,lts,precise,pangolin

?

That would explain why autoproj tries to install the non-existing system package ruby-facets instead of the gem package:

facets:
    ubuntu: gem
    debian:
        squeeze: gem
        default: ruby-facets
    fedora: rubygem-facets
    default:
        gem: facets

(from https://github.com/orocos-toolchain/autoproj/blob/master/orocos.osdeps#L138)

meyerj commented 8 years ago

Is that officially supported for toolchain 2.8 ?

As there is no official list of target platforms that I know of, it is hard to say :-) But I do not see a reason why it should not be supported.

For ROS releases we should at least stay compatible with the ROS target platforms, as detailed in REP 3 - Target Platforms. ROS Hydro was released with Orocos Toolchain 2.7, while ROS Indigo and Jade got 2.8 and the pending ROS Kinetic release is waiting for 2.9. So version 2.8 should be targeted at least for Ubuntu Saucy (13.10) and newer.