diff --git a/README.md b/README.md index 8ea037f..6a0ccf0 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,14 @@ Currently releases are named after the (dominating) branch name 'master' plus the year and month in YY.mm format. The table below implies that at least base/orogen/types are available for this platform. -| Distribution | [master-20.06 (beta)](doc/master-20.06.md) | master-20.01 | master-19.06 | master-18.09 | master-18.01 | +| Distribution | [master-20.06](doc/master-20.06.md) | master-20.01 | master-19.06 | master-18.09 | master-18.01 | |---------------|--------------------|------------------|------------------|----------------------|-----------| |Ubuntu 16.04 | |amd64 | amd64 | amd64 | amd64 | |Ubuntu 18.04 | amd64 |amd64 | amd64 | amd64 || |Ubuntu 20.04 | | | | || |Debian Jessie | | | armel,armhf | || |Debian Stretch | | | amd64 | amd64 || -|Debian Buster | |amd64,arm64 | amd64 | || +|Debian Buster |amd64,arm64 |amd64,arm64 | amd64 | || Not all packages of rock-core and rock package sets could be built for all releases. The details on which packages are available for each platform can be extracted @@ -30,6 +30,41 @@ activation of the release. The file can be simply read as an autoproj osdeps fil ## How to use an Rock Debian package release + +### PPA-Style usage (from master-20.06 onwards) + +Add the package respository (verify URLs by information provided in +data/releases.yml): +``` + wget -qO - http://rock.hb.dfki.de/rock-releases/rock-robotics.public.key | sudo apt-key add - + echo 'deb [arch=amd64 trusted=yes] http://rock.hb.dfki.de/rock-releases/master-20.06 bionic main' | sudo tee /etc/apt/sources.list.d/rock-master-20.06.list + sudo apt update +``` + +Now, you can either choose to install individual packages, such as base-types +with: +``` + sudo apt install rock-master-20.06-base-types +``` + +or install all available Rock packages for your platform + +``` + sudo apt install rock-master-20.06-meta-full +``` + +To use the release, you will still have to update your +environmental settings, e.g., when using the full release this is straight +forward: + +``` + source /opt/rock/master-20.06/rock-master-20.06-meta-full/env.sh +``` + +Activation of individual packages is also possible, but currently somewhat +inconveniant see Section "Known Issues -> 2." + +### As part of an Autoproj-based workspace Either start with a fresh bootstrap: ``` @@ -45,14 +80,14 @@ If you want to use an already defined build configuration then replace the last or remove the install folder in order to get rid of old packages. If a release has been created with default settings all its Debian Packages -install their files into /opt/rock/release-name and now to activate debian -packages for your autoproj workspace: +install their files into /opt/rock/release-name. +To activate Debian packages for your autoproj workspace: adapt the autoproj/manifest to contain only the packages in the layout that you require as source packages. However, the layout section should not be empty, e.g. to bootstrap all precompiled packages of the rock-core package set add: ``` -layout: -- rock.core + layout: + - rock.core ``` @@ -169,6 +204,31 @@ master-20.06 starts to use yard generated documentation. The error should not be encountered with 'master-18.09', where yard is also provided as Rock package. This is not the case for master-18.01. + +2. For PPA-style usage (master-20.06 onwards): + if you only want to source an individual package you currently will have to generate your + own env.sh script, since the env.sh setup of a package does only cover the + package itself and not its dependencies. Hence to identify the env.sh file of + the dependencies, e.g., here for master-20.06 and base/types you can do the + following: + +``` + $>apt-cache depends rock-master-20.06-base-types | grep rock | grep Depends | cut -d' ' -f4 | xargs -I{} echo ". /opt/rock/master-20.06/{}/env.sh" + . /opt/rock/master-20.06/rock-master-20.06-base-cmake/env.sh + . /opt/rock/master-20.06/rock-master-20.06-base-logging/env.sh + . /opt/rock/master-20.06/rock-master-20.06-external-sisl/env.sh + . /opt/rock/master-20.06/rock-master-20.06-gui-vizkit3d/env.sh + . /opt/rock/master-20.06/rock-master-20.06-ruby-rice/env.sh +``` + + Also add the env.sh of you package to your custom setup.sh script: + +``` + . /opt/rock/master-20.06/rock-master-20.06-base-types/env.sh +``` + + + ## References and Publications Please reference the following publication when referring to the binary packaging of Rock: diff --git a/doc/master-20.06.md b/doc/master-20.06.md index e557da5..ea034eb 100644 --- a/doc/master-20.06.md +++ b/doc/master-20.06.md @@ -5,6 +5,7 @@ The release named master-20.06 comes with the following major changes: - separate package directories, e.g., base/types will be found in /opt/rock/master-20.06/rock-master-20.06-base-types - an env.sh per package, e.g., /opt/rock/master-20.06/rock-master-20.06-base-types/env.sh +- an env.yml per package, e.g., /opt/rock/master-20.06/rock-master-20.06-base-types/env.yml to allow easy processing of env information by autoproj (or other tools) - a meta package for the full release: rock-master-20.06-meta-full - yard documentation for all Ruby packages: just browse /opt/rock/master-20.06/share/doc/index.html @@ -13,7 +14,7 @@ The release named master-20.06 comes with the following major changes: ### Package separation Having separate package prefixes tries to mirror the effects of the Autoproj setting: Autoproj.config.separate_prefixes = true. This might expose some inconsistencies in package setups and exposes wrong assumptions or missing dependency definition for including headers and linking directories. -For instance it breaks the assumption on a commonly shared installation folder, e.g., when multiple packages install into 'share' folder and expect it to be one location. +For instance it breaks the assumption on a commonly shared installation folder, e.g., when multiple packages install into 'share' folder and expect it to be the same location. Hence, package maintainers should not rely on a shared folder, but base resource retrieval, e.g., on a customly set environment variable which adds the required search paths per package. Using pkg-config provides a further option. @@ -27,4 +28,8 @@ sudo apt-get update > /dev/null sudo apt install rock-master-20.06-meta-full source /opt/rock/master-20.06/rock-master-20.06-meta-full/env.sh + +# You might have to restart your omniorb for the following command, +# just follow the instructions of the error message if there is one +rock-display ``` diff --git a/init.rb b/init.rb index 2b24c3e..61049c8 100644 --- a/init.rb +++ b/init.rb @@ -63,8 +63,8 @@ "This installation uses sudo and may ask for your password", "You can do the installation yourself with:", "echo 'deb [arch=#{debian_architecture} trusted=yes] #{release.repo_url}/#{release.name} #{current_release_name} main' | sudo tee /etc/apt/sources.list.d/rock-#{release.name}.list", - "sudo apt-get update > /dev/null", "wget -qO - #{release.public_key} | sudo apt-key add -", + "sudo apt-get update > /dev/null", "##########################################################", "This installation uses sudo and may ask for your password", "Install automatically?"]