%global commit 0c13adb6b4fc4f276f3824aa83d66d1edc9d6f2b %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: ros Version: 1.8.10 Release: 3.20130608git%{shortcommit}%{?dist} Summary: The Robot Operating System License: BSD URL: http://ros.org/ Source0: https://github.com/ros/%{name}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz Patch0: ros-1.8.10-libdir.patch BuildRequires: boost-devel BuildRequires: cmake BuildRequires: gtest-devel BuildRequires: ros-catkin-devel BuildRequires: ros-rospack-devel BuildRequires: ros-release Requires: ros-release # Require all of the packages in the ros stack: Requires: ros-mk Requires: rosbash Requires: rosboost_cfg Requires: rosbuild Requires: rosclean Requires: roscreate Requires: roslang Requires: roslib Requires: rosmake Requires: rosunit %description ROS is a meta-operating system for your robot. It provides language- independent and network-transparent communication for a distributed robot control system. %package devel Requires: %{name}%{?_isa} = %{version}-%{release} Provides: ros-%{name}-devel%{?_isa} = %{version}-%{release} Summary: Development files for %{name} %description devel %{summary}. %package -n ros-mk Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Collection of .mk files for building ROS architectural elements %description -n ros-mk A collection of .mk include files for building ROS architectural elements. Most package authors should use cmake .mk, which calls CMake for the build of the package. The other files in this package are intended for use in exotic situations that mostly arise when importing 3rdparty code. %package -n rosbash Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Bash functions for ROS utilities %description -n rosbash The rosbash package contains some useful bash functions and adds tab- completion to a large number of the basic ros utilities. %package -n rosboost_cfg Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Boost configuration scripts for ROS %description -n rosboost_cfg Contains scripts used by the rosboost-cfg tool for determining cflags/lflags/etc. of boost on your system %package -n rosbuild Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Scripts for managing the CMake-based build system for ROS %description -n rosbuild The core build tool ROS uses is CMake. CMake is a powerful cross-platform build tool that provides both configure and make functionality. The core problem solved by rosbuild is gathering appropriate build flags from and track dependencies in the ROS package tree. For example, by using the macros provided by rosbuild, you automatically inherit the union of build flags exported by packages on which your package depends. rosbuild also provides extensive support for declaring tests. %package -n rosclean Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Cleanup utilities for ROS filesystem resources %description -n rosclean Cleanup of filesystem resources like log files %package -n roscreate Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Tools to assist in creation of ROS filesystem resources %description -n roscreate roscreate contains tools that assist in the creation of ROS filesystem resources. There are currently two tools that it provides: roscreate-pkg and roscreate-stack. roscreate-pkg creates a new package directory, including the appropriate build and manifest files. roscreate-stack computes a stack.xml file from a list of packages in a directory. %package -n roslang Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: ROS client library implementation base %description -n roslang roslang is a common package that all ROS client libraries depend on. This is mainly used to find client libraries (via 'rospack depends-on1 roslang'). %package -n roslang-devel Requires: roslang = %{version}-%{release} BuildArch: noarch Summary: Development files for roslang %description -n roslang-devel %{summary}. %package -n roslib Requires: %{name}%{?_isa} = %{version}-%{release} Summary: Base dependencies and support libraries for ROS %description -n roslib roslib is the base dependency of all ROS Client Libraries and tools. It contains common tools like the generators for Messages and Services as well as common message definitions like Header and Log. It also contains the common path-bootstrapping code for ROS Python nodes and tools. %package -n roslib-devel Requires: roslib%{?_isa} = %{version}-%{release} Summary: Development files for roslib %description -n roslib-devel %{summary}. %package -n rosmake Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: Tool to build ROS packages in dependency order %description -n rosmake rosmake is a tool to assist with building ROS packages. It facilitates building packages that have dependencies. ROS comprises a large number of packages. However, with the exception of some core packages that everything else depends on, e.g., roscpp and rospy, many of the packages are largely independent. As such, we have provided a build system to allow you to only build what is actually necessary to run the packages that you want to run. %package -n rosunit Requires: %{name} = %{version}-%{release} BuildArch: noarch Summary: ROS Unit Test framework %description -n rosunit Unit-testing package for ROS. This is a lower-level library for rostest and handles unit tests, whereas rostest handles integration tests. %package -n rosunit-devel Requires: rosunit = %{version}-%{release} BuildArch: noarch Summary: Development files for rosunit %description -n rosunit-devel %{summary}. %prep %setup -qn %{name}-%{commit} %patch0 -p0 -b .libdir %build source %{_datadir}/ros/setup.sh mkdir build pushd build %cmake -DSETUPTOOLS_DEB_LAYOUT=OFF .. popd %install make -C build install DESTDIR=%{buildroot} mkdir -p %{buildroot}%{_libdir} mv %{buildroot}%{_usr}/etc %{buildroot} mkdir -p %{buildroot}%{_datadir}/pkgconfig mv %{buildroot}%{_libdir}/pkgconfig/rosunit.pc %{buildroot}%{_datadir}/pkgconfig find %{buildroot}%{python_sitelib} -name "*.py" -exec sed -i "s|#!|#|" {} \; sed -i "s|#!|#|" %{buildroot}%{_datadir}/ros/core/mk/make_pydev_project.py rm -rf %{buildroot}%{_datadir}/ros/core/rosbuild/tests %files %doc AUTHORS LICENSE/LICENSE README %config(noreplace) %{_sysconfdir}/catkin/profile.d/* %dir %{_datadir}/ros/core %{_datadir}/%{name}/stack.xml %{_datadir}/%{name}/config %files -n ros-mk %{_datadir}/ros/core/mk %files -n rosbash %{_bindir}/rosrun %{_datadir}/rosbash %files -n rosboost_cfg %{_bindir}/rosboost-cfg %{_datadir}/rosboost_cfg %{python_sitelib}/rosboost_cfg %files -n rosbuild %{_datadir}/ros/core/rosbuild %files -n rosclean %{_bindir}/rosclean %{_datadir}/rosclean %{python_sitelib}/rosclean %files -n roscreate %{_bindir}/roscreate-pkg %{_datadir}/roscreate %{python_sitelib}/roscreate %files -n roslang %dir %{_datadir}/roslang %{_datadir}/roslang/manifest.xml %files -n roslang-devel %{_datadir}/roslang/cmake %files -n roslib %dir %{_datadir}/roslib %{_datadir}/roslib/manifest.xml %{_libdir}/libroslib.so %{_libdir}/roslib %{python_sitelib}/ros %{python_sitelib}/roslib %{python_sitelib}/roslib-%{version}-py?.?.egg-info %files -n roslib-devel %{_datadir}/roslib/cmake %{_libdir}/pkgconfig/roslib.pc %{_includedir}/ros %files -n rosmake %{_bindir}/rosmake %{_datadir}/rosmake %{python_sitelib}/rosmake %files -n rosunit %{_bindir}/rosunit %dir %{_datadir}/rosunit %{_datadir}/rosunit/manifest.xml %{_usr}/lib/rosunit %{python_sitelib}/rosunit %files -n rosunit-devel %{_datadir}/rosunit/cmake %{_datadir}/pkgconfig/rosunit.pc %changelog * Sat Jun 08 2013 Rich Mattes - 1.8.10-3.20130608git0c13adb - Update to github upstream - Don't copy libraries to libdir manually, patch does it instad - Patch roslib to look in libdir/packagename for executables - Split ros packages out into sub-packages * Mon Mar 25 2013 Rich Mattes - 1.8.10-2 - Require ros-release for /usr/share/ros * Sun Jan 13 2013 Rich Mattes - 1.8.10-1 - Initial fuerte package