From d110144a6afd06ae6e9c7fed079b1abdb52677f9 Mon Sep 17 00:00:00 2001
From: Nicolas Limpert <limpert@fh-aachen.de>
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 <limpert@fh-aachen.de> - melodic.2018.3.25-1
+- Initial package

From 01ea6d43166730bf351bc734797b3aeb6fdaf96b Mon Sep 17 00:00:00 2001
From: Nicolas Limpert <limpert@fh-aachen.de>
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

