%global commit fd027faece3fcd924f5a7a279c3e4c6f2f41c1e8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: ros_comm Version: 1.8.15 Release: 1.20130601git%{shortcommit}%{?dist} Summary: ROS communications-related packages License: BSD URL: http://www.ros.org/wiki/ros_comm Source0: https://github.com/ros/%{name}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz Patch0: %{name}-1.8.12-boost150.patch Patch1: %{name}-1.8.12-libdir.patch Patch2: %{name}-1.8.15-bindir.patch Provides: ros-%{name} = %{version}-%{release} BuildRequires: ros-release BuildRequires: cmake BuildRequires: apr BuildRequires: boost-devel BuildRequires: log4cxx-devel BuildRequires: ros-catkin-devel BuildRequires: roslib-devel BuildRequires: python-genmsg BuildRequires: python-gencpp BuildRequires: python-genlisp BuildRequires: python-genpy BuildRequires: ros-std_msgs-devel BuildRequires: roscpp_core-devel BuildRequires: python-argparse BuildRequires: python-setuptools-devel BuildRequires: python-paramiko BuildRequires: python-yaml Requires: cmake Requires: python-argparse Requires: python-empy Requires: python-nose Requires: python-rospkg Requires: python-setuptools-devel Requires: python-yaml Requires: ros-release Requires: ros-std_srvs Requires: rosgraph_msgs Requires: ros-xmlrpcpp Requires: roswtf Requires: ros-message_filters Requires: roscpp Requires: roslisp Requires: rospy Requires: rosparam Requires: rosservice Requires: rostest Requires: rosmsg Requires: rosconsole Requires: rosnode Requires: rosbag Requires: rosmaster Requires: rosgraph Requires: rostopic Requires: ros-topic_tools Requires: rosout Requires: roslaunch %description ROS communications-related packages, including core client libraries (roscpp, rospy, roslisp) and graph introspection tools (rostopic, rosnode, rosservice, rosparam). %package -n ros-std_srvs Summary: ROS Standard Service definitions %description -n ros-std_srvs Common service definitions. Currently just the 'Empty' service. %package -n ros-std_srvs-devel Summary: Development files for ros-std_srvs Requires: ros-std_srvs%{?_isa} = %{version}-%{release} %description -n ros-std_srvs-devel %{summary}. %package -n rosgraph_msgs Summary: Messages related to the ROS Communication graph %description -n rosgraph_msgs Messages relating to the ROS Computation Graph. These are generally considered to be low-level messages that end users do not interact with. %package -n rosgraph_msgs-devel Summary: Development files for rosgraph_msgs Requires: rosgraph_msgs%{?_isa} = %{version}-%{release} %description -n rosgraph_msgs-devel %{summary}. %package -n ros-xmlrpcpp Summary: C++ Implementation of the XML-RPC protocol %description -n ros-xmlrpcpp XmlRpc++ is a C++ implementation of the XML-RPC protocol. This version is heavily modified from the package available on SourceForge in order to support roscpp's threading model. %package -n ros-xmlrpcpp-devel Summary: Development files for ros-xmlrpcpp Requires: ros-xmlrpcpp %description -n ros-xmlrpcpp-devel %{summary}. %package -n roswtf Summary: ROS Diagnostic tool %description -n roswtf roswtf is a tool for diagnosing issues with a running ROS system. Think of it as a FAQ implemented in code. %package -n ros-message_filters Summary: Message filters for roscpp and rospy %description -n ros-message_filters A set of message filters which take in messages and may output those messages at a later time, based on the conditions that filter needs met. %package -n ros-message_filters-devel Summary: Development files for ros-message_filters Requires: ros-message_filters%{?_isa} = %{version}-%{release} %description -n ros-message_filters-devel %{summary}. %package -n roscpp Summary: ROS C++ client library %description -n roscpp roscpp is a C++ implementation of ROS. It provides a client library that enables C++ programmers to quickly interface with ROS Topics, Services, and Parameters. roscpp is the most widely used ROS client library and is designed to be the high-performance library for ROS. %package -n roscpp-devel Summary: Development files for roscpp Requires: roscpp%{?_isa} = %{version}-%{release} %description -n roscpp-devel %{summary}. %package -n roslisp Summary: ROS Lisp client library %description -n roslisp Roslisp is a client library for writing ROS nodes in idiomatic Common Lisp. The library is written to support ease of use, quick scripting of nodes, and interactive debugging of a running ROS system. %package -n roslisp-devel Summary: Development files for roslisp Requires: roslisp%{?_isa} = %{version}-%{release} %description -n roslisp-devel %{summary}. %package -n rospy Summary: ROS Python client library %description -n rospy rospy is a pure Python client library for ROS. The rospy client API enables Python programmers to quickly interface with ROS Topics, Services, and Parameters. The design of rospy favors implementation speed (i.e. developer time) over runtime performance so that algorithms can be quickly prototyped and tested within ROS. It is also ideal for non-critical-path code, such as configuration and initialization code. Many of the ROS tools are written in rospy to take advantage of the type introspection capabilities. Many of the ROS tools, such as rostopic and rosservice, are built on top of rospy. %package -n rosparam Summary: Tool for getting and setting ROS Parameters %description -n rosparam rosparam contains the rosparam command-line tool for getting and setting ROS Parameters on the Parameter Server using YAML-encoded files. It also contains an experimental library for using YAML with the Parameter Server. This library is intended for internal use only. %package -n rosservice Summary: Tool for querying and listing ROS Services %description -n rosservice rosservice contains the rosservice command-line tool for listing and querying ROS Services. It also contains a Python library for retrieving information about Services and dynamically invoking them. The Python library is experimental and is for internal-use only. %package -n rostest Summary: Integration test suite based on roslaunch %description -n rostest rostest is an extension to roslaunch that enables roslaunch files to be used as test fixtures. As a fully running system has more complex behaviors than an individual ROS node, this allows you to do full integration testing across multiple nodes. %package -n rostest-devel Summary: Development files for rostest Requires: rostest%{?_isa} = %{version}-%{release} %description -n rostest-devel %{summary}. %package -n rosmsg Summary: Tool for displaying message and service information %description -n rosmsg rosmsg contains two command-line tools: rosmsg and rossrv. rosmsg is a command-line tool for displaying information about ROS Message types. rossrv is a command-line tool for displaying information about ROS Service types. %package -n rosconsole Summary: ROS console output library. %description -n rosconsole rosconsole is a C++ package that supports console output and logging in roscpp. It provides a macro-based interface which allows both printf- and stream-style output. It also wraps log4cxx, which supports hierarchical loggers, verbosity levels and configuration-files. %package -n rosconsole-devel Summary: Development files for rosconsole Requires: rosconsole%{?_isa} = %{version}-%{release} %description -n rosconsole-devel %{summary}. %package -n rosnode Summary: Tool for displaying ROS node information %description -n rosnode rosnode is a command-line tool for displaying debug information about ROS Nodes, including publications, subscriptions and connections. It also contains an experimental library for retrieving node information. This library is intended for internal use only. %package -n rosbag Summary: Tools for recording and playing back ROS topics %description -n rosbag The rosbag package provides a command-line tool for working with bags as well as code APIs for reading/writing bags in C++ and Python. %package -n rosbag-devel Summary: Development files for rosbag Requires: rosbag%{?_isa} = %{version}-%{release} %description -n rosbag-devel %{summary}. %package -n rosmaster Summary: ROS Master implementation. %description -n rosmaster The rosmaster package implements the ROS Master. Most programs will not need to interact with this package directly. The rosmaster is run automatically whenever roscore is run and all communication with the Master happens over XMLRPC APIs. %package -n rosgraph Summary: Tool for printing information about the ROS Computation Graph %description -n rosgraph rosgraph contains the rosgraph command-line tool, which prints information about the ROS Computation Graph. It also provides an internal library that is used by the graphical version of this tool, rxgraph. %package -n rostopic Summary: Tool for displaying debug information about ROS topics %description -n rostopic rostopic contains the rostopic command-line tool for displaying debug information about ROS Topics, including publishers, subscribers, publishing rate, and ROS Messages. It also contains an experimental Python library for getting information about and interacting with topics dynamically. This library is for internal-use only as the code API may change, though it does provide examples of how to implement dynamic subscription and publication behaviors in ROS. %package -n ros-topic_tools Summary: Tools for directing, throttling, and selecting ROS topics %description -n ros-topic_tools Tools for directing, throttling, selecting, and otherwise messing with ROS topics at a meta level. None of the programs in this package actually know about the topics whose streams they are altering; instead, these tools deal with messages as generic binary blobs. This means they can be applied to any ROS topic. %package -n ros-topic_tools-devel Summary: Development files for ros-topic_tools Requires: ros-topic_tools%{?_isa} = %{version}-%{release} %description -n ros-topic_tools-devel %{summary}. %package -n rosout Summary: System-wide logging mechanism for messages sent to the /rosout topic %description -n rosout rosout is the name of the console log reporting mechanism in ROS. It can be thought as comprising several components: - The `rosout` node for subscribing, logging, and republishing the messages. - The /rosout topic - The /rosout_agg topic for subscribing to an aggregated feed - rosgraph_msgs/Log message type, which defines standard fields as well as verbosity levels. - client APIs to facilitate easy use of the rosout reporting mechanism - GUI tools, like rxconsole, for viewing the console log messages. The rosout package only provides the rosout node. %package -n rosout-devel Summary: Development files for rosout Requires: rosout%{?_isa} = %{version}-%{release} %description -n rosout-devel %{summary}. %package -n roslaunch Summary: Tool for easily launching multiple ROS nodes %description -n roslaunch roslaunch is a tool for easily launching multiple ROS nodes locally and remotely via SSH, as well as setting parameters on the Parameter Server. It includes options to automatically respawn processes that have already died. roslaunch takes in one or more XML configuration files (with the .launch extension) that specify the parameters to set and nodes to launch, as well as the machines that they should be run on. %prep %setup -qn %{name}-%{commit} %if 0%{?fedora} >= 18 %patch0 -p0 -b .boost150 %endif %patch1 -p0 -b .libdir %patch2 -p0 -b .bindir %build source /usr/share/ros/setup.sh export ROS_PACKAGE_PATH=/usr/share mkdir build pushd build %cmake -DSETUPTOOLS_DEB_LAYOUT=OFF \ .. popd make -C build %{?_smp_mflags} %install rm -rf %{buildroot} make -C build install DESTDIR=%{buildroot} # Fix location of /etc mv %{buildroot}/usr/etc %{buildroot}/etc # Get rid of unit tests and performance tests rm -rf %{buildroot}%{python_sitelib}/test* rm -rf %{buildroot}%{python_sitelib}/perf* rm -rf %{buildroot}%{_datadir}/test* rm -rf %{buildroot}%{_datadir}/perf* rm -rf %{buildroot}%{_datadir}/common-lisp/ros/test* rm -rf %{buildroot}%{_datadir}/common-lisp/ros/perf* rm -rf %{buildroot}%{_includedir}/test* rm -rf %{buildroot}%{_includedir}/perf* rm -rf %{buildroot}%{_libdir}/pkgconfig/test* rm -rf %{buildroot}%{_libdir}/pkgconfig/perf* # Get rid of shebang on non-executable scripts find %{buildroot}%{python_sitelib} -name "*.py" -exec sed -i 's|#!|#|' {} \; %files %doc %{_datadir}/%{name} %{python_sitelib}/%{name}-%{version}-py?.?.egg-info %files -n ros-std_srvs %{python_sitelib}/std_srvs %{_datadir}/std_srvs %{_datadir}/common-lisp/ros/std_srvs %files -n ros-std_srvs-devel %{_includedir}/std_srvs %{_libdir}/pkgconfig/std_srvs.pc %files -n rosgraph_msgs %{_datadir}/rosgraph_msgs %{python_sitelib}/rosgraph_msgs %{_datadir}/common-lisp/ros/rosgraph_msgs %files -n rosgraph_msgs-devel %{_includedir}/rosgraph_msgs %{_libdir}/pkgconfig/rosgraph_msgs.pc %files -n ros-xmlrpcpp %dir %{_datadir}/xmlrpcpp %{_datadir}/xmlrpcpp/manifest.xml %{_libdir}/libxmlrpcpp.so %files -n ros-xmlrpcpp-devel %{_includedir}/XmlRpc*.h %{_includedir}/base64.h %{_datadir}/xmlrpcpp %{_libdir}/pkgconfig/xmlrpcpp.pc %files -n roswtf %{_bindir}/roswtf %{python_sitelib}/roswtf %{_datadir}/roswtf %files -n ros-message_filters %{_datadir}/message_filters %{_libdir}/libmessage_filters.so %{python_sitelib}/message_filters %files -n ros-message_filters-devel %{_includedir}/message_filters %{_libdir}/pkgconfig/message_filters.pc %files -n roscpp %{_datadir}/roscpp %{_libdir}/libroscpp.so %{python_sitelib}/roscpp %{_datadir}/common-lisp/ros/roscpp %files -n roscpp-devel %{_includedir}/roscpp %{_includedir}/ros %{_libdir}/pkgconfig/roscpp.pc %files -n roslisp %config(noreplace) %{_sysconfdir}/catkin/profile.d/99.roslisp.all %{_datadir}/roslisp %files -n roslisp-devel %{_libdir}/pkgconfig/roslisp.pc %files -n rospy %{_datadir}/rospy %{python_sitelib}/rospy %files -n rosparam %{_bindir}/rosparam %{python_sitelib}/rosparam %{_datadir}/rosparam %files -n rosservice %{_bindir}/rosservice %{_datadir}/rosservice %{python_sitelib}/rosservice %files -n rostest %{_bindir}/rostest %{_datadir}/rostest %{python_sitelib}/rostest %files -n rostest-devel %{_includedir}/rostest %{_libdir}/pkgconfig/rostest.pc %files -n rosmsg %{_bindir}/rosmsg %{_bindir}/rossrv %{_bindir}/rosmsg-proto %{_datadir}/rosmsg %{python_sitelib}/rosmsg %files -n rosconsole %{_libdir}/librosconsole.so %{_datadir}/rosconsole %files -n rosconsole-devel %{_includedir}/rosconsole %{_libdir}/pkgconfig/rosconsole.pc %files -n rosnode %{_bindir}/rosnode %{python_sitelib}/rosnode %{_datadir}/rosnode %files -n rosbag %{_bindir}/rosbag %{_libdir}/librosbag.so %{_libdir}/rosbag %{python_sitelib}/rosbag %{_datadir}/rosbag %files -n rosbag-devel %{_includedir}/rosbag %{_libdir}/pkgconfig/rosbag.pc %files -n rosmaster %{_bindir}/rosmaster %{_datadir}/rosmaster %{python_sitelib}/rosmaster %files -n rosgraph %config(noreplace) %{_sysconfdir}/ros/python_logging.conf %{_bindir}/rosgraph %{_datadir}/rosgraph %{python_sitelib}/rosgraph %files -n rostopic %{_bindir}/rostopic %{python_sitelib}/rostopic %{_datadir}/rostopic %files -n ros-topic_tools %{_libdir}/libtopic_tools.so %dir %{_datadir}/topic_tools %{_datadir}/topic_tools/manifest.xml %{_datadir}/topic_tools/srv %{python_sitelib}/topic_tools %{_datadir}/common-lisp/ros/topic_tools %{_libdir}/topic_tools %files -n ros-topic_tools-devel %{_includedir}/topic_tools %{_datadir}/topic_tools/cmake %{_libdir}/pkgconfig/topic_tools.pc %files -n rosout %{_datadir}/rosout %{_libdir}/rosout %files -n rosout-devel %{_libdir}/pkgconfig/rosout.pc %files -n roslaunch %config(noreplace) %{_sysconfdir}/ros/roscore.xml %{_bindir}/roslaunch %{_bindir}/roslaunch-deps %{_bindir}/roslaunch-logs %{_bindir}/roscore %{_datadir}/roslaunch %{python_sitelib}/roslaunch %changelog * Sat Jun 01 2013 Rich Mattes - 1.8.15-1.20130601gitfd027fa - Update to 1.8.15 - Fix github source url * Tue Sep 04 2012 Rich Mattes - 1.8.13-1.git5cd06e7 - Initial package