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..f5cf1facd 100644 --- a/.cirun.yml +++ b/.cirun.yml @@ -2,9 +2,9 @@ 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 fd0f9c5ac..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 + - 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..cbe2a5507 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@v4 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@v5 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..e80018f8c 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -2,7 +2,7 @@ on: pull_request: paths: - '*.yaml' - + env: ROS_VERSION: 1 @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-2019] + os: [ubuntu-latest, macos-latest, macos-14, windows-2019] platform: [linux-64, linux-aarch64, osx-64, win-64, osx-arm64] exclude: - os: ubuntu-latest @@ -21,10 +21,20 @@ jobs: platform: osx-64 - os: ubuntu-latest platform: osx-arm64 + - os: macos-14 + platform: linux-64 + - os: macos-14 + platform: linux-aarch64 + - os: macos-14 + platform: osx-64 + - os: macos-14 + platform: win-64 - os: macos-latest platform: linux-64 - os: macos-latest platform: linux-aarch64 + - os: macos-latest + platform: osx-arm64 - os: macos-latest platform: win-64 - os: windows-2019 @@ -36,8 +46,17 @@ jobs: - os: windows-2019 platform: osx-arm64 steps: + # Workaround for https://github.com/RoboStack/ros-humble/pull/141#issuecomment-1941919816 + - name: Clean up PATH + if: contains(matrix.os, 'windows') + uses: egor-tensin/cleanup-path@v4 + with: + # cygpath in C:\Program Files\Git\usr\bin is used by install micromamba + # git in C:\Program Files\Git\bin is used by pip install git+ + dirs: 'C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin' + - 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 +64,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 +74,24 @@ 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 update + 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 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,24 +99,25 @@ 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 + - name: Generate recipes for linux-64 shell: bash -l {0} if: steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64' run: | @@ -101,7 +126,7 @@ jobs: vinca --platform linux-64 ls cat recipe.yaml - - name: Generate recipes for Linux-ARM64 + - name: Generate recipes for linux-aarch64 shell: bash -l {0} if: steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-aarch64' run: | @@ -110,7 +135,7 @@ jobs: vinca --platform linux-aarch64 ls cat recipe.yaml - - name: Generate recipes for macOS + - name: Generate recipes for osx-64 shell: bash -l {0} if: steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-64' run: | @@ -119,16 +144,16 @@ jobs: vinca --platform osx-64 ls cat recipe.yaml - - name: Generate recipes for macOS-ARM64 + - name: Generate recipes for osx-arm64 shell: bash -l {0} - if: steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-arm64' + if: steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-14' && matrix.platform == 'osx-arm64' run: | git clean -fdx cp vinca_osx_arm64.yaml vinca.yaml vinca --platform osx-arm64 ls cat recipe.yaml - - name: Generate recipes for Windows + - name: Generate recipes for win-64 shell: bash -l {0} if: steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.os == 'windows-2019' && matrix.platform == 'win-64' run: | @@ -145,31 +170,31 @@ jobs: set +e grep -q "outputs: \[\]" recipe.yaml > /dev/null echo "::set-output name=RECIPE_CREATED::${?}" - - name: Build recipes for Linux + - name: Build recipes for linux-64 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 - - name: Build recipes for Linux-ARM64 + 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-aarch64 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' run: | boa build additional_recipes/ros-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=linux-aarch64 boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=linux-aarch64 - - name: Build recipes for macOS + - name: Build recipes for osx-64 shell: bash -l {0} if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-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 - - name: Build recipes for macOS-ARM64 + - name: Build recipes for osx-arm64 shell: bash -l {0} - if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-arm64' + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-14' && matrix.platform == 'osx-arm64' run: | boa build additional_recipes/ros-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=osx-arm64 - boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=osx-arm64 - - name: Build recipes for Windows + boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml + - name: Build recipes for win-64 shell: bash -l {0} if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.os == 'windows-2019' && matrix.platform == 'win-64' run: | 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 f9167a9ca..b9b6f7dea 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 remove --yes --quiet boa || true -# mamba install --yes boa --only-deps -pip install git+https://github.com/mamba-org/boa@main +mamba install --yes --quiet pip conda-build=3.27 anaconda-client mamba boa # setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" # export PATH="$HOME/miniconda/bin:$PATH" diff --git a/.scripts/build_osx.sh b/.scripts/build_osx.sh index bdaf8755c..0bab1a9c5 100755 --- a/.scripts/build_osx.sh +++ b/.scripts/build_osx.sh @@ -4,55 +4,24 @@ set -x export FEEDSTOCK_ROOT=`pwd` -echo -e "\n\nInstalling a fresh version of Miniforge." -MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-x86_64.sh" -curl -L -O --silent "${MINIFORGE_URL}/${MINIFORGE_FILE}" -/bin/bash $MINIFORGE_FILE -b +"${SHELL}" <(curl -L micro.mamba.pm/install.sh) +source ~/.bash_profile -echo -e "\n\nConfiguring conda." - -source ${HOME}/mambaforge/etc/profile.d/conda.sh -conda activate base - -conda config --set remote_max_retries 5 +micromamba config set remote_max_retries 5 echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build." -mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build pip boa quetz-client -c conda-forge +micromamba create -n devenv --quiet --yes conda-forge-ci-setup=3 conda-build=3.27 pip boa quetz-client -c conda-forge +micromamba activate devenv set -e -# echo -e "\n\nSetting up the condarc and mangling the compiler." -# # setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml -# # mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml - -# echo -e "\n\nMangling homebrew in the CI to avoid conflicts." -# # /usr/bin/sudo mangle_homebrew -# # /usr/bin/sudo -k - -# echo -e "\n\nRunning the build setup script." -# # source run_conda_forge_build_setup - export "CONDA_BLD_PATH=$CONDA_PREFIX/conda-bld/" mkdir -p $CONDA_BLD_PATH -conda index $CONDA_BLD_PATH -conda config --set anaconda_upload yes -conda config --set show_channel_urls true -conda config --set auto_update_conda false -conda config --set add_pip_as_python_dependency false - -conda config --add channels conda-forge -conda config --add channels robostack-staging -conda config --add channels $CONDA_BLD_PATH -# conda config --set channel_priority strict - -# echo -e "\n\nMaking the build clobber file and running the build." -# make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - -conda info -conda config --show-sources -conda list --show-channel-urls +# micromamba index $CONDA_BLD_PATH +micromamba config append channels conda-forge --env +micromamba config append channels robostack-staging --env +micromamba config append channels $CONDA_BLD_PATH --env for recipe in ${CURRENT_RECIPES[@]}; do cd ${FEEDSTOCK_ROOT}/recipes/${recipe} @@ -64,11 +33,3 @@ for recipe in ${CURRENT_RECIPES[@]}; do done anaconda -t ${ANACONDA_API_TOKEN} upload ${CONDA_BLD_PATH}/osx-64/*.tar.bz2 --force -# quetz-client "${QUETZ_URL}" ${CONDA_BLD_PATH} --force - -# conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - -# if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then -# echo -e "\n\nUploading the packages." -# upload_package --validate --feedstock-name="libsolv-feedstock" ./ ./recipe ./.ci_support/${CONFIG}.yaml -# fi diff --git a/.scripts/build_osx_arm64.sh b/.scripts/build_osx_arm64.sh index 192810d56..f05c8386c 100755 --- a/.scripts/build_osx_arm64.sh +++ b/.scripts/build_osx_arm64.sh @@ -4,67 +4,28 @@ set -x export FEEDSTOCK_ROOT=`pwd` -echo -e "\n\nInstalling a fresh version of Miniforge." -MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-x86_64.sh" -curl -L -O --silent "${MINIFORGE_URL}/${MINIFORGE_FILE}" -/bin/bash $MINIFORGE_FILE -b +"${SHELL}" <(curl -L micro.mamba.pm/install.sh) +source ~/.bash_profile -echo -e "\n\nConfiguring conda." - -source ${HOME}/mambaforge/etc/profile.d/conda.sh -conda activate base - -conda config --set remote_max_retries 5 +micromamba config set remote_max_retries 5 echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build." -mamba install -n base --quiet --yes conda-forge-ci-setup=3 conda-build pip boa quetz-client -c conda-forge +micromamba create -n devenv --quiet --yes conda-forge-ci-setup=3 conda-build=3.27 pip boa quetz-client -c conda-forge +micromamba activate devenv set -e -# echo -e "\n\nSetting up the condarc and mangling the compiler." -# # setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml -# # mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml - -# echo -e "\n\nMangling homebrew in the CI to avoid conflicts." -# # /usr/bin/sudo mangle_homebrew -# # /usr/bin/sudo -k - -# echo -e "\n\nRunning the build setup script." -# # source run_conda_forge_build_setup - export "CONDA_BLD_PATH=$CONDA_PREFIX/conda-bld/" mkdir -p $CONDA_BLD_PATH -conda index $CONDA_BLD_PATH -conda config --set anaconda_upload yes -conda config --set show_channel_urls true -conda config --set auto_update_conda false -conda config --set add_pip_as_python_dependency false -conda config --add channels conda-forge -conda config --add channels robostack-staging -conda config --add channels $CONDA_BLD_PATH -# conda config --set channel_priority strict - -# echo -e "\n\nMaking the build clobber file and running the build." -# make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - -conda info -conda config --show-sources -conda list --show-channel-urls +micromamba config append channels conda-forge --env +micromamba config append channels robostack-staging --env +micromamba config append channels $CONDA_BLD_PATH --env for recipe in ${CURRENT_RECIPES[@]}; do cd ${FEEDSTOCK_ROOT}/recipes/${recipe} - boa build . -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml --target-platform=osx-arm64 + boa build . -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml done anaconda -t ${ANACONDA_API_TOKEN} upload ${CONDA_BLD_PATH}/osx-arm64/*.tar.bz2 --force -# quetz-client "${QUETZ_URL}" ${CONDA_BLD_PATH} --force - -# conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - -# if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then -# echo -e "\n\nUploading the packages." -# upload_package --validate --feedstock-name="libsolv-feedstock" ./ ./recipe ./.ci_support/${CONFIG}.yaml -# fi diff --git a/.scripts/build_win.bat b/.scripts/build_win.bat index c4b809db4..a0c28bd8f 100644 --- a/.scripts/build_win.bat +++ b/.scripts/build_win.bat @@ -2,22 +2,6 @@ setlocal EnableExtensions EnableDelayedExpansion call %CONDA%\condabin\conda_hook.bat call %CONDA%\condabin\conda.bat activate base -set "PATH=%PATH:C:\ProgramData\Chocolatey\bin;=%" -set "PATH=%PATH:C:\Program Files (x86)\sbt\bin;=%" -set "PATH=%PATH:C:\Rust\.cargo\bin;=%" -set "PATH=%PATH:C:\Program Files\Git\usr\bin;=%" -set "PATH=%PATH:C:\Program Files\Git\cmd;=%" -set "PATH=%PATH:C:\Program Files\Git\mingw64\bin;=%" -set "PATH=%PATH:C:\Program Files (x86)\Subversion\bin;=%" -set "PATH=%PATH:C:\Program Files\CMake\bin;=%" -set "PATH=%PATH:C:\Program Files\OpenSSL\bin;=%" -set "PATH=%PATH:C:\Strawberry\c\bin;=%" -set "PATH=%PATH:C:\Strawberry\perl\bin;=%" -set "PATH=%PATH:C:\Strawberry\perl\site\bin;=%" -set "PATH=%PATH:c:\tools\php;=%" -:: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage -set "PATH=%PATH:ostedtoolcache=%" - echo "PATH is %PATH%" echo "CONDA_BLD_PATH is %CONDA_BLD_PATH%" @@ -40,9 +24,6 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t :: conda remove --force m2-git -call mamba install boa -if errorlevel 1 exit 1 - for %%X in (%CURRENT_RECIPES%) do ( echo "BUILDING RECIPE %%X" cd %FEEDSTOCK_ROOT%\recipes\%%X\ diff --git a/additional_recipes/ros-distro-mutex/recipe.yaml b/additional_recipes/ros-distro-mutex/recipe.yaml index 5743266e3..d5eca7473 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') }}" @@ -16,7 +16,6 @@ requirements: # This has to be synchronized with our current conda_build_config all the time :( # host: # # values here should - # - boost-cpp # - log4cxx # - poco # - pcl @@ -29,11 +28,10 @@ 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 + - libboost-devel 1.82 - 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..5883e5f83 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" + 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..d8fc181f3 --- /dev/null +++ b/additional_recipes/ros-noetic-hpp-fcl/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-hpp-fcl + 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..7b718222b --- /dev/null +++ b/additional_recipes/ros-noetic-pinocchio/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-pinocchio + 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.yaml b/conda.yaml index 290bf13b5..e4d3a65da 100644 --- a/conda.yaml +++ b/conda.yaml @@ -27,7 +27,7 @@ binutils: bison: conda: [bison] boost: - conda: [boost] + conda: [libboost-devel, libboost-python-devel] bullet: conda: [bullet] bzip2: @@ -74,7 +74,10 @@ eigen: emacs: conda: [emacs] festival: - conda: [festival, festvox-kallpc16k] + conda: + linux: [festival, festvox-kallpc16k] + osx: [] + win64: [] ffmpeg: conda: [ffmpeg] flac: @@ -190,41 +193,41 @@ libabsl-dev: libblas-dev: conda: [libblas, libcblas] libboost-chrono-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-date-time: - conda: [boost-cpp] + conda: [libboost] libboost-date-time-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-filesystem: - conda: [boost-cpp] + conda: [libboost] libboost-filesystem-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-iostreams-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-program-options: - conda: [boost-cpp] + conda: [libboost] libboost-program-options-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-python: - conda: [boost] + conda: [libboost-python] libboost-python-dev: - conda: [boost] + conda: [libboost-python-devel] libboost-regex-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-serialization: - conda: [boost-cpp] + conda: [libboost] libboost-serialization-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-system: - conda: [boost-cpp] + conda: [libboost] libboost-system-dev: - conda: [boost-cpp] + conda: [libboost-devel] libboost-thread: - conda: [boost-cpp] + conda: [libboost] libboost-thread-dev: - conda: [boost-cpp] + conda: [libboost-devel] libcairo2-dev: conda: [cairo] libcap-dev: @@ -589,7 +592,7 @@ python-paramiko: python-psutil: conda: [psutil] python-pyassimp: - conda: [assimp] + conda: [pyassimp] python-pycryptodome: conda: [pycryptodome, pycryptodomex] python-pydot: @@ -682,6 +685,8 @@ python3-future: conda: [future] python3-gi: conda: [pygobject] +python3-git: + conda: [gitpython] python3-github: conda: [pygithub] python3-github3: @@ -747,7 +752,7 @@ python3-pkg-resources: python3-psutil: conda: [psutil] python3-pyassimp: - conda: [assimp] + conda: [pyassimp] python3-pycodestyle: conda: [pycodestyle] python3-pycryptodome: @@ -794,6 +799,8 @@ python3-rospkg-modules: conda: [rospkg] python3-ruamel.yaml: conda: [ruamel.yaml] +python3-ruff: + conda: [ruff] python3-scipy: conda: [scipy] python3-serial: @@ -824,6 +831,8 @@ python3-twisted: conda: [twisted] python3-typeguard: conda: [typeguard] +python3-unidiff: + conda: [unidiff] python3-usb: conda: [pyusb] python3-venv: 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..80ab123d4 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: @@ -71,8 +77,8 @@ ur_client_library: mqtt_bridge: add_run: ["inject", "msgpack-python", "paho-mqtt", "pymongo"] mrpt2: - add_host: ["tinyxml2", "boost-cpp", "jsoncpp", "gtest", "boost", "libdc1394", "xorg-libxcomposite", "ros-noetic-octomap", "libftdi"] - add_run: ["tinyxml2", "boost-cpp", "jsoncpp", "gtest", "boost", "libdc1394", "xorg-libxcomposite", "ros-noetic-octomap", "libftdi"] + add_host: ["tinyxml2", "libboost-devel", "jsoncpp", "gtest", "libboost-python-devel", "libdc1394", "xorg-libxcomposite", "ros-noetic-octomap", "libftdi"] + add_run: ["tinyxml2", "libboost-devel", "jsoncpp", "gtest", "libboost-python-devel", "libdc1394", "xorg-libxcomposite", "ros-noetic-octomap", "libftdi"] add_build: [{"sel(linux)": "{{ cdt('libxcomposite-devel') }}"}] image_view: add_host: ["REQUIRE_OPENGL"] @@ -120,4 +126,4 @@ resource_retriever: add_host: ["libcurl"] add_run: ["libcurl"] plotjuggler: - add_host: [{"sel(linux)": "elfutils"}] + add_host: [{"sel(linux)": "elfutils"}, "protobuf"] diff --git a/patch/ros-noetic-catch-ros.patch b/patch/ros-noetic-catch-ros.patch new file mode 100644 index 000000000..7171f96eb --- /dev/null +++ b/patch/ros-noetic-catch-ros.patch @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e8e8f70..fa1f242 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,6 +20,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + + add_library(catch_ros_standalone + src/standalone_main.cpp ++ src/meta_info.cpp + ) + target_link_libraries(catch_ros_standalone + ${Boost_LIBRARIES} +@@ -27,9 +28,11 @@ target_link_libraries(catch_ros_standalone + + add_library(catch_ros_rostest + src/rostest_main.cpp ++ src/meta_info.cpp + ) + target_link_libraries(catch_ros_rostest + ${Boost_LIBRARIES} ++ ${catkin_LIBRARIES} + ) + + install(FILES src/meta_info.cpp DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 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.patch b/patch/ros-noetic-geometric-shapes.patch new file mode 100644 index 000000000..2ae82f06c --- /dev/null +++ b/patch/ros-noetic-geometric-shapes.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ccc9864..0134765 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ endif() + 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(Boost REQUIRED system filesystem date_time) + + find_package(console_bridge REQUIRED) + diff --git a/patch/ros-noetic-geometric-shapes.win.patch b/patch/ros-noetic-geometric-shapes.win.patch index 99c3ce5e8..10c2ac42b 100644 --- a/patch/ros-noetic-geometric-shapes.win.patch +++ b/patch/ros-noetic-geometric-shapes.win.patch @@ -1,41 +1,22 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d7d7f41..a32e8ef 100644 +index ccc9864..3d49528 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() +@@ -1,17 +1,6 @@ + cmake_minimum_required(VERSION 3.0.2) + project(geometric_shapes) --# 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}") +-# Set compile options +-set(PROJECT_COMPILE_OPTIONS +- -Wall +- -Wextra +- -Wwrite-strings +- -Wunreachable-code +- -Wpointer-arith +- -Wredundant-decls +- -Wno-unused-parameter +-) - - 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}) + list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") - target_link_libraries(${PROJECT_NAME} ${ASSIMP_LIBRARIES} ${QHULL_LIBRARIES} ${catkin_LIBRARIES} ${console_bridge_LIBRARIES} ${Boost_LIBRARIES}) + if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) 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-core.win.patch b/patch/ros-noetic-moveit-core.win.patch new file mode 100644 index 000000000..d28f68ba0 --- /dev/null +++ b/patch/ros-noetic-moveit-core.win.patch @@ -0,0 +1,12 @@ +diff --git a/moveit_core/CMakeLists.txt b/moveit_core/CMakeLists.txt +index e7ffb293c5..fb7666d196 100644 +--- a/moveit_core/CMakeLists.txt ++++ b/moveit_core/CMakeLists.txt +@@ -8,6 +8,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + endif() + include(cmake/moveit.cmake) + moveit_build_options() ++set(CMAKE_CXX_STANDARD 17) + + find_package(Boost REQUIRED system filesystem date_time thread iostreams regex ${EXTRA_BOOST_COMPONENTS}) + find_package(Eigen3 REQUIRED) 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-interface.patch b/patch/ros-noetic-moveit-ros-planning-interface.patch index 272c0009e..8c9897a2e 100644 --- a/patch/ros-noetic-moveit-ros-planning-interface.patch +++ b/patch/ros-noetic-moveit-ros-planning-interface.patch @@ -24,19 +24,6 @@ index 73f1aa3ea4..67528cf75c 100644 add_subdirectory(py_bindings_tools) add_subdirectory(common_planning_interface_objects) add_subdirectory(planning_scene_interface) -diff --git a/move_group_interface/CMakeLists.txt b/move_group_interface/CMakeLists.txt -index d822174bf0..c3eb1686c0 100644 ---- a/move_group_interface/CMakeLists.txt -+++ b/move_group_interface/CMakeLists.txt -@@ -2,7 +2,7 @@ set(MOVEIT_LIB_NAME moveit_move_group_interface) - - add_library(${MOVEIT_LIB_NAME} src/move_group_interface.cpp) - set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") --target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES}) -+target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${EIGENPY_LIBRARIES}) - add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) - - add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_move_group.cpp) diff --git a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h index 17de157197..fdae58ab37 100644 --- a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h @@ -71,17 +58,124 @@ index 17de157197..fdae58ab37 100644 { public: /** \brief Default ROS parameter name from where to read the robot's URDF. Set to 'robot_description' */ +diff --git a/move_group_interface/CMakeLists.txt b/move_group_interface/CMakeLists.txt +index d822174bf0..c95290d11c 100644 +--- a/move_group_interface/CMakeLists.txt ++++ b/move_group_interface/CMakeLists.txt +@@ -6,13 +6,20 @@ target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_object + add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_move_group.cpp) +-target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} eigenpy::eigenpy ${PYTHON_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES} moveit_py_bindings_tools) ++target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} eigenpy::eigenpy ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${EIGENPY_LIBRARIES} moveit_py_bindings_tools) ++if(NOT APPLE) ++ target_link_libraries(${MOVEIT_LIB_NAME}_python ${PYTHON_LIBRARIES}) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++endif() + add_dependencies(${MOVEIT_LIB_NAME}_python ${catkin_EXPORTED_TARGETS}) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES OUTPUT_NAME _moveit_move_group_interface PREFIX "") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}") + if(WIN32) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .pyd) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .so) + endif(WIN32) + + install(TARGETS ${MOVEIT_LIB_NAME} diff --git a/py_bindings_tools/CMakeLists.txt b/py_bindings_tools/CMakeLists.txt -index 1f82d7e4dc..9ef98d8136 100644 +index 1f82d7e4dc..2f9112fb85 100644 --- a/py_bindings_tools/CMakeLists.txt +++ b/py_bindings_tools/CMakeLists.txt -@@ -1,5 +1,9 @@ +@@ -1,8 +1,16 @@ set(MOVEIT_LIB_NAME moveit_py_bindings_tools) +find_package(PythonInterp REQUIRED) +find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) -+ + add_library(${MOVEIT_LIB_NAME} src/roscpp_initializer.cpp) set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") - target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) +-target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) ++target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++if(NOT APPLE) ++ target_link_libraries(${MOVEIT_LIB_NAME} ${PYTHON_LIBRARIES}) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++endif(NOT APPLE) + + install(TARGETS ${MOVEIT_LIB_NAME} + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +@@ -10,13 +16,20 @@ install(TARGETS ${MOVEIT_LIB_NAME} + RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_roscpp_initializer.cpp) +-target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} ${PYTHON_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++if(NOT APPLE) ++ target_link_libraries(${MOVEIT_LIB_NAME}_python ${PYTHON_LIBRARIES}) ++endif(NOT APPLE) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES OUTPUT_NAME _moveit_roscpp_initializer PREFIX "") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}") + if(WIN32) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .pyd) + endif(WIN32) ++if(APPLE) ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .so) ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++endif(APPLE) + + install(TARGETS ${MOVEIT_LIB_NAME}_python + DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION}) +diff --git a/planning_scene_interface/CMakeLists.txt b/planning_scene_interface/CMakeLists.txt +index 6a3b1a3f9b..d8c3055352 100644 +--- a/planning_scene_interface/CMakeLists.txt ++++ b/planning_scene_interface/CMakeLists.txt +@@ -6,11 +6,18 @@ target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_object + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_planning_scene_interface.cpp) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") +-target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} ${PYTHON_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES} moveit_py_bindings_tools) ++target_link_libraries(${MOVEIT_LIB_NAME}_python ${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} moveit_py_bindings_tools) ++if(NOT APPLE) ++ target_link_libraries(${MOVEIT_LIB_NAME}_python ${PYTHON_LIBRARIES}) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++endif() + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES OUTPUT_NAME _moveit_planning_scene_interface PREFIX "") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}") + if(WIN32) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .pyd) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .so) + endif(WIN32) + + install(TARGETS ${MOVEIT_LIB_NAME} +diff --git a/robot_interface/CMakeLists.txt b/robot_interface/CMakeLists.txt +index 3944155fbf..2fcc7521dd 100644 +--- a/robot_interface/CMakeLists.txt ++++ b/robot_interface/CMakeLists.txt +@@ -1,13 +1,21 @@ + set(MOVEIT_LIB_NAME moveit_robot_interface) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_robot_interface.cpp) +-target_link_libraries(${MOVEIT_LIB_NAME}_python ${PYTHON_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ++target_link_libraries(${MOVEIT_LIB_NAME}_python ${catkin_LIBRARIES} ${Boost_LIBRARIES} + moveit_common_planning_interface_objects moveit_py_bindings_tools) ++if(NOT APPLE) ++ target_link_libraries(${MOVEIT_LIB_NAME}_python ${PYTHON_LIBRARIES}) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++endif(NOT APPLE) ++ + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES OUTPUT_NAME _moveit_robot_interface PREFIX "") + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}") + if(WIN32) + set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .pyd) ++else() ++ set_target_properties(${MOVEIT_LIB_NAME}_python PROPERTIES SUFFIX .so) + endif(WIN32) + + install(TARGETS ${MOVEIT_LIB_NAME}_python diff --git a/patch/ros-noetic-moveit-ros-planning.win.patch b/patch/ros-noetic-moveit-ros-planning.win.patch index 5691ffe65..f9242d106 100644 --- a/patch/ros-noetic-moveit-ros-planning.win.patch +++ b/patch/ros-noetic-moveit-ros-planning.win.patch @@ -1,43 +1,16 @@ -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/CMakeLists.txt b/CMakeLists.txt +index 2f73370cbd..5f2620eb0a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,7 +21,7 @@ find_package(catkin REQUIRED COMPONENTS + tf2_ros + ) + moveit_build_options() +- ++set(CMAKE_CXX_STANDARD 17) + find_package(Eigen3 REQUIRED) + + generate_dynamic_reconfigure_options( 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 +143,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-moveit-ros-visualization.patch b/patch/ros-noetic-moveit-ros-visualization.patch new file mode 100644 index 000000000..fceeae548 --- /dev/null +++ b/patch/ros-noetic-moveit-ros-visualization.patch @@ -0,0 +1,12 @@ +diff --git a/moveit_ros/visualization/CMakeLists.txt b/moveit_ros/visualization/CMakeLists.txt +index bba6034ea8..f934c68f7a 100644 +--- a/moveit_ros/visualization/CMakeLists.txt ++++ b/moveit_ros/visualization/CMakeLists.txt +@@ -25,6 +25,7 @@ find_package(catkin REQUIRED COMPONENTS + object_recognition_msgs + ) + moveit_build_options() ++set(CMAKE_CXX_STANDARD 17) + + # TODO: Remove when Kinetic support is dropped + if(rviz_VERSION VERSION_LESS 1.13.1) # Does rviz support TF2? diff --git a/patch/ros-noetic-moveit-visual-tools.win.patch b/patch/ros-noetic-moveit-visual-tools.win.patch new file mode 100644 index 000000000..c04a83552 --- /dev/null +++ b/patch/ros-noetic-moveit-visual-tools.win.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2663c31..3344153 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -51,8 +51,6 @@ add_library(${PROJECT_NAME} + src/imarker_robot_state.cpp + src/imarker_end_effector.cpp + ) +-target_compile_options(${PROJECT_NAME} PRIVATE +- -Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls) + set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${${PROJECT_NAME}_VERSION}) + add_dependencies(${PROJECT_NAME} graph_msgs_generate_messages_cpp) + target_link_libraries(${PROJECT_NAME} +@@ -61,8 +59,6 @@ target_link_libraries(${PROJECT_NAME} + + # Demo executable + add_executable(${PROJECT_NAME}_demo src/${PROJECT_NAME}_demo.cpp) +-target_compile_options(${PROJECT_NAME}_demo PRIVATE +- -Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls) + target_link_libraries(${PROJECT_NAME}_demo + ${catkin_LIBRARIES} ${PROJECT_NAME} + ) 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..50d89a4b5 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,18 @@ 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 f399fdad9..94d1330da 100644 +--- a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt ++++ b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +@@ -3,8 +3,8 @@ if(BUILDING_WITH_CONAN) + set(Protobuf_LIBS protobuf::libprotobuf) + else() + message(STATUS "Finding Protobuf without package managers") +- find_package(Protobuf QUIET) +- set(Protobuf_LIBS ${Protobuf_LIBRARIES}) ++ find_package(Protobuf QUIET CONFIG) ++ set(Protobuf_LIBS protobuf::libprotobuf) + endif() + + find_package(Protobuf QUIET) 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-ros-ign-bridge.patch b/patch/ros-noetic-ros-ign-bridge.patch new file mode 100644 index 000000000..ae1c1c826 --- /dev/null +++ b/patch/ros-noetic-ros-ign-bridge.patch @@ -0,0 +1,13 @@ +diff --git a/ros_ign_bridge/CMakeLists.txt b/ros_ign_bridge/CMakeLists.txt +index 5e04c45d..a60f0be0 100644 +--- a/ros_ign_bridge/CMakeLists.txt ++++ b/ros_ign_bridge/CMakeLists.txt +@@ -21,7 +21,7 @@ find_package(catkin REQUIRED COMPONENTS + visualization_msgs) + + # Fortress +-if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress") ++if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress" OR TRUE) + find_package(ignition-transport11 REQUIRED) + set(IGN_TRANSPORT_VER ${ignition-transport11_VERSION_MAJOR}) + diff --git a/patch/ros-noetic-ros-ign-gazebo.patch b/patch/ros-noetic-ros-ign-gazebo.patch index e9f8e3851..6af763bb4 100644 --- a/patch/ros-noetic-ros-ign-gazebo.patch +++ b/patch/ros-noetic-ros-ign-gazebo.patch @@ -1,13 +1,13 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1497055..88ec5ca 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -21,7 +21,7 @@ if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress") +diff --git a/ros_ign_gazebo/CMakeLists.txt b/ros_ign_gazebo/CMakeLists.txt +index 87a06f8e..01ad5664 100644 +--- a/ros_ign_gazebo/CMakeLists.txt ++++ b/ros_ign_gazebo/CMakeLists.txt +@@ -9,7 +9,7 @@ find_package(catkin + ) - message(STATUS "Compiling against Ignition Fortress") - # Edifice --elseif ("$ENV{IGNITION_VERSION}" STREQUAL "edifice") -+elseif ("$ENV{IGNITION_VERSION}" STREQUAL "edifice" OR TRUE) - find_package(ignition-transport10 REQUIRED) - set(IGN_TRANSPORT_VER ${ignition-transport10_VERSION_MAJOR}) + # Fortress +-if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress") ++if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress" OR TRUE) + find_package(ignition-transport11 REQUIRED) + set(IGN_TRANSPORT_VER ${ignition-transport11_VERSION_MAJOR}) diff --git a/patch/ros-noetic-ros-ign-image.patch b/patch/ros-noetic-ros-ign-image.patch new file mode 100644 index 000000000..139d8eb7d --- /dev/null +++ b/patch/ros-noetic-ros-ign-image.patch @@ -0,0 +1,27 @@ +diff --git a/ros_ign_image/CMakeLists.txt b/ros_ign_image/CMakeLists.txt +index 5bbf70f4..87fb109d 100644 +--- a/ros_ign_image/CMakeLists.txt ++++ b/ros_ign_image/CMakeLists.txt +@@ -17,7 +17,7 @@ find_package(catkin REQUIRED COMPONENTS + sensor_msgs) + + # Fortress +-if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress") ++if ("$ENV{IGNITION_VERSION}" STREQUAL "fortress" OR TRUE) + find_package(ignition-transport11 REQUIRED) + set(IGN_TRANSPORT_VER ${ignition-transport11_VERSION_MAJOR}) + +@@ -68,6 +68,7 @@ install(TARGETS ${executable} + ) + + # Tests ++if(FALSE) + find_package(rostest REQUIRED) + + set(test_publishers +@@ -101,4 +102,4 @@ foreach(test_subscriber ${test_subscribers}) + ignition-transport${IGN_TRANSPORT_VER}::core + ) + endforeach(test_subscriber) +- ++endif() diff --git a/patch/ros-noetic-rosbag.patch b/patch/ros-noetic-rosbag.patch new file mode 100644 index 000000000..2652f7370 --- /dev/null +++ b/patch/ros-noetic-rosbag.patch @@ -0,0 +1,25 @@ +diff --git a/tools/rosbag/src/encrypt.cpp b/tools/rosbag/src/encrypt.cpp +index da4ece4c29..b037957fc0 100644 +--- a/tools/rosbag/src/encrypt.cpp ++++ b/tools/rosbag/src/encrypt.cpp +@@ -36,7 +36,7 @@ + + #include + #include +-#include ++#include + #include + + #include +@@ -161,9 +161,9 @@ int encrypt(EncryptorOptions const& options) + outbag.setEncryptorPlugin(options.plugin, options.param); + outbag.setCompression(options.compression); + rosbag::View view(inbag); +- boost::scoped_ptr progress; ++ boost::scoped_ptr progress; + if (!options.quiet) +- progress.reset(new boost::progress_display(view.size(), std::cout, "Progress:\n ", " ", " ")); ++ progress.reset(new boost::timer::progress_display(view.size(), std::cout, "Progress:\n ", " ", " ")); + for (rosbag::View::const_iterator it = view.begin(); it != view.end(); ++it) + { + outbag.write(it->getTopic(), it->getTime(), *it, it->getConnectionHeader()); 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-rosfmt.patch b/patch/ros-noetic-rosfmt.patch new file mode 100644 index 000000000..fd9f550f0 --- /dev/null +++ b/patch/ros-noetic-rosfmt.patch @@ -0,0 +1,93 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 87b8d9b..df90eb9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,74 +7,26 @@ find_package(catkin REQUIRED COMPONENTS + rosconsole + ) + +-# Get fmt from an official release +-include(ExternalProject) +-ExternalProject_Add( +- fmt +- URL https://github.com/fmtlib/fmt/releases/download/9.1.0/fmt-9.1.0.zip +- URL_HASH SHA256=cceb4cb9366e18a5742128cb3524ce5f50e88b476f1e54737a47ffdf4df4c996 +- CONFIGURE_COMMAND "" +- +- # We touch all downloaded files, otherwise they get some timestamp in the +- # past and may confuse the dependency tracking below. +- BUILD_COMMAND find -type f -exec touch {} + +- INSTALL_COMMAND "" +-) +- +-# Now extract the needed files. We need to copy headers to the devel space +-# b/c of catkin policies (they count as "generated headers"). +-ExternalProject_Get_property(fmt SOURCE_DIR) +-set(fmt_SOURCE_DIR "${SOURCE_DIR}") +-set(fmt_HEADER_DEST "${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_INCLUDE_DESTINATION}") +- +-file(MAKE_DIRECTORY ${fmt_HEADER_DEST}) +-foreach(FILE args.h chrono.h color.h compile.h core.h format-inl.h format.h os.h ostream.h printf.h ranges.h std.h xchar.h) +- set(in "${fmt_SOURCE_DIR}/include/fmt/${FILE}") +- set(out "${fmt_HEADER_DEST}/fmt/${FILE}") +- list(APPEND fmt_HEADERS_OUT ${out}) +- +- set_source_files_properties(${in} PROPERTIES GENERATED TRUE) +- set_source_files_properties(${out} PROPERTIES GENERATED TRUE) +- +- add_custom_command( +- OUTPUT ${out} +- DEPENDS ${in} fmt +- COMMAND cmake -E copy_if_different "${in}" "${out}" +- ) +-endforeach() +- +-add_custom_target(fmt_headers +- DEPENDS ${fmt_HEADERS_OUT} +-) ++find_package(fmt REQUIRED) + + catkin_package( +- INCLUDE_DIRS include ${fmt_HEADER_DEST} ++ INCLUDE_DIRS include + CATKIN_DEPENDS roscpp rosconsole + LIBRARIES rosfmt9 + ) + + include_directories( +- ${fmt_HEADER_DEST} + include + ${catkin_INCLUDE_DIRS} + ) + +-set_source_files_properties( +- ${fmt_SOURCE_DIR}/src/format.cc +- ${fmt_SOURCE_DIR}/src/os.cc +- PROPERTIES GENERATED TRUE +-) +- + add_library(rosfmt9 +- ${fmt_HEADERS_OUT} +- ${fmt_SOURCE_DIR}/src/format.cc +- ${fmt_SOURCE_DIR}/src/os.cc + src/rosfmt.cpp + ) + target_link_libraries(rosfmt9 + ${catkin_LIBRARIES} ++ fmt::fmt + ) +-add_dependencies(rosfmt9 fmt fmt_headers) + + if(CATKIN_ENABLE_TESTING) + add_executable(simple_test +@@ -91,10 +43,6 @@ if(CATKIN_ENABLE_TESTING) + add_dependencies(run_tests run_simple_test) + endif() + +-install( +- DIRECTORY ${fmt_HEADER_DEST}/fmt/ +- DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}/fmt +-) + install( + DIRECTORY include/rosfmt/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} diff --git a/patch/ros-noetic-rosmon-core.patch b/patch/ros-noetic-rosmon-core.patch index 8368a0582..c19a29d13 100644 --- a/patch/ros-noetic-rosmon-core.patch +++ b/patch/ros-noetic-rosmon-core.patch @@ -1,3 +1,37 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7441df6..9bff2c0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,12 +11,11 @@ find_package(catkin REQUIRED COMPONENTS + rospack + diagnostic_msgs + ) ++find_package(fmt REQUIRED) + + catkin_package() + include_directories(${catkin_INCLUDE_DIRS}) + +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") +- + find_package(TinyXML REQUIRED) + + find_package(Curses REQUIRED) +@@ -107,6 +107,7 @@ target_link_libraries(rosmon + yaml-cpp + util + rosmon_launch_config ++ fmt::fmt + ) + + add_dependencies(rosmon ${catkin_EXPORTED_TARGETS}) +@@ -126,6 +125,7 @@ add_executable(dump_param + ) + target_link_libraries(dump_param + ${catkin_LIBRARIES} ++ fmt::fmt + ) + + add_executable(abort_really_long_executable diff --git a/src/monitor/shim.cpp b/src/monitor/shim.cpp index 7dec1cc..da51913 100644 --- a/src/monitor/shim.cpp @@ -22,16 +56,15 @@ 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/src/logger.cpp b/src/logger.cpp +index 881339c..9d9fb5f 100644 +--- a/src/logger.cpp ++++ b/src/logger.cpp +@@ -4,6 +4,7 @@ + #include "logger.h" + #include "fmt/format.h" ++#include + #include + #include + #include diff --git a/patch/ros-noetic-rostime.win.patch b/patch/ros-noetic-rostime.win.patch new file mode 100644 index 000000000..06e1761dc --- /dev/null +++ b/patch/ros-noetic-rostime.win.patch @@ -0,0 +1,179 @@ +diff --git a/include/ros/duration.h b/include/ros/duration.h +index edd82ddf..6a0e883b 100644 +--- a/include/ros/duration.h ++++ b/include/ros/duration.h +@@ -95,6 +95,7 @@ public: + T& fromNSec(int64_t t); + bool isZero() const; + boost::posix_time::time_duration toBoost() const; ++#ifndef _MSC_VER + static const T MIN; //!< Minimum representable duration (negative) + static const T MAX; //!< Maximum representable duration + static const T ZERO; //!< Zero duration +@@ -105,6 +106,7 @@ public: + static const T MILLISECOND; //!< One millisecond duration + static const T MICROSECOND; //!< One microsecond duration + static const T NANOSECOND; //!< One nanosecond duration ++#endif + }; + + class Rate; +@@ -136,6 +138,7 @@ public: + + extern ROSTIME_DECL const Duration DURATION_MAX; + extern ROSTIME_DECL const Duration DURATION_MIN; ++#ifndef _MSC_VER + template<> const Duration DurationBase::MAX; + template<> const Duration DurationBase::MIN; + template<> const Duration DurationBase::ZERO; +@@ -146,6 +149,7 @@ template<> const Duration DurationBase::SECOND; + template<> const Duration DurationBase::MILLISECOND; + template<> const Duration DurationBase::MICROSECOND; + template<> const Duration DurationBase::NANOSECOND; ++#endif + + /** + * \brief Duration representation for use with the WallTime class. +@@ -172,6 +176,7 @@ public: + bool sleep() const; + }; + ++#ifndef _MSC_VER + template<> const WallDuration DurationBase::MAX; + template<> const WallDuration DurationBase::MIN; + template<> const WallDuration DurationBase::ZERO; +@@ -182,6 +187,7 @@ template<> const WallDuration DurationBase::SECOND; + template<> const WallDuration DurationBase::MILLISECOND; + template<> const WallDuration DurationBase::MICROSECOND; + template<> const WallDuration DurationBase::NANOSECOND; ++#endif + + ROSTIME_DECL std::ostream &operator <<(std::ostream &os, const Duration &rhs); + ROSTIME_DECL std::ostream &operator <<(std::ostream &os, const WallDuration &rhs); +diff --git a/include/ros/time.h b/include/ros/time.h +index c4ff2fea..79f2eaee 100644 +--- a/include/ros/time.h ++++ b/include/ros/time.h +@@ -160,10 +160,12 @@ namespace ros + inline bool is_zero() const { return isZero(); } + boost::posix_time::ptime toBoost() const; + ++#ifndef _MSC_VER + static const T MIN; //!< Minimum representable time + static const T MAX; //!< Maximum representable time + static const T ZERO; //!< Zero (invalid) time + static const T UNINITIALIZED; //!< Uninitialized time ++#endif + }; + + /** +@@ -221,10 +223,12 @@ namespace ros + + extern ROSTIME_DECL const Time TIME_MAX; + extern ROSTIME_DECL const Time TIME_MIN; ++#ifndef _MSC_VER + template<> const Time TimeBase::MAX; + template<> const Time TimeBase::MIN; + template<> const Time TimeBase::ZERO; + template<> const Time TimeBase::UNINITIALIZED; ++#endif + + /** + * \brief Time representation. Always wall-clock time. +@@ -258,11 +262,13 @@ namespace ros + static bool isSystemTime() { return true; } + }; + ++#ifndef _MSC_VER + template<> const WallTime TimeBase::MAX; + template<> const WallTime TimeBase::MIN; + template<> const WallTime TimeBase::ZERO; + template<> const WallTime TimeBase::UNINITIALIZED; +- ++#endif ++ + /** + * \brief Time representation. Always steady-clock time. + * +@@ -297,10 +303,12 @@ namespace ros + static bool isSystemTime() { return true; } + }; + ++#ifndef _MSC_VER + template<> const SteadyTime TimeBase::MAX; + template<> const SteadyTime TimeBase::MIN; + template<> const SteadyTime TimeBase::ZERO; + template<> const SteadyTime TimeBase::UNINITIALIZED; ++#endif + + ROSTIME_DECL std::ostream &operator <<(std::ostream &os, const Time &rhs); + ROSTIME_DECL std::ostream &operator <<(std::ostream &os, const WallTime &rhs); +diff --git a/src/time.cpp b/src/time.cpp +index 7edb3cc2..0bca1c4c 100644 +--- a/src/time.cpp ++++ b/src/time.cpp +@@ -83,6 +83,7 @@ namespace ros + const Duration DURATION_MAX(std::numeric_limits::max(), 999999999); + const Duration DURATION_MIN(std::numeric_limits::min(), 0); + ++#ifndef _MSC_VER + template<> const Duration DurationBase::MAX = DURATION_MAX; + template<> const Duration DurationBase::MIN = DURATION_MIN; + template<> const Duration DurationBase::ZERO = Duration(0, 0); +@@ -104,10 +105,12 @@ namespace ros + template<> const WallDuration DurationBase::MILLISECOND = WallDuration(Duration::MILLISECOND.sec, Duration::MILLISECOND.nsec); + template<> const WallDuration DurationBase::MICROSECOND = WallDuration(Duration::MICROSECOND.sec, Duration::MICROSECOND.nsec); + template<> const WallDuration DurationBase::NANOSECOND = WallDuration(Duration::NANOSECOND.sec, Duration::NANOSECOND.nsec); ++#endif + + const Time TIME_MAX(std::numeric_limits::max(), 999999999); + const Time TIME_MIN(0, 1); + ++#ifndef _MSC_VER + template<> const Time TimeBase::MAX = TIME_MAX; + template<> const Time TimeBase::MIN = TIME_MIN; + template<> const Time TimeBase::ZERO = Time(0, 0); +@@ -122,6 +125,7 @@ namespace ros + template<> const SteadyTime TimeBase::MIN = SteadyTime(Time::MIN.sec, Time::MIN.nsec); + template<> const SteadyTime TimeBase::ZERO = SteadyTime(Time::ZERO.sec, Time::ZERO.nsec); + template<> const SteadyTime TimeBase::UNINITIALIZED = SteadyTime(Time::UNINITIALIZED.sec, Time::UNINITIALIZED.nsec); ++#endif + + // This is declared here because it's set from the Time class but read from + // the Duration class, and need not be exported to users of either. +diff --git a/test/time.cpp b/test/time.cpp +index 96ef1615..e52a9601 100644 +--- a/test/time.cpp ++++ b/test/time.cpp +@@ -370,6 +370,7 @@ TEST(Time, OperatorPlusExceptions) + EXPECT_THROW(t5 + d3, std::runtime_error); + } + ++#ifndef _MSC_VER + TEST(Time, Constants) + { + EXPECT_EQ(Time::MAX.sec, static_cast(-1)); +@@ -399,6 +400,7 @@ TEST(Time, Constants) + EXPECT_EQ(SteadyTime::UNINITIALIZED.sec, 0); + EXPECT_EQ(SteadyTime::UNINITIALIZED.nsec, 0); + } ++#endif + + /************************************* Duration Tests *****************/ + +@@ -588,6 +590,7 @@ TEST(Duration, sleepWithSignal) + ASSERT_TRUE(rc); + } + ++#ifndef _MSC_VER + TEST(Duration, Constants) + { + EXPECT_EQ(Duration::MAX.sec, std::numeric_limits::max()); +@@ -632,6 +635,7 @@ TEST(Duration, Constants) + EXPECT_EQ(WallDuration::DAY.sec, 60 * 60 * 24); + EXPECT_EQ(WallDuration::DAY.nsec, 0); + } ++#endif + + TEST(Rate, constructFromDuration){ + Duration d(4, 0); 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/patch/ros-noetic-teb-local-planner.osx.patch b/patch/ros-noetic-teb-local-planner.osx.patch index aaf1bb56b..92420cebc 100644 --- a/patch/ros-noetic-teb-local-planner.osx.patch +++ b/patch/ros-noetic-teb-local-planner.osx.patch @@ -1,3 +1,57 @@ +diff --git a/include/teb_local_planner/timed_elastic_band.hpp b/include/teb_local_planner/timed_elastic_band.hpp +index 66c92b8..8a95eaf 100644 +--- a/include/teb_local_planner/timed_elastic_band.hpp ++++ b/include/teb_local_planner/timed_elastic_band.hpp +@@ -36,6 +36,7 @@ + * Author: Christoph Rösmann + *********************************************************************/ + ++#include + #include + + namespace teb_local_planner +@@ -49,7 +50,7 @@ bool TimedElasticBand::initTrajectoryToGoal(BidirIter path_start, BidirIter path + boost::optional start_orientation, boost::optional goal_orientation, int min_samples, bool guess_backwards_motion) + { + Eigen::Vector2d start_position = fun_position( *path_start ); +- Eigen::Vector2d goal_position = fun_position( *boost::prior(path_end) ); ++ Eigen::Vector2d goal_position = fun_position( *std::prev(path_end) ); + + bool backwards = false; + +diff --git a/include/teb_local_planner/visualization.hpp b/include/teb_local_planner/visualization.hpp +index e619e52..548c57a 100644 +--- a/include/teb_local_planner/visualization.hpp ++++ b/include/teb_local_planner/visualization.hpp +@@ -38,6 +38,7 @@ + + #include + #include ++#include + + + namespace teb_local_planner +@@ -196,7 +197,7 @@ void TebVisualization::publishPathContainer(BidirIter first, BidirIter last, con + { + // iterate single path points + typename PathType::const_iterator it_point, end_point; +- for (it_point = first->begin(), end_point = boost::prior(first->end()); it_point != end_point; ++it_point) ++ for (it_point = first->begin(), end_point = std::prev(first->end()); it_point != end_point; ++it_point) + { + geometry_msgs::Point point_start; + point_start.x = get_const_reference(*it_point).x(); +@@ -205,8 +206,8 @@ void TebVisualization::publishPathContainer(BidirIter first, BidirIter last, con + marker.points.push_back(point_start); + + geometry_msgs::Point point_end; +- point_end.x = get_const_reference(*boost::next(it_point)).x(); +- point_end.y = get_const_reference(*boost::next(it_point)).y(); ++ point_end.x = get_const_reference(*std::next(it_point)).x(); ++ point_end.y = get_const_reference(*std::next(it_point)).y(); + point_end.z = 0; + marker.points.push_back(point_end); + } + diff --git a/include/teb_local_planner/h_signature.h b/include/teb_local_planner/h_signature.h index 8837950..4cffcda 100644 --- a/include/teb_local_planner/h_signature.h diff --git a/patch/ros-noetic-tf2.patch b/patch/ros-noetic-tf2.patch new file mode 100644 index 000000000..64c973c19 --- /dev/null +++ b/patch/ros-noetic-tf2.patch @@ -0,0 +1,12 @@ +diff --git a/tf2/src/buffer_core.cpp b/tf2/src/buffer_core.cpp +index b2eb4877..90b35515 100644 +--- a/tf2/src/buffer_core.cpp ++++ b/tf2/src/buffer_core.cpp +@@ -38,6 +38,7 @@ + #include + #include "tf2/LinearMath/Transform.h" + #include ++#include + + namespace tf2 + { diff --git a/robostack.yaml b/robostack.yaml index a325181dc..d9063f0d9 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] @@ -27,7 +34,7 @@ binutils: bison: robostack: [bison] boost: - robostack: [boost] + robostack: [libboost-devel, libboost-python-devel] bullet: robostack: [bullet] bzip2: @@ -36,6 +43,8 @@ cartographer: robostack: [cartographer] ca-certificates: robostack: [ca-certificates] +clang-format: + robostack: [clang-format] clang-tidy: robostack: [clang-tools] cmake: @@ -74,7 +83,10 @@ eigen: emacs: robostack: [emacs] festival: - robostack: [festival, festvox-kallpc16k] + robostack: + linux: [festival, festvox-kallpc16k] + osx: [] + win64: [] ffmpeg: robostack: [ffmpeg] flac: @@ -133,27 +145,27 @@ ignition-common4: ignition-cmake2: robostack: [libignition-cmake2] ignition-gazebo3: - robostack: [libignition-gazebo5] + robostack: [libignition-gazebo6] ignition-gazebo5: - robostack: [libignition-gazebo5] + robostack: [libignition-gazebo6] ignition-gazebo6: robostack: [libignition-gazebo6] ignition-gui5: - robostack: [libignition-gui5] + robostack: [libignition-gui6] ignition-math6: robostack: [libignition-math6] ignition-msgs5: - robostack: [libignition-msgs5] + robostack: [libignition-msgs8] ignition-msgs8: robostack: [libignition-msgs8] ignition-msgs7: - robostack: [libignition-msgs7] + robostack: [libignition-msgs8] ignition-rendering5: - robostack: [libignition-rendering5] + robostack: [libignition-rendering6] ignition-transport8: - robostack: [libignition-transport8] + robostack: [libignition-transport11] ignition-transport10: - robostack: [libignition-transport10] + robostack: [libignition-transport11] ignition-transport11: robostack: [libignition-transport11] java: @@ -169,45 +181,49 @@ lcov: leveldb: robostack: [leveldb] libabsl-dev: - robostack: [abseil-cpp] + robostack: [libabseil] libblas-dev: robostack: [libblas, libcblas] libboost-chrono-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-date-time: - robostack: [boost-cpp] + robostack: [libboost] libboost-date-time-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-filesystem: - robostack: [boost-cpp] + robostack: [libboost] libboost-filesystem-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-iostreams-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-program-options: - robostack: [boost-cpp] + robostack: [libboost] libboost-program-options-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-python: - robostack: [boost] + robostack: [libboost-python] libboost-python-dev: - robostack: [boost] + robostack: [libboost-python-devel] +libboost-random: + robostack: [libboost] +libboost-random-dev: + robostack: [libboost-devel] libboost-regex-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-serialization: - robostack: [boost-cpp] + robostack: [libboost] libboost-serialization-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-system: - robostack: [boost-cpp] + robostack: [libboost] libboost-system-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libboost-thread: - robostack: [boost-cpp] + robostack: [libboost] libboost-thread-dev: - robostack: [boost-cpp] + robostack: [libboost-devel] libcairo2-dev: robostack: [cairo] libcap-dev: @@ -365,6 +381,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 +412,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 +423,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: @@ -572,7 +605,7 @@ python-paramiko: python-psutil: robostack: [psutil] python-pyassimp: - robostack: [assimp] + robostack: [pyassimp] python-pycryptodome: robostack: [pycryptodome, pycryptodomex] python-pydot: @@ -665,6 +698,8 @@ python3-future: robostack: [future] python3-gi: robostack: [pygobject] +python3-git: + robostack: [gitpython] python3-github: robostack: [pygithub] python3-github3: @@ -730,7 +765,7 @@ python3-pkg-resources: python3-psutil: robostack: [psutil] python3-pyassimp: - robostack: [assimp] + robostack: [pyassimp] python3-pycodestyle: robostack: [pycodestyle] python3-pycryptodome: @@ -753,6 +788,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: @@ -777,6 +814,8 @@ python3-rospkg-modules: robostack: [rospkg] python3-ruamel.yaml: robostack: [ruamel.yaml] +python3-ruff: + robostack: [ruff] python3-scipy: robostack: [scipy] python3-serial: @@ -807,6 +846,8 @@ python3-twisted: robostack: [twisted] python3-typeguard: robostack: [typeguard] +python3-unidiff: + robostack: [unidiff] python3-usb: robostack: [pyusb] python3-venv: @@ -875,7 +916,10 @@ tinyxml: tinyxml2: robostack: [tinyxml2] udev: - robostack: [libusb] + robostack: + linux: [libusb, libudev] + osx: [libusb] + win64: [libusb] uncrustify: robostack: [uncrustify] unzip: @@ -891,6 +935,10 @@ libwebsocketpp-dev: robostack: [websocketpp] wget: robostack: [wget] +xsimd: + robostack: [xsimd] +xtensor: + robostack: [xtensor 0.24] wx-common: robostack: [wxpython] wxpython: @@ -907,3 +955,4 @@ zbar: robostack: [zbar] zlib: robostack: [zlib] + diff --git a/vinca_linux_64.yaml b/vinca_linux_64.yaml index 49127bd37..75e90943a 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: - universal-robots - ur10-moveit-config @@ -87,124 +94,162 @@ 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 - - # - desktop - # - desktop-full - # # - pybind11_catkin # Needs to be patched to use conda-forge's pybind11 + - 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 - # - 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 + - desktop + - desktop-full + # - pybind11_catkin # Needs to be patched to use conda-forge's pybind11 - # - amcl - # - map-server - # - move-base - # - gmapping - # - simulators - # - desktop_full - # - moveit-ros-move-group - # - moveit-ros-manipulation - # - moveit - # - robot_localization - # - gazebo-dev + - apriltag + - apriltag-ros + - find-object-2d + - 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 - gazebo-ros - hector-gazebo-plugins - # - gazebo-ros-control - # - gazebo-plugins - # - lms1xx - # - controller-manager - # - interactive_marker_twist_server - # - diff-drive-controller - # - joint-state-controller + - depthimage-to-laserscan - joy - # - robot-localization - # - teleop-twist-joy - # - twist-mux - # - pointgrey-camera-description - # - nmea-msgs - # - geometry-msgs - # - nmea-navsat-driver - # - rosserial-server - # - imu-filter-madgwick - # - rosserial-python - # - tf2_web_republisher + - nmea-msgs + + - gazebo-ros-control + - gazebo-plugins + - lms1xx + - controller-manager + - interactive_marker_twist_server + - diff-drive-controller + - joint-state-controller + - robot-localization + - teleop-twist-joy + - twist-mux + - pointgrey-camera-description + - geometry-msgs + - nmea-navsat-driver + - rosserial-server + - imu-filter-madgwick + - rosserial-python + - tf2_web_republisher + - combined-robot-hw + - panda-moveit-config + - moveit-ros-visualization + - moveit-ros-planning-interface + - niryo_one_simulation + - teb-local-planner + - turtlebot3 + - turtlebot3-fake + - librealsense2 + - realsense2_camera + - ur-msgs + - rosdoc-lite + - ros_numpy + - velodyne-description + - velodyne-simulator + - effort-controllers + - velocity-controllers + - turtlebot3-teleop + - turtlebot3-simulations + - slam-toolbox + - urg_node + - urg_c + - laser_proc + - audio-common-msgs + - sound-play + - pid + - rosfmt + - rosmon + + - ros-ign + - ros-ign-bridge + - ros-ign-gazebo + - ros-ign-gazebo-demos + - ros-ign-image + + # Needs fixing in CI, uploaded manually + - rtabmap + - rtabmap-ros + + # Not compatible with recent libabsl # - libfranka # - franka # - franka-gripper @@ -214,40 +259,15 @@ packages_select_by_deps: # - franka-control # - franka_example_controllers # - franka_ros - # - combined-robot-hw - # - panda-moveit-config - # - moveit-ros-visualization - # - moveit-ros-planning-interface - # - niryo_one_simulation - # - teb-local-planner - # - turtlebot3 - # - turtlebot3-fake - # - librealsense2 - # - realsense2_camera - # - rosdoc-lite - # - ros_numpy - # - velodyne-description - # - velodyne-simulator - # - effort-controllers - # - velocity-controllers - # - turtlebot3-teleop - # - turtlebot3-simulations - # - slam-toolbox - # - urg_node - # - urg_c - # - laser_proc + # - naoqi-bridge-msgs # - naoqi-driver # - naoqi-libqi # - naoqi-libqicore - # - audio-common-msgs - # - sound-play - # - pid - - rqt-ez-publisher - ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED ## TODO AFTER REBUILD + # - foxglove_bridge # - rtabmap # - mrpt2 # - ifopt @@ -338,7 +358,6 @@ packages_select_by_deps: # - criutils # - cv-camera # - depth-image-proc - # - depthimage-to-laserscan # - dnn-detect # - drone-wrapper # - fetch-depth-layer @@ -718,7 +737,6 @@ packages_select_by_deps: # - wireless-watcher # - wu-ros-tools # - moveit-msgs - # - pinocchio # - rviz # - libuvc-ros # - actionlib-tools @@ -940,7 +958,6 @@ packages_select_by_deps: # - pilz-industrial-motion-testutils # - pilz-msgs # - pilz-utils - # - pinocchio # - planner-cspace-msgs # - pointcloud-to-laserscan # - polar-scan-matcher @@ -973,7 +990,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 e77b31ab5..06879949a 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,7 +29,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: + - rviz # needs to be built locally, CI times out - cras_cpp_common # maintainer peci1 - cras_py_common # maintainer peci1 - cras_docs_common # maintainer peci1 @@ -40,7 +48,7 @@ packages_select_by_deps: - cras_relative_positional_controller # maintainer peci1 - cras_msgs # maintainer peci1 - compass_msgs # maintainer peci1 - # does not work on aarch64 (yet) # - magnetometer_compass # maintainer peci1 + - magnetometer_compass # maintainer peci1; does not work on aarch64 in pull requests due to cross-compiling (but okay on master branch) - electronic_io_msgs # maintainer peci1 - electronic_io # maintainer peci1 - point_cloud_color # maintainer peci1 @@ -58,7 +66,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,95 +81,92 @@ 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 - # - 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 + - 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 + - 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 ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED # # after rebuild + # - foxglove_bridge - # # # DONE # - pybind11_catkin # needs to be unvendored # - libfranka # - cnpy - # - moveit_visual_tools - # - rviz_visual_tools # - rviz_imu_plugin # - slam_toolbox # - webots-ros diff --git a/vinca_osx.yaml b/vinca_osx.yaml index 2c7a95675..d5e9ff017 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,132 +44,128 @@ 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 + - 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 + - teb-local-planner - # # # # For jackal - # - gazebo-dev - # - gazebo-ros - # - hector-gazebo-plugins - # - gazebo-ros-control - # - gazebo-plugins - # - lms1xx - # - controller-manager - # - 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 - # - imu-filter-madgwick - # - rosserial-python - # - tf2_web_republisher - # - libfranka - # - franka - # - franka-gripper - # - franka-hw - # - franka-msgs - # - franka-description - # - franka-control - # - franka_example_controllers - # - franka_ros - # - combined-robot-hw - # - panda-moveit-config - # - moveit-ros-visualization - # - moveit-ros-planning-interface - # - niryo_one_simulation - # - teb-local-planner - # - turtlebot3 - # - turtlebot3-fake - # - librealsense2 - # - realsense2_camera - # - ur-msgs - # - rosdoc-lite - # - ros_numpy + - gazebo-dev + - gazebo-ros + - hector-gazebo-plugins + - gazebo-ros-control + - gazebo-plugins + - lms1xx + - controller-manager + - 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 + - imu-filter-madgwick + - rosserial-python + - tf2_web_republisher + - libfranka + - franka + - franka-gripper + - franka-hw + - franka-msgs + - franka-description + - franka-control + - franka_example_controllers + - franka_ros + - combined-robot-hw + - panda-moveit-config + - moveit-ros-visualization + - moveit-ros-planning-interface + - niryo_one_simulation + - turtlebot3 + - turtlebot3-fake + - librealsense2 + - realsense2_camera + - ur-msgs + - rosdoc-lite + - ros_numpy - # - sound-play - # - pid + - sound-play + - pid ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED ## @@ -855,7 +858,6 @@ packages_select_by_deps: # - velodyne # - robot_localization # - urg_node - # - teb_local_planner # - moveit # - slam_toolbox # - turtlebot3 diff --git a/vinca_osx_arm64.yaml b/vinca_osx_arm64.yaml index 8d0fb8d65..f75416528 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,102 +50,103 @@ 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 - # - hector-gazebo-plugins - # - gazebo-ros - # - gazebo-ros-control - # - gazebo-plugins - # - lms1xx - # - controller-manager - # - 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 - # - imu-filter-madgwick - # - rosserial-python - # - gmapping - # - velodyne-description - # - velodyne-simulator - # - effort-controllers - # - velocity-controllers - # - teb-local-planner - # - slam-toolbox - # - turtlebot3-teleop - # - move-base + - gazebo-dev + - hector-gazebo-plugins + - gazebo-ros + - gazebo-ros-control + - gazebo-plugins + - lms1xx + - controller-manager + - 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 + - imu-filter-madgwick + - rosserial-python + - gmapping + - velodyne-description + - velodyne-simulator + - effort-controllers + - velocity-controllers + - teb-local-planner + - slam-toolbox + - turtlebot3-teleop + - move-base + - rosfmt + - mavros-extras + - webots-ros patch_dir: patch diff --git a/vinca_win.yaml b/vinca_win.yaml index 3106d637e..560cda43e 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: 16 # 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 @@ -27,12 +29,15 @@ packages_remove_from_deps: - stage 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,81 +48,94 @@ 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 + - 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 + - gazebo-dev + - gazebo-ros + - 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 + - plotjuggler_ros + - plotjuggler + - rosserial-arduino + ## ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED + ## + + # The Ignition Fortress packages do not work properly on Windows + # Feel free to reach out to the RoboStack maintainers if you would like to + # work on this. + # - ros-ign + # - ros-ign-bridge + # - ros-ign-gazebo + # - ros-ign-gazebo-demos + # - ros-ign-image + + # Fails due to Too long input line. + # - hector-gazebo-plugins # - dynamixel-sdk -- this one not ready for Windows # - tf2_web_republisher # - libfranka @@ -147,8 +165,6 @@ packages_select_by_deps: # Need to build in own stage # - fcl # - teb_local_planner - # - plotjuggler_ros - # - openslam-gmapping # - laser-proc @@ -457,12 +473,6 @@ packages_select_by_deps: # - wireless-msgs # - xpp-msgs # - xv-11-laser-driver - - # ## - # # DONE Win - # ## - - - rosserial-arduino # - rosbash # - tf2_web_republisher # - grid_map