Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
thedman9052 opened this issue Jan 4, 2016 · 7 comments

Comments

@thedman9052
Copy link

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
Copy link

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

@thedman9052
Copy link
Author

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 "[email protected]"
$ 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
Copy link

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:

  • Ubuntu 12.04
  • Ruby 2.3.1

@doudou
Copy link
Contributor

doudou commented Aug 11, 2016

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
Copy link

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
Copy link
Member

meyerj commented Aug 18, 2016

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
Copy link
Member

meyerj commented Aug 18, 2016

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants