Giter Club home page Giter Club logo

archlinux-ros-melodic's Introduction

README

The aim of this project is to create a test environment for the ROS melodic packages in the AUR repository for Arch Linux. The main script is provision.sh which is used to install ros-melodic-desktop-full. It is also the same script used to provision an Arch Linux vagrant box for testing, debugging and applying PKGBUILD fixes.

The way provision.sh works is that if there is a local ros-melodic-*/PKGBUILD then it builds and installs that version (using makepkg -si) otherwise, it will use yaourt to install it.

This way, if there are any broken AUR packages, we can fix it locally and install it. Hence to install it on an Arch Linux machine, goto the provision.sh subdirectory and type:

./provision.sh <local-fix-dir> <top-package>
# <local-fix-dir> defaults to /vagrant
# <top-package> dfaults to ros-melodic-desktop-full

# To install ros-melodic-desktop-full on Arch Linux
./provision.sh .

# To install ros-melodic-desktop
./provision.sh . ros-melodic-desktop

# To install bare-bones ros-melodic-ros-base
./provision.sh . ros-melodic-ros-base

If the packages are fixed upstream, we can just remove the local PKGBUILD subdirectories to make provision.sh use the official packages.

Included in this packages are all the corrected packages that I used to successfully build and install ros-melodic (as of 2019-02-14).

Vagrant ros-melodic Test Box

To boot up the vagrant box:

vagrant up

This may take several hours depend on your machine and network connect to install ALL the ros-melodic-desktop-full packages.

Ohter useful commands:

# just apply provisioning to the vagrant box
vagrant provision

# reboot and reload all /vagrant files to the vagrant box
vagrant reload

# remove the vagrant box completely
vagrant destroy

Useful Scripts

  • fix-validity-check.sh - if you have a validity check problem, this script creates a fix for it. This appears to be the most common issue. To use, just type the package as the first argument:

    # for example
    ./fix-validity-check.sh ros-melodic-rosout
    
    # you can continue with provisioning after this
    ./provision.sh .
    
  • fix-boost-signals.sh - at the time I created this, Arch Linux was using boost 1.69 which removed signsla and replaced it with signsls2. Some of the CMakeLists.txt used by ROS packages tries to detect boost signals. This script fixes packages that has this issue.

    # for example
    ./fix-boost-signals.sh ros-melodic-roscpp
    
  • fix-pc-file.sh - at the time I created this, Arch Linux was using cmake 3.13 which created -l-lpthread cflags problems. This script fixes packages that has this issue.

  • fix-parallel-make.sh - this add make -j$(nproc) to local package so speed up building. This is an optional fix.

  • clean-ros-melodic.sh cleans up makepkg files in local packages

  • uninstall-ros-melodic.sh - uninstall all ros-melodic packages from local install.

  • compare-with-aur.sh - compares the local PKGBUILD with the AUR version.

  • get-pacman-log.sh - tail -f the pacman.log file on the vagrant machine. Used to monitor and snapshot what packages were installed.

archlinux-ros-melodic's People

Contributors

kwrazi avatar onde2rock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

archlinux-ros-melodic's Issues

Error while provisioning

I'm building melodic-base on manjaro host.

At some point while building it I get following error:

melodic: ==> Making package: ros-melodic-rospack 2.5.2-1 (Tue 26 Feb 2019 13:38:31 AEDT)
melodic: ==> Checking runtime dependencies...
melodic: ==> Installing missing dependencies...
melodic: error: target not found: python-rosdep
melodic: ==> ERROR: 'pacman' failed to install missing dependencies.
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.