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

New documentation, installation and setup scripts (work in progress) #13

Closed
wants to merge 40 commits into from

Conversation

meyerj
Copy link
Member

@meyerj meyerj commented Aug 10, 2016

This PR adds a README.md, a new installation manual INSTALL.md, a installation script and a collection of environment setup scripts to the root folder of the orocos_toolchain repository.

The installation instructions have been partially copied from https://github.com/orocos-toolchain/rtt/blob/master/doc/xml/orocos-installation.xml. The new script install.sh does not depend on catkin or Ruby and is able to clone the orocos_toolchain, log4cpp, rtt and ocl repositories and build and install these packages in order. Automatic installation of dependencies is out of scope and should be left to the user, based on good documentation.

The env.sh script has been replaced by a wrapper script which executes its arguments with a proper environment. The environment itself is managed by the new setup.sh script, which can be sourced from any shell and

  • sets the OROCOS_INSTALL_PREFIX and OROCOS_TARGET environment variables
  • prepends the respective Orocos installation directories to PATH, RTT_COMPONENT_PATH and PKG_CONFIG_PATH while avoiding duplicates if the script is sources more than once
  • sources additional package-specific hooks in ${OROCOS_INSTALL_PREFIX}/etc/orocos/${OROCOS_TARGET}/profile.d/*.sh, e.g. to setup the LUA_PATH variables in OCL

See also related PRs

We do not include orogen and its dependencies for now and would refer to the Rock installation instructions instead. If someone else wants to add orogen support to the script, feel free to do so, but it should always be an option to install these additional packages.

We want to stay compatible with whatever build and installation tools already exist. So please comment if the renaming of the env.sh script to setup.sh would be a problem for you. Other than that, it should stay compatible if Ruby-specific settings are moved to env-hooks in the respective packages.

-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
"${FEATURE_CMAKE_ARGS[@]}" "${CMAKE_ARGS[@]}"
do_run make ${JOBS} "${MAKE_ARGS[@]}"
do_run make install
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the install prefix is by default /usr/local, and normal users do not have write rights by default to that folder, it might be ok to add sudo here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not add the sudo prefix in the script itself. If users do not overwrite the install location with the --prefix option, the whole install.sh script should run as super-user. We could update the INSTALL.md file accordingly.

mkdir -p ~/orocos-toolchain
cd ~/orocos-toolchain
wget https://raw.githubusercontent.com/orocos-toolchain/orocos_toolchain/master/install.sh
./install.sh --help
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The downloaded script is not executable by default, so either we prepend this with sh or we add a chmod +x ./install.sh step.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either that or prefix the script with bash:

bash install.sh --help

Or shortcut that downloads and runs the script in a single command is:

wget -qO - https://raw.githubusercontent.com/orocos-toolchain/orocos_toolchain/master/install.sh | bash -s -- [options]

(motivated by https://get.docker.com/, we could create a similar alias as http://get.orocos.org/)

meyerj added a commit to orocos-toolchain/typelib that referenced this pull request Dec 29, 2016
meyerj added a commit to meyerj/utilrb that referenced this pull request Dec 29, 2016
Check orocos-toolchain/orocos_toolchain#13.
Also set [DY]LD_LIBRARY_PATH here instead of in the typelib env-hook.

Signed-off-by: Johannes Meyer <[email protected]>
meyerj and others added 7 commits December 29, 2016 18:46
… part

... and install setup files to etc/orocos unconditionally.

Signed-off-by: Johannes Meyer <[email protected]>
Unit tests will be built and run for individual projects, but not for this meta repository. The purpose of this job is mainly to test the installation script.
@meyerj meyerj mentioned this pull request Oct 16, 2017
17 tasks
@mjbogusz
Copy link

What's the status of this PR?

| Program / Library | Minimum Version | Description |
|---------------------------------|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| CMake | 2.8.3 (all platforms) | See resources on cmake.org for pre-compiled packages in case your distribution does not support this version |
| Boost C++ Library | 1.33.0 (1.40.0 recommended!) | Boost.org from version 1.33.0 on has a very efficient (time/space) lock-free smart pointer implementation which is used by Orocos. 1.36.0 has boost::intrusive which we require on Windows with MSVS. 1.40.0 has a shared_ptr implementation we require when building Service objects. |
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update minimum Boost version to 1.40, check orocos-toolchain/rtt#199.

| Boost C++ Test Library | 1.33.0 (During build only) | Boost.org test library ('unit_test_framework') is required if you build the RTT from source and ENABLE_TESTS=ON (default). The RTT libraries don't depend on this library, it is only used for building our unit tests. |
| Boost C++ Thread Library | 1.33.0 (Mac OS-X only) | Boost.org thread library is required on Mac OS-X. |
| Boost C++ Serialization Library | 1.37.0 | Boost.org serialization library is required for the type system and the MQueue transport. |
| GNU gcc / g++ Compilers | 3.4.0 (Linux/Cygwin/Mac OS X) | gcc.gnu.org Orocos builds with the GCC 4.x series as well. |
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be verified...

| Boost C++ Thread Library | 1.33.0 (Mac OS-X only) | Boost.org thread library is required on Mac OS-X. |
| Boost C++ Serialization Library | 1.37.0 | Boost.org serialization library is required for the type system and the MQueue transport. |
| GNU gcc / g++ Compilers | 3.4.0 (Linux/Cygwin/Mac OS X) | gcc.gnu.org Orocos builds with the GCC 4.x series as well. |
| MSVS Compilers | 2005 | One can download the MS VisualStudio 2008 Express edition for free. |
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be verified...

@meyerj
Copy link
Member Author

meyerj commented Apr 18, 2019

TODO

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

Successfully merging this pull request may close these issues.

3 participants