From c93c9cc6ce7e602c376aec20c7d7735eb7db7d13 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 29 Jan 2024 02:51:09 +0100 Subject: [PATCH] Full Rebuild January 2024 with updated conda-forge pinnings (#418) * Full Rebuild October 2023 * Remove foxglove_bridge for now * Update ros-noetic-microstrain-inertial-driver.patch * Update conda_forge_pinnings.yaml * Update conda_build_config.yaml * Delete patch/ros-noetic-geometric-shapes.win.patch * Delete patch/ros-noetic-moveit-core.patch * Update recipe.yaml * Update conda_forge_pinnings.yaml * remove pybind11-catkin patch * fix pybind11 build error * fix control-box-rst * Update ros-noetic-moveit-ros-planning.win.patch Remove changes upstreamed in https://github.com/ros-planning/moveit/pull/2772 * Update ros-noetic-rosmon-core.patch * Create ros-noetic-sophus.path * Fix name of sophus patch and bump eigenpy * fix ros-noetic-moveit-ros-planning patch * Update additional_recipes * Temporarily build ros-noetic-eigenpy * Fix run_exports in eigenpy, hpp-fcl and pinocchio * Manually build hpp-fcl and pinocchio * Fixup pinoccio version * Really skip pinocchio (remove from select_by_deps) * See if boa segfault goes away with boa release instead of boa main on osx/win * Sync with humble * Fixes * Fixups * Fixing patches * Fixes for linux-aarch64 * Local linux-64 build * A few more packages, including rtabmap * Be more verbose about commented-out packages in vinca files. * Reviewer comments @traversaro --------- Co-authored-by: Hongzhuo Liang Co-authored-by: Tobias Fischer Co-authored-by: Martin Pecka --- .ci_support/conda_forge_pinnings.yaml | 477 ++++++++----- .cirun.yml | 5 +- .github/testpr_environment.yml | 8 +- .github/workflows/main.yml | 50 +- .github/workflows/testpr.yml | 35 +- .gitignore | 1 + .scripts/build_linux.sh | 5 +- .../ros-distro-mutex/recipe.yaml | 8 +- .../ros-noetic-eigenpy/recipe.yaml | 29 +- .../ros-noetic-hpp-fcl/recipe.yaml | 17 + .../ros-noetic-pinocchio/recipe.yaml | 17 + conda_build_config.yaml | 20 +- env/robostackenv.yaml | 2 +- patch/dependencies.yaml | 8 +- patch/ros-noetic-catkin.patch | 2 +- patch/ros-noetic-control-box-rst.patch | 13 + patch/ros-noetic-costmap-converter.patch | 77 +++ patch/ros-noetic-cras-cpp-common.patch | 51 -- patch/ros-noetic-cv-bridge.patch | 11 +- patch/ros-noetic-filters.patch | 14 + patch/ros-noetic-geometric-shapes.win.patch | 41 -- patch/ros-noetic-jsk-recognition-msgs.patch | 16 + patch/ros-noetic-jsk-recognition-utils.patch | 203 ++---- patch/ros-noetic-mavros-extras.patch | 12 + ...s-noetic-microstrain-inertial-driver.patch | 13 - patch/ros-noetic-moveit-core.patch | 68 -- ...urces-prbt-ikfast-manipulator-plugin.patch | 31 - .../ros-noetic-moveit-ros-planning.win.patch | 54 +- patch/ros-noetic-nodelet.patch | 53 -- patch/ros-noetic-octomap-server.patch | 13 + patch/ros-noetic-plotjuggler-ros.patch | 26 - patch/ros-noetic-plotjuggler.patch | 178 ++++- patch/ros-noetic-pybind11-catkin.patch | 32 +- patch/ros-noetic-rosconsole.patch | 630 ++++++++++++++++++ patch/ros-noetic-rosmon-core.patch | 26 +- patch/ros-noetic-rqt-rosmon.patch | 13 + patch/ros-noetic-rtabmap-conversions.patch | 18 + patch/ros-noetic-rtabmap.patch | 43 +- patch/ros-noetic-ruckig.patch | 17 + patch/ros-noetic-slam-toolbox.patch | 112 +++- patch/ros-noetic-sophus.patch | 27 + robostack.yaml | 54 +- vinca_linux_64.yaml | 216 +++--- vinca_linux_aarch64.yaml | 167 ++--- vinca_osx.yaml | 155 ++--- vinca_osx_arm64.yaml | 141 ++-- vinca_win.yaml | 156 ++--- 47 files changed, 2110 insertions(+), 1255 deletions(-) create mode 100644 additional_recipes/ros-noetic-hpp-fcl/recipe.yaml create mode 100644 additional_recipes/ros-noetic-pinocchio/recipe.yaml create mode 100644 patch/ros-noetic-control-box-rst.patch create mode 100644 patch/ros-noetic-costmap-converter.patch delete mode 100644 patch/ros-noetic-cras-cpp-common.patch create mode 100644 patch/ros-noetic-filters.patch delete mode 100644 patch/ros-noetic-geometric-shapes.win.patch create mode 100644 patch/ros-noetic-jsk-recognition-msgs.patch create mode 100644 patch/ros-noetic-mavros-extras.patch delete mode 100644 patch/ros-noetic-moveit-core.patch delete mode 100644 patch/ros-noetic-nodelet.patch create mode 100644 patch/ros-noetic-octomap-server.patch delete mode 100644 patch/ros-noetic-plotjuggler-ros.patch create mode 100644 patch/ros-noetic-rosconsole.patch create mode 100644 patch/ros-noetic-rqt-rosmon.patch create mode 100644 patch/ros-noetic-rtabmap-conversions.patch create mode 100644 patch/ros-noetic-ruckig.patch create mode 100644 patch/ros-noetic-sophus.patch diff --git a/.ci_support/conda_forge_pinnings.yaml b/.ci_support/conda_forge_pinnings.yaml index 2118831ba..927289f11 100644 --- a/.ci_support/conda_forge_pinnings.yaml +++ b/.ci_support/conda_forge_pinnings.yaml @@ -1,72 +1,57 @@ -# This differs from target_platform in that it determines what subdir the compiler -# will target, not what subdir the compiler package will be itself. -# For example, we need a win-64 vs2008_win-32 package, so that we compile win-32 -# code on win-64 miniconda. -cross_compiler_target_platform: # [win] - - win-64 # [win] c_compiler: - gcc # [linux] - clang # [osx] - - vs2019 # [win] + - vs2019 # [win and x86_64] + - vs2022 # [win and arm64] c_compiler_version: # [unix] - - 11 # [linux] - - 14 # [osx] - - 7 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 9 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] + - 12 # [linux] + - 16 # [osx] + - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] + - 11 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] cxx_compiler: - gxx # [linux] - clangxx # [osx] - - vs2019 # [win] + - vs2019 # [win and x86_64] + - vs2022 # [win and arm64] cxx_compiler_version: # [unix] - - 11 # [linux] - - 14 # [osx] - - 7 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 9 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] + - 12 # [linux] + - 16 # [osx] + - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] + - 11 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] llvm_openmp: # [osx] - - 14 # [osx] + - 16 # [osx] fortran_compiler: # [unix or win64] - gfortran # [linux64 or (osx and x86_64)] - gfortran # [aarch64 or ppc64le or armv7l or s390x] - flang # [win64] fortran_compiler_version: # [unix or win64] - - 11 # [linux] - - 11 # [osx] + - 12 # [linux] + - 12 # [osx] - 5 # [win64] - - 7 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 9 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] - - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux64] + - 10 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] + - 11 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and linux] m2w64_c_compiler: # [win] - m2w64-toolchain # [win] m2w64_cxx_compiler: # [win] - m2w64-toolchain # [win] m2w64_fortran_compiler: # [win] - m2w64-toolchain # [win] -CMAKE_GENERATOR: # [win] - - NMake Makefiles # [win] -cuda_compiler: # [linux or win] - - nvcc # [linux or win] +cuda_compiler: + - None + - nvcc # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - nvcc # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] cuda_compiler_version: - None - - 10.2 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.0 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.1 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.2 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 11.2 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 11.8 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] cuda_compiler_version_min: - None # [osx] - - 10.2 # [linux64 or win] - - 11.2 # [linux and (ppc64le or aarch64)] -cudnn: - - undefined - - 7 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 8 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 8 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 8 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 11.2 # [linux or win64] + - 11.8 # [linux or win64] + +arm_variant_type: # [aarch64] + - sbsa # [aarch64] _libgcc_mutex: - 0.1 conda_forge @@ -114,8 +99,6 @@ macos_machine: # [osx] MACOSX_DEPLOYMENT_TARGET: # [osx] - 11.0 # [osx and arm64] - 10.9 # [osx and x86_64] -target_platform: # [win] - - win-64 # [win] VERBOSE_AT: - V=1 VERBOSE_CM: @@ -137,39 +120,61 @@ cdt_name: # [linux] - cos7 # [linux and armv7l] - cos7 # [linux and s390x] - - cos6 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("DEFAULT_LINUX_VERSION", "cos6") == "cos6"] - - cos7 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("DEFAULT_LINUX_VERSION", "cos6") == "cos7"] - - cos7 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cos7 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cos7 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cos7 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cos7 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] docker_image: # [os.environ.get("BUILD_PLATFORM", "").startswith("linux-")] + # Native builds - quay.io/condaforge/linux-anvil-cos7-x86_64 # [os.environ.get("BUILD_PLATFORM") == "linux-64"] - quay.io/condaforge/linux-anvil-aarch64 # [os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] - quay.io/condaforge/linux-anvil-ppc64le # [os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] - quay.io/condaforge/linux-anvil-armv7l # [os.environ.get("BUILD_PLATFORM") == "linux-armv7l"] - - quay.io/condaforge/linux-anvil-cos7-cuda:10.2 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.0 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.1 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.2 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + # CUDA 11.2 + - quay.io/condaforge/linux-anvil-cuda:11.2 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + # CUDA 11.2 arch: native compilation (build == target) + - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.2 # [ppc64le and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] + - quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 # [aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] + # CUDA 11.2 arch: cross-compilation (build != target) + - quay.io/condaforge/linux-anvil-cuda:11.2 # [ppc64le and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + - quay.io/condaforge/linux-anvil-cuda:11.2 # [aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + + # CUDA 11.8 + - quay.io/condaforge/linux-anvil-cuda:11.8 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + # CUDA 11.8 arch: native compilation (build == target) + - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.8 # [ppc64le and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] + - quay.io/condaforge/linux-anvil-aarch64-cuda:11.8 # [aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] + # CUDA 11.8 arch: cross-compilation (build != target) + - quay.io/condaforge/linux-anvil-cuda:11.8 # [ppc64le and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] + - quay.io/condaforge/linux-anvil-cuda:11.8 # [aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64"] zip_keys: - # [unix] - c_compiler_version # [unix] - cxx_compiler_version # [unix] - fortran_compiler_version # [unix] - - cudnn # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cuda_compiler # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - cuda_compiler_version # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - cdt_name # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - docker_image # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM", "").startswith("linux-")] - # [win64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cudnn # [win64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cuda_compiler # [win64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - cuda_compiler_version # [win64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - python - numpy - python_impl + # transition until arrow_cpp can be dropped for arrow 13.x + - + - arrow_cpp + - libarrow + - libarrow_all + # as of 4.23.x, libprotobuf requires patch-level run-exports; + # we couple it with grpc (which very roughly releases in sync) + # to reduce the migration pain for these two libs a bit. + - + - libgrpc + - libprotobuf # aarch64 specifics because conda-build sets many things to centos 6 @@ -185,11 +190,6 @@ cdt_arch: armv7l # [armv7l] BUILD: armv7-conda_cos7-linux-gnueabihf # [armv7l] pin_run_as_build: - # boost is special, see https://github.com/conda-forge/boost-cpp-feedstock/pull/82 - boost: - max_pin: x.x.x - boost-cpp: - max_pin: x.x.x # TODO: add run_exports to the following feedstocks flann: max_pin: x.x.x @@ -225,56 +225,61 @@ blas_impl: - mkl # [x86 or x86_64] - blis # [x86 or x86_64] -# keep in sync with libabseil{,_static} +# this output was dropped as of libabseil 20230125 abseil_cpp: - '20220623.0' alsa_lib: - - 1.2.8 + - 1.2.10 antic: - 0.2 aom: - - 3.5 + - '3.7' arb: - '2.23' arpack: - - 3.7 + - '3.8' +# keep in sync with libarrow arrow_cpp: - - 9.0.0 - - 8.0.1 - - 7.0.1 - - 6.0.2 + - 14 # does not exist; switch to libarrow + - 13 + - 12 + - 11.0.0 assimp: - - 5.2.4 + - 5.3.1 attr: - 2.5 aws_c_auth: - - 0.6.21 + - 0.7.11 aws_c_cal: - - 0.5.20 + - 0.6.9 aws_c_common: - - 0.8.5 + - 0.9.12 +aws_c_compression: + - 0.2.17 +# coupled to aws_c_common version bump, see +# https://github.com/conda-forge/aws-c-http-feedstock/pull/109 aws_c_event_stream: - - 0.2.15 + - 0.4.1 aws_c_http: - - 0.6.27 + - 0.8.0 +# the builds got coupled because 0.2.4 landed before the this migrator finished aws_c_io: - - 0.13.11 + - 0.14.1 +# the builds got coupled because 0.2.4 landed before the io migrator aws_c_mqtt: - - 0.7.13 + - 0.10.1 aws_c_s3: - - 0.1.51 + - 0.4.9 aws_c_sdkutils: - - 0.1.7 -aws_checksums: - 0.1.13 +aws_checksums: + - 0.1.17 aws_crt_cpp: - - 0.18.16 + - 0.26.0 aws_sdk_cpp: - - 1.9.375 -boost: - - 1.78.0 -boost_cpp: - - 1.78.0 + - 1.11.210 +bullet_cpp: + - 3.25 bzip2: - 1 c_ares: @@ -286,7 +291,7 @@ capnproto: ccr: - 1.3 cfitsio: - - 4.1.0 + - 4.3.0 coin_or_cbc: - 2.10 coincbc: @@ -301,28 +306,38 @@ coin_or_utils: - 2.11 console_bridge: - 1.0 +cudnn: + - 8 cutensor: - 1 curl: - - 7 + - 8 +dav1d: + - 1.2.1 davix: - '0.8' dbus: - 1 +dcap: + - 2.47 eclib: - - '20221012' + - '20231211' +elfutils: + - 0.189 exiv2: - 0.27 expat: - 2 ffmpeg: - - '4.4' + - '6' fftw: - 3 flann: - - 1.9.1 + - 1.9.2 +flatbuffers: + - 23.5.26 fmt: - - '9' + - '10' fontconfig: - 2 freetype: @@ -334,7 +349,7 @@ gf2x: gdk_pixbuf: - 2 gnuradio_core: - - 3.10.4 + - 3.10.9 gnutls: - 3.7 gsl: @@ -342,13 +357,13 @@ gsl: gsoap: - 2.8.123 gstreamer: - - '1.20' + - '1.22' gst_plugins_base: - - '1.20' + - '1.22' gdal: - - '3.5' + - '3.8' geos: - - 3.11.1 + - 3.12.1 geotiff: - 1.7.1 gfal2: @@ -367,33 +382,35 @@ glpk: - '5.0' gmp: - 6 +# keep google_cloud_cpp in sync with libgoogle_cloud google_cloud_cpp: - - '2.3.0' + - '2.12' google_cloud_cpp_common: - 0.25.0 googleapis_cpp: - '0.10' graphviz: - - '6' -# keep in sync with libgrpc + - '9' +# this has been renamed to libgrpc as of 1.49; dropped as of 1.52. +# IOW, this version is unavailable; makes the renaming more obvious grpc_cpp: - - '1.49' + - '1.52' harfbuzz: - - '5' + - '8' hdf4: - 4.2.15 hdf5: - - 1.12.1 + - 1.14.3 icu: - - '70' + - '73' imath: - - '3.1' + - 3.1.9 ipopt: - - 3.14.10 + - 3.14.13 isl: - - '0.25' + - '0.26' jasper: - - '2' + - 4 jpeg: - 9 lcms: @@ -401,55 +418,83 @@ lcms: lerc: - '4' libjpeg_turbo: - - 2 + - '3' libev: - 4.33 json_c: - - '0.16' + - '0.17' jsoncpp: - 1.9.5 kealib: - '1.5' krb5: - - '1.19' + - '1.20' +ldas_tools_framecpp: + - '2.9' libabseil: - - '20220623.0' + - '20230802' libabseil_static: - '20220623.0' +libaec: + - '1' libarchive: - - 3.5 + - '3.7' +# keep in sync with arrow_cpp (libarrow exists only from 10.x, +# but make sure we have same length for zip as arrow_cpp) +libarrow: + - 14 + - 13 + - 12 + - 11.0.0 +# only exists as of arrow v14, but needs to have same length as libarrow +libarrow_all: + - 14 + - 13 + - 12 + - 11.0.0 libavif: - - 0.11.1 + - '1.0.1' libblitz: - 1.0.2 +libboost_devel: + - '1.82' +libboost_python_devel: + - '1.82' libcint: - - '5.1' + - '5.5' libcurl: - - 7 + - 8 libcrc32c: - 1.1 libdap4: - 3.20.6 libdeflate: - - '1.14' + - '1.19' +libduckdb_devel: + - '0.9.2' libeantic: - 1 libevent: - - 2.1.10 + - 2.1.12 libexactreal: - - 2 + - '4' libffi: - - '3.3' + - '3.4' libflatsurf: - 3 libflint: - '2.9' +libframel: + - '8.41' libgdal: - - '3.5' + - '3.8' libgit2: - - '1.5' + - '1.7' +# Keep in sync with google_cloud_cpp +libgoogle_cloud: + - '2.12' libgrpc: - - '1.49' + - '1.59' libhugetlbfs: - 2 libhwy: @@ -464,28 +509,46 @@ libkml: - 1.3 libiio: - 0 +libmed: + - '4.1' libmatio: - - 1.5.21 + - 1.5.26 +libmatio_cpp: + - 0.2.3 libmicrohttpd: - 0.9 libnetcdf: - - 4.8.1 + - 4.9.2 libopencv: - - 4.6.0 + - 4.9.0 +libopentelemetry_cpp: + - '1.13' +libosqp: + - 0.6.3 +libopenvino_dev: + - 2023.2.0 libpcap: - '1.10' libpng: - 1.6 libprotobuf: - - '3.21' + - 4.24.4 +libpq: + - '16' +libraw: + - '0.21' librdkafka: - - '1.9' + - '2.2' librsvg: - 2 libsecret: - 0.18 +libsentencepiece: + - '0.1.99' libsndfile: - - 1.1 + - '1.2' +libsoup: + - 3 libspatialindex: - 1.9.3 libssh: @@ -493,14 +556,18 @@ libssh: libssh2: - 1 libsvm: - - '325' + - '332' # keep libsqlite in sync with sqlite libsqlite: - 3 +libtensorflow: + - 2.14 +libtensorflow_cc: + - 2.14 libthrift: - - 0.16.0 + - 0.18.1 libtiff: - - 4 + - '4.6' libunwind: - '1.6' libv8: @@ -512,15 +579,17 @@ libwebp: libwebp_base: - 1 libxml2: - - 2.10 + - 2 libxsmm: - 1 libuuid: - 2 libzip: - 1 +lmdb: + - 0.9.29 log4cxx: - - 0.11.0 + - 1.1.0 lz4_c: - '1.9.3' lzo: @@ -528,17 +597,21 @@ lzo: metis: - 5.1 mimalloc: - - 2.0.7 + - 2.1.2 mkl: - - 2022 + - '2023' mkl_devel: - - 2022 + - 2023 mpg123: - - '1.31' + - '1.32' mpich: - 4 mpfr: - 4 +msgpack_c: + - 6 +msgpack_cxx: + - 6 mumps_mpi: - 5.2.1 mumps_seq: @@ -550,13 +623,12 @@ ncurses: netcdf_cxx4: - 4.3 netcdf_fortran: - - 4.5 + - '4.6' nettle: - - '3.8' + - '3.9' nodejs: + - '20' - '18' - - '16' - - '14' # [not (osx and arm64)] nss: - 3 nspr: @@ -566,61 +638,73 @@ nlopt: ntl: - '11.4.3' # we build for the oldest version possible of numpy for forward compatibility +# we roughly follow NEP29 in choosing the oldest version numpy: # part of a zip_keys: python, python_impl, numpy - - 1.20 - - 1.20 - - 1.21 + - 1.22 + - 1.22 + - 1.22 + - 1.23 occt: - - 7.6 + - 7.7.2 openblas: - 0.3.* openexr: - - '3.1' + - '3.2' openh264: - - '2.3.1' + - 2.4.0 openjpeg: - '2' openmpi: - 4 openssl: - - 3 -openturns: - - '1.19' + - '3' orc: - - 1.8.0 + - 1.9.2 pango: - 1.50 pari: - - 2.13.* *_pthread + - 2.15.* *_pthread +pcl: + - 1.13.1 perl: - 5.32.1 petsc: - - '3.17' + - '3.20' petsc4py: - - '3.17' + - '3.20' +pugixml: + - '1.14' slepc: - - '3.17' + - '3.20' slepc4py: - - '3.17' + - '3.20' svt_av1: - - 1.3.0 + - 1.8.0 p11_kit: - '0.24' pcre: - '8' pcre2: - - '10.40' + - '10.42' pixman: - 0 poco: - 1.12.4 poppler: - - '22.04' + - '23.07' +postgresql: + - '16' +postgresql_plpython: + - '16' proj: - - 9.1.0 + - 9.3.1 pulseaudio: - - 14.0 + - '16.1' +pulseaudio_client: + - '16.1' +pulseaudio_daemon: + - '16.1' pybind11_abi: - 4 python: @@ -628,37 +712,56 @@ python: - 3.8.* *_cpython - 3.9.* *_cpython - 3.10.* *_cpython + - 3.11.* *_cpython python_impl: # part of a zip_keys: python, python_impl, numpy - cpython - cpython - cpython + - cpython pytorch: - - '1.12' + - '2.0' +pyqt: + - 5.15 +pyqtwebengine: + - 5.15 +pyqtchart: + - 5.15 qt: - - 5.12 + - 5.15 +qt_main: + - 5.15 +qt6_main: + - '6.6' qtkeychain: - - '0.13' + - '0.14' +rdma_core: + - '49' re2: - - 2022.06.01 + - 2023.06.02 readline: - "8" rocksdb: - - "6.10" + - '8.0' root_base: - - 6.26.8 + - 6.28.10 ruby: - 2.5 - 2.6 r_base: - - 4.1 + - 4.1 # [win] - 4.2 # [not win] + - 4.3 # [not win] +libscotch: + - 7.0.4 +libptscotch: + - 7.0.4 scotch: - - 6.0.9 + - 7.0.4 ptscotch: - - 6.0.9 + - 7.0.4 s2n: - - 1.3.28 + - 1.4.1 sdl2: - '2' sdl2_image: @@ -670,7 +773,7 @@ sdl2_net: sdl2_ttf: - '2' singular: - - 4.2.1.p3 + - 4.3.2.p8 snappy: - 1 soapysdr: @@ -678,44 +781,48 @@ soapysdr: sox: - 14.4.2 spdlog: - - '1.11' + - '1.12' # keep sqlite in sync with libsqlite sqlite: - 3 +srm_ifce: + - 1.24.6 starlink_ast: - '9.2.7' suitesparse: - 5 superlu_dist: - - 7.1.1 + - '8' tbb: - '2021' tbb_devel: - '2021' +tensorflow: + - '2.14' thrift_cpp: - - 0.16.0 + - 0.18.1 tinyxml2: - - 9 + - 10 tk: - 8.6 # [not ppc64le] tiledb: - - '2.11' + - '2.19' ucx: - - 1.12.1 + - '1.15.0' uhd: - - 4.3.0 + - 4.6.0 urdfdom: - - 3.1 + - 4 vc: # [win] - 14 # [win] vlfeat: - 0.9.21 volk: - - '2.5' + - '3.1' vtk: - - 9.1.0 + - 9.2.6 wcslib: - - '7.7' + - '8' wxwidgets: - '3.2' x264: @@ -729,7 +836,7 @@ xrootd: xz: - 5 zeromq: - - 4.3.4 + - '4.3.5' zfp: - 1.0 zlib: diff --git a/.cirun.yml b/.cirun.yml index 451003e9f..7c078bd19 100644 --- a/.cirun.yml +++ b/.cirun.yml @@ -2,9 +2,8 @@ runners: - name: aws-cpu-arm-runner cloud: aws instance_type: a1.4xlarge - # AMI for ubuntu/images/hvm-ssd/ubuntu-focal-20.04-arm64-server + # AMI for ubuntu/images/hvm-ssd/ubuntu-focal-20.04-arm64-server + docker machine_image: ami-00dace5a405a9887e - #machine_image: ami-0229f8cfc24033d05 preemptible: false labels: - - cirun-linux-aarch64 + - cirun-linux-aarch64 diff --git a/.github/testpr_environment.yml b/.github/testpr_environment.yml index 21345d119..9e2cf9b81 100644 --- a/.github/testpr_environment.yml +++ b/.github/testpr_environment.yml @@ -3,11 +3,13 @@ channels: - robostack-staging - conda-forge dependencies: - - python 3.9.* + - python 3.11.* - pip + - boa + - conda-build <3.28 - rospkg - catkin_pkg >=0.4.16 - - ruamel.yaml >=0.16.6,<0.18.0 + - ruamel.yaml >=0.16.6,<0.18 - rosdistro >=0.8.0 - empy >=3.3.4 - - mamba + - networkx diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cce184957..4ba5c64ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,27 +1,31 @@ +permissions: + actions: write + contents: write + jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 with: persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token fetch-depth: 0 # otherwise, you will failed to push refs to dest repo - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v4 with: - python-version: '3.9' # Version range or exact version of a Python version to use, using SemVer's version range syntax + python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Install vinca run: | pip install git+https://github.com/RoboStack/vinca.git - - name: Generate recipes for Linux + - name: Generate recipes for linux-64 run: | git clean -fdx cp vinca_linux_64.yaml vinca.yaml vinca --multiple --platform linux-64 - - name: Generate azure pipelines for Linux + - name: Generate azure pipelines for linux-64 run: | vinca-gha --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes --additional-recipes - - name: Commit files + - name: Commit files for linux-64 run: | if [[ -f "linux.yml" ]]; then mv linux.yml .github/workflows/ @@ -38,16 +42,16 @@ jobs: # Generate recipes for osx - name: Reset repo run: | - git reset --hard origin/master - - name: Generate recipes for macOS + git reset --hard origin/main + - name: Generate recipes for osx-64 run: | git clean -fdx cp vinca_osx.yaml vinca.yaml vinca --multiple --platform osx-64 - - name: Generate azure pipelines for macOS + - name: Generate azure pipelines for osx-64 run: | vinca-gha --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes --additional-recipes - - name: Commit files + - name: Commit files for osx-64 run: | if [[ -f "osx.yml" ]]; then mv osx.yml .github/workflows/ @@ -64,16 +68,16 @@ jobs: # Generate recipes for osx-arm64 - name: Reset repo run: | - git reset --hard origin/master - - name: Generate recipes for macOS (arm64) + git reset --hard origin/main + - name: Generate recipes for osx-arm64 run: | git clean -fdx cp vinca_osx_arm64.yaml vinca.yaml vinca --multiple --platform osx-arm64 - - name: Generate azure pipelines for macOS (arm64) + - name: Generate azure pipelines for osx-arm64 run: | vinca-gha --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes --additional-recipes - - name: Commit files + - name: Commit files for osx-arm64 run: | if [[ -f "osx_arm64.yml" ]]; then mv osx_arm64.yml .github/workflows/ @@ -90,16 +94,16 @@ jobs: # Generate recipes for Windows - name: Reset repo run: | - git reset --hard origin/master - - name: Generate recipes for Windows + git reset --hard origin/main + - name: Generate recipes for win-64 run: | git clean -fdx cp vinca_win.yaml vinca.yaml vinca --multiple --platform win-64 - - name: Generate azure pipelines for Windows + - name: Generate azure pipelines for win-64 run: | vinca-gha --platform win-64 --trigger-branch buildbranch_win -d ./recipes --additional-recipes - - name: Commit files for Windows + - name: Commit files for win-64 run: | if [[ -f "win.yml" ]]; then mv win.yml .github/workflows/ @@ -116,16 +120,16 @@ jobs: # Generate recipes for Linux ARM64 - name: Reset repo run: | - git reset --hard origin/master - - name: Generate recipes for Linux ARM64 + git reset --hard origin/main + - name: Generate recipes for linux-aarch64 run: | git clean -fdx cp vinca_linux_aarch64.yaml vinca.yaml vinca --multiple --platform linux-aarch64 - - name: Generate azure pipelines for Linux ARM64 + - name: Generate azure pipelines for linux-aarch64 run: | - vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes -b 2 - - name: Commit files + vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes --batch_size 1 + - name: Commit files for linux-aarch64 run: | if [[ -f "linux_aarch64.yml" ]]; then mv linux_aarch64.yml .github/workflows/build_linux_aarch64.yml diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index b22d81a9a..30c0f6044 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -2,7 +2,7 @@ on: pull_request: paths: - '*.yaml' - + env: ROS_VERSION: 1 @@ -37,7 +37,7 @@ jobs: platform: osx-arm64 steps: - uses: actions/checkout@master - - name: install mamba + - name: install micromamba uses: mamba-org/setup-micromamba@main with: environment-file: .github/testpr_environment.yml @@ -45,8 +45,9 @@ jobs: channels: - robostack-staging - conda-forge + - shell: bash -l {0} - if: contains(matrix.os, 'linux-aarch64') + if: matrix.platform == 'linux-aarch64' run: | echo "::group::Configure binfmt_misc" docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes @@ -54,20 +55,23 @@ jobs: export GIT_BRANCH="$(basename $GITHUB_REF)" echo "::endgroup::" + - name: Install libgl1-mesa-dev (only for linux-aarch64) + if: matrix.platform == 'linux-aarch64' + shell: bash -l {0} + run: | + sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev + - shell: bash -l {0} run: | conda config --show channels | grep defaults && conda config --remove channels defaults conda info conda config --show - mamba install -y pip rospkg networkx "catkin_pkg>=0.4.16" "ruamel.yaml>=0.16.6" "rosdistro>=0.8.0" "empy>=3.3.4" - mamba install -y boa --only-deps - - name: install vinca and boa main + micromamba install -y pip rospkg networkx "catkin_pkg>=0.4.16" "ruamel.yaml>=0.16.6" "rosdistro>=0.8.0" "empy>=3.3.4" boa + - name: install vinca and boa master shell: bash -l {0} run: | # use no-deps for now, otherwise problems with ruamel. pip install git+https://github.com/RoboStack/vinca.git --no-deps - # for now we need boa main - pip install git+https://github.com/mamba-org/boa@main # For some reason, the Strawberry perl's pkg-config is found # instead of the conda's one, so let's delete the /c/Strawberry directory - name: Debug pkg-config problem @@ -75,22 +79,23 @@ jobs: shell: bash -l {0} run: | rm -rf /c/Strawberry + - name: Check what files have changed id: filecheck shell: bash -l {0} run: | - git fetch origin master + git fetch origin main # continue on error set +e - git diff --exit-code --name-only origin/master -- vinca_linux_64.yaml > /dev/null + git diff --exit-code --name-only origin/main -- vinca_linux_64.yaml > /dev/null echo "::set-output name=LINUX_YAML_CHANGED::${?}" - git diff --exit-code --name-only origin/master -- vinca_linux_aarch64.yaml > /dev/null + git diff --exit-code --name-only origin/main -- vinca_linux_aarch64.yaml > /dev/null echo "::set-output name=LINUX_AARCH_YAML_CHANGED::${?}" - git diff --exit-code --name-only origin/master -- vinca_osx.yaml > /dev/null + git diff --exit-code --name-only origin/main -- vinca_osx.yaml > /dev/null echo "::set-output name=OSX_YAML_CHANGED::${?}" - git diff --exit-code --name-only origin/master -- vinca_osx_arm64.yaml > /dev/null + git diff --exit-code --name-only origin/main -- vinca_osx_arm64.yaml > /dev/null echo "::set-output name=OSX_ARM_YAML_CHANGED::${?}" - git diff --exit-code --name-only origin/master -- vinca_win.yaml > /dev/null + git diff --exit-code --name-only origin/main -- vinca_win.yaml > /dev/null echo "::set-output name=WIN_YAML_CHANGED::${?}" - name: Generate recipes for Linux shell: bash -l {0} @@ -147,10 +152,10 @@ jobs: echo "::set-output name=RECIPE_CREATED::${?}" - name: Build recipes for Linux shell: bash -l {0} - if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64' run: | boa build additional_recipes/ros-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64' - name: Build recipes for Linux-ARM64 shell: bash -l {0} if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-aarch64' diff --git a/.gitignore b/.gitignore index c41a12879..74fe3e5b7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ vinca.yaml recipes/ *.bat *.sh +*.ps1 *.json .DS_Store diff --git a/.scripts/build_linux.sh b/.scripts/build_linux.sh index f6939f871..5dcf394c0 100755 --- a/.scripts/build_linux.sh +++ b/.scripts/build_linux.sh @@ -35,10 +35,7 @@ conda config --remove channels defaults # conda config --set channel_priority strict mamba update conda --yes --quiet -c conda-forge -mamba install --yes --quiet pip conda-build anaconda-client mamba -mamba install --yes --quiet boa --only-deps -mamba remove --yes --quiet boa || true -pip install git+https://github.com/mamba-org/boa@main --no-deps +mamba install --yes --quiet pip conda-build anaconda-client mamba boa # setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" # export PATH="$HOME/miniconda/bin:$PATH" diff --git a/additional_recipes/ros-distro-mutex/recipe.yaml b/additional_recipes/ros-distro-mutex/recipe.yaml index 5743266e3..3880c8155 100644 --- a/additional_recipes/ros-distro-mutex/recipe.yaml +++ b/additional_recipes/ros-distro-mutex/recipe.yaml @@ -1,9 +1,9 @@ package: name: ros-distro-mutex - version: 0.4.0 + version: 0.5.0 build: - number: 3 + number: 4 string: noetic run_exports: - "{{ pin_subpackage('ros-distro-mutex', max_pin='x.x') }}" @@ -29,11 +29,9 @@ requirements: # if the upstream package does not have run_exports # please change it in the conda_build_config.yaml! run_constrained: - - boost-cpp 1.78 - - pcl 1.12 - gazebo 11 - ogre 1.10.12 - - libpqxx 6 + - libpqxx 7.8 about: home: https://github.com/robostack/ros-noetic diff --git a/additional_recipes/ros-noetic-eigenpy/recipe.yaml b/additional_recipes/ros-noetic-eigenpy/recipe.yaml index f4aa37c68..724af3e7c 100644 --- a/additional_recipes/ros-noetic-eigenpy/recipe.yaml +++ b/additional_recipes/ros-noetic-eigenpy/recipe.yaml @@ -1,20 +1,17 @@ package: - name: ros-noetic-eigenpy - version: "2.8.1" + name: ros-noetic-eigenpy-recipe + version: "3.1.0" build: - number: 20 + number: 21 -requirements: - run: - - eigenpy 2.8.1 - - -about: - home: https://github.com/conda-forge/eigenpy-feedstock - license: BSD-2-Clause - summary: | - Bindings between Numpy and Eigen using Boost.Python -extra: - recipe-maintainers: - - ros-forge \ No newline at end of file +outputs: + - package: + name: ros-noetic-eigenpy + version: "3.1.0" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-eigenpy', max_pin='x.x.x') }}" + requirements: + run: + - eigenpy 3.1.0 diff --git a/additional_recipes/ros-noetic-hpp-fcl/recipe.yaml b/additional_recipes/ros-noetic-hpp-fcl/recipe.yaml new file mode 100644 index 000000000..e8882e50a --- /dev/null +++ b/additional_recipes/ros-noetic-hpp-fcl/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-hpp-fcl-recipe + version: "2.3.6" + +build: + number: 21 + +outputs: + - package: + name: ros-noetic-hpp-fcl + version: "2.3.6" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-hpp-fcl', max_pin='x.x.x') }}" + requirements: + run: + - hpp-fcl 2.3.6 diff --git a/additional_recipes/ros-noetic-pinocchio/recipe.yaml b/additional_recipes/ros-noetic-pinocchio/recipe.yaml new file mode 100644 index 000000000..9d2ea6ecc --- /dev/null +++ b/additional_recipes/ros-noetic-pinocchio/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-pinocchio-recipe + version: "2.6.20" + +build: + number: 21 + +outputs: + - package: + name: ros-noetic-pinocchio + version: "2.6.20" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-pinocchio', max_pin='x.x.x') }}" + requirements: + run: + - pinocchio 2.6.20 diff --git a/conda_build_config.yaml b/conda_build_config.yaml index 0edef1a65..0e7f9d690 100644 --- a/conda_build_config.yaml +++ b/conda_build_config.yaml @@ -1,31 +1,19 @@ -assimp: - - 5.2.5 -hdf5: - - 1.12.2 gazebo: - '11' libpqxx: - 6 numpy: - - 1.20 -pcl: - - 1.12.1 + - 1.23 ogre: - 1.10.12 -qt: - - 5.15 -qt-main: - - 5.15 +setuptools: + - 69 cdt_name: # [linux] - cos7 # [linux] -# Workaround for https://github.com/RoboStack/ros-galactic/pull/86#issuecomment-1079811424 -setuptools: # [win] - - 61.0.0 # [win] - python: - - 3.9.* *_cpython + - 3.11.* *_cpython python_impl: - cpython diff --git a/env/robostackenv.yaml b/env/robostackenv.yaml index 231a0647d..95af1c9d9 100644 --- a/env/robostackenv.yaml +++ b/env/robostackenv.yaml @@ -3,7 +3,7 @@ channels: - robostack-staging - conda-forge dependencies: -- python=3.9 +- python=3.11 - conda-build - anaconda-client - mamba diff --git a/patch/dependencies.yaml b/patch/dependencies.yaml index 2c4e3ff0b..9096533b7 100644 --- a/patch/dependencies.yaml +++ b/patch/dependencies.yaml @@ -36,9 +36,15 @@ apriltag: lvr2: add_host: ["libgdal", "cgal-cpp"] rtabmap: - add_host: ["REQUIRE_OPENGL"] + add_host: ["REQUIRE_OPENGL", "pybind11"] rtabmap_ros: add_host: ["REQUIRE_OPENGL"] +rtabmap_conversions: + add_host: ["REQUIRE_OPENGL"] +rtabmap_rviz_plugins: + add_host: ["REQUIRE_OPENGL"] +rtabmap_viz: + add_host: ["REQUIRE_OPENGL"] image_view2: add_host: ["REQUIRE_OPENGL"] swri_image_util: diff --git a/patch/ros-noetic-catkin.patch b/patch/ros-noetic-catkin.patch index 3be77726a..9e2d81501 100644 --- a/patch/ros-noetic-catkin.patch +++ b/patch/ros-noetic-catkin.patch @@ -225,7 +225,7 @@ index b19f4c8aa..de8fd2d1f 100644 + list(APPEND imported_location_libnames ${imported_location_name}) + endif() + if(imported_location_libnames) -+ find_library(imported_location_library NAMES ${imported_location_libnames} HINTS ${imported_location_dir}) ++ find_library(imported_location_library NAMES ${imported_location_libnames} HINTS ${imported_location_dir} NO_CACHE) + endif() + set(${VAR} "${imported_location_library}" PARENT_SCOPE) +endfunction() diff --git a/patch/ros-noetic-control-box-rst.patch b/patch/ros-noetic-control-box-rst.patch new file mode 100644 index 000000000..de9a6120b --- /dev/null +++ b/patch/ros-noetic-control-box-rst.patch @@ -0,0 +1,13 @@ +diff --git a/src/optimization/include/corbo-optimization/hyper_graph/edge_cache.h b/src/optimization/include/corbo-optimization/hyper_graph/edge_cache.h +index d380ac5..58c3298 100644 +--- a/src/optimization/include/corbo-optimization/hyper_graph/edge_cache.h ++++ b/src/optimization/include/corbo-optimization/hyper_graph/edge_cache.h +@@ -75,7 +75,7 @@ class EdgeCache + PRINT_DEBUG_COND_ONCE(_jacobians.size() >= _values.capacity(), + "EdgeCache::pushJacobian(): cache capacity reached; you might better reserve more space in advance."); + #if __cplusplus > 201402L +- return _values.emplace_back(); ++ return _jacobians.emplace_back(); + #else + _jacobians.emplace_back(value_dim, param_dim); + return _jacobians.back(); diff --git a/patch/ros-noetic-costmap-converter.patch b/patch/ros-noetic-costmap-converter.patch new file mode 100644 index 000000000..2713f9fec --- /dev/null +++ b/patch/ros-noetic-costmap-converter.patch @@ -0,0 +1,77 @@ +From cb6af72f331a881fb399e651d6c9aaaf536a63e3 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer +Date: Thu, 10 Aug 2023 13:29:02 -0400 +Subject: [PATCH] Make BlobDetector inherit from cv::Feature2D + +BlobDetector currently inherits from cv::SimpleBlobDetector, which is an +interface class that doesn't provide any functionality itself. On the +other hand, every time OpenCV adds a new pure virtual method to this +interface, it breaks BlobDetector. + +This patch makes BlobDetector inherit from cv::Feature2D instead, which +should hopefully have fewer breaking changes. This requires adding a +typedef for Params, which was originally provided by +cv::SimpleBlobDetector. I also took the opportunity to make all the +parameters reference this typedef rather than directly use +cv::SimpleBlobDetector::Params. + +It is likely possible to remove inheritance from BlobDetector altogether, +since it doesn't appear to use any functionality from cv::Feature2D +either, but I decided not to do this because BlobDetector is part of the +public interface, and this could increase the likelihood of breaking +downstream packages that use this class (if any do). +--- + .../costmap_to_dynamic_obstacles/blob_detector.h | 10 ++++++---- + src/costmap_to_dynamic_obstacles/blob_detector.cpp | 4 ++-- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +index ac9b80a..9bfe5bf 100644 +--- a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h ++++ b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +@@ -57,14 +57,16 @@ + * + * See http://docs.opencv.org/trunk/d0/d7a/classcv_1_1SimpleBlobDetector.html for the original class. + */ +-class BlobDetector : public cv::SimpleBlobDetector ++class BlobDetector : public cv::Feature2D + { + public: ++ typedef cv::SimpleBlobDetector::Params Params; ++ + //! Default constructor which optionally accepts custom parameters +- BlobDetector(const cv::SimpleBlobDetector::Params& parameters = cv::SimpleBlobDetector::Params()); ++ BlobDetector(const Params& parameters = Params()); + + //! Create shared instance of the blob detector with given parameters +- static cv::Ptr create(const BlobDetector::Params& params); ++ static cv::Ptr create(const Params& params); + + /** + * @brief Detects keypoints in an image and extracts contours +@@ -90,7 +92,7 @@ class BlobDetector : public cv::SimpleBlobDetector + const std::vector>& getContours() { return contours_; } + + //! Update internal parameters +- void updateParameters(const cv::SimpleBlobDetector::Params& parameters); ++ void updateParameters(const Params& parameters); + + protected: + struct Center +diff --git a/src/costmap_to_dynamic_obstacles/blob_detector.cpp b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +index c7352f4..564cb0c 100755 +--- a/src/costmap_to_dynamic_obstacles/blob_detector.cpp ++++ b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +@@ -2,9 +2,9 @@ + #include + #include + +-BlobDetector::BlobDetector(const SimpleBlobDetector::Params& parameters) : params_(parameters) {} ++BlobDetector::BlobDetector(const Params& parameters) : params_(parameters) {} + +-cv::Ptr BlobDetector::create(const cv::SimpleBlobDetector::Params& params) ++cv::Ptr BlobDetector::create(const Params& params) + { + return cv::Ptr (new BlobDetector(params)); // compatibility with older versions + //return cv::makePtr(params); + diff --git a/patch/ros-noetic-cras-cpp-common.patch b/patch/ros-noetic-cras-cpp-common.patch deleted file mode 100644 index ba9ae26f3..000000000 --- a/patch/ros-noetic-cras-cpp-common.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/cras_cpp_common/CMakeLists.txt b/cras_cpp_common/CMakeLists.txt -index b8e1640..876da61 100644 ---- a/cras_cpp_common/CMakeLists.txt -+++ b/cras_cpp_common/CMakeLists.txt -@@ -225,12 +225,45 @@ add_library(cras_log_utils src/log_utils.cpp src/log_utils/memory.cpp src/log_ut - target_link_libraries(cras_log_utils - PUBLIC cras_string_utils ${catkin_LIBRARIES} PRIVATE cras_time_utils) - -+# Detect compiler SIMD support. We'll need it for cras_tf2_sensor_msgs target. -+include(CheckCXXCompilerFlag) -+unset(COMPILER_SUPPORTS_MARCH_X86_V3 CACHE) -+unset(COMPILER_SUPPORTS_MARCH_X86_V2 CACHE) -+unset(COMPILER_SUPPORTS_MARCH_ARMV8 CACHE) -+unset(COMPILER_SUPPORTS_MARCH_ARMV7 CACHE) -+unset(COMPILER_SUPPORTS_MARCH_NATIVE CACHE) -+set(X86_V2_FLAGS -msse4 -msse3) -+set(X86_V3_FLAGS -mavx2 -mavx -mfma) -+list(APPEND X86_V3_FLAGS ${X86_V2_FLAGS}) -+CHECK_CXX_COMPILER_FLAG("-march=x86-64 ${X86_V3_FLAGS}" COMPILER_SUPPORTS_MARCH_X86_V3) -+CHECK_CXX_COMPILER_FLAG("-march=x86-64 ${X86_V2_FLAGS}" COMPILER_SUPPORTS_MARCH_X86_V2) -+CHECK_CXX_COMPILER_FLAG("-march=armv8-a" COMPILER_SUPPORTS_MARCH_ARMV8) -+CHECK_CXX_COMPILER_FLAG("-march=armv7-a+neon" COMPILER_SUPPORTS_MARCH_ARMV7) -+CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) -+ - add_library(cras_tf2_sensor_msgs src/tf2_sensor_msgs.cpp) - add_dependencies(cras_tf2_sensor_msgs ${catkin_EXPORTED_TARGETS}) --target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=native) - target_link_libraries(cras_tf2_sensor_msgs - PUBLIC ${catkin_LIBRARIES} - PRIVATE cras_cloud cras_string_utils Eigen3::Eigen) -+# The pointcloud processing loop really needs SIMD. We enable it conservatively. -+# ROS buildfarm should pick up x86-64-v3 for x86 builds, armv7 for armhf builds and armv8 for arm64 builds. -+if (COMPILER_SUPPORTS_MARCH_X86_V3) -+ target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=x86-64 ${X86_V3_FLAGS}) -+ message("cras_tf2_sensor_msgs uses x86-64-v3 SIMD") -+elseif (COMPILER_SUPPORTS_MARCH_X86_V2) -+ target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=x86-64 ${X86_V2_FLAGS}) -+ message("cras_tf2_sensor_msgs uses x86-64-v2 SIMD") -+elseif (COMPILER_SUPPORTS_MARCH_ARMV7) -+ target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=armv7-a+neon) -+ message("cras_tf2_sensor_msgs uses armv7-a+simd SIMD") -+elseif (COMPILER_SUPPORTS_MARCH_ARMV8) -+ target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=armv8-a) -+ message("cras_tf2_sensor_msgs uses armv8-a SIMD") -+elseif (COMPILER_SUPPORTS_MARCH_NATIVE) -+ target_compile_options(cras_tf2_sensor_msgs PRIVATE -march=native) -+ message("cras_tf2_sensor_msgs uses native SIMD") -+endif() - - add_library(cras_type_utils src/type_utils.cpp) - target_link_libraries(cras_type_utils diff --git a/patch/ros-noetic-cv-bridge.patch b/patch/ros-noetic-cv-bridge.patch index a509470df..c6f45d381 100644 --- a/patch/ros-noetic-cv-bridge.patch +++ b/patch/ros-noetic-cv-bridge.patch @@ -2,7 +2,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index ef804b9..6dac00e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -3,33 +3,13 @@ project(cv_bridge) +@@ -3,27 +3,9 @@ project(cv_bridge) find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs) @@ -29,12 +29,7 @@ index ef804b9..6dac00e 100644 +find_package(Boost REQUIRED python) -find_package(OpenCV ${_opencv_version} REQUIRED ++find_package(OpenCV 4 QUIET) +find_package(OpenCV 4 REQUIRED COMPONENTS - opencv_core - opencv_imgproc - opencv_imgcodecs -- CONFIG - ) - - catkin_package( \ No newline at end of file + opencv_core \ No newline at end of file diff --git a/patch/ros-noetic-filters.patch b/patch/ros-noetic-filters.patch new file mode 100644 index 000000000..bada85b5e --- /dev/null +++ b/patch/ros-noetic-filters.patch @@ -0,0 +1,14 @@ +diff --git a/include/filters/median.hpp b/include/filters/median.hpp +index 1043109..5b684c5 100644 +--- a/include/filters/median.hpp ++++ b/include/filters/median.hpp +@@ -40,6 +40,9 @@ + + #include "filters/realtime_circular_buffer.hpp" + ++#if __cplusplus > 199711L ++#define register // Deprecated in C++11. ++#endif // #if __cplusplus > 199711L + + /*********************************************************************/ + /* diff --git a/patch/ros-noetic-geometric-shapes.win.patch b/patch/ros-noetic-geometric-shapes.win.patch deleted file mode 100644 index 99c3ce5e8..000000000 --- a/patch/ros-noetic-geometric-shapes.win.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d7d7f41..a32e8ef 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -21,23 +21,12 @@ if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) - endif() - --# TODO(henningkayser): Remove policy fix when assimp 5.1 is available --# Suppress policy warning in assimp (https://github.com/assimp/assimp/pull/2722) --set(CMAKE_POLICY_DEFAULT_CMP0012 NEW) --find_package(ASSIMP QUIET) --if(NOT ASSIMP_FOUND) -- find_package(PkgConfig REQUIRED) -- # assimp is required, so REQUIRE the second attempt -- pkg_check_modules(ASSIMP_PC REQUIRED assimp) -- set(ASSIMP_INCLUDE_DIRS ${ASSIMP_PC_INCLUDE_DIRS}) -+find_package(assimp REQUIRED) -+if (WIN32) -+ # for msvc 2017 compat -+ add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) - endif() - --# find *absolute* paths to ASSIMP_LIBRARIES --# Both, pkg-config and assimp's cmake-config don't provide an absolute library path. --# For, pkg-config the path is in ASSIMP_PC_LIBRARY_DIRS, for cmake in ASSIMP_LIBRARY_DIRS. --find_library(ASSIMP_ABS_LIBRARIES NAMES ${ASSIMP_LIBRARIES} assimp HINTS ${ASSIMP_LIBRARY_DIRS} ${ASSIMP_PC_LIBRARY_DIRS}) --set(ASSIMP_LIBRARIES "${ASSIMP_ABS_LIBRARIES}") -- - find_package(Boost REQUIRED system filesystem) - - find_package(console_bridge REQUIRED) -@@ -86,7 +75,7 @@ add_library(${PROJECT_NAME} - src/shape_to_marker.cpp - src/shapes.cpp - ) --target_compile_options(${PROJECT_NAME} PRIVATE ${PROJECT_COMPILE_OPTIONS}) -+# target_compile_options(${PROJECT_NAME} PRIVATE ${PROJECT_COMPILE_OPTIONS}) - set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${${PROJECT_NAME}_VERSION}) - - target_link_libraries(${PROJECT_NAME} ${ASSIMP_LIBRARIES} ${QHULL_LIBRARIES} ${catkin_LIBRARIES} ${console_bridge_LIBRARIES} ${Boost_LIBRARIES}) diff --git a/patch/ros-noetic-jsk-recognition-msgs.patch b/patch/ros-noetic-jsk-recognition-msgs.patch new file mode 100644 index 000000000..0955ee2f6 --- /dev/null +++ b/patch/ros-noetic-jsk-recognition-msgs.patch @@ -0,0 +1,16 @@ +diff --git a/setup.py b/setup.py +index 90f8d8be6..372e2fed9 100644 +--- a/setup.py ++++ b/setup.py +@@ -9,9 +9,10 @@ d = generate_distutils_setup( + # Uncomment until src/jsk_recognition_msgs + # error: package directory 'jsk_recognition_msgs' does not exist + # [jsk_recognition_msgs:install] +- # packages=['jsk_recognition_msgs'], ++ packages=[], + # [jsk_recognition_msgs:install] error: package directory 'src/jsk_recognition_msgs' does not exist + # package_dir={'': 'src'}, ++ exclude = ['*'] + ) + + setup(**d) diff --git a/patch/ros-noetic-jsk-recognition-utils.patch b/patch/ros-noetic-jsk-recognition-utils.patch index 92a55fad1..99c25b5f3 100644 --- a/patch/ros-noetic-jsk-recognition-utils.patch +++ b/patch/ros-noetic-jsk-recognition-utils.patch @@ -1,63 +1,3 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 83b0d4661..f9d0c6b99 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -51,6 +51,8 @@ find_package(OpenCV REQUIRED core imgproc) - find_package(PCL REQUIRED) - find_package(PkgConfig) - pkg_check_modules(yaml_cpp yaml-cpp REQUIRED) -+find_package(GLEW REQUIRED) -+ - IF(${yaml_cpp_VERSION} VERSION_LESS "0.5.0") - ## indigo yaml-cpp : 0.5.0 / hydro yaml-cpp : 0.3.0 - add_definitions("-DUSE_OLD_YAML") -@@ -58,12 +60,17 @@ ENDIF() - if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z defs") - endif() -+ -+message(WARNING "catkin_LIBRARIES ${catkin_LIBRARIES}") -+message(WARNING "OpenCV_LIBRARIES ${OpenCV_LIBRARIES}") -+message(WARNING "PCL_LIBRARIES ${PCL_LIBRARIES}") -+message(WARNING "yaml-cpp_LIBRARIES ${yaml_cpp_LIBRARIES}") -+ - include_directories( -- include ${catkin_INCLUDE_DIRS} -+ include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} - ) --link_libraries(${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} yaml-cpp) - --add_library(jsk_recognition_utils SHARED -+add_library(jsk_recognition_utils - src/grid_index.cpp - src/grid_map.cpp - src/grid_line.cpp -@@ -89,6 +96,8 @@ add_library(jsk_recognition_utils SHARED - src/time_util.cpp - ) - -+target_link_libraries(jsk_recognition_utils ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} ${yaml_cpp_LIBRARIES} ${GLEW_LIBRARIES}) -+ - if (CATKIN_ENABLE_TESTING) - find_package(rostest REQUIRED) - if("$ENV{ROS_DISTRO}" STRGREATER "indigo") # kinetic and later uses qt5 -diff --git a/cmake/FindCython.cmake b/cmake/FindCython.cmake -index f44f1f707..d7fb4205f 100644 ---- a/cmake/FindCython.cmake -+++ b/cmake/FindCython.cmake -@@ -24,9 +24,9 @@ - - # Use the Cython executable that lives next to the Python executable - # if it is a local installation. --find_package( PythonInterp ) --if( PYTHONINTERP_FOUND ) -- get_filename_component( _python_path ${PYTHON_EXECUTABLE} PATH ) -+find_package (Python COMPONENTS Interpreter Development NumPy) -+if( Python_Interpreter_FOUND ) -+ get_filename_component( _python_path ${Python_EXECUTABLE} PATH ) - find_program( CYTHON_EXECUTABLE - NAMES cython cython.bat cython3 - HINTS ${_python_path} diff --git a/cmake/UseCython.cmake b/cmake/UseCython.cmake index f432c890c..0a11631e5 100644 --- a/cmake/UseCython.cmake @@ -674,53 +614,63 @@ index f432c890c..0a11631e5 100644 + set(pxd_location "" CACHE INTERNAL "") +endfunction() \ No newline at end of file -diff --git a/include/jsk_recognition_utils/geo_util.h b/include/jsk_recognition_utils/geo_util.h -index 6aa73a43d..0c81944d1 100644 ---- a/include/jsk_recognition_utils/geo_util.h -+++ b/include/jsk_recognition_utils/geo_util.h -@@ -53,6 +53,7 @@ - //////////////////////////////////////////////////////// - // PCL headers - //////////////////////////////////////////////////////// -+#include - #include - #include - #include -diff --git a/include/jsk_recognition_utils/pcl/ear_clipping_patched.h b/include/jsk_recognition_utils/pcl/ear_clipping_patched.h -index 951102f7b..7f7a4816e 100644 ---- a/include/jsk_recognition_utils/pcl/ear_clipping_patched.h -+++ b/include/jsk_recognition_utils/pcl/ear_clipping_patched.h -@@ -38,6 +38,7 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 55c405fd0..06a4adbbc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -62,6 +62,7 @@ add_subdirectory(python/${PROJECT_NAME}) - #include - #include -+#include + find_package(OpenCV REQUIRED core imgproc) + find_package(PCL REQUIRED) ++find_package(GLEW REQUIRED) + find_package(PkgConfig) + pkg_check_modules(yaml_cpp yaml-cpp REQUIRED) + IF(${yaml_cpp_VERSION} VERSION_LESS "0.5.0") +@@ -72,11 +73,10 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z defs") + endif() + include_directories( +- include ${catkin_INCLUDE_DIRS} ++ include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} + ) +-link_libraries(${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} yaml-cpp) - namespace pcl - { -@@ -87,7 +88,7 @@ namespace pcl - * \param[out] output the resultant polygonal mesh - */ - size_t -- triangulateClockwiseVertices (std::vector& vertices, PolygonMesh& output); -+ triangulateClockwiseVertices (std::vector& vertices, PolygonMesh& output); +-add_library(jsk_recognition_utils SHARED ++add_library(jsk_recognition_utils + src/grid_index.cpp + src/grid_map.cpp + src/grid_line.cpp +@@ -102,6 +102,8 @@ add_library(jsk_recognition_utils SHARED + src/time_util.cpp + ) - /** \brief Check if the triangle (u,v,w) is an ear. - * \param[in] u the first triangle vertex -@@ -96,7 +97,7 @@ namespace pcl - * \param[in] vertices a set of input vertices - */ - bool -- isEar (int u, int v, int w, const std::vector& vertices); -+ isEar (int u, int v, int w, const std::vector& vertices); ++target_link_libraries(jsk_recognition_utils ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} ${yaml_cpp_LIBRARIES} ${GLEW_LIBRARIES}) ++ + if (CATKIN_ENABLE_TESTING) + find_package(rostest REQUIRED) + if("$ENV{ROS_DISTRO}" STRGREATER "indigo") # kinetic and later uses qt5 +diff --git a/cmake/FindCython.cmake b/cmake/FindCython.cmake +index f44f1f707..d7fb4205f 100644 +--- a/cmake/FindCython.cmake ++++ b/cmake/FindCython.cmake +@@ -24,9 +24,9 @@ - /** \brief Check if p is inside the triangle (u,v,w). - * \param[in] u the first triangle vertex + # Use the Cython executable that lives next to the Python executable + # if it is a local installation. +-find_package( PythonInterp ) +-if( PYTHONINTERP_FOUND ) +- get_filename_component( _python_path ${PYTHON_EXECUTABLE} PATH ) ++find_package (Python COMPONENTS Interpreter Development NumPy) ++if( Python_Interpreter_FOUND ) ++ get_filename_component( _python_path ${Python_EXECUTABLE} PATH ) + find_program( CYTHON_EXECUTABLE + NAMES cython cython.bat cython3 + HINTS ${_python_path} diff --git a/python/jsk_recognition_utils/CMakeLists.txt b/python/jsk_recognition_utils/CMakeLists.txt -index e6bc617b6..8e869ad85 100644 +index d3feba4f5..496ca09dc 100644 --- a/python/jsk_recognition_utils/CMakeLists.txt +++ b/python/jsk_recognition_utils/CMakeLists.txt -@@ -1,18 +1,14 @@ +@@ -1,16 +1,10 @@ -if(NOT DEFINED Numpy_INCLUDE_DIRS) - # Get Numpy include directories - execute_process( @@ -733,62 +683,13 @@ index e6bc617b6..8e869ad85 100644 -endif() +find_package (Python COMPONENTS Interpreter Development NumPy) +find_package(Cython) ++ # Compile nms.pyx -include_directories(${Numpy_INCLUDE_DIRS}) -cython_add_module(nms nms.pyx) +include_directories(${Python_NumPy_INCLUDE_DIRS} ${Python_INCLUDE_DIRS} ${Python_SITELIB}) +add_cython_target(nms nms.pyx) +add_library(nms MODULE ${nms}) -+# cython_add_module(nms nms.pyx) set_target_properties(nms PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}) --cython_add_module(color color.pyx) -+add_cython_target(color color.pyx) -+add_library(color MODULE ${color}) -+# cython_add_module(color color.pyx) - set_target_properties(color PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}) - install(TARGETS nms color + install(TARGETS nms ARCHIVE DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION} -diff --git a/src/pcl/ear_clipping_patched.cpp b/src/pcl/ear_clipping_patched.cpp -index 0e26401ba..844abf33f 100644 ---- a/src/pcl/ear_clipping_patched.cpp -+++ b/src/pcl/ear_clipping_patched.cpp -@@ -75,7 +75,7 @@ pcl::EarClippingPatched::triangulate (const Vertices& vertices, PolygonMesh& out - return; - } - -- std::vector remaining_vertices = vertices.vertices; -+ std::vector remaining_vertices = vertices.vertices; - size_t count = triangulateClockwiseVertices(remaining_vertices, output); - - // if the input vertices order is anti-clockwise, it always left a -@@ -92,7 +92,7 @@ pcl::EarClippingPatched::triangulate (const Vertices& vertices, PolygonMesh& out - - ///////////////////////////////////////////////////////////////////////////////////////////// - size_t --pcl::EarClippingPatched::triangulateClockwiseVertices (std::vector& vertices, PolygonMesh& output) -+pcl::EarClippingPatched::triangulateClockwiseVertices (std::vector& vertices, PolygonMesh& output) - { - // triangles count - size_t count = 0; -@@ -127,7 +127,7 @@ pcl::EarClippingPatched::triangulateClockwiseVertices (std::vector& ve - - ///////////////////////////////////////////////////////////////////////////////////////////// - bool --pcl::EarClippingPatched::isEar (int u, int v, int w, const std::vector& vertices) -+pcl::EarClippingPatched::isEar (int u, int v, int w, const std::vector& vertices) - { - Eigen::Vector3f p_u, p_v, p_w; - p_u = points_->points[vertices[u]].getVector3fMap(); -diff --git a/src/pcl_conversion_util.cpp b/src/pcl_conversion_util.cpp -index 58cb8e44a..949ca55f1 100644 ---- a/src/pcl_conversion_util.cpp -+++ b/src/pcl_conversion_util.cpp -@@ -51,7 +51,7 @@ namespace jsk_recognition_utils - for (int y=0; y < range_image.height; y++) { - for (int x=0; x + #include + #include + #include diff --git a/patch/ros-noetic-microstrain-inertial-driver.patch b/patch/ros-noetic-microstrain-inertial-driver.patch index 9d22c19be..e772b6637 100644 --- a/patch/ros-noetic-microstrain-inertial-driver.patch +++ b/patch/ros-noetic-microstrain-inertial-driver.patch @@ -37,16 +37,3 @@ index cc87fb6..9a79e3c 100644 } /** -diff --git a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/services.h b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/services.h -index ec0cfda..8f084d0 100644 ---- a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/services.h -+++ b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/services.h -@@ -260,7 +260,7 @@ typename RosServiceType::SharedPtr Services::configureService(const - return createService(node_, name, callback, this); - } - --template -+template - typename RosServiceType::SharedPtr Services::configureService(const std::string& name, bool (Services::*callback)(typename ServiceType::Request&, typename ServiceType::Response&)) - { - if (config_->mip_device_->supportsDescriptor(DescriptorSet, MipType::FIELD_DESCRIPTOR)) diff --git a/patch/ros-noetic-moveit-core.patch b/patch/ros-noetic-moveit-core.patch deleted file mode 100644 index c676b3d9a..000000000 --- a/patch/ros-noetic-moveit-core.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6070e14d1..54e5f3218 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -51,8 +51,14 @@ else() - endif() - - find_package(octomap REQUIRED) -+ - find_package(ruckig REQUIRED) -+# work around catkin_package not fetching the interface includes from the target -+# to forward to downstream dependencies. The includes do not need to be added -+# in include_directories below because the target is correctly imported here. -+get_target_property(ruckig_INCLUDE_DIRS ruckig::ruckig INTERFACE_INCLUDE_DIRECTORIES) - set(ruckig_LIBRARIES "ruckig::ruckig") -+ - find_package(urdfdom REQUIRED) - find_package(urdfdom_headers REQUIRED) - -diff --git a/cmake/moveit.cmake b/cmake/moveit.cmake -index 134412ab3..83163d534 100644 ---- a/cmake/moveit.cmake -+++ b/cmake/moveit.cmake -@@ -1,8 +1,9 @@ - macro(moveit_build_options) -- # for Bionic -- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9") -+ # for Ubuntu bionic/focal -+ if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11") OR -+ (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "16")) - if(NOT "${CMAKE_CXX_STANDARD}") -- set(CMAKE_CXX_STANDARD 14) -+ set(CMAKE_CXX_STANDARD 17) - endif() - set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS OFF) -diff --git a/collision_detector_bullet_description.xml b/collision_detector_bullet_description.xml -index 6d90496ea..b7f688682 100644 ---- a/collision_detector_bullet_description.xml -+++ b/collision_detector_bullet_description.xml -@@ -1,4 +1,4 @@ -- -+ - - -diff --git a/collision_detector_fcl_description.xml b/collision_detector_fcl_description.xml -index f96b06c05..794b8ea2a 100644 ---- a/collision_detector_fcl_description.xml -+++ b/collision_detector_fcl_description.xml -@@ -1,4 +1,4 @@ -- -+ - - -diff --git a/trajectory_processing/include/moveit/trajectory_processing/ruckig_traj_smoothing.h b/trajectory_processing/include/moveit/trajectory_processing/ruckig_traj_smoothing.h -index 4671db898..d79b2645e 100644 ---- a/trajectory_processing/include/moveit/trajectory_processing/ruckig_traj_smoothing.h -+++ b/trajectory_processing/include/moveit/trajectory_processing/ruckig_traj_smoothing.h -@@ -37,6 +37,7 @@ - - #include - #include -+#include - #include - #include - diff --git a/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch b/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch index ec8a83244..c9249fb48 100644 --- a/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch +++ b/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch @@ -1,34 +1,3 @@ -diff --git a/prbt_ikfast_manipulator_plugin/CMakeLists.txt b/prbt_ikfast_manipulator_plugin/CMakeLists.txt -index adf13c2..924c202 100644 ---- a/prbt_ikfast_manipulator_plugin/CMakeLists.txt -+++ b/prbt_ikfast_manipulator_plugin/CMakeLists.txt -@@ -4,10 +4,12 @@ project(moveit_resources_prbt_ikfast_manipulator_plugin) - set(CMAKE_CXX_STANDARD 14) - set(CMAKE_CXX_EXTENSIONS OFF) - --add_compile_options(-Wall) --add_compile_options(-Wextra) --add_compile_options(-Wno-unused-parameter) --add_compile_options(-Wno-unused-variable) -+if(NOT MSVC) -+ add_compile_options(-Wall) -+ add_compile_options(-Wextra) -+ add_compile_options(-Wno-unused-parameter) -+ add_compile_options(-Wno-unused-variable) -+endif() - - # enable aligned new in gcc7+ - if(CMAKE_COMPILER_IS_GNUCXX) -@@ -32,8 +34,6 @@ catkin_package() - set(IKFAST_LIBRARY_NAME prbt_manipulator_moveit_ikfast_plugin) - add_library(${IKFAST_LIBRARY_NAME} src/prbt_manipulator_ikfast_moveit_plugin.cpp) - target_link_libraries(${IKFAST_LIBRARY_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) --# suppress warnings about unused variables in OpenRave's solver code --target_compile_options(${IKFAST_LIBRARY_NAME} PRIVATE -Wno-unused-variable) - - install(TARGETS - ${IKFAST_LIBRARY_NAME} - diff --git a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp index 006fe89..ba54c8c 100644 --- a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp diff --git a/patch/ros-noetic-moveit-ros-planning.win.patch b/patch/ros-noetic-moveit-ros-planning.win.patch index 5691ffe65..7bbb559c8 100644 --- a/patch/ros-noetic-moveit-ros-planning.win.patch +++ b/patch/ros-noetic-moveit-ros-planning.win.patch @@ -1,43 +1,3 @@ -diff --git a/moveit_cpp/CMakeLists.txt b/moveit_cpp/CMakeLists.txt -index 897af9fc8..6675d1bc6 100644 ---- a/moveit_cpp/CMakeLists.txt -+++ b/moveit_cpp/CMakeLists.txt -@@ -22,6 +22,8 @@ endif() - - install(TARGETS ${MOVEIT_LIB_NAME} - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -- LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) -+ LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -+ RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} -+ ) - -diff --git a/plan_execution/CMakeLists.txt b/plan_execution/CMakeLists.txt -index 6b579cfb1..b95b4c657 100644 ---- a/plan_execution/CMakeLists.txt -+++ b/plan_execution/CMakeLists.txt -@@ -3,6 +3,8 @@ set(MOVEIT_LIB_NAME moveit_plan_execution) - add_library(${MOVEIT_LIB_NAME} - src/plan_with_sensing.cpp - src/plan_execution.cpp) -+add_dependencies(${MOVEIT_LIB_NAME} ${moveit_ros_planning_EXPORTED_TARGETS}) -+ - set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") - target_link_libraries(${MOVEIT_LIB_NAME} - moveit_planning_pipeline -diff --git a/planning_scene_monitor/CMakeLists.txt b/planning_scene_monitor/CMakeLists.txt -index 6329feef3..b049e2b36 100644 ---- a/planning_scene_monitor/CMakeLists.txt -+++ b/planning_scene_monitor/CMakeLists.txt -@@ -4,6 +4,8 @@ add_library(${MOVEIT_LIB_NAME} - src/planning_scene_monitor.cpp - src/current_state_monitor.cpp - src/trajectory_monitor.cpp) -+add_dependencies(${MOVEIT_LIB_NAME} ${moveit_ros_planning_EXPORTED_TARGETS}) -+ - set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") - target_link_libraries(${MOVEIT_LIB_NAME} - moveit_robot_model_loader - diff --git a/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.h b/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.h index e7514f670..530b3929a 100644 --- a/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.h @@ -170,3 +130,17 @@ index 22a7ee9ee..c2945f930 100644 /// Definition of the function signature that is called when the execution of all the pushed trajectories completes. /// The status of the overall execution is passed as argument + +diff --git a/moveit_cpp/CMakeLists.txt b/moveit_cpp/CMakeLists.txt +index 897af9fc8..6675d1bc6 100644 +--- a/moveit_cpp/CMakeLists.txt ++++ b/moveit_cpp/CMakeLists.txt +@@ -22,6 +22,8 @@ endif() + + install(TARGETS ${MOVEIT_LIB_NAME} + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +- LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) ++ LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} ++ RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} ++ ) + diff --git a/patch/ros-noetic-nodelet.patch b/patch/ros-noetic-nodelet.patch deleted file mode 100644 index 9e25ae937..000000000 --- a/patch/ros-noetic-nodelet.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/nodelet/CMakeLists.txt b/nodelet/CMakeLists.txt -index e2ead2c..9c48f90 100644 ---- a/nodelet/CMakeLists.txt -+++ b/nodelet/CMakeLists.txt -@@ -26,7 +26,7 @@ list(GET nodelet_VERSION_LIST 2 nodelet_VERSION_PATCH) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/nodelet/version.h.in ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_INCLUDE_DESTINATION}/nodelet/version.h) - - ## Find Boost (only headers) --find_package(Boost REQUIRED) -+find_package(Boost COMPONENTS thread system chrono REQUIRED) - - ## Find UUID libraries - find_package(UUID REQUIRED) -@@ -54,11 +54,11 @@ include_directories( - #add_definitions(-DNODELET_QUEUE_DEBUG) - - add_library(nodeletlib src/nodelet_class.cpp src/loader.cpp src/callback_queue.cpp src/callback_queue_manager.cpp) --target_link_libraries(nodeletlib ${catkin_LIBRARIES} ${BOOST_LIBRARIES}) -+target_link_libraries(nodeletlib ${catkin_LIBRARIES} ${Boost_LIBRARIES}) - add_dependencies(nodeletlib ${nodelet_EXPORTED_TARGETS}) - - add_executable(nodelet src/nodelet.cpp) --target_link_libraries(nodelet nodeletlib ${UUID_LIBRARIES} ${catkin_LIBRARIES} ${BOOST_LIBRARIES}) -+target_link_libraries(nodelet nodeletlib ${UUID_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) - - # install - catkin_install_python(PROGRAMS scripts/declared_nodelets scripts/list_nodelets -diff --git a/nodelet/src/callback_queue_manager.cpp b/nodelet/src/callback_queue_manager.cpp -index bf5dcea4..c2976ab3 100644 ---- a/nodelet/src/callback_queue_manager.cpp -+++ b/nodelet/src/callback_queue_manager.cpp -@@ -34,7 +34,7 @@ - #include - #include - #include --#include -+#include - - #include - -diff --git a/nodelet/src/loader.cpp b/nodelet/src/loader.cpp -index 8887d46b..6446cbf9 100644 ---- a/nodelet/src/loader.cpp -+++ b/nodelet/src/loader.cpp -@@ -216,7 +216,7 @@ struct Loader::Impl - typedef pluginlib::ClassLoader Loader; - boost::shared_ptr loader(new Loader("nodelet", "nodelet::Nodelet")); - // create_instance_ is self-contained; it owns a copy of the loader shared_ptr -- create_instance_ = boost::bind(&Loader::createInstance, loader, _1); -+ create_instance_ = boost::bind(&Loader::createInstance, loader, boost::placeholders::_1); - refresh_classes_ = boost::bind(&Loader::refreshDeclaredClasses, loader); - } - diff --git a/patch/ros-noetic-octomap-server.patch b/patch/ros-noetic-octomap-server.patch new file mode 100644 index 000000000..c6c02979c --- /dev/null +++ b/patch/ros-noetic-octomap-server.patch @@ -0,0 +1,13 @@ +diff --git a/octomap_server/src/OctomapServer.cpp b/octomap_server/src/OctomapServer.cpp +index d18eb7dd..e034b170 100644 +--- a/octomap_server/src/OctomapServer.cpp ++++ b/octomap_server/src/OctomapServer.cpp +@@ -924,7 +924,7 @@ void OctomapServer::filterGroundPlane(const PCLPointCloud& pc, PCLPointCloud& gr + second_pass.setInputCloud(pc.makeShared()); + second_pass.filter(ground); + +- second_pass.setFilterLimitsNegative (true); ++ second_pass.setNegative (true); + second_pass.filter(nonground); + } + diff --git a/patch/ros-noetic-plotjuggler-ros.patch b/patch/ros-noetic-plotjuggler-ros.patch deleted file mode 100644 index d25cb0674..000000000 --- a/patch/ros-noetic-plotjuggler-ros.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/plugins/ros1_introspection/src/ros_message.cpp b/plugins/ros1_introspection/src/ros_message.cpp -index 0ea008c..289b880 100644 ---- a/plugins/ros1_introspection/src/ros_message.cpp -+++ b/plugins/ros1_introspection/src/ros_message.cpp -@@ -59,7 +59,7 @@ ROSMessage::ROSMessage(const std::string& msg_def) - } - - // Trim start of line -- line.erase(line.begin(), std::find_if(line.begin(), line.end(), std::not1(std::ptr_fun(std::isspace)))); -+ line.erase(line.begin(), std::find_if(line.begin(), line.end(), [](int c) {return !std::isspace(c);})); - - if (line.compare(0, 5, "MSG: ") == 0) - { -diff --git a/plugins/ros1_parsers/fiveai_stamped_diagnostic.h b/plugins/ros1_parsers/fiveai_stamped_diagnostic.h -index cdf758a..1fc84dd 100644 ---- a/plugins/ros1_parsers/fiveai_stamped_diagnostic.h -+++ b/plugins/ros1_parsers/fiveai_stamped_diagnostic.h -@@ -100,7 +100,7 @@ class FiveAiDiagnosticMsg : public RosMessageParser - { - auto key = fmt::format("{}/{}/status", _topic_name, replaced_key); - auto& series = getSeries(key); -- series.pushBack({ timestamp, diag.status }); -+ series.pushBack({ timestamp, static_cast(diag.status) }); - } - - } \ No newline at end of file diff --git a/patch/ros-noetic-plotjuggler.patch b/patch/ros-noetic-plotjuggler.patch index 61728d06f..42bdbd236 100644 --- a/patch/ros-noetic-plotjuggler.patch +++ b/patch/ros-noetic-plotjuggler.patch @@ -1,38 +1,161 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1bb82856..1f332a0b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -185,6 +185,8 @@ add_library( plotjuggler_base - plotjuggler_base/src/special_messages.cpp - ) +diff --git a/3rdparty/QCodeEditor/CMakeLists.txt b/3rdparty/QCodeEditor/CMakeLists.txt +index 84282fe1f..c37ae8f49 100644 +--- a/3rdparty/QCodeEditor/CMakeLists.txt ++++ b/3rdparty/QCodeEditor/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6) ++cmake_minimum_required(VERSION 3.20) + project(QCodeEditor) -+target_link_libraries(plotjuggler_base ${QT_LINK_LIBRARIES} lua_static plotjuggler_qwt) -+ - # target_link_libraries(plotjuggler_base plotjuggler_qwt) - target_include_directories(plotjuggler_base INTERFACE - $ + set(CMAKE_CXX_STANDARD 11) +@@ -69,10 +69,7 @@ set(CMAKE_AUTOMOC On) + # Create code from resource files + set(CMAKE_AUTORCC ON) + +-# Find includes in corresponding build directories +-find_package(Qt5Core CONFIG REQUIRED) +-find_package(Qt5Widgets CONFIG REQUIRED) +-find_package(Qt5Gui CONFIG REQUIRED) ++find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED) + + add_library(QCodeEditor STATIC + ${RESOURCES_FILE} +@@ -84,21 +81,6 @@ target_include_directories(QCodeEditor PUBLIC + include + ) + +-if(CMAKE_COMPILER_IS_GNUCXX) +- target_compile_options(QCodeEditor +- PRIVATE +- -ansi +- -pedantic +- -Wall +- -Wextra +- -Weffc++ +- -Woverloaded-virtual +- -Winit-self +- -std=c++11 +- -Wunreachable-code +- ) +-endif(CMAKE_COMPILER_IS_GNUCXX) +- + target_link_libraries(QCodeEditor + Qt5::Core + Qt5::Widgets diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt -index 6b650f1b..bc46abe9 100644 +index 6b650f1b..f384e3f1 100644 --- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt -@@ -4,6 +4,7 @@ project(QtADS LANGUAGES CXX) +@@ -4,6 +4,8 @@ project(QtADS LANGUAGES CXX) include_directories(include/Qads) +find_package(XCB REQUIRED) ++ find_package(Qt5 5.5 COMPONENTS Core Gui Widgets REQUIRED) if (UNIX AND NOT APPLE) find_package(Qt5 5.5 COMPONENTS X11Extras REQUIRED) -@@ -67,7 +68,8 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets +@@ -67,7 +69,8 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets if(UNIX AND NOT APPLE) target_link_libraries(qt_advanced_docking PUBLIC Qt5::X11Extras) - target_link_libraries(qt_advanced_docking PRIVATE xcb) -+ target_link_libraries(qt_advanced_docking PRIVATE ${XCB_LIBRARIES}) ++ target_link_libraries(qt_advanced_docking PUBLIC ${XCB_LIBRARIES}) + target_include_directories(qt_advanced_docking SYSTEM PUBLIC ${XCB_INCLUDE_DIRS}) endif() set_target_properties(qt_advanced_docking PROPERTIES + +diff --git a/3rdparty/lua-5.4.3/CMakeLists.txt b/3rdparty/lua-5.4.3/CMakeLists.txt +index 6f682a3e6..676feecb1 100644 +--- a/3rdparty/lua-5.4.3/CMakeLists.txt ++++ b/3rdparty/lua-5.4.3/CMakeLists.txt +@@ -1,3 +1,5 @@ ++include_directories( ./src ) ++ + set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/lapi.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/lcode.c +@@ -32,7 +34,7 @@ set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/loadlib.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/linit.c + ) +-set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) ++# set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) + + add_compile_options(-fPIC) + +@@ -40,7 +42,7 @@ add_library(lua_static STATIC + ${LUA_LIB_SRCS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/lua.c + ) +-target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) ++# target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) + + add_library(lua_objects OBJECT ${LUA_LIB_SRCS}) + +@@ -53,3 +55,11 @@ if(EMSCRIPTEN) + endif() + target_compile_definitions(lua_static PUBLIC ${LUA_DEFINITIONS}) + ++install( ++ TARGETS ++ lua_static ++ EXPORT export_lua_static ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++ INCLUDES DESTINATION include ) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0c12d11a..37e5db3c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -123,11 +123,9 @@ find_package(Qt5 REQUIRED COMPONENTS + set( QT_LINK_LIBRARIES + Qt5::Core + Qt5::Widgets +- Qt5::PrintSupport + Qt5::Xml + Qt5::Concurrent + Qt5::Svg +- Qt5::OpenGL + Qt5::WebSockets + ) + +@@ -193,7 +191,7 @@ if (BASE_AS_SHARED) + ${PLOTJUGGLER_BASE_SRC} + ${PLOTJUGGLER_BASE_MOCS} + ) +- target_link_libraries(plotjuggler_base PRIVATE lua_objects plotjuggler_qwt_objects) ++ target_link_libraries(plotjuggler_base PRIVATE ${QT_LINK_LIBRARIES} lua_objects plotjuggler_qwt_objects) + else() + add_library(plotjuggler_base STATIC + ${PLOTJUGGLER_BASE_SRC} +@@ -201,13 +199,6 @@ else() + ) + endif() + +-# target_link_libraries(plotjuggler_base plotjuggler_qwt) +- +-target_include_directories(plotjuggler_base INTERFACE +- $ +- $ +-) +- + ######################### INSTALL #################################### + + if(COMPILING_WITH_CATKIN) +@@ -224,8 +215,9 @@ elseif(COMPILING_WITH_AMENT) + set(PJ_PLUGIN_INSTALL_DIRECTORY lib/${PROJECT_NAME} ) + + ament_export_targets( +- ${PROJECT_NAME}Targets + export_plotjuggler_qwt ++ export_lua_static ++ ${PROJECT_NAME}Targets + HAS_LIBRARY_TARGET) + ament_package() + diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake new file mode 100644 index 00000000..a2e2757a @@ -90,4 +213,25 @@ index 00000000..a2e2757a +endforeach() + +list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) - +diff --git a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +index 084c93cb..d484adf6 100644 +--- a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt ++++ b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +@@ -4,7 +4,7 @@ include_directories( ../ ) + add_definitions(${QT_DEFINITIONS}) + add_definitions(-DQT_PLUGIN) + +-find_package(Protobuf QUIET) ++find_package(Protobuf QUIET CONFIG) + + if( Protobuf_FOUND) + message(STATUS "[Protobuf] found") +@@ -24,7 +24,7 @@ if( Protobuf_FOUND) + target_link_libraries(ProtobufParser + ${Qt5Widgets_LIBRARIES} + ${Qt5Xml_LIBRARIES} +- ${Protobuf_LIBRARIES} ++ protobuf::libprotobuf + plotjuggler_base + plotjuggler_qwt) + diff --git a/patch/ros-noetic-pybind11-catkin.patch b/patch/ros-noetic-pybind11-catkin.patch index eb463b77d..d11fb4010 100644 --- a/patch/ros-noetic-pybind11-catkin.patch +++ b/patch/ros-noetic-pybind11-catkin.patch @@ -1,26 +1,14 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d78b51a..50e96e4 100644 +index 5b63626..03d9fe8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -5,7 +5,7 @@ find_package(catkin REQUIRED) - include(ExternalProject) - - ExternalProject_Add(pybind11_src -- URL "https://github.com/pybind/pybind11/archive/v2.6.1.zip" -+ URL "https://github.com/pybind/pybind11/archive/v2.10.3.zip" - UPDATE_COMMAND "" - CMAKE_ARGS -DPYBIND11_NOPYTHON=TRUE +@@ -11,9 +11,6 @@ ExternalProject_Add(pybind11_src -DPYBIND11_TEST=OFF -diff --git a/package.xml b/package.xml -index 2ca9a59..138bafe 100644 ---- a/package.xml -+++ b/package.xml -@@ -1,7 +1,7 @@ - - - pybind11_catkin -- 2.6.1 -+ 2.10.3 - The pybind11 package - Wolfgang Merkt - Vladimir Ivan + -DPYBIND11_INSTALL=ON + -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install +- # Workaround if DESTDIR is set +- # See https://gitlab.kitware.com/cmake/cmake/-/issues/18165. +- INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR= install + ) + + # Copy cmake/pybind11 and include/pybind11 to corresponding devel space folders \ No newline at end of file diff --git a/patch/ros-noetic-rosconsole.patch b/patch/ros-noetic-rosconsole.patch new file mode 100644 index 000000000..fe921daf0 --- /dev/null +++ b/patch/ros-noetic-rosconsole.patch @@ -0,0 +1,630 @@ +From 9f930c007dd40aa7ede771b8859b529e024d7bfb Mon Sep 17 00:00:00 2001 +From: Daniel Reuter +Date: Wed, 11 May 2022 15:28:23 +0200 +Subject: [PATCH 1/4] be compatible with `log4cxx` `0.11` and `0.12`/`0.13` + +[`log4cxx` uses `std::shared_ptr`](https://issues.apache.org/jira/browse/LOGCXX-486) +since [version `0.12`](https://logging.apache.org/log4cxx/latest_stable/changelog.html) + +Unfortunately Ubuntu 22.04 ships with +[`0.12`](https://packages.ubuntu.com/jammy/liblog4cxx12), which means +that rosconsole with the `log4cxx` backend wouldn't compile. This is +also a problem on other distros such as Arch or Gentoo. + +I have carefully applied explicit construction/conversion and `&*` +instead of `.get()` to make the code compile with both versions of +`log4cxx`. +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 19 +++-- + test/thread_test.cpp | 3 +- + test/utest.cpp | 84 +++++++++++----------- + 3 files changed, 54 insertions(+), 52 deletions(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 901831265..4c3b26eab 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -166,7 +166,7 @@ void initialize() + } + + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); +- logger->addAppender(new ROSConsoleStdioAppender); ++ logger->addAppender(log4cxx::AppenderPtr(new ROSConsoleStdioAppender)); + #ifdef _MSC_VER + if ( ros_root_cstr != NULL ) { + free(ros_root_cstr); +@@ -200,7 +200,7 @@ bool isEnabledFor(void* handle, ::ros::console::Level level) + + void* getHandle(const std::string& name) + { +- return log4cxx::Logger::getLogger(name); ++ return &*log4cxx::Logger::getLogger(name); + } + + std::string getName(void* handle) +@@ -216,7 +216,7 @@ std::string getName(void* handle) + + bool get_loggers(std::map& loggers) + { +- log4cxx::spi::LoggerRepositoryPtr repo = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository(); ++ auto repo = log4cxx::spi::LoggerRepositoryPtr(log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository()); + + log4cxx::LoggerList current_loggers = repo->getCurrentLoggers(); + log4cxx::LoggerList::iterator it = current_loggers.begin(); +@@ -352,22 +352,21 @@ class Log4cxxAppender : public log4cxx::AppenderSkeleton + ros::console::LogAppender* appender_; + }; + +-Log4cxxAppender* g_log4cxx_appender = 0; ++log4cxx::AppenderPtr g_log4cxx_appender = {}; + + void register_appender(LogAppender* appender) + { +- g_log4cxx_appender = new Log4cxxAppender(appender); ++ g_log4cxx_appender = log4cxx::AppenderPtr( new Log4cxxAppender(appender)); + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->addAppender(g_log4cxx_appender); + } + + void deregister_appender(LogAppender* appender){ +- if(g_log4cxx_appender->getAppender() == appender) ++ if(dynamic_cast(&*g_log4cxx_appender)->getAppender() == appender) + { + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->removeAppender(g_log4cxx_appender); +- delete g_log4cxx_appender; +- g_log4cxx_appender = 0; ++ g_log4cxx_appender = log4cxx::AppenderPtr(); + } + } + void shutdown() +@@ -376,14 +375,14 @@ void shutdown() + { + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->removeAppender(g_log4cxx_appender); +- g_log4cxx_appender = 0; ++ g_log4cxx_appender = log4cxx::AppenderPtr(); + } + // reset this so that the logger doesn't get crashily destroyed + // again during global destruction. + // + // See https://code.ros.org/trac/ros/ticket/3271 + // +- log4cxx::Logger::getRootLogger()->getLoggerRepository()->shutdown(); ++ static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); + } + + } // namespace impl +diff --git a/test/thread_test.cpp b/test/thread_test.cpp +index 908edaef7..a7ac0375e 100644 +--- a/test/thread_test.cpp ++++ b/test/thread_test.cpp +@@ -83,6 +83,7 @@ class TestAppender : public log4cxx::AppenderSkeleton + return false; + } + }; ++LOG4CXX_PTR_DEF(TestAppender); + + void threadFunc(boost::barrier* b) + { +@@ -95,7 +96,7 @@ TEST(Rosconsole, threadedCalls) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + boost::thread_group tg; +diff --git a/test/utest.cpp b/test/utest.cpp +index 0357a8a3f..7ac8f7090 100644 +--- a/test/utest.cpp ++++ b/test/utest.cpp +@@ -85,6 +85,7 @@ class TestAppender : public log4cxx::AppenderSkeleton + return false; + } + }; ++LOG4CXX_PTR_DEF(TestAppender); + + class TestAppenderWithThrow : public log4cxx::AppenderSkeleton + { +@@ -113,13 +114,14 @@ struct BasicFilter : public ros::console::FilterBase + + bool enabled_; + }; ++LOG4CXX_PTR_DEF(TestAppenderWithThrow); + + BasicFilter g_filter(true); + + #define DEFINE_COND_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Cond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_COND(true, "Testing %d %d %d", 1, 2, 3); \ + macro_base##_COND(false, "Testing %d %d %d", 1, 2, 3); \ +@@ -130,7 +132,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedCond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_COND_NAMED(true, "test", "Testing %d %d %d", 1, 2, 3); \ + macro_base##_COND_NAMED(false, "test", "Testing %d %d %d", 1, 2, 3); \ +@@ -142,7 +144,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamCond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_COND(true, "Testing " << 1 << " " << 2 << " " << 3); \ + macro_base##_STREAM_COND(false, "Testing " << 1 << " " << 2 << " " << 3); \ +@@ -153,7 +155,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamCondNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_COND_NAMED(true, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + macro_base##_STREAM_COND_NAMED(false, "test", "Testing " << 1 << " " << 2 << " " << 3); \ +@@ -167,7 +169,7 @@ BasicFilter g_filter(true); + #define DEFINE_ONCE_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Once) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_ONCE("Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -177,7 +179,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedOnce) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_ONCE_NAMED("test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -188,7 +190,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamOnce) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_ONCE("Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -198,7 +200,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamOnceNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_ONCE_NAMED("test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -211,7 +213,7 @@ BasicFilter g_filter(true); + #define DEFINE_THROTTLE_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Throttle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_THROTTLE(0.5, "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -221,7 +223,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedThrottle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_THROTTLE_NAMED(0.5, "test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -232,7 +234,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamThrottle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_THROTTLE(0.5, "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -242,7 +244,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamThrottleNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_THROTTLE_NAMED(0.5, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -255,7 +257,7 @@ BasicFilter g_filter(true); + #define DEFINE_FILTER_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Filter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_FILTER(&g_filter, "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -265,7 +267,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedFilter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_FILTER_NAMED(&g_filter, "test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -276,7 +278,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamFilter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_FILTER(&g_filter, "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -286,7 +288,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamFilterNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_FILTER_NAMED(&g_filter, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -299,7 +301,7 @@ BasicFilter g_filter(true); + #define DEFINE_LEVEL_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base("Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -309,7 +311,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##Named) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_NAMED("test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -320,7 +322,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##Stream) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM("Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -330,7 +332,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_NAMED("test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -354,7 +356,7 @@ TEST(RosConsole, loggingLevels) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + int pre_count = 0; +@@ -575,7 +577,7 @@ TEST(RosConsole, changingLevel) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + logger->setLevel( log4cxx::Level::getError() ); +@@ -595,7 +597,7 @@ TEST(RosConsole, changingLoggerLevel) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + logger->setLevel(log4cxx::Level::getDebug()); +@@ -629,7 +631,7 @@ TEST(RosConsole, longPrintfStyleOutput) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + std::stringstream ss; +@@ -652,7 +654,7 @@ TEST(RosConsole, throwingAppender) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppenderWithThrow* appender = new TestAppenderWithThrow; ++ auto appender = TestAppenderWithThrowPtr(new TestAppenderWithThrow); + logger->addAppender( appender ); + + try +@@ -677,7 +679,7 @@ TEST(RosConsole, once) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + onceFunc(); +@@ -697,7 +699,7 @@ TEST(RosConsole, throttle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -728,7 +730,7 @@ TEST(RosConsole, delayedThrottle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -765,7 +767,7 @@ TEST(RosConsole, onceStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + onceStreamFunc(); +@@ -785,7 +787,7 @@ TEST(RosConsole, throttleStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -816,7 +818,7 @@ TEST(RosConsole, delayedStreamThrottle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -847,7 +849,7 @@ TEST(RosConsole, basicFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + BasicFilter trueFilter(true), falseFilter(false); +@@ -864,7 +866,7 @@ TEST(RosConsole, basicFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + BasicFilter trueFilter(true), falseFilter(false); +@@ -900,7 +902,7 @@ TEST(RosConsole, advancedFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + AdvancedFilter trueFilter(true), falseFilter(false); +@@ -919,7 +921,7 @@ TEST(RosConsole, advancedFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + AdvancedFilter trueFilter(true), falseFilter(false); +@@ -949,7 +951,7 @@ TEST(RosConsole, changeFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ChangeFilter filter; +@@ -966,7 +968,7 @@ TEST(RosConsole, changeFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ChangeFilter filter; +@@ -1022,7 +1024,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]+)\\.([0-9]+)"); +@@ -1037,7 +1039,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]{4}) ([0-9]{2}:[0-9]{2}:[0-9]{2})"); +@@ -1052,7 +1054,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]+)\\.([0-9]+)"); +@@ -1067,7 +1069,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]{4}) ([0-9]{2}:[0-9]{2}:[0-9]{2})"); + +From deaf674ae09c5255919a99d9efdeafe0f89ffbd1 Mon Sep 17 00:00:00 2001 +From: Andrey Vukolov +Date: Mon, 14 Nov 2022 19:15:07 +0100 +Subject: [PATCH 2/4] Compatibility for liblog4cxx v0.11-0.13 + + - Partially implements changes suggested both in #54 and + orphaned commit e3753eec58bf4e76012d019fd307349f94d1d0be + - Tested on liblog4cxx v0.12 and 0.13 + - Sets up pointer-level compatibility with both new and old + log4cxx versions + - Adds a workaround for API breaking changes in liblog4cxx + - Testing needed + +Signed-off-by: Andrey Vukolov +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 4c3b26eab..d1b6c4952 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -181,10 +181,12 @@ void initialize() + + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { ++ std::string filename(file); ++ std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); + log4cxx::Logger* logger = (log4cxx::Logger*)handle; + try + { +- logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, function, line)); ++ logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, short_filename.c_str(), function, line)); + } + catch (std::exception& e) + { +@@ -369,6 +371,18 @@ void deregister_appender(LogAppender* appender){ + g_log4cxx_appender = log4cxx::AppenderPtr(); + } + } ++ ++namespace { ++// log4cxx 0.11 and 0.13+ use types with operator-> ++template void shutdown_logger_repository(L l){ ++ l->shutdown(); ++} ++// log4cxx 0.12 uses a weakptr ++template void shutdown_logger_repository(std::weak_ptr l){ ++ l.lock()->shutdown(); ++} ++} ++ + void shutdown() + { + if(g_log4cxx_appender) +@@ -382,7 +396,8 @@ void shutdown() + // + // See https://code.ros.org/trac/ros/ticket/3271 + // +- static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); ++ // static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); ++ shutdown_logger_repository(log4cxx::Logger::getRootLogger()->getLoggerRepository()); + } + + } // namespace impl + +From d8a41f09b64d83dc5532b40fc0f16d69708f76d6 Mon Sep 17 00:00:00 2001 +From: Andrey Vukolov +Date: Mon, 14 Nov 2022 19:57:10 +0100 +Subject: [PATCH 3/4] Added liblog4cxx version handler + +Signed-off-by: Andrey Vukolov +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index d1b6c4952..70504b928 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -181,12 +181,18 @@ void initialize() + + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { ++ log4cxx::Logger* logger = (log4cxx::Logger*)handle; ++#if (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) + std::string filename(file); + std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); +- log4cxx::Logger* logger = (log4cxx::Logger*)handle; + try + { + logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, short_filename.c_str(), function, line)); ++#else ++ try ++ { ++ logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, function, line)); ++#endif + } + catch (std::exception& e) + { + +From 300693deac5747b70ed19af27c36b2b90d10c80d Mon Sep 17 00:00:00 2001 +From: Andrei Vukolov +Date: Tue, 10 Jan 2023 19:44:27 +0100 +Subject: [PATCH 4/4] Fixed compilation condition for Ubuntu LTS 22.04 + +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 70504b928..89403594d 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -182,7 +182,7 @@ void initialize() + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { + log4cxx::Logger* logger = (log4cxx::Logger*)handle; +-#if (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) ++#if (LOG4CXX_VERSION_MAJOR > 0) || ( (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) ) + std::string filename(file); + std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); + try diff --git a/patch/ros-noetic-rosmon-core.patch b/patch/ros-noetic-rosmon-core.patch index 8368a0582..d1d525abb 100644 --- a/patch/ros-noetic-rosmon-core.patch +++ b/patch/ros-noetic-rosmon-core.patch @@ -1,3 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7441df6..7333c65 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,7 +15,7 @@ find_package(catkin REQUIRED COMPONENTS + catkin_package() + include_directories(${catkin_INCLUDE_DIRS}) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") ++# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") + + find_package(TinyXML REQUIRED) + diff --git a/src/monitor/shim.cpp b/src/monitor/shim.cpp index 7dec1cc..da51913 100644 --- a/src/monitor/shim.cpp @@ -22,16 +35,3 @@ index 7dec1cc..da51913 100644 static const struct option OPTIONS[] = { {"help", no_argument, nullptr, 'h'}, {"namespace", required_argument, nullptr, 'n'}, -diff --git a/src/launch/substitution_python.cpp b/src/launch/substitution_python.cpp -index ffb1bcd..274651a 100644 ---- a/src/launch/substitution_python.cpp -+++ b/src/launch/substitution_python.cpp -@@ -13,6 +13,8 @@ - #include - - #include -+ -+#include - - namespace py = boost::python; - diff --git a/patch/ros-noetic-rqt-rosmon.patch b/patch/ros-noetic-rqt-rosmon.patch new file mode 100644 index 000000000..edc841203 --- /dev/null +++ b/patch/ros-noetic-rqt-rosmon.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 95bf11a..60b668c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,7 +13,7 @@ find_package(catkin REQUIRED COMPONENTS + catkin_package() + include_directories(${catkin_INCLUDE_DIRS}) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") ++# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") + + if(${pluginlib_VERSION} VERSION_GREATER 1.11.1) + message(STATUS "using new pluginlib headers with .hpp extensions") diff --git a/patch/ros-noetic-rtabmap-conversions.patch b/patch/ros-noetic-rtabmap-conversions.patch new file mode 100644 index 000000000..35cb68b8f --- /dev/null +++ b/patch/ros-noetic-rtabmap-conversions.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index adbc48dd..455a72b1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,13 @@ + cmake_minimum_required(VERSION 3.5) + project(rtabmap_conversions) + ++set(CMAKE_MODULE_PATH "$ENV{PREFIX}/lib/cmake/vtk-9.2") ++find_package(jsoncpp REQUIRED) ++find_package(libxml2 REQUIRED) ++find_package(NetCDF REQUIRED) ++find_package(HDF5 COMPONENTS HL REQUIRED) ++find_package(LibPROJ REQUIRED) ++ + find_package(catkin REQUIRED COMPONENTS + cv_bridge roscpp sensor_msgs std_msgs geometry_msgs + tf tf_conversions eigen_conversions laser_geometry pcl_conversions diff --git a/patch/ros-noetic-rtabmap.patch b/patch/ros-noetic-rtabmap.patch index 0c044b9bc..72ee91369 100644 --- a/patch/ros-noetic-rtabmap.patch +++ b/patch/ros-noetic-rtabmap.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6f9c28f4b..7390fc010 100644 +index 8658bcc5..2de825c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -79,14 +79,6 @@ IF(MINGW) +@@ -83,14 +83,6 @@ IF(MINGW) SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-auto-import") ENDIF(MINGW) @@ -17,7 +17,7 @@ index 6f9c28f4b..7390fc010 100644 #The CDT Error Parser cannot handle error messages that span #more than one line, which is the default gcc behavior. #In order to force gcc to generate single line error messages with no line wrapping -@@ -162,14 +154,14 @@ OPTION(BUILD_TOOLS "Build tools" ON) +@@ -167,14 +159,14 @@ OPTION(BUILD_TOOLS "Build tools" ON) OPTION(BUILD_EXAMPLES "Build examples" ON) ####### DEPENDENCIES ####### @@ -34,21 +34,21 @@ index 6f9c28f4b..7390fc010 100644 option(WITH_PYTHON_THREADING "Use more than one Python interpreter." OFF) option(WITH_PDAL "Include PDAL support" ON) option(WITH_FREENECT "Include Freenect support" ON) -@@ -348,6 +340,8 @@ IF(WITH_QT) +@@ -375,6 +367,8 @@ IF(WITH_QT) ENDIF() ADD_DEFINITIONS(-DQT_NO_KEYWORDS) # To avoid conflicts with boost signals/foreach and Qt macros - ENDIF(QT4_FOUND OR Qt5_FOUND) + ENDIF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND) +ELSE() -+ add_compile_definitions(DISABLE_VTK) ++ add_compile_definitions(DISABLE_VTK) ENDIF(WITH_QT) IF(NOT VTK_FOUND) diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt -index 9df6b45fd..78c02b658 100644 +index df7cbaa0..4c47fd02 100644 --- a/corelib/src/CMakeLists.txt +++ b/corelib/src/CMakeLists.txt -@@ -159,6 +159,13 @@ SET(LIBRARIES - ${ZLIB_LIBRARIES} +@@ -164,6 +164,13 @@ SET(LIBRARIES + ${ZLIB_LIBRARIES} ) +IF(VTK_FOUND) @@ -58,28 +58,15 @@ index 9df6b45fd..78c02b658 100644 + ) +ENDIF() + - IF(Sqlite3_FOUND) - SET(INCLUDE_DIRS - ${INCLUDE_DIRS} -@@ -210,6 +217,8 @@ IF(WITH_PYTHON AND Python3_FOUND) + # Issue that qhull dependency uses optimized and debug keywords, + # which are converted to \$<\$> and \$<\$ + # in RTABMap_coreTargets.cmake (not sure why?!). +@@ -228,6 +235,8 @@ IF(WITH_PYTHON AND Python3_FOUND) SET(INCLUDE_DIRS ${TORCH_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/python -+ ${Python3_INCLUDE_DIRS} -+ ${Python3_NumPy_INCLUDE_DIRS} ++ ${Python3_INCLUDE_DIRS} ++ ${Python3_NumPy_INCLUDE_DIRS} ${INCLUDE_DIRS} ) ENDIF(WITH_PYTHON AND Python3_FOUND) -diff --git a/tools/EurocDataset/CMakeLists.txt b/tools/EurocDataset/CMakeLists.txt -index 3b1e5e4..2f23770 100644 ---- a/tools/EurocDataset/CMakeLists.txt -+++ b/tools/EurocDataset/CMakeLists.txt -@@ -12,6 +12,8 @@ IF(NOT yaml-cpp_FOUND) - SET(yaml-cpp_FOUND ${yaml_cpp_FOUND}) - ENDIF(yaml_cpp_FOUND) - ENDIF(PKG_CONFIG_FOUND) -+ELSE() -+ SET(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR}) - ENDIF(NOT yaml-cpp_FOUND) - - IF(yaml-cpp_FOUND) diff --git a/patch/ros-noetic-ruckig.patch b/patch/ros-noetic-ruckig.patch new file mode 100644 index 000000000..cd8a91159 --- /dev/null +++ b/patch/ros-noetic-ruckig.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4a94d9d..11d4fd9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,10 +7,10 @@ project(ruckig VERSION 0.9.2 LANGUAGES CXX) + include(GNUInstallDirs) + + +-option(BUILD_EXAMPLES "Build example programs" ON) ++option(BUILD_EXAMPLES "Build example programs" OFF) + option(BUILD_PYTHON_MODULE "Build python module with pybind11" OFF) + option(BUILD_ONLINE_CLIENT "Build online client to calculate Ruckig Pro trajectories" OFF) +-option(BUILD_TESTS "Build tests" ON) ++option(BUILD_TESTS "Build tests" OFF) + option(BUILD_BENCHMARK "Build benchmark" OFF) + option(BUILD_SHARED_LIBS "Build as shared library" ON) + option(EXPOSE_INTERNAL "Expose some internal classes and methods" OFF) diff --git a/patch/ros-noetic-slam-toolbox.patch b/patch/ros-noetic-slam-toolbox.patch index 307412d0b..26d997b1e 100644 --- a/patch/ros-noetic-slam-toolbox.patch +++ b/patch/ros-noetic-slam-toolbox.patch @@ -41,8 +41,20 @@ index ad6ef02..15eab81 100644 install(DIRECTORY include/ DESTINATION include) install(TARGETS kartoSlamToolbox +diff --git a/lib/karto_sdk/include/karto_sdk/Karto.h b/lib/karto_sdk/include/karto_sdk/Karto.h +index c4c4f27..5373b46 100644 +--- a/lib/karto_sdk/include/karto_sdk/Karto.h ++++ b/lib/karto_sdk/include/karto_sdk/Karto.h +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + + #include diff --git a/lib/karto_sdk/include/karto_sdk/Mapper.h b/lib/karto_sdk/include/karto_sdk/Mapper.h -index a935383..5607c72 100644 +index 2a439c6..94164f3 100644 --- a/lib/karto_sdk/include/karto_sdk/Mapper.h +++ b/lib/karto_sdk/include/karto_sdk/Mapper.h @@ -26,7 +26,7 @@ @@ -55,7 +67,7 @@ index a935383..5607c72 100644 #include #include diff --git a/lib/karto_sdk/src/Mapper.cpp b/lib/karto_sdk/src/Mapper.cpp -index d5683c7..5067032 100644 +index 7466216..97384d7 100644 --- a/lib/karto_sdk/src/Mapper.cpp +++ b/lib/karto_sdk/src/Mapper.cpp @@ -776,7 +776,7 @@ namespace karto @@ -67,15 +79,91 @@ index d5683c7..5067032 100644 // find value of best response (in [0; 1]) kt_double bestResponse = -1; -diff --git a/lib/karto_sdk/include/karto_sdk/Karto.h b/lib/karto_sdk/include/karto_sdk/Karto.h -index c4c4f270..5373b461 100644 ---- a/lib/karto_sdk/include/karto_sdk/Karto.h -+++ b/lib/karto_sdk/include/karto_sdk/Karto.h -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include +diff --git a/solvers/ceres_solver.cpp b/solvers/ceres_solver.cpp +index 99a03a7..88da9f6 100644 +--- a/solvers/ceres_solver.cpp ++++ b/solvers/ceres_solver.cpp +@@ -341,9 +341,9 @@ void CeresSolver::AddConstraint(karto::Edge* pEdge) + cost_function, loss_function_, + &node1it->second(0), &node1it->second(1), &node1it->second(2), + &node2it->second(0), &node2it->second(1), &node2it->second(2)); +- problem_->SetParameterization(&node1it->second(2), ++ problem_->SetManifold(&node1it->second(2), + angle_local_parameterization_); +- problem_->SetParameterization(&node2it->second(2), ++ problem_->SetManifold(&node2it->second(2), + angle_local_parameterization_); + + blocks_->insert(std::pair( +diff --git a/solvers/ceres_solver.hpp b/solvers/ceres_solver.hpp +index 9c0f060..edcd2a2 100644 +--- a/solvers/ceres_solver.hpp ++++ b/solvers/ceres_solver.hpp +@@ -15,7 +15,7 @@ + #include + #include +-#include ++#include + #include #include + +@@ -57,7 +57,7 @@ private: + ceres::Problem::Options options_problem_; + ceres::LossFunction* loss_function_; + ceres::Problem* problem_; +- ceres::LocalParameterization* angle_local_parameterization_; ++ ceres::Manifold* angle_local_parameterization_; + bool was_constant_set_, debug_logging_; + + // graph +diff --git a/solvers/ceres_utils.h b/solvers/ceres_utils.h +index 08b5f62..021d1b1 100644 +--- a/solvers/ceres_utils.h ++++ b/solvers/ceres_utils.h +@@ -4,7 +4,7 @@ + */ + + #include +-#include ++#include + #include + #include + +@@ -34,6 +34,24 @@ template inline T NormalizeAngle(const T& angle_radians) + class AngleLocalParameterization + { + public: ++ template ++ bool Plus(const T* x_radians, ++ const T* delta_radians, ++ T* x_plus_delta_radians) const { ++ *x_plus_delta_radians = NormalizeAngle(*x_radians + *delta_radians); ++ return true; ++ } ++ ++ template ++ bool Minus(const T* y_radians, ++ const T* x_radians, ++ T* y_minus_x_radians) const { ++ *y_minus_x_radians = ++ NormalizeAngle(*y_radians) - NormalizeAngle(*x_radians); ++ ++ return true; ++ } ++ + template + bool operator()(const T* theta_radians, const T* delta_theta_radians, T* theta_radians_plus_delta) const + { +@@ -41,9 +59,9 @@ class AngleLocalParameterization + return true; + } + +- static ceres::LocalParameterization* Create() ++ static ceres::Manifold* Create() + { +- return (new ceres::AutoDiffLocalParameterization); ++ return (new ceres::AutoDiffManifold); + } + }; + diff --git a/patch/ros-noetic-sophus.patch b/patch/ros-noetic-sophus.patch new file mode 100644 index 000000000..da676b4f4 --- /dev/null +++ b/patch/ros-noetic-sophus.patch @@ -0,0 +1,27 @@ +From 8b4a030466df6f85314ed5fad4fa395fe4c9610d Mon Sep 17 00:00:00 2001 +From: Silvio Traversaro +Date: Sat, 14 Oct 2023 16:34:43 +0200 +Subject: [PATCH] Remove Werror for sophus + +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4983112..29e2c24 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,11 +16,11 @@ set(CMAKE_CXX_STANDARD 11) + IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") + SET(CMAKE_CXX_FLAGS_RELEASE "-O3") +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -Wno-deprecated-register -Qunused-arguments -fcolor-diagnostics") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register -Qunused-arguments -fcolor-diagnostics") + ELSEIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") + SET(CMAKE_CXX_FLAGS_RELEASE "-O3") +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -std=c++11 -Wno-deprecated-declarations -ftemplate-backtrace-limit=0") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations -ftemplate-backtrace-limit=0") + SET(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage -fno-inline -fno-inline-small-functions -fno-default-inline") + SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG} --coverage") + SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} --coverage") diff --git a/robostack.yaml b/robostack.yaml index a2db82aa9..f91aaecc9 100644 --- a/robostack.yaml +++ b/robostack.yaml @@ -1,3 +1,10 @@ +# TODO +# python3-babeltrace: +# robostack: [babeltrace] +# python3-lttng: +# robostack: [lttng-python] +# libv4l-dev: +# robostack: [xxx] acl: robostack: linux: [libacl] @@ -36,6 +43,8 @@ cartographer: robostack: [cartographer] ca-certificates: robostack: [ca-certificates] +clang-format: + robostack: [clang-format] clang-tidy: robostack: [clang-tools] cmake: @@ -169,7 +178,7 @@ lcov: leveldb: robostack: [leveldb] libabsl-dev: - robostack: [abseil-cpp] + robostack: [libabseil] libblas-dev: robostack: [libblas, libcblas] libboost-chrono-dev: @@ -194,6 +203,10 @@ libboost-python: robostack: [boost] libboost-python-dev: robostack: [boost] +libboost-random: + robostack: [boost-cpp] +libboost-random-dev: + robostack: [boost-cpp] libboost-regex-dev: robostack: [boost-cpp] libboost-serialization: @@ -365,6 +378,8 @@ libqt5-opengl: robostack: [qt-main, REQUIRE_OPENGL] libqt5-opengl-dev: robostack: [qt-main, REQUIRE_OPENGL] +libqt5-svg: + robostack: [qt-main, REQUIRE_OPENGL] libqt5-svg-dev: robostack: [qt-main, REQUIRE_OPENGL] libqt5-websockets-dev: @@ -394,7 +409,10 @@ libturbojpeg: libtins-dev: robostack: [libtins] libudev-dev: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] liburdfdom-dev: robostack: [urdfdom] liburdfdom-headers-dev: @@ -402,13 +420,25 @@ liburdfdom-headers-dev: liburdfdom-tools: robostack: [urdfdom] libusb-1.0: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] libusb-1.0-dev: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] libusb-dev: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] libuvc-dev: - robostack: [libuvc, libusb] + robostack: + linux: [libusb, libudev, libuvc] + osx: [libusb, libuvc] + win64: [libusb, libuvc] libvtk: robostack: [vtk] libvtk-qt: @@ -755,6 +785,8 @@ python3-pytest-cov: robostack: [pytest-cov] python3-pytest-mock: robostack: [pytest-mock] +python3-pytest-timeout: + robostack: [pytest-timeout] python3-qt5-bindings: robostack: [pyqt, pyqt-builder] python3-qt5-bindings-gl: @@ -881,7 +913,10 @@ tinyxml: tinyxml2: robostack: [tinyxml2] udev: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] uncrustify: robostack: [uncrustify] unzip: @@ -897,6 +932,10 @@ libwebsocketpp-dev: robostack: [websocketpp] wget: robostack: [wget] +xsimd: + robostack: [xsimd] +xtensor: + robostack: [xtensor 0.24] wx-common: robostack: [wxpython] wxpython: @@ -913,3 +952,4 @@ zbar: robostack: [zbar] zlib: robostack: [zlib] + diff --git a/vinca_linux_64.yaml b/vinca_linux_64.yaml index 7d9f33e09..fe7a19b2d 100644 --- a/vinca_linux_64.yaml +++ b/vinca_linux_64.yaml @@ -1,22 +1,24 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.4 noetic +mutex_package: ros-distro-mutex 0.5 noetic # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 16 +build_number: 17 # Ignore all dependencies of selected packages skip_all_deps: false # If full rebuild, the build number of the existing package has # to match the selected build number for skipping -full_rebuild: false +full_rebuild: true packages_skip_by_deps: - eigenpy + - hpp-fcl + - pinocchio # - ros_core # - diagnostic_updater @@ -36,6 +38,11 @@ skip_existing: # - https://conda.anaconda.org/robostack/ - https://conda.anaconda.org/robostack-staging/ +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . packages_select_by_deps: - cras_cpp_common # maintainer peci1 - cras_py_common # maintainer peci1 @@ -75,106 +82,112 @@ packages_select_by_deps: - ecl-core - ecl-threads - jsk-visualization - # - actionlib - # - foxglove_bridge - # - ros-babel-fish - # - ros-babel-fish-test-msgs - # - moveit_visual_tools - # - moveit-servo - # - rviz_visual_tools - # - rgbd-launch - # - pinocchio - # - microstrain-inertial-driver - # - microstrain-inertial-msgs - # - usb-cam - # - octomap-ros - # - octomap-mapping - # - octomap-server - # - ackermann-msgs - # - fake-localization - # - realsense2-description - + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - moveit-servo + - rviz_visual_tools + - rgbd-launch + - microstrain-inertial-driver + - microstrain-inertial-msgs + - usb-cam + - octomap-ros + - octomap-mapping + - octomap-server + - ackermann-msgs + - fake-localization + - realsense2-description + - openni2-camera + - openni2-launch + - p2os_driver - # - desktop - # - desktop-full - # # - pybind11_catkin # Needs to be patched to use conda-forge's pybind11 + - desktop + - desktop-full + # - pybind11_catkin # Needs to be patched to use conda-forge's pybind11 - # - rosmon - # - apriltag - # - apriltag-ros - # - find-object-2d - # # - rtabmap - # # - rtabmap-ros - # - convex-decomposition - # - pcl-ros - # - pcl-conversions - # ## Only limited number of packages to reduce maintainer burden - # - catkin - # - ros-control - # - ros-controllers - # - imu-sensor-controller - # - ackermann-steering-controller - # - rqt-gui - # - velodyne-description - # - velodyne-simulator - # - effort-controllers - # - velocity-controllers - # - teb-local-planner - # - slam-toolbox - # - turtlebot3-teleop - # - force-torque-sensor-controller - # - gripper-action-controller - # - rqt-gui-cpp - # - rqt-gui-py - # - mavros-msgs - # - mavros - # - libmavconn - # - mavros-extras - # - mavlink - # - kdl-parser-py - # - imu-tools - # - rqt-controller-manager - # - dynamixel-sdk - # - hector-map-tools - # - hector-nav-msgs - # - hector-trajectory-server - # - radar-msgs - # - geometry2 - # - tf2 - # - tf2_bullet - # - tf2_eigen - # - tf2_geometry_msgs - # - tf2_kdl - # - tf2_msgs - # - tf2_py - # - tf2_ros - # - tf2_sensor_msgs - # - tf2_tools - # - gps-common - # - plotjuggler - # - plotjuggler_ros - # - rosbridge_suite - # - swri-console - # - panda_moveit_config - # - handeye - # - criutils - # - baldor - # - catch-ros - # - rosfmt + - apriltag + - apriltag-ros + - find-object-2d + - rtabmap + - rtabmap-ros + - convex-decomposition + - pcl-ros + - pcl-conversions + ## Only limited number of packages to reduce maintainer burden + - catkin + - ros-control + - ros-controllers + - imu-sensor-controller + - ackermann-steering-controller + - rqt-gui + - velodyne-description + - velodyne-simulator + - effort-controllers + - velocity-controllers + - teb-local-planner + - slam-toolbox + - turtlebot3-teleop + - force-torque-sensor-controller + - gripper-action-controller + - rqt-gui-cpp + - rqt-gui-py + - mavros-msgs + - mavros + - libmavconn + - mavros-extras + - mavlink + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - gps-common + - plotjuggler + - plotjuggler_ros + - rosbridge_suite + - swri-console + - panda_moveit_config + - handeye + - criutils + - baldor + - catch-ros - # - amcl - # - map-server - # - move-base - # - gmapping - # - simulators - # - desktop_full - # - moveit-ros-move-group - # - moveit-ros-manipulation - # - moveit - # - robot_localization - # - gazebo-dev + - amcl + - map-server + - move-base + - gmapping + - simulators + - desktop_full + - moveit-ros-move-group + - moveit-ros-manipulation + - moveit + - robot_localization + - gazebo-dev - gazebo-ros - hector-gazebo-plugins + - depthimage-to-laserscan + - joy + - nmea-msgs + + # Used to work on robostack-staging, now broken + # - rosfmt # see https://github.com/xqms/rosfmt/issues/12 + # - rosmon # because of https://github.com/xqms/rosfmt/issues/12 + # - gazebo-ros-control # - gazebo-plugins # - lms1xx @@ -182,12 +195,10 @@ packages_select_by_deps: # - interactive_marker_twist_server # - diff-drive-controller # - joint-state-controller - - joy # - robot-localization # - teleop-twist-joy # - twist-mux # - pointgrey-camera-description - # - nmea-msgs # - geometry-msgs # - nmea-navsat-driver # - rosserial-server @@ -237,6 +248,7 @@ packages_select_by_deps: ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED ## TODO AFTER REBUILD + # - foxglove_bridge # - rtabmap # - mrpt2 # - ifopt @@ -327,7 +339,6 @@ packages_select_by_deps: # - criutils # - cv-camera # - depth-image-proc - # - depthimage-to-laserscan # - dnn-detect # - drone-wrapper # - fetch-depth-layer @@ -707,7 +718,6 @@ packages_select_by_deps: # - wireless-watcher # - wu-ros-tools # - moveit-msgs - # - pinocchio # - rviz # - libuvc-ros # - actionlib-tools @@ -929,7 +939,6 @@ packages_select_by_deps: # - pilz-industrial-motion-testutils # - pilz-msgs # - pilz-utils - # - pinocchio # - planner-cspace-msgs # - pointcloud-to-laserscan # - polar-scan-matcher @@ -962,7 +971,6 @@ packages_select_by_deps: # - rosbag-snapshot-msgs # - rosdiagnostic # - rosemacs - # - rosfmt # - ros-industrial-cmake-boilerplate # - ros-introspection # - rosmon-msgs diff --git a/vinca_linux_aarch64.yaml b/vinca_linux_aarch64.yaml index 39f0c5af5..878638d22 100644 --- a/vinca_linux_aarch64.yaml +++ b/vinca_linux_aarch64.yaml @@ -1,23 +1,25 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.4 noetic +mutex_package: ros-distro-mutex 0.5 noetic # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 10 +build_number: 11 # Ignore all dependencies of selected packages skip_all_deps: false # If full rebuild, the build number of the existing package has # to match the selected build number for skipping -full_rebuild: false +full_rebuild: true packages_skip_by_deps: # - diagnostic_updater - eigenpy + - hpp-fcl + - pinocchio packages_remove_from_deps: - stage-ros @@ -27,6 +29,11 @@ skip_existing: # - https://conda.anaconda.org/robostack/ - https://conda.anaconda.org/robostack-staging/ +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . packages_select_by_deps: - cras_cpp_common # maintainer peci1 - cras_py_common # maintainer peci1 @@ -58,7 +65,6 @@ packages_select_by_deps: - movie_publisher # maintainer peci1 - geometric_shapes - actionlib - - foxglove_bridge - ros-babel-fish - ros-babel-fish-test-msgs - moveit_visual_tools @@ -74,88 +80,89 @@ packages_select_by_deps: - fake-localization - realsense2-description - # - rqt-gui - # - catkin - # - kdl-parser-py - # - imu-tools - # - rqt-controller-manager - # - dynamixel-sdk - # - hector-map-tools - # - hector-nav-msgs - # - hector-trajectory-server - # - radar-msgs - # - geometry2 - # - tf2 - # - tf2_bullet - # - tf2_eigen - # - tf2_geometry_msgs - # - tf2_kdl - # - tf2_msgs - # - tf2_py - # - tf2_ros - # - tf2_sensor_msgs - # - tf2_tools - # - ros_control - # - ros_controllers - # - cv-camera - # - four-wheel-steering-msgs - # - urdf-geometry-parser - # - gps-common - # - rosbridge_suite - # - pcl-ros - # - pcl-conversions - # # ## Only limited number of packages to reduce maintainer burden - # - desktop - # - amcl - # - map-server - # - move-base - # - gmapping - # - moveit - # - robot_localization - # - perception - # - simulators - # - desktop_full - # - audio-common-msgs + - rqt-gui + - catkin + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - ros_control + - ros_controllers + - cv-camera + - four-wheel-steering-msgs + - urdf-geometry-parser + - gps-common + - rosbridge_suite + - pcl-ros + - pcl-conversions + # ## Only limited number of packages to reduce maintainer burden + - desktop + - amcl + - map-server + - move-base + - gmapping + - moveit + - robot_localization + - perception + - simulators + - desktop_full + - audio-common-msgs # - sound-play - - # # For jackal - # - hector-gazebo-plugins - # - gazebo-dev - # - gazebo-ros - # - gazebo-ros-control - # - gazebo-plugins - # - lms1xx - # - controller-manager - # - interactive_marker_twist_server - # - diff-drive-controller - # - joint-state-controller - # - joy - # - velodyne-gazebo-plugins - # - velodyne-simulator - # - effort-controllers - # - velocity-controllers - # - robot-localization - # - teleop-twist-joy - # - twist-mux - # - pointgrey-camera-description - # - nmea-msgs - # - geometry-msgs - # - nmea-navsat-driver - # - rosserial-server - # - imu-filter-madgwick - # - rosserial-python - # - ros_numpy - # - franka_msgs - # - teb_local_planner - # - rospy-message-converter - # - turtlebot3 - # - turtlebot3_fake - # - pid + + # For jackal + - hector-gazebo-plugins + - gazebo-dev + - gazebo-ros + - gazebo-ros-control + - gazebo-plugins + - lms1xx + - controller-manager + - interactive_marker_twist_server + - diff-drive-controller + - joint-state-controller + - joy + - velodyne-gazebo-plugins + - velodyne-simulator + - effort-controllers + - velocity-controllers + - robot-localization + - teleop-twist-joy + - twist-mux + - pointgrey-camera-description + - nmea-msgs + - geometry-msgs + - nmea-navsat-driver + - rosserial-server + - imu-filter-madgwick + - rosserial-python + - ros_numpy + - franka_msgs + - teb_local_planner + - rospy-message-converter + - turtlebot3 + - turtlebot3_fake + - pid ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED # # after rebuild + # - foxglove_bridge # # # DONE # - pybind11_catkin # needs to be unvendored diff --git a/vinca_osx.yaml b/vinca_osx.yaml index 2c7a95675..fe64790e1 100644 --- a/vinca_osx.yaml +++ b/vinca_osx.yaml @@ -1,24 +1,26 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.4 noetic +mutex_package: ros-distro-mutex 0.5 noetic # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 19 +build_number: 20 # Ignore all dependencies of selected packages skip_all_deps: false # If full rebuild, the build number of the existing package has # to match the selected build number for skipping -full_rebuild: false +full_rebuild: true packages_skip_by_deps: # - rviz # - diagnostic_updater - eigenpy + - hpp-fcl + - pinocchio packages_remove_from_deps: - stage-ros @@ -28,6 +30,11 @@ skip_existing: # - https://conda.anaconda.org/robostack/ - https://conda.anaconda.org/robostack-staging/ +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . packages_select_by_deps: - rospack - microstrain-inertial-driver @@ -37,83 +44,81 @@ packages_select_by_deps: - fake-localization - realsense2-description - # - rviz - # - python-qt-binding - # - qt-gui-cpp - # - actionlib - # - foxglove_bridge - # - ros-babel-fish - # - ros-babel-fish-test-msgs - # - moveit_visual_tools - # - rviz_visual_tools - # - rgbd-launch + - rviz + - python-qt-binding + - qt-gui-cpp + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - rviz_visual_tools + - rgbd-launch - # - plotjuggler - # - plotjuggler_ros + - plotjuggler + - plotjuggler_ros - # - python-qt-binding - # - qt-gui - # - qt-gui-cpp - # - ros-control - # - ros-controllers - # - imu-sensor-controller - # - ackermann-steering-controller - # - rqt-gui - # - rqt-ez-publisher - # - pcl-ros - # - pcl-conversions - # - velodyne-description - # - effort-controllers - # - velocity-controllers - # - teb-local-planner - # - turtlebot3-teleop - # - force-torque-sensor-controller - # - gripper-action-controller - # - rqt-gui-cpp - # - rqt-gui-py - # - joint-trajectory-controller - # - velodyne-simulator - # - velodyne-gazebo-plugins + - python-qt-binding + - qt-gui + - qt-gui-cpp + - ros-control + - ros-controllers + - imu-sensor-controller + - ackermann-steering-controller + - rqt-gui + - rqt-ez-publisher + - pcl-ros + - pcl-conversions + - velodyne-description + - effort-controllers + - velocity-controllers + - teb-local-planner + - turtlebot3-teleop + - force-torque-sensor-controller + - gripper-action-controller + - rqt-gui-cpp + - rqt-gui-py + - joint-trajectory-controller + - velodyne-simulator + - velodyne-gazebo-plugins - # - kdl-parser-py - # - imu-tools - # - rqt-controller-manager - # - dynamixel-sdk - # - hector-map-tools - # - hector-nav-msgs - # - hector-trajectory-server - # - radar-msgs - # - geometry2 - # - tf2 - # - tf2_bullet - # - tf2_eigen - # - tf2_geometry_msgs - # - tf2_kdl - # - tf2_msgs - # - tf2_py - # - tf2_ros - # - tf2_sensor_msgs - # - tf2_tools - # - gps-common - # - rosbridge_suite - # - foxglove_bridge + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - gps-common + - rosbridge_suite - # # ## Only limited number of packages to reduce maintainer burden - # - catkin - # - rviz - # - desktop - # - desktop_full - # - perception - # - simulators - # - moveit - # - robot_localization - # - amcl - # - map-server - # - move-base - # - gmapping - # - turtlebot3 - # - turtlebot3-simulations + # ## Only limited number of packages to reduce maintainer burden + - catkin + - rviz + - desktop + - desktop_full + - perception + - simulators + - moveit + - robot_localization + - amcl + - map-server + - move-base + - gmapping + - turtlebot3 + - turtlebot3-simulations # # # # For jackal # - gazebo-dev diff --git a/vinca_osx_arm64.yaml b/vinca_osx_arm64.yaml index 8d0fb8d65..60cc741ce 100644 --- a/vinca_osx_arm64.yaml +++ b/vinca_osx_arm64.yaml @@ -1,35 +1,43 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.4 noetic +mutex_package: ros-distro-mutex 0.5 noetic # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 7 +build_number: 8 # Ignore all dependencies of selected packages skip_all_deps: false # If full rebuild, the build number of the existing package has # to match the selected build number for skipping -full_rebuild: false +full_rebuild: true packages_skip_by_deps: # - rviz - eigenpy + - hpp-fcl + - pinocchio packages_remove_from_deps: - stage-ros - stage + # sbcl is not available for osx-arm64 # - roslisp skip_existing: # - https://conda.anaconda.org/robostack/ - https://conda.anaconda.org/robostack-staging/ - # - /Users/fischert/mambaforge/conda-bld + # - /Users/fischert/mambaforge/envs/devenv/conda-bld +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . packages_select_by_deps: ## # TODO OSX-ARM64 @@ -42,71 +50,70 @@ packages_select_by_deps: - fake-localization - realsense2-description - # - rviz - # - python-qt-binding - # - qt-gui-cpp - # - actionlib - # - foxglove_bridge - # - ros-babel-fish - # - ros-babel-fish-test-msgs - # - moveit_visual_tools - # - rviz_visual_tools - # - rgbd-launch + - rviz + - python-qt-binding + - qt-gui-cpp + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - rviz_visual_tools + - rgbd-launch - # - plotjuggler - # - plotjuggler_ros + - plotjuggler + - plotjuggler_ros - # - sick-tim - # - python-qt-binding - # - qt-gui - # - rqt-gui - # - rqt-gui-py - # - rqt-gui-cpp - # - qt-gui-cpp - # - rqt-ez-publisher - # - pcl-ros - # - pcl-conversions - # - roslisp - # # - qt-gui-cpp # needs manual build - # # - rviz # needs manual build - # - desktop - # - perception - # - moveit - # # - eigenpy # needs manual build - # - turtlebot3 - # - turtlebot3-simulations - # - desktop-full - # - realsense2_camera - # - realsense2_description - # - kdl-parser-py - # - imu-tools - # - rqt-controller-manager - # - dynamixel-sdk - # - hector-map-tools - # - hector-nav-msgs - # - hector-trajectory-server - # - radar-msgs - # - geometry2 - # - tf2 - # - tf2_bullet - # - tf2_eigen - # - tf2_geometry_msgs - # - tf2_kdl - # - tf2_msgs - # - tf2_py - # - tf2_ros - # - tf2_sensor_msgs - # - tf2_tools - # - gps-common - # - rosbridge_suite - # - sound-play - # - pid - # - teleop-twist-keyboard - # - laser-proc - # - rosserial-arduino - # - rosserial-client - # - navigation - # - foxglove_bridge + - sick-tim + - python-qt-binding + - qt-gui + - rqt-gui + - rqt-gui-py + - rqt-gui-cpp + - qt-gui-cpp + - rqt-ez-publisher + - pcl-ros + - pcl-conversions + - roslisp + # - qt-gui-cpp # needs manual build + # - rviz # needs manual build + - desktop + - perception + - moveit + # - eigenpy # needs manual build + - turtlebot3 + - turtlebot3-simulations + - desktop-full + - realsense2_camera + - realsense2_description + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - gps-common + - rosbridge_suite + - sound-play + - pid + - teleop-twist-keyboard + - laser-proc + - rosserial-arduino + - rosserial-client + - navigation + - ros-controllers # # # For jackal # - gazebo-dev diff --git a/vinca_win.yaml b/vinca_win.yaml index 3106d637e..cf5d0a9b1 100644 --- a/vinca_win.yaml +++ b/vinca_win.yaml @@ -1,24 +1,26 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.4 noetic +mutex_package: ros-distro-mutex 0.5 noetic # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 14 +build_number: 15 # Ignore all dependencies of selected packages skip_all_deps: false # If full rebuild, the build number of the existing package has # to match the selected build number for skipping -full_rebuild: false +full_rebuild: true packages_skip_by_deps: # - rviz # - diagnostic_updater - eigenpy + - hpp-fcl + - pinocchio packages_remove_from_deps: # see https://github.com/RoboStack/ros-noetic/issues/25 @@ -30,9 +32,13 @@ skip_existing: # - https://conda.anaconda.org/robostack/ - https://conda.anaconda.org/robostack-staging/ +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . packages_select_by_deps: - actionlib - - foxglove_bridge - ros-babel-fish - ros-babel-fish-test-msgs - moveit_visual_tools @@ -43,78 +49,78 @@ packages_select_by_deps: - fake-localization - realsense2-description - # - desktop - # - rqt-gui - # - catkin - # - teleop_twist_keyboard - # - perception_pcl - # - rosbridge_suite - # ## Only limited number of packages to reduce maintainer burden - # - rviz - # - robot_localization - # - amcl - # - map-server - # - move-base - # # - gmapping - # - fcl - # - desktop_full - # - moveit - # - kdl-parser-py - # - imu-tools - # - rqt-controller-manager - # - rosserial - # - rosserial-server - # - rosserial-python - # - rosserial-msgs - # - rosserial-windows - # - rosserial-client - # - hector-map-tools - # - hector-nav-msgs - # - hector-trajectory-server - # - radar-msgs - # - geometry2 - # - tf2 - # - tf2_bullet - # - tf2_eigen - # - tf2_geometry_msgs - # - tf2_kdl - # - tf2_msgs - # - tf2_py - # - tf2_ros - # - tf2_sensor_msgs - # - tf2_tools - # - gps-common - # - pcl-ros - # - pcl-conversions - # - velodyne-simulator - - # # # For jackal - # - gazebo-dev - # - gazebo-ros - # - hector-gazebo-plugins - # - gazebo-ros-control - # - gazebo-plugins - # - effort-controllers - # - velocity-controllers - # - joy + - desktop + - rqt-gui + - catkin + - teleop_twist_keyboard + - perception_pcl + - rosbridge_suite + ## Only limited number of packages to reduce maintainer burden + - rviz + - robot_localization + - amcl + - map-server + - move-base + # - gmapping + - fcl + - desktop_full + - moveit + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - rosserial + - rosserial-server + - rosserial-python + - rosserial-msgs + - rosserial-windows + - rosserial-client + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - gps-common + - pcl-ros + - pcl-conversions + - velodyne-simulator - # - lms1xx - # - controller-manager - # - interactive_marker_twist_server - # - diff-drive-controller - # - joint-state-controller - # - robot-localization - # - teleop-twist-joy - # - twist-mux - # - pointgrey-camera-description - # - nmea-msgs - # - geometry-msgs - # - nmea-navsat-driver - # - imu-filter-madgwick - # - ros_numpy - # - teb-local-planner - # - turtlebot3 - # - turtlebot3-fake + # # For jackal + - gazebo-dev + - gazebo-ros + - hector-gazebo-plugins + - gazebo-ros-control + - gazebo-plugins + - effort-controllers + - velocity-controllers + - joy + + - lms1xx + - controller-manager + - interactive_marker_twist_server + - diff-drive-controller + - joint-state-controller + - robot-localization + - teleop-twist-joy + - twist-mux + - pointgrey-camera-description + - nmea-msgs + - geometry-msgs + - nmea-navsat-driver + - imu-filter-madgwick + - ros_numpy + - teb-local-planner + - turtlebot3 + - turtlebot3-fake ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED