From d110144a6afd06ae6e9c7fed079b1abdb52677f9 Mon Sep 17 00:00:00 2001 From: Nicolas Limpert Date: Feb 26 2020 13:52:04 +0000 Subject: [PATCH 1/2] specs: add libg2o spec file --- diff --git a/specs/ros-libg2o.spec b/specs/ros-libg2o.spec new file mode 100644 index 0000000..d2914b9 --- /dev/null +++ b/specs/ros-libg2o.spec @@ -0,0 +1,161 @@ +Name: ros-libg2o +Version: melodic.2018.3.25 +Release: 1%{?dist} +Summary: ROS package libg2o + +License: BSD +URL: http://www.ros.org/ + +Source0: https://github.com/ros-gbp/libg2o-release/archive/release/melodic/libg2o/2018.3.25-0.tar.gz#/ros-melodic-libg2o-2018.3.25-source0.tar.gz + + + +# common BRs +BuildRequires: boost-devel +BuildRequires: console-bridge-devel +BuildRequires: gtest-devel +BuildRequires: log4cxx-devel +BuildRequires: python3-devel + +BuildRequires: boost-devel boost-python3-devel boost-python3-devel +BuildRequires: cmake +BuildRequires: eigen3-devel +BuildRequires: lapack-devel +BuildRequires: mesa-libGL-devel mesa-libGLU-devel +BuildRequires: openblas-devel +BuildRequires: suitesparse-devel +BuildRequires: ros-melodic-catkin-devel + +Requires: ros-melodic-catkin + +Provides: ros-melodic-libg2o = 2018.3.25-3 +Obsoletes: ros-melodic-libg2o < 2018.3.25-3 +Obsoletes: ros-kinetic-libg2o + + +%description +The libg2o library from http://openslam.org/g2o.html + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: cmake +Requires: boost-devel boost-python3-devel boost-python3-devel +Requires: eigen3-devel +Requires: lapack-devel +Requires: mesa-libGL-devel mesa-libGLU-devel +Requires: openblas-devel +Requires: suitesparse-devel +Requires: ros-melodic-catkin-devel + +Provides: ros-melodic-libg2o-devel = 2018.3.25-3 +Obsoletes: ros-melodic-libg2o-devel < 2018.3.25-3 +Obsoletes: ros-kinetic-libg2o-devel + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. + + + +%prep + +%setup -c -T +tar --strip-components=1 -xf %{SOURCE0} + +%build +# nothing to do here + + +%install + +PYTHONUNBUFFERED=1 ; export PYTHONUNBUFFERED + +CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ +CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ +FFLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FFLAGS ; \ +FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ; \ +%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} \ + +source %{_libdir}/ros/setup.bash + +# substitute shebang before install block because we run the local catkin script +for f in $(grep -rl python .) ; do + sed -i.orig '/^#!.*python\s*$/ { s/python/python3/ }' $f + touch -r $f.orig $f + rm $f.orig +done + +DESTDIR=%{buildroot} ; export DESTDIR + + +catkin_make_isolated \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCATKIN_ENABLE_TESTING=OFF \ + -DPYTHON_VERSION=%{python3_version} \ + -DPYTHON_VERSION_NODOTS=%{python3_version_nodots} \ + --source . \ + --install \ + --install-space %{_libdir}/ros/ \ + --pkg libg2o + + + + +rm -rf %{buildroot}/%{_libdir}/ros/{.catkin,.rosinstall,_setup*,local_setup*,setup*,env.sh} + +touch files.list +find %{buildroot}/%{_libdir}/ros/{bin,etc,lib64/python*,lib/python*/site-packages,share} \ + -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" > files.list +find %{buildroot}/%{_libdir}/ros/lib*/ -mindepth 1 -maxdepth 1 \ + ! -name pkgconfig ! -name "python*" \ + | sed "s:%{buildroot}/::" >> files.list + +touch files_devel.list +find %{buildroot}/%{_libdir}/ros/{include,lib*/pkgconfig} \ + -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" > files_devel.list + +find . -maxdepth 1 -type f -iname "*readme*" | sed "s:^:%%doc :" >> files.list +find . -maxdepth 1 -type f -iname "*license*" | sed "s:^:%%license :" >> files.list + + + +# replace cmake python macro in shebang +for file in $(grep -rIl '^#!.*@PYTHON_EXECUTABLE@*$' %{buildroot}) ; do + sed -i.orig 's:^#!\s*@PYTHON_EXECUTABLE@\s*:%{__python3}:' $file + touch -r $file.orig $file + rm $file.orig +done + +# replace unversioned python shebang +for file in $(grep -rIl '^#!.*python\s*$' %{buildroot}) ; do + sed -i.orig '/^#!.*python\s*$/ { s/python/python3/ }' $file + touch -r $file.orig $file + rm $file.orig +done + +# replace "/usr/bin/env $interpreter" with "/usr/bin/$interpreter" +for interpreter in bash sh python2 python3 ; do + for file in $(grep -rIl "^#\!.*${interpreter}" %{buildroot}) ; do + sed -i.orig "s:^#\!\s*/usr/bin/env\s\+${interpreter}.*:#!/usr/bin/${interpreter}:" $file + touch -r $file.orig $file + rm $file.orig + done +done + + +echo "This is a package automatically generated with rosfed." >> README_FEDORA +echo "See https://pagure.io/ros for more information." >> README_FEDORA +install -m 0644 -p -D -t %{buildroot}/%{_docdir}/%{name} README_FEDORA +echo %{_docdir}/%{name} >> files.list +install -m 0644 -p -D -t %{buildroot}/%{_docdir}/%{name}-devel README_FEDORA +echo %{_docdir}/%{name}-devel >> files_devel.list + + +%files -f files.list +%files devel -f files_devel.list + + +%changelog +* Tue Feb 25 2020 Nicolas Limpert - melodic.2018.3.25-1 +- Initial package From 01ea6d43166730bf351bc734797b3aeb6fdaf96b Mon Sep 17 00:00:00 2001 From: Nicolas Limpert Date: Feb 26 2020 13:52:04 +0000 Subject: [PATCH 2/2] cfg: add configuration for libg2o --- diff --git a/cfg/libg2o.yaml b/cfg/libg2o.yaml new file mode 100644 index 0000000..abd752b --- /dev/null +++ b/cfg/libg2o.yaml @@ -0,0 +1,5 @@ +dependencies: + build: + system: + - openblas-devel + - lapack-devel