Giter Site home page Giter Site logo

rock-core / package_set Goto Github PK

View Code? Open in Web Editor NEW
0.0 8.0 24.0 408 KB

Package definition for autoproj, to build all the packages that form the core of Rock, the Robot Construction Kit

Home Page: http://rock-robotics.org/documentation/

Ruby 100.00%

package_set's Introduction

rock.core package set

This installs the Rock toolchain and associated packages. In an autoproj bootstrap, this package set is selected by adding the following in the package_sets section of autoproj/manifest:

package_sets:
- github: rock-core/package_set

Note for developers

Part of the Rock behavior is not standard autoproj behavior (flavors, C++11 selection logic, โ€ฆ). Complex logic should be isolated within the rock/ folder, and when possible tests should be written in tests/

Use rake test to run all the tests. To run a single test, one needs to run from the package set root and add -I. to the ruby command line, e.g.

ruby -Itest -I. test/cxx11_test.rb

package_set's People

Contributors

0nel avatar 2maz avatar alcantara09 avatar alexanderfabisch avatar chhtz avatar doudou avatar g-arjones avatar goldhoorn avatar hauptmech avatar hwiedpro avatar jakobs avatar jmachowinski avatar malter avatar maltewi avatar marvin2k avatar pierrewillenbrockdfki avatar planthaber avatar rauldg avatar rayssinha-soares avatar rbtmrcs avatar vbargsten avatar wieset avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

package_set's Issues

Dependencies to Ruby Gems: Installation Order

Hi,

In my installation I am using ruby2.0 and some of the gems that are required depend (thin, sprockets and grape) on other gem (rack) which latest version does not support ruby2.0.

If I install the rack version 1.6.5 and then the other gems the installation goes well.

I tried to fix with these changes in rock.osdeps-ruby20 in two ways:

rack:
    gem:
        - rack<1.6.5
thin:
    gem: 
        - rack<1.6.5
        - thin
sprockets:
    gem: 
        - rack<1.6.5
        - sprockets
grape:
    gem: 
        - rack<1.6.5
        - grape

But still autoproj tries to install rack latest gem instead of the version that is supported.

How should this be solved?

tools/class_loader missing dependency

Hi,

class loader is build in debug mode, at least for Ubuntu 14.10 the libpocofoundation9-dbg osdep package is missing, which installs /usr/lib/debug/usr/lib/libPocoFoundationd.so.9.

There are two options to resolve this:

  • add the osdep
  • build as release

Also see my comment on:
#24

Where to put vizkit3d_debug_drawings

I am in the process of publishing the vizkit3d_debug_drawings library and would like to add it the rock-core package_set.

It depends on the following packages:

  • gui/vizkit3d (rock-core package_set)
  • gui/rock_widget_collection (rock-core package_set)
  • gui/osgviz (rock-core package_set)
  • base/boost_serialization (envire package_set)
  • tools/orocos_cpp (rock-cpp package_set)

For this to work base/boost_serialization and tools/orocos_cpp would have to be moved to rock-core as well.

What do you think @doudou ?

[Tutorial] Publishing the bundle

At Basics tutorial the publishing one [https://www.rock-robotics.org/rock-and-syskit/basics/publishing.html] , it was not clear where I should create the manifest.xml file.

Don't exlude tools/apaka by default

tools/apaka is removed from the build configuration by default in 00new_packages.autobuild. Currently I am working on an automated way to produce various builds with apaka. Thus it is necessary to manually patch every buildconf manifest to contain - tools/apaka, otherwise the apaka binaries are not made available via env.sh. As every buildconf repo uses a different indentation, this process is unnecessarily complicated.

Unsolicited stable to master override

There are other packages outside rock that also use stable and master branches, and if the are defined in the source.yml to use the stable branch. They are meant to use stable. This thing here overrides this:

switched_packages = Rock.flavors.reset_invalid_branches_to('master')

This should only be a warning.

cxx11.rb incompatible with autoproj v1

cxx11.rb: Autoproj::OSPackageResolver is only known to autoproj v2, and effectively preventing the continued use of autoproj v1 installations without upgrading

`tools/class_loader` produces broken `class_loader.pc`

When I build tools/class_loader, the installed class_loader.pc seems to be broken.

Probably this is a cmake issue. It seems to configure the dependencies as a semicolon-separated string, instead of space-separated string. On Ubuntu 20.04 it additionally writes the cmake target aliases instead of the actual libraries.

Output on Ubuntu 18.04:

prefix=/path/to/ws/install/tools/class_loader
exec_prefix=/path/to/ws/install/tools/class_loader
libdir=${prefix}/lib
includedir=${prefix}/include

Name: class_loader
Description: "Package for loading plugins at runtime"
Version: 
Requires: console_bridge 
Libs: -L${libdir} -lclass_loader /usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_atomic.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/path/to/ws/install/base/logging/lib/libbase-logging.so;/usr/lib/libPocoFoundation.so;dl
Cflags: -I${includedir} 

Output on Ubuntu 20.04:

prefix=/path/to/ws/install/tools/class_loader
exec_prefix=/path/to/ws/install/tools/class_loader
libdir=${prefix}/lib
includedir=${prefix}/include

Name: class_loader
Description: "Package for loading plugins at runtime"
Version: 
Requires: console_bridge 
Libs: -L${libdir} -lclass_loader Boost::thread;Boost::system;/path/to/ws/install/base/console_bridge/lib/libconsole_bridge.so;/path/to/ws/install/base/logging/lib/libbase-logging.so;/usr/lib/x86_64-linux-gnu/libPocoFoundation.so;dl
Cflags: -I${includedir} 

Expected output (or similar):

prefix=/path/to/ws/install/tools/class_loader
exec_prefix=/path/to/ws/install/tools/class_loader
libdir=${prefix}/lib
includedir=${prefix}/include

Name: class_loader
Description: "Package for loading plugins at runtime"
Version: 
Requires: console_bridge 
Libs: -L${libdir} -lclass_loader /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_chrono.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so /usr/lib/x86_64-linux-gnu/libboost_atomic.so /usr/lib/x86_64-linux-gnu/libpthread.so /path/to/ws/install/base/console_bridge/lib/libconsole_bridge.so /path/to/ws/install/base/logging/lib/libbase-logging.so /usr/lib/x86_64-linux-gnu/libPocoFoundation.so dl
Cflags: -I${includedir}

For comparison, the version installed by my ROS distribution:

prefix=/opt/ros/melodic

Name: class_loader
Description: Description of class_loader
Version: 0.4.1
Cflags: -I${prefix}/include -I/usr/include
Libs: -L${prefix}/lib -lclass_loader /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_chrono.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so /usr/lib/x86_64-linux-gnu/libboost_atomic.so /usr/lib/x86_64-linux-gnu/libpthread.so /usr/lib/libPocoFoundation.so -ldl /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4
Requires: 

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.