Name: ros-lyrical-resource-retriever Version: 3.9.3 Release: 1%{?dist} Summary: ROS package resource-retriever License: BSD URL: http://ros.org/wiki/resource_retriever Source0: https://github.com/ros2-gbp/resource_retriever-release/archive/release/lyrical/resource_retriever/3.9.3-3.tar.gz#/ros-lyrical-resource-retriever-3.9.3-source0.tar.gz # common BRs BuildRequires: patchelf BuildRequires: coreutils BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git BuildRequires: make BuildRequires: patch BuildRequires: python3-devel BuildRequires: python-unversioned-command BuildRequires: python3-colcon-common-extensions BuildRequires: python3-pip BuildRequires: python3-pydocstyle BuildRequires: python3-pytest BuildRequires: python3-pytest-repeat BuildRequires: python3-pytest-rerunfailures BuildRequires: python3-rosdep BuildRequires: python3-setuptools BuildRequires: python3-vcstool # BuildRequires: boost-devel # BuildRequires: console-bridge-devel # BuildRequires: gtest-devel # BuildRequires: log4cxx-devel # BuildRequires: python3-devel # BuildRequires: python3-colcon-common-extensions # BuildRequires: python-unversioned-command BuildRequires: libcurl-devel BuildRequires: ros-lyrical-ament-cmake-ros BuildRequires: ros-lyrical-ament-index-cpp BuildRequires: ros-lyrical-ament-index-python BuildRequires: ros-lyrical-ament-package Requires: ros-lyrical-ament-index-cpp Requires: ros-lyrical-ament-index-python Requires: ros-lyrical-ament-cmake-ros Requires: libcurl-devel Requires: ros-lyrical-ament-index-cpp Requires: ros-lyrical-ament-index-python Requires: ros-lyrical-ament-package Provides: ros-lyrical-resource-retriever = 3.9.3-1 Obsoletes: ros-lyrical-resource-retriever < 3.9.3-1 %description This package retrieves data from url-format files such as http://, ftp://, package:// file://, etc., and loads the data into memory. The package:// url for ros packages is translated into a local file:// url. The resourse retriever was initially designed to load mesh files into memory, but it can be used for any type of data. The resource retriever is based on the the libcurl library. %prep %setup -c -T tar --strip-components=1 -xf %{SOURCE0} %build # nothing to do here %install PYTHONUNBUFFERED=1 ; export PYTHONUNBUFFERED GZ_BUILD_FROM_SOURCE=1; export GZ_BUILD_FROM_SOURCE export GZ_VERSION=harmonic; CFLAGS=" -Wno-error ${CFLAGS:-%optflags} -Wno-error -w -Wno-error=int-conversion" ; export CFLAGS ; \ CXXFLAGS=" -Wno-error ${CXXFLAGS:-%optflags} -Wno-error -w -Wno-error=int-conversion" ; export CXXFLAGS ; \ FFLAGS=" -Wno-error ${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}} -w -Wno-error=int-conversion" ; export FFLAGS ; \ FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}} -w -Wno-error=int-conversion" ; export FCFLAGS ; \ %{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} \ source %{_libdir}/ros-lyrical/setup.bash # substitute shebang before install block because we run the local catkin script %py3_shebang_fix . # DESTDIR=%{buildroot} ; export DESTDIR CMAKE_POLICY_VERSION_MINIMUM=3.5 \ colcon \ build \ --merge-install \ --cmake-args -DPYTHON_EXECUTABLE="/usr/bin/python" \ -DTHIRDPARTY_Asio=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DCMAKE_LD_FLAGS="$LDFLAGS" \ -DBUILD_TESTING=OFF \ -Dgz_add_get_install_prefix_impl_OVERRIDE_INSTALL_PREFIX_ENV_VARIABLE="%{_libdir}/ros-lyrical/opt/" \ --base-paths . \ --install-base %{buildroot}/%{_libdir}/ros-lyrical/ \ --packages-select resource_retriever # remove wrong buildroot prefixes # find %{buildroot}/%{_libdir}/ros-lyrical/ -type f -exec sed -i "s:%{buildroot}::g" {} \; # we should exclude binaries from that as it might corrupt shared libraries find %{buildroot}/%{_libdir}/ros-lyrical/ -type f ! -name '*.so*' -exec sh -c 'file "{}" | grep -q text && sed -i "s:%{buildroot}::g" "{}"' \; rm -rf %{buildroot}/%{_libdir}/ros-lyrical/{.catkin,.rosinstall,_setup*,local_setup*,setup*,env.sh,.colcon_install_layout,COLCON_IGNORE,_local_setup*,_local_setup*} # vendor pkg removal rm -rf %{buildroot}/%{_libdir}/ros-lyrical/opt/share/resource_retriever/{.catkin,.rosinstall,_setup*,local_setup*,setup*,env.sh,.colcon_install_layout,COLCON_IGNORE,_local_setup*,_local_setup*} # remove __pycache__ find %{buildroot} -type d -name '__pycache__' -exec rm -rf {} + find . -name '*.pyc' -delete touch files.list find %{buildroot}/%{_libdir}/ros-lyrical/{share,bin,etc,tools,lib64/python*,lib/python*/site-packages,lib/python*/dist-packages} \ ! -name cmake ! -name include \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" > files.list find %{buildroot}/%{_libdir}/ros-lyrical/lib*/ -mindepth 1 -maxdepth 1 \ ! -name pkgconfig ! -name "python*" \ | sed "s:%{buildroot}/::" >> files.list # paths for vendor packages find %{buildroot}/%{_libdir}/ros-lyrical/resource_retriever/{bin,etc,tools,lib64/python*,lib/python*,share} \ ! -name cmake ! -name include \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/resource_retriever/{bin,etc,tools,lib64/python*,lib/python*,share} \ ! -name cmake ! -name include \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/resource_retriever/lib*/ -mindepth 1 -maxdepth 1 \ ! -name pkgconfig ! -name "python*" \ | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/resource_retriever/lib*/ -mindepth 1 -maxdepth 1 \ ! -name pkgconfig ! -name "python*" \ | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/share/resource_retriever \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/{lib*/pkgconfig,include/,cmake/,resource_retriever/include/,share/resource_retriever/cmake} \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list # paths for vendor packages find %{buildroot}/%{_libdir}/ros-lyrical/resource_retriever/{lib*/pkgconfig,include/,cmake/,extra_cmake/,resource_retriever/include/,share/cmake} \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/resource_retriever/extra_cmake \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/resource_retriever/{lib*/pkgconfig,include/,cmake/,resource_retriever/include/,/share/cmake,/extra_cmake} \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/share/ament_index/resource_index \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/share/colcon-core/packages/ \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/opt/share/resource_retriever/{hook,environment,cmake} \ -mindepth 1 -maxdepth 1 | sed "s:%{buildroot}/::" >> files.list find . -maxdepth 1 -type f -iname "*license*" | sed "s:^:%%license :" >> files.list echo "=== DEBUG: checking for src/ directory ===" find %{buildroot}/%{_libdir}/ros-lyrical/src/ -ls 2>&1 || echo "src/ directory does not exist" echo "=== DEBUG: full buildroot layout ===" find %{buildroot}/%{_libdir}/ros-lyrical/ -maxdepth 4 -ls 2>&1 echo "=== DEBUG: files.list contents so far ===" cat files.list echo "=== DEBUG: end ===" # collect vendor source trees (e.g. gtest_vendor) find %{buildroot}/%{_libdir}/ros-lyrical/src/ \ -mindepth 1 -maxdepth 1 \ | sed "s:%{buildroot}/::" >> files.list find %{buildroot}/%{_libdir}/ros-lyrical/ -name *__rosidl_generator_py.so -type f -exec patchelf --remove-rpath {} \; # find %{buildroot}/%{_libdir}/ros-lyrical/ -name *__rosidl_generator_py.so -type f -exec patchelf --force-rpath --add-rpath "%{_libdir}/ros2/lib" {} \; find %{buildroot}/%{_libdir}/ros-lyrical/ -name "*.so*" -type f -exec patchelf --shrink-rpath --allowed-rpath-prefixes %{_libdir} {} \; # 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 echo "This is a package automatically generated with rosfed." >> README_FEDORA echo "See https://github.com/TarikViehmann/rosfed for more information." >> README_FEDORA install -m 0644 -p -D -t %{buildroot}/%{_docdir}/%{name} README_FEDORA echo %{_docdir}/%{name} >> files.list %py3_shebang_fix %{buildroot} # Also fix .py.in files for pyfile in $(grep -rIl '^#!.*python.*$' %{buildroot}) ; do %py3_shebang_fix $pyfile done sort files.list | uniq > files.list.tmp && mv files.list.tmp files.list %files -f files.list %changelog * Mon Jun 01 2026 Tarik Viehmann - lyrical.3.9.3-1 - Update to latest release