diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml
index 7c1f51259..91c6a98e2 100644
--- a/.github/workflows/config.yml
+++ b/.github/workflows/config.yml
@@ -204,3 +204,62 @@ jobs:
if: always()
run: |
rm -fr ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} || echo "OK"
+
+# ROS-O setup https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
+ ros-o:
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - DISTRO: ubuntu:22.04
+ ROS_REPOSITORY_URL: https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository
+
+ container: ${{ matrix.DISTRO }}
+
+ env:
+ DEBIAN_FRONTEND : noninteractive
+
+ steps:
+ - name: Chcekout Source
+ uses: actions/checkout@v3.0.2
+
+ - name: Setup ROS-O deb repository
+ run: |
+ set -x
+ apt update && apt install -qq -y ca-certificates
+ echo "deb [trusted=yes] ${{ matrix.ROS_REPOSITORY_URL }}/ ./" | tee /etc/apt/sources.list.d/ros-o-builder.list
+ apt update
+ apt install -qq -y python3-rosdep2
+ echo "yaml ${{ matrix.ROS_REPOSITORY_URL }}/local.yaml debian" | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
+ rosdep update
+
+ - name: Setup catkin-tools
+ run: |
+ set -x
+ # setup catkin tools
+ apt install -qq -y python3-pip
+ pip3 install catkin-tools
+ # setup build tools
+ apt install -qq -y cmake build-essential catkin ros-one-rosbash
+
+ - name: Setup Workspace
+ run: |
+ source /opt/ros/one/setup.bash
+ set -x
+ # setup workspace
+ mkdir -p ~/ws/src
+ cd ~/ws/src
+ ln -sf $GITHUB_WORKSPACE .
+ rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
+ shell: bash
+
+ - name: Compile Packages
+ run: |
+ source /opt/ros/one/setup.bash
+ set -x
+ cd ~/ws/
+ catkin build --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
+ shell: bash
+
diff --git a/3rdparty/downward/CMakeLists.txt b/3rdparty/downward/CMakeLists.txt
index 5d153d878..e270fdb1b 100644
--- a/3rdparty/downward/CMakeLists.txt
+++ b/3rdparty/downward/CMakeLists.txt
@@ -14,7 +14,7 @@ externalproject_add(downward
URL http://cdn.rawgit.com/jsk-ros-pkg/archives/master/Fast-Downward-f33d3b65601f.tar.gz
TIMEOUT 120
CONFIGURE_COMMAND ""
- BUILD_COMMAND cd src && sed -i "s@^CXXFLAGS =$@CXXFLAGS = ${CXXFLAGS_NOETIC} -Wno-maybe-uninitialized@" search/Makefile && ./build_all DOWNWARD_BITWIDTH=native && patch -p3 < ${PROJECT_SOURCE_DIR}/fix_time_clock.patch
+ BUILD_COMMAND cd src && sed -i "s@^CXXFLAGS =$@CXXFLAGS = ${CXXFLAGS_NOETIC} -Wno-deprecated-copy -Wno-maybe-uninitialized@" search/Makefile && patch -p3 < ${PROJECT_SOURCE_DIR}/fix_std_vector_namespace.patch && ./build_all DOWNWARD_BITWIDTH=native && patch -p3 < ${PROJECT_SOURCE_DIR}/fix_time_clock.patch
INSTALL_COMMAND bash -c "cp -rf --parents src/{validate,plan,preprocess/preprocess,search/downward*,search/unitcost,search/portfolio.py,translate} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}"
BUILD_IN_SOURCE 1
)
diff --git a/3rdparty/downward/fix_std_vector_namespace.patch b/3rdparty/downward/fix_std_vector_namespace.patch
new file mode 100644
index 000000000..487dcd17b
--- /dev/null
+++ b/3rdparty/downward/fix_std_vector_namespace.patch
@@ -0,0 +1,10 @@
+--- src/downward/src/search/landmarks/landmark_factory_zhu_givan.h.bak 2024-11-13 13:20:10.508657847 +0900
++++ src/downward/src/search/landmarks/landmark_factory_zhu_givan.h 2024-11-13 13:20:12.591485789 +0900
+@@ -7,6 +7,7 @@
+ #include "../globals.h"
+
+ using namespace __gnu_cxx;
++using std::vector;
+
+ class LandmarkFactoryZhuGivan : public LandmarkFactory {
+ private:
diff --git a/3rdparty/ff/Makefile b/3rdparty/ff/Makefile
index 3a7de76b4..b691ceb70 100644
--- a/3rdparty/ff/Makefile
+++ b/3rdparty/ff/Makefile
@@ -16,7 +16,7 @@ MAKE_ARGS = ADDONS=-DYY_SKIP_YYWRAP
installed:$(SOURCE_DIR)/unpacked
rm -f $(SOURCE_DIR)/ff
- (cd $(SOURCE_DIR) && $(MAKE) clean && $(MAKE) CFLAGS='-O6 -g -ansi -Wno-array-bounds -Wno-endif-labels -Wno-format-overflow -Wno-implicit-function-declaration -Wno-int-in-bool-context -Wno-unused-function -Wno-unused-variable -fno-builtin-strncpy -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-strcat -fno-builtin-memset ' $(MAKE_ARGS))
+ (cd $(SOURCE_DIR) && $(MAKE) clean && $(MAKE) CFLAGS='-O6 -g -ansi -Wno-array-bounds -Wno-endif-labels -Wno-format-overflow -Wno-implicit-function-declaration -Wno-int-in-bool-context -Wno-unused-function -Wno-unused-variable -fno-builtin-strncpy -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-strcat -fno-builtin-memset -fcommon ' $(MAKE_ARGS))
mkdir -p bin
cp $(SOURCE_DIR)/ff bin/
touch installed
diff --git a/3rdparty/ffha/Makefile b/3rdparty/ffha/Makefile
index 9c6a1168c..b2d063231 100644
--- a/3rdparty/ffha/Makefile
+++ b/3rdparty/ffha/Makefile
@@ -22,7 +22,7 @@ $(SOURCE_DIR)/patched:$(SOURCE_DIR)/unpacked
touch $(SOURCE_DIR)/patched
installed:$(SOURCE_DIR)/patched
- (cd $(SOURCE_DIR) && $(MAKE) clean && $(MAKE) CFLAGS='-O6 -g -ansi -Wno-array-bounds -Wno-endif-labels -Wno-format-overflow -Wno-implicit-function-declaration -Wno-int-in-bool-context -Wno-unused-function -Wno-unused-variable -fno-builtin-strncpy -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-strcat -fno-builtin-memset ' $(MAKE_ARGS))
+ (cd $(SOURCE_DIR) && $(MAKE) clean && $(MAKE) CFLAGS='-O6 -g -ansi -Wno-array-bounds -Wno-endif-labels -Wno-format-overflow -Wno-implicit-function-declaration -Wno-int-in-bool-context -Wno-unused-function -Wno-unused-variable -fno-builtin-strncpy -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-strcat -fno-builtin-memset -fcommon ' $(MAKE_ARGS))
mkdir -p bin
cp $(SOURCE_DIR)/ffha bin/
touch installed
diff --git a/3rdparty/libsiftfast/Makefile b/3rdparty/libsiftfast/Makefile
index b330cb1c7..70c618026 100644
--- a/3rdparty/libsiftfast/Makefile
+++ b/3rdparty/libsiftfast/Makefile
@@ -24,7 +24,7 @@ clone: $(SVN_DIR)
patch: clone
cd $(SVN_DIR) && svn revert --recursive . && for patch in $(SOURCE_DIR)/patches/0*.patch; do patch -p0 -f -E < $$patch; done
# for python3
- if [ "${ROS_DISTRO}" \> "melodic" ]; then cd $(SVN_DIR) && svn revert --recursive . && for patch in $(SOURCE_DIR)/patches/1*.patch; do patch -p0 -f -E < $$patch; done; fi
+ if [ "${ROS_DISTRO}" != "kinetic" -a "${ROS_DISTRO}" != "melodic" ]; then cd $(SVN_DIR) && svn revert --recursive . && for patch in $(SOURCE_DIR)/patches/1*.patch; do patch -p0 -f -E < $$patch; done; fi
libsiftfast: patch
cd $(SVN_DIR)/$(BUILDDIR) && BOOST_INCLUDEDIR=$(BOOST_INCLUDE_DIRS) BOOST_LIBRARYDIR=$(BOOST_LIBRARY_DIRS) cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) .. && make $(ROS_PARALLEL_JOBS) install
diff --git a/3rdparty/libsiftfast/patches/10.boost_python38.patch b/3rdparty/libsiftfast/patches/10.boost_python38.patch
index 36dfe4c89..451fc743f 100644
--- a/3rdparty/libsiftfast/patches/10.boost_python38.patch
+++ b/3rdparty/libsiftfast/patches/10.boost_python38.patch
@@ -2,12 +2,14 @@ Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt (revision 54)
+++ CMakeLists.txt (working copy)
-@@ -155,7 +155,8 @@
+@@ -155,7 +155,10 @@
if( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
set(Boost_LIBRARY_DIRS $ENV{BOOST_LIBRARYDIR})
endif()
-find_package(Boost COMPONENTS python)
-+find_package(Boost REQUIRED COMPONENTS system python38)
++set(Python3_FIND_STRATEGY VERSION)
++find_package(Python3 COMPONENTS Interpreter Development)
++find_package(Boost REQUIRED COMPONENTS system python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR})
+add_definitions("-Wno-narrowing")
if( Boost_FOUND )
@@ -17,7 +19,7 @@ Index: CMakeLists.txt
#
set(BUILD_SIFTFASTPY)
-if( Boost_PYTHON_FOUND )
-+if( Boost_PYTHON38_FOUND )
++if( Boost_PYTHON${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}_FOUND )
find_package(PythonLibs)
if( PYTHONLIBS_FOUND OR PYTHON_LIBRARIES )
diff --git a/3rdparty/zdepth/CMakeLists.txt b/3rdparty/zdepth/CMakeLists.txt
index 52bb0d590..08b996951 100644
--- a/3rdparty/zdepth/CMakeLists.txt
+++ b/3rdparty/zdepth/CMakeLists.txt
@@ -3,18 +3,18 @@ project(zdepth)
include(ExternalProject)
-if("$ENV{ROS_DISTRO}" STRGREATER "kinetic")
+if(("$ENV{ROS_DISTRO}" STREQUAL "indigo") OR ("$ENV{ROS_DISTRO}" STREQUAL "kinetic"))
+ install(CODE "message(WARNING \"Skipping zdepth install because ROS is too old\")")
+else()
ExternalProject_Add(
zdepth
GIT_REPOSITORY https://github.com/catid/Zdepth.git
GIT_TAG ac7c6d8e944d07be2404e5a1eaa04562595f3756
GIT_SHALLOW TRUE
- PATCH_COMMAND cat ${PROJECT_SOURCE_DIR}/fix_cmakelists.patch | patch -p1
+ PATCH_COMMAND cat ${PROJECT_SOURCE_DIR}/fix_cmakelists.patch | patch -p1 --forward || true # If there is no --forward, the build process hangs because the patch command waits interactively for input on whether a file that has already been patched can be patched again. If there is no || true , the patch command returns non-zero status if you try to use it on the patched file, then catkin build failes
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
INSTALL_COMMAND echo "install"
)
install(CODE "execute_process(COMMAND make install WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/zdepth-prefix/src/zdepth-build)")
-else()
- install(CODE "message(WARNING \"Skipping zdepth install because ROS is too old\")")
endif()
diff --git a/dialogflow_task_executive/CMakeLists.txt b/dialogflow_task_executive/CMakeLists.txt
index f4a206208..eec641946 100644
--- a/dialogflow_task_executive/CMakeLists.txt
+++ b/dialogflow_task_executive/CMakeLists.txt
@@ -59,15 +59,15 @@ elseif("$ENV{ROS_DISTRO}" STREQUAL "indigo")
catkin_generate_virtualenv(PYTHON_INTERPRETER python2
# https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed
EXTRA_PIP_ARGS -vvv --cert=${CMAKE_BINARY_DIR}/cacert.pem)
-elseif("$ENV{ROS_DISTRO}" STRGREATER "melodic")
+elseif("$ENV{ROS_DISTRO}" STREQUAL "kinetic" OR "$ENV{ROS_DISTRO}" STREQUAL "melodic")
catkin_generate_virtualenv(
- INPUT_REQUIREMENTS requirements.in.noetic
- PYTHON_INTERPRETER python3
+ INPUT_REQUIREMENTS requirements.in
+ PYTHON_INTERPRETER python2
)
else()
catkin_generate_virtualenv(
- INPUT_REQUIREMENTS requirements.in
- PYTHON_INTERPRETER python2
+ INPUT_REQUIREMENTS requirements.in.noetic
+ PYTHON_INTERPRETER python3
)
endif()
diff --git a/jsk_3rdparty/package.xml b/jsk_3rdparty/package.xml
index b878b227b..ac9194395 100644
--- a/jsk_3rdparty/package.xml
+++ b/jsk_3rdparty/package.xml
@@ -55,7 +55,7 @@
zdepth
- collada_urdf_jsk_patch
+
laser_filters_jsk_patch
diff --git a/jsk_ros_patch/collada_urdf_jsk_patch/CMakeLists.txt b/jsk_ros_patch/collada_urdf_jsk_patch/CMakeLists.txt
index 322560351..65643bfb6 100644
--- a/jsk_ros_patch/collada_urdf_jsk_patch/CMakeLists.txt
+++ b/jsk_ros_patch/collada_urdf_jsk_patch/CMakeLists.txt
@@ -5,12 +5,19 @@ project(collada_urdf_jsk_patch)
if(("$ENV{ROS_DISTRO}" STREQUAL "groovy") OR ("$ENV{ROS_DISTRO}" STREQUAL "hydro"))
set(SOURCE_DISTRO hydro-devel)
set(GIT_REPO robot_model)
-elseif ("$ENV{ROS_DISTRO}" STRLESS "melodic")
+elseif (("$ENV{ROS_DISTRO}" STREQUAL "indigo") OR ("$ENV{ROS_DISTRO}" STREQUAL "jade") OR ("$ENV{ROS_DISTRO}" STREQUAL "kinetic"))
set(SOURCE_DISTRO bd4fc369d56eaa0c31d8cb17677e00b9d9685de6) # 1.11.13, before strip indigo
set(GIT_REPO robot_model)
-elseif ("$ENV{ROS_DISTRO}" STREQUAL "melodic" OR "$ENV{ROS_DISTRO}" STRGREATER "melodic")
+elseif (("$ENV{ROS_DISTRO}" STREQUAL "melodic") OR ("$ENV{ROS_DISTRO}" STREQUAL "noetic"))
set(SOURCE_DISTRO 923c5d33bd245e82134e8ae02e4c9d379e80eb27) # 1.12.12
set(GIT_REPO collada_urdf)
+else()
+ find_package(catkin REQUIRED)
+ catkin_package(CATKIN_DEPENDS)
+ file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/CATKIN_IGNORE)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CATKIN_IGNORE #catkin_lint: ignore_once missing_file
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
+ return()
endif()
if ("$ENV{ROS_DISTRO}" STREQUAL "kinetic" OR "$ENV{ROS_DISTRO}" STRGREATER "kinetic")
set(CXXFLAGS CXXFLAGS=-std=gnu++11)
diff --git a/respeaker_ros/CMakeLists.txt b/respeaker_ros/CMakeLists.txt
index d6752f005..0eb66f1df 100644
--- a/respeaker_ros/CMakeLists.txt
+++ b/respeaker_ros/CMakeLists.txt
@@ -14,9 +14,9 @@ generate_dynamic_reconfigure_options(
catkin_package()
-if($ENV{ROS_DISTRO} STRGREATER "melodic")
+if("$ENV{ROS_DISTRO}" STREQUAL "kinetic" OR "$ENV{ROS_DISTRO}" STREQUAL "melodic")
catkin_generate_virtualenv(
- PYTHON_INTERPRETER python3
+ PYTHON_INTERPRETER python2
CHECK_VENV FALSE
)
elseif("$ENV{ROS_DISTRO}" STREQUAL "indigo")
@@ -28,7 +28,7 @@ elseif("$ENV{ROS_DISTRO}" STREQUAL "indigo")
)
else()
catkin_generate_virtualenv(
- PYTHON_INTERPRETER python2
+ PYTHON_INTERPRETER python3
CHECK_VENV FALSE
)
endif()
diff --git a/sesame_ros/CMakeLists.txt b/sesame_ros/CMakeLists.txt
index 2ff28f17e..f9ac9a4ae 100644
--- a/sesame_ros/CMakeLists.txt
+++ b/sesame_ros/CMakeLists.txt
@@ -20,9 +20,10 @@ catkin_package(
CATKIN_DEPENDS message_runtime
)
-if($ENV{ROS_DISTRO} STRGREATER "melodic")
+if($ENV{ROS_DISTRO} STREQUAL "kinetic" OR $ENV{ROS_DISTRO} STREQUAL "melodic")
catkin_generate_virtualenv(
- PYTHON_INTERPRETER python3
+ PYTHON_INTERPRETER python2
+ CHECK_VENV FALSE
)
elseif("$ENV{ROS_DISTRO}" STREQUAL "indigo")
file(DOWNLOAD http://curl.haxx.se/ca/cacert.pem ${CMAKE_BINARY_DIR}/cacert.pem)
@@ -33,7 +34,8 @@ elseif("$ENV{ROS_DISTRO}" STREQUAL "indigo")
)
else()
catkin_generate_virtualenv(
- PYTHON_INTERPRETER python2
+ PYTHON_INTERPRETER python3
+ CHECK_VENV FALSE
)
endif()
diff --git a/sesame_ros/requirements.txt b/sesame_ros/requirements.txt
index 7bb97d5c5..c76134ce7 100644
--- a/sesame_ros/requirements.txt
+++ b/sesame_ros/requirements.txt
@@ -1,6 +1,5 @@
asn1crypto==1.3.0
certifi==2020.6.20
-cffi==1.14.0
chardet==3.0.4
cryptography==2.3
enum34==1.1.10