diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..07fe41c52 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# GitHub syntax highlighting +pixi.lock linguist-language=YAML linguist-generated=true diff --git a/.github/testpr_environment.yml b/.github/testpr_environment.yml deleted file mode 100644 index 9e2cf9b81..000000000 --- a/.github/testpr_environment.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: testpr_env -channels: - - robostack-staging - - conda-forge -dependencies: - - python 3.11.* - - pip - - boa - - conda-build <3.28 - - rospkg - - catkin_pkg >=0.4.16 - - ruamel.yaml >=0.16.6,<0.18 - - rosdistro >=0.8.0 - - empy >=3.3.4 - - networkx diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cbe2a5507..e4c3c0f76 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,7 +1,12 @@ +name: Generate CI pipelines for ROS packages + permissions: actions: write contents: write +env: + ROS_VERSION: 1 + jobs: build: runs-on: ubuntu-latest @@ -15,7 +20,7 @@ jobs: 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 + pip install git+https://github.com/RoboStack/vinca.git@rattler-build-humble - name: Generate recipes for linux-64 run: | diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index e80018f8c..39246b7e9 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -8,71 +8,51 @@ env: jobs: build: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, macos-14, windows-2019] - platform: [linux-64, linux-aarch64, osx-64, win-64, osx-arm64] - exclude: - - os: ubuntu-latest - platform: win-64 - - os: ubuntu-latest - platform: osx-64 + include: - os: ubuntu-latest - platform: osx-arm64 - - os: macos-14 platform: linux-64 - - os: macos-14 + - os: cirun-linux-aarch64--${{ github.run_id }} platform: linux-aarch64 - - os: macos-14 + - os: macos-13 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 - platform: linux-64 - os: windows-2019 - platform: linux-aarch64 - - os: windows-2019 - platform: osx-64 - - os: windows-2019 - platform: osx-arm64 + platform: win-64 + + runs-on: ${{ matrix.os }} + steps: + - 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: prefix-dev/setup-pixi@v0.8.1 + with: + environments: beta + frozen: true + # 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+ + # 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 micromamba - uses: mamba-org/setup-micromamba@main - with: - environment-file: .github/testpr_environment.yml - condarc: | - channels: - - robostack-staging - - conda-forge - - - shell: bash -l {0} - if: matrix.platform == 'linux-aarch64' - run: | - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" - echo "::endgroup::" + # - shell: bash -l {0} + # if: matrix.platform == 'linux-aarch64' + # run: | + # echo "::group::Configure binfmt_misc" + # docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + # export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + # export GIT_BRANCH="$(basename $GITHUB_REF)" + # echo "::endgroup::" - name: Install libgl1-mesa-dev (only for linux-aarch64) if: matrix.platform == 'linux-aarch64' @@ -81,24 +61,15 @@ jobs: 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 - 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 some reason, the Strawberry perl's pkg-config is found # instead of the conda's one, so let's delete the /c/Strawberry directory + # Furthermore, we also need to remove an older SDK that is used and can result in compilation problems - name: Debug pkg-config problem if: contains(matrix.os, 'windows') shell: bash -l {0} run: | rm -rf /c/Strawberry + rm -rf "/c/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/" - name: Check what files have changed id: filecheck @@ -119,84 +90,102 @@ jobs: echo "::set-output name=WIN_YAML_CHANGED::${?}" - 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' + if: steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.platform == 'linux-64' run: | - git clean -fdx cp vinca_linux_64.yaml vinca.yaml - vinca --platform linux-64 - ls - cat recipe.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform linux-64 -m -n + ls -la recipes - 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' + if: steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.platform == 'linux-aarch64' run: | - git clean -fdx cp vinca_linux_aarch64.yaml vinca.yaml - vinca --platform linux-aarch64 - ls - cat recipe.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform linux-aarch64 -m -n + ls -la recipes - 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' + if: steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.platform == 'osx-64' run: | - git clean -fdx cp vinca_osx.yaml vinca.yaml - vinca --platform osx-64 - ls - cat recipe.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform osx-64 -m -n + ls -la recipes - name: Generate recipes for osx-arm64 shell: bash -l {0} - if: steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-14' && matrix.platform == 'osx-arm64' + if: steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.platform == 'osx-arm64' run: | - git clean -fdx cp vinca_osx_arm64.yaml vinca.yaml - vinca --platform osx-arm64 - ls - cat recipe.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform osx-arm64 -m -n + ls -la recipes - 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' + if: steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.platform == 'win-64' run: | - git clean -fdx + # Workaround for problem related to long paths + echo "CONDA_BLD_PATH=C:\\bld\\" >> $GITHUB_ENV + mkdir /c/bld cp vinca_win.yaml vinca.yaml - vinca --platform win-64 - ls - cat recipe.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform win-64 -m -n + ls -la recipes - name: Check if there are packages to be built id: newrecipecheck shell: bash -l {0} run: | # continue on error set +e - grep -q "outputs: \[\]" recipe.yaml > /dev/null + test ! -d recipes echo "::set-output name=RECIPE_CREATED::${?}" - name: Build recipes for linux-64 shell: bash -l {0} - run: | - boa build additional_recipes/ros-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml - boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml - if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64' + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.platform == 'linux-64' + run: | + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-distro-mutex/ --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-eigenpy/ --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-gtsam/ --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-hpp-fcl/ --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-pinocchio/ --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing - 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 + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.platform == 'linux-aarch64' + run: | + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-distro-mutex/ --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-eigenpy/ --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-gtsam/ --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-hpp-fcl/ --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-pinocchio/ --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing - 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 + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.platform == 'osx-64' + run: | + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-distro-mutex/ --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-eigenpy/ --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-gtsam/ --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-hpp-fcl/ --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-pinocchio/ --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing - 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-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 + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.platform == 'osx-arm64' + run: | + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-distro-mutex/ --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-eigenpy/ --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-gtsam/ --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-hpp-fcl/ --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-pinocchio/ --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing - 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: | - boa build additional_recipes/ros-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml - boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.platform == 'win-64' + run: | + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-distro-mutex/ --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-eigenpy/ --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-gtsam/ --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-hpp-fcl/ --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros-noetic-pinocchio/ --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing diff --git a/.gitignore b/.gitignore index 74fe3e5b7..dc169f00c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,7 @@ recipes/ *.ps1 *.json .DS_Store +# pixi environments +.pixi +*.egg-info +output/ diff --git a/.scripts/build_linux.sh b/.scripts/build_linux.sh index 5dcf394c0..2d8ef6e73 100755 --- a/.scripts/build_linux.sh +++ b/.scripts/build_linux.sh @@ -9,71 +9,25 @@ set -xeuo pipefail export PYTHONUNBUFFERED=1 export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" -# export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -# export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" -cat >~/.condarc <={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-control/recipe.yaml b/additional_recipes/ros-noetic-jackal-control/recipe.yaml index 4cb29c4c1..448bb8109 100644 --- a/additional_recipes/ros-noetic-jackal-control/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-control/recipe.yaml @@ -1,38 +1,54 @@ package: name: ros-noetic-jackal-control - version: 0.8.5 + version: 0.8.10 about: - home: http://wiki.ros.org/jackal_control - license: - - BSD + homepage: http://wiki.ros.org/jackal_control + license: BSD-3-Clause summary: Controllers for Jackal - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal-release.git - git_rev: release/noetic/jackal_control/0.8.5-1 - folder: ros-noetic-jackal-control/src/work + git: https://github.com/clearpath-gbp/jackal-release.git + tag: release/noetic/jackal_control/0.8.10-1 + target_directory: ros-noetic-jackal-control/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -57,4 +73,6 @@ requirements: - ros-noetic-teleop-twist-joy - ros-noetic-topic-tools - ros-noetic-twist-mux - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-description/recipe.yaml b/additional_recipes/ros-noetic-jackal-description/recipe.yaml index 57585e7da..e7a3c1a8e 100644 --- a/additional_recipes/ros-noetic-jackal-description/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-description/recipe.yaml @@ -1,37 +1,52 @@ package: name: ros-noetic-jackal-description - version: 0.8.5 + version: 0.8.10 about: - home: http://wiki.ros.org/jackal_description - license: - - BSD + homepage: http://wiki.ros.org/jackal_description + license: BSD-3-Clause summary: URDF robot description for Jackal - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh - + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal-release.git - git_rev: release/noetic/jackal_description/0.8.5-1 - folder: ros-noetic-jackal-description/src/work + git: https://github.com/clearpath-gbp/jackal-release.git + tag: release/noetic/jackal_description/0.8.10-1 + target_directory: ros-noetic-jackal-description/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -48,4 +63,6 @@ requirements: - ros-noetic-xacro - ros-noetic-lms1xx - ros-noetic-pointgrey-camera-description - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-desktop/recipe.yaml b/additional_recipes/ros-noetic-jackal-desktop/recipe.yaml index 9070b080b..691346cf9 100644 --- a/additional_recipes/ros-noetic-jackal-desktop/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-desktop/recipe.yaml @@ -1,37 +1,53 @@ package: name: ros-noetic-jackal-desktop - version: 0.4.0 + version: 0.4.1 about: - home: http://wiki.ros.org/jackal_desktop - license: - - BSD + homepage: http://wiki.ros.org/jackal_desktop + license: BSD-3-Clause summary: Packages for working with Jackal from a ROS desktop. - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal_desktop-release.git - git_rev: release/noetic/jackal_desktop/0.4.0-1 - folder: ros-noetic-jackal-desktop/src/work + git: https://github.com/clearpath-gbp/jackal_desktop-release.git + tag: release/noetic/jackal_desktop/0.4.1-2 + target_directory: ros-noetic-jackal-desktop/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -39,4 +55,6 @@ requirements: run: - python - ros-noetic-jackal-viz - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-gazebo/recipe.yaml b/additional_recipes/ros-noetic-jackal-gazebo/recipe.yaml index 7087cf564..27b7c815a 100644 --- a/additional_recipes/ros-noetic-jackal-gazebo/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-gazebo/recipe.yaml @@ -2,35 +2,51 @@ package: name: ros-noetic-jackal-gazebo version: 0.4.0 about: - home: http://wiki.ros.org/jackal_gazebo - license: - - BSD + homepage: http://wiki.ros.org/jackal_gazebo + license: BSD-3-Clause summary: Launchfiles to use Jackal in Gazebo. - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal_simulator-release.git - git_rev: release/noetic/jackal_gazebo/0.4.0-1 - folder: ros-noetic-jackal-gazebo/src/work + git: https://github.com/clearpath-gbp/jackal_simulator-release.git + tag: release/noetic/jackal_gazebo/0.4.0-1 + target_directory: ros-noetic-jackal-gazebo/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -53,4 +69,6 @@ requirements: - ros-noetic-position-controllers - ros-noetic-velocity-controllers - ros-noetic-joy - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-msgs/recipe.yaml b/additional_recipes/ros-noetic-jackal-msgs/recipe.yaml index 18cda6ab7..9d6ce09a9 100644 --- a/additional_recipes/ros-noetic-jackal-msgs/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-msgs/recipe.yaml @@ -1,37 +1,53 @@ package: name: ros-noetic-jackal-msgs - version: 0.8.5 + version: 0.8.10 about: - home: http://wiki.ros.org/jackal_msgs - license: - - BSD + homepage: http://wiki.ros.org/jackal_msgs + license: BSD-3-Clause summary: Messages exclusive to Jackal, especially for representing low-level motor commands and sensors. - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal-release.git - git_rev: release/noetic/jackal_msgs/0.8.5-1 - folder: ros-noetic-jackal-msgs/src/work + git: https://github.com/clearpath-gbp/jackal-release.git + tag: release/noetic/jackal_msgs/0.8.10-1 + target_directory: ros-noetic-jackal-msgs/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -42,4 +58,6 @@ requirements: - python - ros-noetic-message-runtime - ros-noetic-std-msgs - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-navigation/recipe.yaml b/additional_recipes/ros-noetic-jackal-navigation/recipe.yaml index a304173bd..2b362f95b 100644 --- a/additional_recipes/ros-noetic-jackal-navigation/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-navigation/recipe.yaml @@ -1,37 +1,53 @@ package: name: ros-noetic-jackal-navigation - version: 0.8.5 + version: 0.8.10 about: - home: http://wiki.ros.org/jackal_navigation - license: - - BSD + homepage: http://wiki.ros.org/jackal_navigation + license: BSD-3-Clause summary: Launch files and code for autonomous navigation of the Jackal - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal-release.git - git_rev: release/noetic/jackal_navigation/0.8.5-1 - folder: ros-noetic-jackal-navigation/src/work + git: https://github.com/clearpath-gbp/jackal-release.git + tag: release/noetic/jackal_navigation/0.8.10-1 + target_directory: ros-noetic-jackal-navigation/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -50,4 +66,6 @@ requirements: - ros-noetic-move-base - ros-noetic-urdf - ros-noetic-xacro - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-simulator/recipe.yaml b/additional_recipes/ros-noetic-jackal-simulator/recipe.yaml index 8bc69b2e1..55d1c79d0 100644 --- a/additional_recipes/ros-noetic-jackal-simulator/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-simulator/recipe.yaml @@ -2,35 +2,51 @@ package: name: ros-noetic-jackal-simulator version: 0.4.0 about: - home: http://wiki.ros.org/jackal_simulator - license: - - BSD + homepage: http://wiki.ros.org/jackal_simulator + license: BSD-3-Clause summary: Packages for simulating Jackal. - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal_simulator-release.git - git_rev: release/noetic/jackal_simulator/0.4.0-1 - folder: ros-noetic-jackal-simulator/src/work + git: https://github.com/clearpath-gbp/jackal_simulator-release.git + tag: release/noetic/jackal_simulator/0.4.0-1 + target_directory: ros-noetic-jackal-simulator/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -38,4 +54,6 @@ requirements: run: - python - ros-noetic-jackal-gazebo - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-jackal-viz/recipe.yaml b/additional_recipes/ros-noetic-jackal-viz/recipe.yaml index 6310443ac..69bf0f0b8 100644 --- a/additional_recipes/ros-noetic-jackal-viz/recipe.yaml +++ b/additional_recipes/ros-noetic-jackal-viz/recipe.yaml @@ -1,37 +1,53 @@ package: name: ros-noetic-jackal-viz - version: 0.4.0 + version: 0.4.1 about: - home: http://wiki.ros.org/jackal_viz - license: - - BSD + homepage: http://wiki.ros.org/jackal_viz + license: BSD-3-Clause summary: Visualization launchers and helpers for Jackal. - maintainers: - - Mike Purvis (mpurvis@clearpathrobotics.com) + extra: recipe-maintainers: - robostack build: - number: 3 - script: - sel(win): bld_catkin.bat - sel(unix): build_catkin.sh + number: 21 + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\..\\..\\bld_catkin.bat' }} source: - git_url: https://github.com/clearpath-gbp/jackal_desktop-release.git - git_rev: release/noetic/jackal_viz/0.4.0-1 - folder: ros-noetic-jackal-viz/src/work + git: https://github.com/clearpath-gbp/jackal_desktop-release.git + tag: release/noetic/jackal_viz/0.4.1-1 + target_directory: ros-noetic-jackal-viz/src/work requirements: build: - - "{{ compiler('cxx') }}" - - "{{ compiler('c') }}" + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} - ninja - - sel(unix): make + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config - cmake - - sel(build_platform != target_platform): python - - sel(build_platform != target_platform): cross-python_{{ target_platform }} - - sel(build_platform != target_platform): cython + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy host: - python - ros-noetic-catkin @@ -44,4 +60,6 @@ requirements: - ros-noetic-joint-state-publisher - ros-noetic-joint-state-publisher-gui - ros-noetic-rviz - - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} \ No newline at end of file diff --git a/additional_recipes/ros-noetic-pinocchio/recipe.yaml b/additional_recipes/ros-noetic-pinocchio/recipe.yaml index 7b718222b..a34e40919 100644 --- a/additional_recipes/ros-noetic-pinocchio/recipe.yaml +++ b/additional_recipes/ros-noetic-pinocchio/recipe.yaml @@ -1,17 +1,19 @@ package: name: ros-noetic-pinocchio - version: "2.6.20" + version: "3.3.1" 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 +requirements: + run: + - pinocchio ==3.3.1 + +about: + homepage: https://github.com/conda-forge/pinocchio-feedstock + license: BSD-2-Clause + summary: | + A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives +extra: + recipe-maintainers: + - ros-forge diff --git a/conda_build_config.yaml b/conda_build_config.yaml index 0e7f9d690..bccfed23a 100644 --- a/conda_build_config.yaml +++ b/conda_build_config.yaml @@ -1,51 +1,46 @@ +harfbuzz: + - '10' gazebo: - '11' libpqxx: - 6 -numpy: - - 1.23 ogre: - 1.10.12 setuptools: - 69 - -cdt_name: # [linux] - - cos7 # [linux] +numpy: + - 1.26 +libprotobuf: + - 5.28.3 +protobuf: + - 5.28.3 +spdlog: + - 1.14 +pyqt: + - 5.15 +pyqtwebengine: + - 5.15 +pyqtchart: + - 5.15 + +cdt_name: + - ${{ "cos7" if linux }} python: - 3.11.* *_cpython python_impl: - cpython -# Project overrides -macos_min_version: # [osx and x86_64] - - 10.14 # [osx and x86_64] -macos_machine: # [osx] - - x86_64-apple-darwin13.4.0 # [osx and x86_64] - - arm64-apple-darwin20.0.0 # [osx and arm64] -MACOSX_DEPLOYMENT_TARGET: # [osx] - - 11.0 # [osx and arm64] - - 10.14 # [osx and x86_64] -CONDA_BUILD_SYSROOT: - - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk # [osx and arm64] - +c_compiler: + - ${{ "vs2019" if win }} +cxx_compiler: + - ${{ "vs2019" if win }} -# fix build metadata, needed for mapviz and moveit-core -replacements: - all_replacements: - - tag: 'pkg-config build metadata' - glob_patterns: - - '*.pc' - regex_re: '(?:-L|-I)?\"?([^;\s]+\/sysroot\/)' - replacement_re: '$(CONDA_BUILD_SYSROOT_S)' - regex_rg: '([^;\s"]+/sysroot/)' - - tag: 'CMake build metadata' - glob_patterns: - - '*.cmake' - regex_re: '([^;\s"]+/sysroot)' - replacement_re: '$ENV{CONDA_BUILD_SYSROOT}' - - tag: 'CMake build metadata OSX' - glob_patterns: - - '*.cmake' - regex_re: '([^;\s"]+/MacOSX\d*\.?\d*\.sdk)' - replacement_re: '$ENV{CONDA_BUILD_SYSROOT}' +c_stdlib: + - ${{ "sysroot" if linux }} + - ${{ "macosx_deployment_target" if osx }} + - ${{ "vs" if win }} +c_stdlib_version: + - ${{ "2.17" if linux }} + - ${{ "10.14" if osx and x86_64 }} + - ${{ "11.0" if osx and arm64 }} diff --git a/env/robostackenv.yaml b/env/robostackenv.yaml index 95af1c9d9..da8a09dc8 100644 --- a/env/robostackenv.yaml +++ b/env/robostackenv.yaml @@ -4,17 +4,14 @@ channels: - conda-forge dependencies: - python=3.11 -- conda-build - anaconda-client -- mamba -- conda - catkin_pkg - ruamel.yaml - rosdistro - empy - networkx - requests -- boa +- rattler-build - pip - pip: - - git+https://github.com/RoboStack/vinca.git@master + - git+https://github.com/RoboStack/vinca.git@rattler-build-humble diff --git a/patch/dependencies.yaml b/patch/dependencies.yaml index 80ab123d4..8d34af42f 100644 --- a/patch/dependencies.yaml +++ b/patch/dependencies.yaml @@ -1,14 +1,24 @@ +euslisp: + add_host: ["${{ 'xorg-libx11' if linux }}"] qt_gui_cpp: - add_build: ["pyqt-builder", "pyqt5-sip"] + add_build: ["pyqt-builder", "pyqt5-sip", "sip 6.7.*"] + add_host: ["${{ 'setuptools 69.*' if win }}", "sip 6.7.*"] rviz: - add_build: ["pyqt-builder", "pyqt5-sip"] + add_build: ["pyqt-builder", "pyqt5-sip", "sip 6.7.*"] + add_host: ["${{ 'setuptools 69.*' if win }}", "sip 6.7.*"] python_qt_binding: + add_build: ["pyqt-builder", "pyqt5-sip", "sip 6.7.*"] + add_host: ["${{ 'setuptools 69.*' if win }}", "sip 6.7.*"] add_run: ["adwaita-icon-theme"] +find_object_2d: + add_host: ["zlib"] ompl: add_host: ["ompl"] add_run: ["ompl"] sick_tim: add_host: ["pkg-config"] +class_loader: + add_host: ["${{ 'libcxx-devel 19.*' if osx }}"] moveit_visual_tools: add_host: ["REQUIRE_OPENGL"] pcl_conversions: @@ -30,17 +40,17 @@ gazebo_ros_control: gazebo_pkgs: add_host: [tbb, tbb-devel] ros_ign_gazebo: - add_host: ["REQUIRE_OPENGL", {"sel(linux)": "libuuid"}] + add_host: ["REQUIRE_OPENGL", "${{ 'libuuid' if linux }}"] apriltag: add_host: ["REQUIRE_OPENGL"] lvr2: add_host: ["libgdal", "cgal-cpp"] rtabmap: - add_host: ["REQUIRE_OPENGL", "pybind11"] + add_host: ["REQUIRE_OPENGL", "pybind11", "tbb-devel", "liblzma-devel"] rtabmap_ros: add_host: ["REQUIRE_OPENGL"] rtabmap_conversions: - add_host: ["REQUIRE_OPENGL"] + add_host: ["REQUIRE_OPENGL", "libnetcdf", "liblzma-devel"] rtabmap_rviz_plugins: add_host: ["REQUIRE_OPENGL"] rtabmap_viz: @@ -79,7 +89,7 @@ mqtt_bridge: mrpt2: 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') }}"}] + add_build: ["${{ cdt('libxcomposite-devel') if linux }}"] image_view: add_host: ["REQUIRE_OPENGL"] rosserial_python: @@ -119,11 +129,11 @@ safety_limiter: ifopt: add_host: ["ipopt"] tesseract_collision: - add_build: [{"sel(osx)": "llvm-openmp"}] + add_build: ["${{ 'llvm-openmp' if osx }}"] rosbridge_library: add_run: ["pymongo"] resource_retriever: add_host: ["libcurl"] add_run: ["libcurl"] plotjuggler: - add_host: [{"sel(linux)": "elfutils"}, "protobuf"] + add_host: ["${{ 'elfutils' if linux }}", "protobuf"] diff --git a/patch/ros-noetic-baldor.patch b/patch/ros-noetic-baldor.patch index 585c88f1f..65b086fb6 100644 --- a/patch/ros-noetic-baldor.patch +++ b/patch/ros-noetic-baldor.patch @@ -13,4 +13,4 @@ index f42da9d..1245834 100644 +_FLOAT_EPS = np.finfo(np.float64).eps _EPS = np.finfo(float).eps * 4.0 # axis sequences for Euler angles - _NEXT_AXIS = [1, 2, 0, 1] \ No newline at end of file + _NEXT_AXIS = [1, 2, 0, 1] diff --git a/patch/ros-noetic-class-loader.patch b/patch/ros-noetic-class-loader.patch index 6e43ea08c..1a385b0d1 100644 --- a/patch/ros-noetic-class-loader.patch +++ b/patch/ros-noetic-class-loader.patch @@ -1,7 +1,16 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5131553..bf5b701 100644 +index 7580a95..aa97e7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt +@@ -3,7 +3,7 @@ project(class_loader CXX) + + # Default to C++14 + if(NOT CMAKE_CXX_STANDARD) +- set(CMAKE_CXX_STANDARD 14) ++ set(CMAKE_CXX_STANDARD 17) + endif() + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) @@ -23,7 +23,7 @@ if(${catkin_FOUND}) find_package(Poco REQUIRED COMPONENTS Foundation) catkin_package( diff --git a/patch/ros-noetic-cv-bridge.patch b/patch/ros-noetic-cv-bridge.patch index c6f45d381..b9d8b4459 100644 --- a/patch/ros-noetic-cv-bridge.patch +++ b/patch/ros-noetic-cv-bridge.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index ef804b9..6dac00e 100644 +index ef804b91..4ef849c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -3,27 +3,9 @@ project(cv_bridge) +@@ -3,28 +3,8 @@ project(cv_bridge) find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs) @@ -26,10 +26,90 @@ index ef804b9..6dac00e 100644 - message(STATUS "Did not find OpenCV 4, trying OpenCV 3") - set(_opencv_version 3) -endif() -+find_package(Boost REQUIRED python) - +- -find_package(OpenCV ${_opencv_version} REQUIRED -+find_package(OpenCV 4 QUIET) -+find_package(OpenCV 4 REQUIRED ++find_package(Boost REQUIRED CONFIG) ++find_package(OpenCV REQUIRED COMPONENTS - opencv_core \ No newline at end of file + opencv_core + opencv_imgproc +@@ -43,7 +23,6 @@ catkin_package( + catkin_python_setup() + + include_directories(include ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) +-link_directories(${Boost_LIBRARY_DIRS}) + + if(NOT ANDROID) + add_subdirectory(python) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index d1046922c..57ec2a26c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1,8 +1,7 @@ + # add library +-include_directories(./) + add_library(${PROJECT_NAME} cv_bridge.cpp rgb_colors.cpp) + add_dependencies(${PROJECT_NAME} ${catkin_EXPORTED_TARGETS}) +-target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES} ${catkin_LIBRARIES}) ++target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES} ${Boost_LIBRARIES} ${catkin_LIBRARIES}) + + install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +@@ -12,38 +11,18 @@ install(TARGETS ${PROJECT_NAME} + + if(NOT ANDROID) + # add a Boost Python library +-find_package(PythonInterp REQUIRED) +-find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") +- +-#Get the numpy include directory from its python module +-if(NOT PYTHON_NUMPY_INCLUDE_DIR) +- execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print(numpy.get_include())" +- RESULT_VARIABLE PYTHON_NUMPY_PROCESS +- OUTPUT_VARIABLE PYTHON_NUMPY_INCLUDE_DIR +- OUTPUT_STRIP_TRAILING_WHITESPACE) +- +- if(PYTHON_NUMPY_PROCESS EQUAL 0) +- file(TO_CMAKE_PATH "${PYTHON_NUMPY_INCLUDE_DIR}" PYTHON_NUMPY_INCLUDE_CMAKE_PATH) +- set(PYTHON_NUMPY_INCLUDE_DIR ${PYTHON_NUMPY_INCLUDE_CMAKE_PATH} CACHE PATH "Numpy include directory") +- else(PYTHON_NUMPY_PROCESS EQUAL 0) +- message(SEND_ERROR "Could not determine the NumPy include directory, verify that NumPy was installed correctly.") +- endif(PYTHON_NUMPY_PROCESS EQUAL 0) +- endif(NOT PYTHON_NUMPY_INCLUDE_DIR) +- +-include_directories(${PYTHON_INCLUDE_PATH} ${Boost_INCLUDE_DIRS} ${PYTHON_NUMPY_INCLUDE_DIR}) +- +-if (PYTHON_VERSION_MAJOR VERSION_EQUAL 3) +- add_definitions(-DPYTHON3) +-endif() ++find_package(Python COMPONENTS Interpreter Development NumPy) ++add_definitions(-DPYTHON3) + + add_library(${PROJECT_NAME}_boost module.cpp module_opencv4.cpp) ++target_include_directories(${PROJECT_NAME}_boost PUBLIC ${Python_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${Python_NumPy_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME}_boost ${Boost_LIBRARIES} + ${catkin_LIBRARIES} + ${PROJECT_NAME} + ) + + if(NOT APPLE) +- target_link_libraries(${PROJECT_NAME}_boost ${PYTHON_LIBRARIES}) ++ target_link_libraries(${PROJECT_NAME}_boost ${Python_LIBRARIES}) + endif() + + set_target_properties(${PROJECT_NAME}_boost PROPERTIES +diff --git a/src/cv_bridge.cpp b/src/cv_bridge.cpp +index 44f23a32..8de258f7 100644 +--- a/src/cv_bridge.cpp ++++ b/src/cv_bridge.cpp +@@ -33,7 +33,9 @@ + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ + +-#include "boost/endian/conversion.hpp" ++#include ++ ++#include + + #include + diff --git a/patch/ros-noetic-euslisp.patch b/patch/ros-noetic-euslisp.patch new file mode 100644 index 000000000..63193ca3a --- /dev/null +++ b/patch/ros-noetic-euslisp.patch @@ -0,0 +1,44 @@ +diff --git a/lisp/Makefile.Linux64 b/lisp/Makefile.Linux64 +index e12ed082..ce35ee40 100644 +--- a/lisp/Makefile.Linux64 ++++ b/lisp/Makefile.Linux64 +@@ -50,7 +50,7 @@ CFLAGS= $(WFLAGS) -fPIC -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION) + -DLIB6 $(ALIGN_FUNCTIONS) \ + $(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \ + -DGCC $(GCC3) \ +- -I/usr/include -I/usr/X11R6/include -I$(EUSDIR)/include ++ -I$(PREFIX)/include -I$(PREFIX)/X11R6/include -I$(EUSDIR)/include + + CC=gcc + +@@ -68,7 +68,7 @@ CC=gcc + + # Linux + RAWLIB=-ldl -lm -lpthread -lc +-XLIB= -L/usr/X11R6/lib -lX11 ++XLIB= -L$(PREFIX)/lib -lX11 + + # specify directories where euslisp's libraries are located. + EUSRPATH=-R$(ADLIBDIR) +diff --git a/lisp/Makefile.LinuxARM b/lisp/Makefile.LinuxARM +index e49262b3..b9290d8c 100644 +--- a/lisp/Makefile.LinuxARM ++++ b/lisp/Makefile.LinuxARM +@@ -72,7 +72,7 @@ CFLAGS=$(WFLAGS) -D$(MACHINE) -DLinux -DARM -D_REENTRANT -DVERSION=\"$(VERSION)\ + -DLIB6 $(ALIGN_FUNCTIONS) $(ADD_CFLAGS) \ + $(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \ + -DGCC $(GCC3) \ +- -I/usr/include -I/usr/X11R6/include -I$(EUSDIR)/include ++ -I$(PREFIX)/include -I$(PREFIX)/X11R6/include -I$(EUSDIR)/include + + # Use gcc for C-compiling on SunOS4. Sun's cc is ok on Solaris. + # /usr/ucb/cc cannot compile because of its incapability of recognizing +@@ -94,7 +94,7 @@ LD=gcc + + # Linux + RAWLIB=-ldl -lm -lpthread -lc +-XLIB= -L/usr/X11R6/lib -lX11 ++XLIB= -L$(PREFIX)/lib -lX11 + + # specify directories where euslisp's libraries are located. + EUSLIB= -Xlinker -R$(ADLIBDIR):$(EUSDIR)/lib/LinuxARM -L$(ADLIBDIR) diff --git a/patch/ros-noetic-joint-state-controller.win.patch b/patch/ros-noetic-joint-state-controller.win.patch new file mode 100644 index 000000000..d55ae48c1 --- /dev/null +++ b/patch/ros-noetic-joint-state-controller.win.patch @@ -0,0 +1,15 @@ +diff --git a/joint_state_controller/src/joint_state_controller.cpp b/joint_state_controller/src/joint_state_controller.cpp +index b204f9f3..4cca4e6b 100644 +--- a/joint_state_controller/src/joint_state_controller.cpp ++++ b/joint_state_controller/src/joint_state_controller.cpp +@@ -93,7 +93,8 @@ namespace joint_state_controller + try { + last_publish_time_ = time - ros::Duration(1.001/publish_rate_); //ensure publish on first cycle + } catch(std::runtime_error& ex) { // negative ros::Time is not allowed +- last_publish_time_ = ros::Time::MIN; ++ ++ last_publish_time_ = ros::Time(0, 1); + } + pub_time_initialized_ = true; + } + diff --git a/patch/ros-noetic-jsk-interactive-marker.patch b/patch/ros-noetic-jsk-interactive-marker.patch new file mode 100644 index 000000000..580099ddf --- /dev/null +++ b/patch/ros-noetic-jsk-interactive-marker.patch @@ -0,0 +1,24 @@ +diff --git a/src/interactive_marker_utils.cpp b/src/interactive_marker_utils.cpp +index cb709057..eb4a35d5 100644 +--- a/src/interactive_marker_utils.cpp ++++ b/src/interactive_marker_utils.cpp +@@ -2,6 +2,8 @@ + #include + #include + #include ++#include ++ + #include + #include "urdf_parser/urdf_parser.h" + +@@ -570,8 +572,8 @@ namespace im_utils { + try{ + std::string search_path = std::string(gazebo_model_path, current, found - current); + current = found + 1; +- recursive_directory_iterator iter = recursive_directory_iterator(search_path); +- recursive_directory_iterator end = recursive_directory_iterator(); ++ std::filesystem::recursive_directory_iterator iter = std::filesystem::recursive_directory_iterator(search_path); ++ std::filesystem::recursive_directory_iterator end = std::filesystem::recursive_directory_iterator(); + for (; iter != end; ++iter) { + if (is_regular_file(*iter)) { + int locate = iter->path().string().find( path, 0 ); diff --git a/patch/ros-noetic-jsk-recognition-utils.patch b/patch/ros-noetic-jsk-recognition-utils.patch index 99c25b5f3..7e0ef58b8 100644 --- a/patch/ros-noetic-jsk-recognition-utils.patch +++ b/patch/ros-noetic-jsk-recognition-utils.patch @@ -1,3 +1,65 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 55c405fd0..a53d0f349 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,7 +39,8 @@ configure_file( + # ------------------------------------------------------------------------------------ + + # download and install font data +-add_custom_target(${PROJECT_NAME}_install_font_data ALL COMMAND python$ENV{ROS_PYTHON_VERSION} ${PROJECT_SOURCE_DIR}/scripts/install_font_data.py) ++find_package (Python COMPONENTS Interpreter Development NumPy) ++add_custom_target(${PROJECT_NAME}_install_font_data ALL COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/install_font_data.py) + + catkin_python_setup() + +@@ -62,6 +63,7 @@ add_subdirectory(python/${PROJECT_NAME}) + + 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 +74,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) + +-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 +103,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 @@ -614,58 +676,6 @@ index f432c890c..0a11631e5 100644 + set(pxd_location "" CACHE INTERNAL "") +endfunction() \ No newline at end of file -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}) - - 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) - --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 - ) - -+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/python/jsk_recognition_utils/CMakeLists.txt b/python/jsk_recognition_utils/CMakeLists.txt index d3feba4f5..496ca09dc 100644 --- a/python/jsk_recognition_utils/CMakeLists.txt diff --git a/patch/ros-noetic-jsk-rviz-plugins.patch b/patch/ros-noetic-jsk-rviz-plugins.patch index f9e71dbc3..ba6ad2316 100644 --- a/patch/ros-noetic-jsk-rviz-plugins.patch +++ b/patch/ros-noetic-jsk-rviz-plugins.patch @@ -2,14 +2,14 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 310db0bd..a23f2288 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -64,12 +64,8 @@ include_directories(src ${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS}) +@@ -80,12 +80,8 @@ include_directories(src ${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS}) ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need --if(rviz_QT_VERSION VERSION_LESS "5") +-if(USE_VISUALIZATION AND rviz_QT_VERSION VERSION_LESS "5") - find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED) - include(${QT_USE_FILE}) --else() +-elseif(USE_VISUALIZATION) - find_package(Qt5Widgets REQUIRED) -endif() +find_package(Qt5 COMPONENTS Widgets REQUIRED) @@ -50,18 +50,6 @@ index 60f21549..9962aa0d 100644 #include "facing_visualizer.h" #include #include -diff --git a/src/overlay_diagnostic_display.h b/src/overlay_diagnostic_display.h -index 01cc7fc0..61fe680d 100644 ---- a/src/overlay_diagnostic_display.h -+++ b/src/overlay_diagnostic_display.h -@@ -42,6 +42,7 @@ - #include - - #include -+#include - - #include - #include diff --git a/src/overlay_utils.cpp b/src/overlay_utils.cpp index 73525c43..494e2bdf 100644 --- a/src/overlay_utils.cpp diff --git a/patch/ros-noetic-libg2o.patch b/patch/ros-noetic-libg2o.patch index 80074328a..a79468812 100644 --- a/patch/ros-noetic-libg2o.patch +++ b/patch/ros-noetic-libg2o.patch @@ -42,3 +42,16 @@ index 88d0adf..3ce0d9c 100644 # For building the GUI find_package(QGLViewer) +diff --git a/g2o/examples/sphere/create_sphere.cpp b/g2o/examples/sphere/create_sphere.cpp +index 82296da..44cc358 100644 +--- a/g2o/examples/sphere/create_sphere.cpp ++++ b/g2o/examples/sphere/create_sphere.cpp +@@ -155,7 +155,7 @@ int main (int argc, char** argv) + if (randomSeed) { + std::random_device r; + std::seed_seq seedSeq{r(), r(), r(), r(), r()}; +- vector seeds(2); ++ vector seeds(2); + seedSeq.generate(seeds.begin(), seeds.end()); + cerr << "using seeds:"; + for (size_t i = 0; i < seeds.size(); ++i) diff --git a/patch/ros-noetic-librealsense2.patch b/patch/ros-noetic-librealsense2.patch index 3912f55f8..51589add7 100644 --- a/patch/ros-noetic-librealsense2.patch +++ b/patch/ros-noetic-librealsense2.patch @@ -1,19 +1,18 @@ diff --git a/CMake/unix_config.cmake b/CMake/unix_config.cmake -index 4ec81bb..c4102dc 100644 +index 4ec81bbf..7822b692 100644 --- a/CMake/unix_config.cmake +++ b/CMake/unix_config.cmake -@@ -8,8 +8,12 @@ macro(os_set_flags) +@@ -7,9 +7,12 @@ macro(os_set_flags) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar -Wsequence-point -Wformat -Wformat-security") execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE) - if(${MACHINE} MATCHES "arm-*") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") -+ if(NOT APPLE) -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -latomic") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -latomic") -+ endif() +- if(${MACHINE} MATCHES "arm-*") ++ if(${MACHINE} MATCHES "arm-*" AND NOT APPLE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") ++ elseif(${MACHINE} MATCHES "arm-*" AND APPLE) ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftree-vectorize") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize") elseif(${MACHINE} MATCHES "aarch64-*") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstrict-align -ftree-vectorize") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstrict-align -ftree-vectorize") diff --git a/patch/ros-noetic-microstrain-inertial-driver.patch b/patch/ros-noetic-microstrain-inertial-driver.patch index e772b6637..a8f42a28e 100644 --- a/patch/ros-noetic-microstrain-inertial-driver.patch +++ b/patch/ros-noetic-microstrain-inertial-driver.patch @@ -1,16 +1,18 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9192d7f..9be8dd3 100644 +index d8338e7..21160f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -128,7 +128,6 @@ catkin_package( - include_directories(${catkin_INCLUDE_DIRS} include ${COMMON_DIR}/include) +@@ -71,7 +71,8 @@ else() + endif() # Set some general CMake flags --add_definitions(-std=c++11) - set(CMAKE_C_FLAGS "-Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-format -fno-builtin-memcpy") +-set(CMAKE_C_FLAGS "-Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-format -fno-builtin-memcpy") ++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-format -Wno-missing-template-arg-list-after-template-kw -fno-builtin-memcpy") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-format -Wno-missing-template-arg-list-after-template-kw -fno-builtin-memcpy") - set(LIB_SRC_FILES -@@ -198,11 +198,7 @@ set_source_files_properties(${COMMON_SRC_DIR}/services.cpp PROPERTIES COMPILE_OP + # Include the MIP SDK source + add_subdirectory("${MIP_SDK_DIR}" EXCLUDE_FROM_ALL) +@@ -207,11 +208,7 @@ set_source_files_properties(${COMMON_SRC_DIR}/services.cpp PROPERTIES COMPILE_OP add_definitions(-DMICROSTRAIN_DRIVER_VERSION="${DRIVER_GIT_VERSION}") # Let the code know if it is being compiled with ROS1 or ROS2 @@ -23,12 +25,11 @@ index 9192d7f..9be8dd3 100644 # Allow the MSCL include directory to be accessed include_directories(${MSCL_INC_PATH} ${BOOST_INC_PATH}) - diff --git a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h -index cc87fb6..9a79e3c 100644 +index b6fe468..dca949e 100644 --- a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h +++ b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h -@@ -565,7 +565,7 @@ template +@@ -501,7 +501,7 @@ template RosTimerType createTimer(RosNodeType* node, double hz, void (ClassType::*fp)(), ClassType* obj) { return std::make_shared<::ros::Timer>( diff --git a/patch/ros-noetic-moveit-core.patch b/patch/ros-noetic-moveit-core.patch new file mode 100644 index 000000000..b75b043aa --- /dev/null +++ b/patch/ros-noetic-moveit-core.patch @@ -0,0 +1,76 @@ +diff --git a/collision_detection/include/moveit/collision_detection/collision_common.h b/collision_detection/include/moveit/collision_detection/collision_common.h +index 7ff4596bf..32d04be20 100644 +--- a/collision_detection/include/moveit/collision_detection/collision_common.h ++++ b/collision_detection/include/moveit/collision_detection/collision_common.h +@@ -324,18 +324,46 @@ using DistanceMap = std::map, std::vec + /** \brief Result of a distance request. */ + struct DistanceResult + { +- DistanceResult() : collision(false) ++ DistanceResult() : collision(false) {} ++ ++ /// Copy constructor ++ DistanceResult(const DistanceResult& other) ++ : collision(other.collision), ++ minimum_distance(other.minimum_distance), ++ distances(other.distances) {} ++ ++ /// Move constructor ++ DistanceResult(DistanceResult&& other) noexcept ++ : collision(other.collision), ++ minimum_distance(std::move(other.minimum_distance)), ++ distances(std::move(other.distances)) {} ++ ++ /// Copy assignment operator ++ DistanceResult& operator=(const DistanceResult& other) + { ++ if (this != &other) ++ { ++ collision = other.collision; ++ minimum_distance = other.minimum_distance; ++ ++ // Clear and copy distances map ++ distances.clear(); ++ distances.insert(other.distances.begin(), other.distances.end()); ++ } ++ return *this; + } + +- /// Indicates if two objects were in collision +- bool collision; +- +- /// ResultsData for the two objects with the minimum distance +- DistanceResultsData minimum_distance; +- +- /// A map of distance data for each link in the req.active_components_only +- DistanceMap distances; ++ /// Move assignment operator ++ DistanceResult& operator=(DistanceResult&& other) noexcept ++ { ++ if (this != &other) ++ { ++ collision = other.collision; ++ minimum_distance = std::move(other.minimum_distance); ++ distances = std::move(other.distances); // Move map contents ++ } ++ return *this; ++ } + + /// Clear structure data + void clear() +@@ -344,6 +372,15 @@ struct DistanceResult + minimum_distance.clear(); + distances.clear(); + } ++ ++ /// Indicates if two objects were in collision ++ bool collision; ++ ++ /// Results data for the two objects with the minimum distance ++ DistanceResultsData minimum_distance; ++ ++ /// A map of distance data for each link in the req.active_components_only ++ DistanceMap distances; + }; + + /** \brief Representation of a collision checking result */ diff --git a/patch/ros-noetic-moveit-ros-planning.win.patch b/patch/ros-noetic-moveit-ros-planning.win.patch index f9242d106..e900228ea 100644 --- a/patch/ros-noetic-moveit-ros-planning.win.patch +++ b/patch/ros-noetic-moveit-ros-planning.win.patch @@ -144,16 +144,3 @@ 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-mrt-cmake-modules.patch b/patch/ros-noetic-mrt-cmake-modules.patch deleted file mode 100644 index c56406a0a..000000000 --- a/patch/ros-noetic-mrt-cmake-modules.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b27f1a064037e04dc98512f7ffcbfe54905130fa Mon Sep 17 00:00:00 2001 -From: Silvio Traversaro -Date: Sat, 20 Apr 2024 14:48:36 +0200 -Subject: [PATCH] FindGeographicLib: Fix for GeographicLib 2.* and Windows - -Since GeographicLib version 2, the library name changed from `libGeographic.so` to `libGeographicLib.so`, see https://github.com/geographiclib/geographiclib/blob/5e4425da84a46eb70e59656d71b4c99732a570ec/NEWS#L208 . - -To ensure that GeographicLib 2.* is found correcty, I think we should add also `GeographicLib` to the names used by `find_library`. - -Furthermore, on Windows the import library is called `GeographicLib-i.lib` (see https://github.com/geographiclib/geographiclib/blob/v2.3/src/CMakeLists.txt#L119), so to find the library correctly on Windows we also look for GeographicLib-i . ---- - cmake/Modules/FindGeographicLib.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/Modules/FindGeographicLib.cmake b/cmake/Modules/FindGeographicLib.cmake -index 63dfe30..a5598d5 100644 ---- a/cmake/Modules/FindGeographicLib.cmake -+++ b/cmake/Modules/FindGeographicLib.cmake -@@ -10,7 +10,7 @@ find_package(PkgConfig) - find_path(GeographicLib_INCLUDE_DIR GeographicLib/Config.h PATH_SUFFIXES GeographicLib) - set(GeographicLib_INCLUDE_DIRS ${GeographicLib_INCLUDE_DIR}) - --find_library(GeographicLib_LIBRARIES NAMES Geographic) -+find_library(GeographicLib_LIBRARIES NAMES Geographic GeographicLib GeographicLib-i) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(GeographicLib DEFAULT_MSG GeographicLib_LIBRARIES GeographicLib_INCLUDE_DIRS) diff --git a/patch/ros-noetic-octomap-server.patch b/patch/ros-noetic-octomap-server.patch deleted file mode 100644 index c6c02979c..000000000 --- a/patch/ros-noetic-octomap-server.patch +++ /dev/null @@ -1,13 +0,0 @@ -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-octomap.patch b/patch/ros-noetic-octomap.patch index b9ed45bec..7d9ab6f0d 100644 --- a/patch/ros-noetic-octomap.patch +++ b/patch/ros-noetic-octomap.patch @@ -153,3 +153,16 @@ index eae2876d..5dc1d952 100644 + + SET_TESTS_PROPERTIES (ReadGraph PROPERTIES DEPENDS InsertScan) endif() +diff --git a/include/octomap/OcTreeBase.h b/include/octomap/OcTreeBase.h +index d53b4056..ce56da52 100644 +--- a/include/octomap/OcTreeBase.h ++++ b/include/octomap/OcTreeBase.h +@@ -43,7 +43,7 @@ namespace octomap { + template + class OcTreeBase : public OcTreeBaseImpl { + public: +- OcTreeBase(double res) : OcTreeBaseImpl(res) {}; ++ OcTreeBase(double res) : OcTreeBaseImpl(res) {}; + + /// virtual constructor: creates a new object of same type + /// (Covariant return type requires an up-to-date compiler) diff --git a/patch/ros-noetic-openslam-gmapping.win.patch b/patch/ros-noetic-openslam-gmapping.win.patch new file mode 100644 index 000000000..4cccf3b70 --- /dev/null +++ b/patch/ros-noetic-openslam-gmapping.win.patch @@ -0,0 +1,7 @@ +diff --git a/utils/stat.cpp b/utils/stat.cpp +index 30536c4..d99056b 100644 +--- a/utils/stat.cpp ++++ b/utils/stat.cpp +@@ -7,1 +7,1 @@ +-#include ++#include diff --git a/patch/ros-noetic-plotjuggler.patch b/patch/ros-noetic-plotjuggler.patch index 50d89a4b5..d95a9b073 100644 --- a/patch/ros-noetic-plotjuggler.patch +++ b/patch/ros-noetic-plotjuggler.patch @@ -1,73 +1,487 @@ -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) - - 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 - ) +diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake +new file mode 100644 +index 00000000..a2e2757a +--- /dev/null ++++ b/cmake/FindXCB.cmake +@@ -0,0 +1,51 @@ ++# - FindXCB ++# ++# Copyright 2015 Valve Coporation ++ ++find_package(PkgConfig) ++ ++if(NOT XCB_FIND_COMPONENTS) ++ set(XCB_FIND_COMPONENTS xcb) ++endif() ++ ++include(FindPackageHandleStandardArgs) ++set(XCB_FOUND true) ++set(XCB_INCLUDE_DIRS "") ++set(XCB_LIBRARIES "") ++foreach(comp ${XCB_FIND_COMPONENTS}) ++ # component name ++ string(TOUPPER ${comp} compname) ++ string(REPLACE "-" "_" compname ${compname}) ++ # header name ++ string(REPLACE "xcb-" "" headername xcb/${comp}.h) ++ # library name ++ set(libname ${comp}) ++ ++ pkg_check_modules(PC_${comp} QUIET ${comp}) ++ ++ find_path(${compname}_INCLUDE_DIR NAMES ${headername} ++ HINTS ++ ${PC_${comp}_INCLUDEDIR} ++ ${PC_${comp}_INCLUDE_DIRS} ++ ) ++ ++ find_library(${compname}_LIBRARY NAMES ${libname} ++ HINTS ++ ${PC_${comp}_LIBDIR} ++ ${PC_${comp}_LIBRARY_DIRS} ++ ) ++ ++ find_package_handle_standard_args(${comp} ++ FOUND_VAR ${comp}_FOUND ++ REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ ++ list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) ++ list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) ++ ++ if(NOT ${comp}_FOUND) ++ set(XCB_FOUND false) ++ endif() ++endforeach() ++ ++list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) +diff --git a/3rdparty/nlohmann/json.hpp b/3rdparty/nlohmann/json.hpp +index cb27e058..cecdb1fd 100644 +--- a/3rdparty/nlohmann/json.hpp ++++ b/3rdparty/nlohmann/json.hpp +@@ -3198,6 +3198,7 @@ template struct identity_tag {}; + #include // false_type, is_constructible, is_integral, is_same, true_type + #include // declval + #include // tuple ++#include // char_traits + + // #include + +@@ -3261,6 +3262,7 @@ struct iterator_traits::value>> + + + // #include ++// #include + + + namespace nlohmann +@@ -3272,6 +3274,7 @@ NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + + + // #include ++// #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..f384e3f1 100644 ---- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt -+++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt -@@ -4,6 +4,8 @@ project(QtADS LANGUAGES CXX) - include_directories(include/Qads) + namespace nlohmann +@@ -3482,6 +3485,63 @@ struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> + }; -+find_package(XCB REQUIRED) + ++///////////////// ++// char_traits // ++///////////////// ++ ++// Primary template of char_traits calls std char_traits ++template ++struct char_traits : std::char_traits ++{}; ++ ++// Explicitly define char traits for unsigned char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = unsigned char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; + - 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 +69,8 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets ++// Explicitly define char traits for signed char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = signed char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; ++ + /////////////////// + // is_ functions // + /////////////////// +@@ -5342,16 +5402,16 @@ class iterator_input_adapter + : current(std::move(first)), end(std::move(last)) + {} + +- typename std::char_traits::int_type get_character() ++ typename char_traits::int_type get_character() + { + if (JSON_HEDLEY_LIKELY(current != end)) + { +- auto result = std::char_traits::to_int_type(*current); ++ auto result = char_traits::to_int_type(*current); + std::advance(current, 1); + return result; + } + +- return std::char_traits::eof(); ++ return char_traits::eof(); + } + + private: +@@ -6517,7 +6577,7 @@ class lexer : public lexer_base + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + using token_type = typename lexer_base::token_type; +@@ -6667,7 +6727,7 @@ class lexer : public lexer_base + switch (get()) + { + // end of file while parsing string +- case std::char_traits::eof(): ++ case char_traits::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; +@@ -7256,7 +7316,7 @@ class lexer : public lexer_base + { + case '\n': + case '\r': +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + return true; + +@@ -7273,7 +7333,7 @@ class lexer : public lexer_base + { + switch (get()) + { +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + { + error_message = "invalid comment; missing closing '*/'"; +@@ -7702,10 +7762,10 @@ scan_number_done: + token_type scan_literal(const char_type* literal_text, const std::size_t length, + token_type return_type) + { +- JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); ++ JSON_ASSERT(char_traits::to_char_type(current) == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { +- if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) ++ if (JSON_HEDLEY_UNLIKELY(char_traits::to_char_type(get()) != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; +@@ -7723,7 +7783,7 @@ scan_number_done: + { + token_buffer.clear(); + token_string.clear(); +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + /* +@@ -7731,7 +7791,7 @@ scan_number_done: + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a +- `std::char_traits::eof()` in that case. Stores the scanned characters ++ `char_traits::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input +@@ -7751,9 +7811,9 @@ scan_number_done: + current = ia.get_character(); + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + if (current == '\n') +@@ -7792,7 +7852,7 @@ scan_number_done: + --position.chars_read_current_line; + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { + JSON_ASSERT(!token_string.empty()); + token_string.pop_back(); +@@ -7986,7 +8046,7 @@ scan_number_done: + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': +- case std::char_traits::eof(): ++ case char_traits::eof(): + return token_type::end_of_input; + + // error +@@ -8004,7 +8064,7 @@ scan_number_done: + const bool ignore_comments = false; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; +@@ -8235,7 +8295,7 @@ class binary_reader + using binary_t = typename BasicJsonType::binary_t; + using json_sax_t = SAX; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + /*! +@@ -8307,7 +8367,7 @@ class binary_reader + get(); + } + +- if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current != char_traits::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"), BasicJsonType())); +@@ -8389,7 +8449,7 @@ class binary_reader + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"), BasicJsonType())); + } + +- return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); ++ return get_string(input_format_t::bson, len - static_cast(1), result) && get() != char_traits::eof(); + } + + /*! +@@ -8580,7 +8640,7 @@ class binary_reader + switch (get_char ? get() : current) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) +@@ -9350,7 +9410,7 @@ class binary_reader + switch (get()) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint +@@ -10172,7 +10232,7 @@ class binary_reader + { + switch (prefix) + { +- case std::char_traits::eof(): // EOF ++ case char_traits::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true +@@ -10478,7 +10538,7 @@ class binary_reader + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued +- `std::char_traits::eof()` in that case. ++ `char_traits::eof()` in that case. + + @return character read from the input + */ +@@ -10618,7 +10678,7 @@ class binary_reader + JSON_HEDLEY_NON_NULL(3) + bool unexpect_eof(const input_format_t format, const char* context) const + { +- if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current == char_traits::eof())) + { + return sax->parse_error(chars_read, "", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), BasicJsonType())); +@@ -10679,7 +10739,7 @@ class binary_reader + InputAdapterType ia; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// the number of characters read + std::size_t chars_read = 0; +@@ -16102,8 +16162,8 @@ class serializer + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) +- , thousands_sep(loc->thousands_sep == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->thousands_sep))) +- , decimal_point(loc->decimal_point == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->decimal_point))) ++ , thousands_sep(loc->thousands_sep == nullptr ? '\0' : char_traits::to_char_type(* (loc->thousands_sep))) ++ , decimal_point(loc->decimal_point == nullptr ? '\0' : char_traits::to_char_type(* (loc->decimal_point))) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +index 761e0b73..b7ce4129 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +@@ -2,38 +2,38 @@ + #include + #include + +-void FileErrorCollector::AddError(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("File: [%1] Line: [%2] Message: %3\n\n") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + + _errors.push_back(msg); + } + +-void FileErrorCollector::AddWarning(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("Warning [%1] line %2: %3") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + qDebug() << msg; + } + +-void IoErrorCollector::AddError(int line, google::protobuf::io::ColumnNumber, +- const std::string& message) ++void IoErrorCollector::RecordError(int line, google::protobuf::io::ColumnNumber, ++ const absl::string_view message) + { + _errors.push_back( +- QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(message))); ++ QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(std::string(message)))); + } + +-void IoErrorCollector::AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) ++void IoErrorCollector::RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) + { + qDebug() << QString("Line: [%1] Message: %2\n") + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + } +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.h b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +index f70a881f..7afe1fea 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.h ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +@@ -3,17 +3,18 @@ + + #include + #include ++#include + + #include + + class IoErrorCollector : public google::protobuf::io::ErrorCollector + { + public: +- void AddError(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordError(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + +- void AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + + const QStringList& errors() + { +@@ -27,11 +28,11 @@ private: + class FileErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector + { + public: +- void AddError(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + +- void AddWarning(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + + const QStringList& errors() + { +diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +index 6b650f1b..82c58edb 100644 +--- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt ++++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +@@ -67,7 +67,9 @@ 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 PUBLIC ${XCB_LIBRARIES}) ++ find_package(XCB REQUIRED) ++ target_link_libraries(qt_advanced_docking PRIVATE ${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 +index ad3dc012..a3da197b 100644 --- a/3rdparty/lua-5.4.3/CMakeLists.txt +++ b/3rdparty/lua-5.4.3/CMakeLists.txt @@ -1,3 +1,5 @@ @@ -83,9 +497,9 @@ index 6f682a3e6..676feecb1 100644 -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 + if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") + add_compile_options(-fPIC) +@@ -42,7 +44,7 @@ add_library(lua_static STATIC ${LUA_LIB_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/src/lua.c ) @@ -94,7 +508,7 @@ index 6f682a3e6..676feecb1 100644 add_library(lua_objects OBJECT ${LUA_LIB_SRCS}) -@@ -53,3 +55,11 @@ if(EMSCRIPTEN) +@@ -55,3 +57,11 @@ if(EMSCRIPTEN) endif() target_compile_definitions(lua_static PUBLIC ${LUA_DEFINITIONS}) @@ -107,10 +521,35 @@ index 6f682a3e6..676feecb1 100644 + RUNTIME DESTINATION bin + INCLUDES DESTINATION include ) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0c12d11a..37e5db3c 100644 +index 16477dd3..859f7320 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -123,11 +123,9 @@ find_package(Qt5 REQUIRED COMPONENTS +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.10.2) ++cmake_minimum_required(VERSION 3.20) + + PROJECT(plotjuggler LANGUAGES C CXX VERSION 3.9.1) + +@@ -94,18 +94,6 @@ if (NOT WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer") + endif() + +-if(APPLE AND EXISTS /usr/local/opt/qt5) +- # Homebrew installs Qt5 (up to at least 5.9.1) in +- # /usr/local/qt5, ensure it can be found by CMake since +- # it is not in the default /usr/local prefix. +- # source: https://github.com/Homebrew/homebrew-core/issues/8392#issuecomment-325226494 +- list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5") +- set(CMAKE_MACOSX_RPATH 1) +-elseif(APPLE AND EXISTS /opt/homebrew/opt/qt@5) +- list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt@5") +- set(CMAKE_MACOSX_RPATH 1) +-endif() +- + find_package(Qt5 REQUIRED COMPONENTS + Core + Widgets +@@ -120,11 +108,9 @@ find_package(Qt5 REQUIRED COMPONENTS set( QT_LINK_LIBRARIES Qt5::Core Qt5::Widgets @@ -122,7 +561,7 @@ index 0c12d11a..37e5db3c 100644 Qt5::WebSockets ) -@@ -193,7 +191,7 @@ if (BASE_AS_SHARED) +@@ -191,7 +177,7 @@ if (BASE_AS_SHARED) ${PLOTJUGGLER_BASE_SRC} ${PLOTJUGGLER_BASE_MOCS} ) @@ -131,7 +570,7 @@ index 0c12d11a..37e5db3c 100644 else() add_library(plotjuggler_base STATIC ${PLOTJUGGLER_BASE_SRC} -@@ -201,13 +199,6 @@ else() +@@ -199,13 +185,6 @@ else() ) endif() @@ -145,86 +584,23 @@ index 0c12d11a..37e5db3c 100644 ######################### 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 ---- /dev/null -+++ b/cmake/FindXCB.cmake -@@ -0,0 +1,51 @@ -+# - FindXCB -+# -+# Copyright 2015 Valve Coporation -+ -+find_package(PkgConfig) -+ -+if(NOT XCB_FIND_COMPONENTS) -+ set(XCB_FIND_COMPONENTS xcb) -+endif() -+ -+include(FindPackageHandleStandardArgs) -+set(XCB_FOUND true) -+set(XCB_INCLUDE_DIRS "") -+set(XCB_LIBRARIES "") -+foreach(comp ${XCB_FIND_COMPONENTS}) -+ # component name -+ string(TOUPPER ${comp} compname) -+ string(REPLACE "-" "_" compname ${compname}) -+ # header name -+ string(REPLACE "xcb-" "" headername xcb/${comp}.h) -+ # library name -+ set(libname ${comp}) -+ -+ pkg_check_modules(PC_${comp} QUIET ${comp}) -+ -+ find_path(${compname}_INCLUDE_DIR NAMES ${headername} -+ HINTS -+ ${PC_${comp}_INCLUDEDIR} -+ ${PC_${comp}_INCLUDE_DIRS} -+ ) -+ -+ find_library(${compname}_LIBRARY NAMES ${libname} -+ HINTS -+ ${PC_${comp}_LIBDIR} -+ ${PC_${comp}_LIBRARY_DIRS} -+ ) -+ -+ find_package_handle_standard_args(${comp} -+ FOUND_VAR ${comp}_FOUND -+ REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) -+ mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) -+ -+ list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) -+ list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) -+ -+ if(NOT ${comp}_FOUND) -+ set(XCB_FOUND false) -+ endif() -+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 +index f399fdad..4c89c787 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") +@@ -1,13 +1,6 @@ +-if(BUILDING_WITH_CONAN) +- message(STATUS "Finding Protobuf 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() +-endif() ++set(Protobuf_LIBS protobuf::libprotobuf) + +-find_package(Protobuf QUIET) ++find_package(Protobuf QUIET CONFIG) + + if( Protobuf_FOUND) - find_package(Protobuf QUIET) diff --git a/patch/ros-noetic-plotjuggler.unix.patch b/patch/ros-noetic-plotjuggler.unix.patch new file mode 100644 index 000000000..85524b2e8 --- /dev/null +++ b/patch/ros-noetic-plotjuggler.unix.patch @@ -0,0 +1,20 @@ +diff --git a/3rdparty/sol/sol.hpp b/3rdparty/sol/sol.hpp +index 0bb68ebe..20855338 100644 +--- a/3rdparty/sol/sol.hpp ++++ b/3rdparty/sol/sol.hpp +@@ -6747,12 +6747,9 @@ namespace sol { + /// one. + /// + /// \group emplace +- template +- T& emplace(Args&&... args) noexcept { +- static_assert(std::is_constructible::value, "T must be constructible with Args"); +- +- *this = nullopt; +- this->construct(std::forward(args)...); ++ T& emplace(T& arg) noexcept { ++ m_value = &arg; ++ return **this; + } + + /// Swaps this optional with the other. diff --git a/patch/ros-noetic-plotjuggler.win.patch b/patch/ros-noetic-plotjuggler.win.patch new file mode 100644 index 000000000..359edbb1b --- /dev/null +++ b/patch/ros-noetic-plotjuggler.win.patch @@ -0,0 +1,20 @@ +diff --git a/3rdparty/sol/sol.hpp b/3rdparty/sol/sol.hpp +index 0bb68ebe..20855338 100644 +--- a/3rdparty/sol/sol.hpp ++++ b/3rdparty/sol/sol.hpp +@@ -6747,12 +6747,9 @@ namespace sol { + /// one. + /// + /// \group emplace +- template +- T& emplace(Args&&... args) noexcept { +- static_assert(std::is_constructible::value, "T must be constructible with Args"); +- +- *this = nullopt; +- this->construct(std::forward(args)...); ++ T& emplace(T& arg) noexcept { ++ m_value = &arg; ++ return **this; + } + + /// Swaps this optional with the other. diff --git a/patch/ros-noetic-pybind11-catkin.patch b/patch/ros-noetic-pybind11-catkin.patch index d11fb4010..cc433e7ad 100644 --- a/patch/ros-noetic-pybind11-catkin.patch +++ b/patch/ros-noetic-pybind11-catkin.patch @@ -11,4 +11,4 @@ index 5b63626..03d9fe8 100644 - INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR= install ) - # Copy cmake/pybind11 and include/pybind11 to corresponding devel space folders \ No newline at end of file + # Copy cmake/pybind11 and include/pybind11 to corresponding devel space folders diff --git a/patch/ros-noetic-python-qt-binding.patch b/patch/ros-noetic-python-qt-binding.patch index b3fbaaa96..e802bbd43 100644 --- a/patch/ros-noetic-python-qt-binding.patch +++ b/patch/ros-noetic-python-qt-binding.patch @@ -57,7 +57,7 @@ index 0000000..9353bab +[tool.sip.project] +sip-files-dir = "@SIP_FILES_DIR@" +build-dir = "@SIP_BUILD_DIR@" -+ ++verbose = true +# Specify the PEP 566 metadata for the project. +[tool.sip.metadata] +name = "lib@PROJECT_NAME@" @@ -165,13 +165,13 @@ index a055cf5..8f32039 100644 + endif() + endforeach() + string(REGEX REPLACE "^," "" SIP_LIBARIES ${SIP_LIBARIES}) -+ # message(WARNING "test SIP_LIBARIES: ${SIP_LIBARIES}") ++ message(WARNING "test SIP_LIBARIES: ${SIP_LIBARIES}") + foreach(_x ${LIBRARY_DIRS}) + set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x}\"") + endforeach() + string(REGEX REPLACE "^," "" SIP_LIBRARY_DIRS ${SIP_LIBRARY_DIRS}) + -+ # message(WARNING "test lib dir: ${SIP_LIBRARY_DIRS}") ++ message(WARNING "test lib dir: ${SIP_LIBRARY_DIRS}") + # TODO: + # I don't know what to do about LDFLAGS_OTHER + # what's the equivalent construct in sip5? @@ -182,7 +182,7 @@ index a055cf5..8f32039 100644 + ) + add_custom_command( + OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} -+ COMMAND ${PYTHON_EXECUTABLE} -m pip install . --target ${sip_LIBRARY_DIR} --no-deps --verbose --upgrade ++ COMMAND ${PYTHON_EXECUTABLE} -m pip install . --target ${sip_LIBRARY_DIR} --no-deps -vvv --upgrade + DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} + WORKING_DIRECTORY ${sip_BINARY_DIR}/sip + COMMENT "Running SIP-build generator for ${PROJECT_NAME} Python bindings..." diff --git a/patch/ros-noetic-random-numbers.patch b/patch/ros-noetic-random-numbers.patch deleted file mode 100644 index fe9bf50d6..000000000 --- a/patch/ros-noetic-random-numbers.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d23bb19..454a378 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -18,9 +18,12 @@ add_library(${PROJECT_NAME} - - target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES}) - -+set_target_properties(${PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) -+ - install(TARGETS ${PROJECT_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}) - - install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) diff --git a/patch/ros-noetic-realtime-tools.patch b/patch/ros-noetic-realtime-tools.patch deleted file mode 100644 index 685a082a6..000000000 --- a/patch/ros-noetic-realtime-tools.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f3d6ff3c30285d5d78953b5d9bf1f93f756beedc Mon Sep 17 00:00:00 2001 -From: Matt Reynolds -Date: Sun, 5 Apr 2020 14:20:47 -0400 -Subject: [PATCH] Add missing #include - ---- - include/realtime_tools/realtime_publisher.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/include/realtime_tools/realtime_publisher.h b/include/realtime_tools/realtime_publisher.h -index ceb0194..7fd9ea6 100644 ---- a/include/realtime_tools/realtime_publisher.h -+++ b/include/realtime_tools/realtime_publisher.h -@@ -38,12 +38,14 @@ - #ifndef REALTIME_TOOLS__REALTIME_PUBLISHER_H_ - #define REALTIME_TOOLS__REALTIME_PUBLISHER_H_ - --#include - #include -+ -+#include - #include - #include - #include - #include -+#include - #include - - namespace realtime_tools { - diff --git a/patch/ros-noetic-robot-localization.patch b/patch/ros-noetic-robot-localization.patch index 42fea44f3..d04ead646 100644 --- a/patch/ros-noetic-robot-localization.patch +++ b/patch/ros-noetic-robot-localization.patch @@ -2,10 +2,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index cc7f334..bb20912 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -49,9 +49,6 @@ if(NOT EIGEN3_FOUND) - set(EIGEN_PACKAGE Eigen) - endif() - +@@ -52,6 +52,3 @@ if(NOT EIGEN3_FOUND) -if(NOT MSVC) - set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Werror") -endif() diff --git a/patch/ros-noetic-robot-localization.win.patch b/patch/ros-noetic-robot-localization.win.patch index da6fa40c3..337a41067 100644 --- a/patch/ros-noetic-robot-localization.win.patch +++ b/patch/ros-noetic-robot-localization.win.patch @@ -10,12 +10,8 @@ index cc7f3341..eac0a60f 100644 ) ########### -@@ -128,8 +127,6 @@ include_directories( - ${EIGEN3_INCLUDE_DIRS} - ${YAML_CPP_INCLUDE_DIRS}) - +@@ -131,4 +130,2 @@ include_directories( -link_directories(${YAML_CPP_LIBRARY_DIRS}) - # Library definitions add_library(filter_utilities src/filter_utilities.cpp) - add_library(filter_base src/filter_base.cpp) \ No newline at end of file diff --git a/patch/ros-noetic-rosbag-storage.patch b/patch/ros-noetic-rosbag-storage.patch new file mode 100644 index 000000000..38838baa5 --- /dev/null +++ b/patch/ros-noetic-rosbag-storage.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 82532b91f4..61a0448e41 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,7 +27,7 @@ add_definitions(${BZIP2_DEFINITIONS}) + + set(AES_ENCRYPT_SOURCE "") + set(AES_ENCRYPT_LIBRARIES "") +-if(NOT WIN32) ++if(NOT WIN32 AND NOT APPLE) + set(AES_ENCRYPT_SOURCE "src/aes_encryptor.cpp" "src/gpgme_utils.cpp") + find_library(GPGME_LIBRARY + NAMES "gpgme" diff --git a/patch/ros-noetic-rosfmt.patch b/patch/ros-noetic-rosfmt.patch index fd9f550f0..57eb2ccaa 100644 --- a/patch/ros-noetic-rosfmt.patch +++ b/patch/ros-noetic-rosfmt.patch @@ -91,3 +91,16 @@ index 87b8d9b..df90eb9 100644 install( DIRECTORY include/rosfmt/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +diff --git a/include/rosfmt/rosfmt.h b/include/rosfmt/rosfmt.h +index 155df18..36f82ea 100644 +--- a/include/rosfmt/rosfmt.h ++++ b/include/rosfmt/rosfmt.h +@@ -31,7 +31,7 @@ std::string vformat(fmt::string_view format_str, fmt::format_args args); + template + std::string format(const std::string& formatString, const Args& ... args) + { +- fmt::format_arg_store as{args...}; ++ auto as = fmt::make_format_args(args...); + return rosfmt::vformat(formatString, as); + } + diff --git a/patch/ros-noetic-rosmon-core.patch b/patch/ros-noetic-rosmon-core.patch index c19a29d13..cd39e1a6d 100644 --- a/patch/ros-noetic-rosmon-core.patch +++ b/patch/ros-noetic-rosmon-core.patch @@ -68,3 +68,31 @@ index 881339c..9d9fb5f 100644 #include #include #include +diff --git a/src/main.cpp b/src/main.cpp +index ae0e733..3422d76 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -45,7 +45,7 @@ static fs::path findFile(const fs::path& base, const std::string& name) + if(!p.empty()) + return p; + } +- else if(it->path().leaf() == name) ++ else if(it->path().filename() == name) + return *it; + } + +@@ -373,12 +373,12 @@ int main(int argc, char** argv) + // Try systemd journal first + try + { +- logger.reset(new rosmon::SystemdLogger(fs::basename(launchFilePath))); ++ logger.reset(new rosmon::SystemdLogger(fs::path(launchFilePath).stem().string())); + } + catch(rosmon::SystemdLogger::NotAvailable& e) + { + fmt::print(stderr, "Systemd Journal not available: {}\n", e.what()); +- logger.reset(new rosmon::SyslogLogger(fs::basename(launchFilePath))); ++ logger.reset(new rosmon::SyslogLogger(fs::path(launchFilePath).stem().string())); + } + } + else diff --git a/patch/ros-noetic-rtabmap-conversions.patch b/patch/ros-noetic-rtabmap-conversions.patch index 35cb68b8f..569a36a7b 100644 --- a/patch/ros-noetic-rtabmap-conversions.patch +++ b/patch/ros-noetic-rtabmap-conversions.patch @@ -6,7 +6,7 @@ index adbc48dd..455a72b1 100644 cmake_minimum_required(VERSION 3.5) project(rtabmap_conversions) -+set(CMAKE_MODULE_PATH "$ENV{PREFIX}/lib/cmake/vtk-9.2") ++set(CMAKE_MODULE_PATH "$ENV{PREFIX}/lib/cmake/vtk-9.3") +find_package(jsoncpp REQUIRED) +find_package(libxml2 REQUIRED) +find_package(NetCDF REQUIRED) diff --git a/patch/ros-noetic-rtabmap-rviz-plugins.patch b/patch/ros-noetic-rtabmap-rviz-plugins.patch new file mode 100644 index 000000000..086d41310 --- /dev/null +++ b/patch/ros-noetic-rtabmap-rviz-plugins.patch @@ -0,0 +1,96 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a32c45fd6..41fe32c1e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,17 +1,16 @@ +-cmake_minimum_required(VERSION 3.5) ++cmake_minimum_required(VERSION 3.20) + project(rtabmap_rviz_plugins) + +-# For rviz plugins, look for Qt5 before Qt4 +-FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui QUIET) +-IF(NOT Qt5_FOUND) +- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui REQUIRED) +- INCLUDE(${QT_USE_FILE}) +-ENDIF(NOT Qt5_FOUND) +- ++FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui REQUIRED) + + find_package(catkin REQUIRED COMPONENTS + roscpp sensor_msgs std_msgs pcl_conversions pluginlib rviz tf rtabmap_conversions rtabmap_msgs) + ++## We also use Ogre for rviz plugins ++# this file doesn't exist post-noetic, but pkg_check_modules still works ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(OGRE OGRE) ++ + catkin_package( + INCLUDE_DIRS include + LIBRARIES rtabmap_rviz_plugins +@@ -24,14 +23,16 @@ catkin_package( + + include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/include ++ ${Qt5_INCLUDE_DIRS} ++ ${Qt5Core_INCLUDE_DIRS} ++ ${Qt5Widgets_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} ++ ${OGRE_INCLUDE_DIRS} ++ # ${Qt5_INCLUDE_DIRS} ++ # ${Qt5Core_INCLUDE_DIRS} ++ # ${Qt5Widgets_INCLUDE_DIRS} + ) + +-## We also use Ogre for rviz plugins +-# this file doesn't exist post-noetic, but pkg_check_modules still works +-find_package(PkgConfig REQUIRED) +-pkg_check_modules(OGRE OGRE) +-include_directories( ${OGRE_INCLUDE_DIRS} ) + link_directories( ${OGRE_LIBRARY_DIRS} ) + + SET(Libraries +@@ -40,22 +38,6 @@ SET(Libraries + ) + + ## RVIZ plugin +-IF(QT4_FOUND) +- IF(WIN32) +- qt4_wrap_cpp(MOC_FILES +- include/${PROJECT_NAME}/MapCloudDisplay.h +- include/${PROJECT_NAME}/MapGraphDisplay.h +- include/${PROJECT_NAME}/InfoDisplay.h +- ) +- ELSE() +- qt4_wrap_cpp(MOC_FILES +- include/${PROJECT_NAME}/MapCloudDisplay.h +- include/${PROJECT_NAME}/MapGraphDisplay.h +- include/${PROJECT_NAME}/InfoDisplay.h +- include/${PROJECT_NAME}/OrbitOrientedViewController.h +- ) +- ENDIF() +-ELSE() + IF(WIN32) + qt5_wrap_cpp(MOC_FILES + include/${PROJECT_NAME}/MapCloudDisplay.h +@@ -70,7 +52,6 @@ ELSE() + include/${PROJECT_NAME}/OrbitOrientedViewController.h + ) + ENDIF() +-ENDIF() + + # tf:message_filters, mixing boost and Qt signals + IF(WIN32) +@@ -101,10 +82,10 @@ add_library(rtabmap_rviz_plugins + ) + target_link_libraries(rtabmap_rviz_plugins + ${Libraries} ++ Qt5::Core ++ Qt5::Widgets ++ Qt5::Gui + ) +-IF(Qt5_FOUND) +- QT5_USE_MODULES(rtabmap_rviz_plugins Widgets Core Gui) +-ENDIF(Qt5_FOUND) + + ############# + ## Install ## diff --git a/patch/ros-noetic-rtabmap.patch b/patch/ros-noetic-rtabmap.patch index 72ee91369..9d9292d4d 100644 --- a/patch/ros-noetic-rtabmap.patch +++ b/patch/ros-noetic-rtabmap.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8658bcc5..2de825c9 100644 +index b42fbf41..534df4f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,14 +83,6 @@ IF(MINGW) @@ -33,35 +33,34 @@ index 8658bcc5..2de825c9 100644 +option(WITH_PYTHON "Include Python3 support (PyMatcher, PyDetector)" ON) 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) -@@ -375,6 +367,8 @@ IF(WITH_QT) + option(WITH_LIBLAS "Include libLAS support" OFF) +@@ -339,9 +331,9 @@ IF(WITH_QT) + IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND) + # For VCPKG build, set those global variables to off, + # we will enable them for jsut specific targets +- set(CMAKE_AUTOMOC OFF) +- set(CMAKE_AUTORCC OFF) +- set(CMAKE_AUTOUIC OFF) ++ set(CMAKE_AUTOMOC ON) ++ set(CMAKE_AUTORCC ON) ++ set(CMAKE_AUTOUIC ON) + IF("${VTK_MAJOR_VERSION}" EQUAL 5) + FIND_PACKAGE(QVTK REQUIRED) # only for VTK 5 + ELSE() +@@ -386,6 +378,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 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 df7cbaa0..4c47fd02 100644 +index 0033140b..44e540cd 100644 --- a/corelib/src/CMakeLists.txt +++ b/corelib/src/CMakeLists.txt -@@ -164,6 +164,13 @@ SET(LIBRARIES - ${ZLIB_LIBRARIES} - ) - -+IF(VTK_FOUND) -+ SET(LIBRARIES -+ ${LIBRARIES} -+ ${VTK_LIBRARIES} -+ ) -+ENDIF() -+ - # 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) +@@ -241,6 +241,8 @@ IF(WITH_PYTHON AND Python3_FOUND) SET(INCLUDE_DIRS ${TORCH_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/python @@ -70,3 +69,124 @@ index df7cbaa0..4c47fd02 100644 ${INCLUDE_DIRS} ) ENDIF(WITH_PYTHON AND Python3_FOUND) +diff --git a/utilite/include/rtabmap/utilite/Posix/UThreadC.h b/utilite/include/rtabmap/utilite/Posix/UThreadC.h +index e773c55f..b15a7c24 100644 +--- a/utilite/include/rtabmap/utilite/Posix/UThreadC.h ++++ b/utilite/include/rtabmap/utilite/Posix/UThreadC.h +@@ -54,9 +54,9 @@ inline void uSleepNano(unsigned int ns) + } + + +-#define InvalidHandle 0 +-#define THREAD_HANDLE pthread_t +- ++#define InvalidHandle 0 ++#define THREAD_HANDLE pthread_t ++ + typedef void *( * pthread_fn )( void * ); + + template +@@ -116,12 +116,12 @@ class UThreadC + + Instance I(Param,0,Function,CancelEnable,CancelAsync); + +- Handle h=InvalidHandle; +- int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); +- +- pthread_attr_destroy(&attr); +- +- if(H) *H = h; ++ Handle h=InvalidHandle; ++ int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); ++ ++ pthread_attr_destroy(&attr); ++ ++ if(H) *H = h; + if ( !R ) S_Create().acquire(); + + M_Create().unlock(); +@@ -149,12 +149,12 @@ class UThreadC + + Instance I(Param,const_cast(this),0,CancelEnable,CancelAsync); + +- Handle h=InvalidHandle; +- int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); +- +- pthread_attr_destroy(&attr); +- +- if(H) *H = h; ++ Handle h=InvalidHandle; ++ int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); ++ ++ pthread_attr_destroy(&attr); ++ ++ if(H) *H = h; + if ( !R ) S_Create().acquire(); + + M_Create().unlock(); +@@ -232,7 +232,7 @@ class UThreadC + typedef THREAD_HANDLE Handle; + typedef void ( *Handler)(); + +- virtual ~UThreadC() {} ++ virtual ~UThreadC() {} + + protected: + UThreadC() {} +@@ -273,12 +273,12 @@ class UThreadC + + Instance I(0,Function,CancelEnable,CancelAsync); + +- Handle h=InvalidHandle; +- int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); +- +- pthread_attr_destroy(&attr); +- +- if(H) *H = h; ++ Handle h=InvalidHandle; ++ int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); ++ ++ pthread_attr_destroy(&attr); ++ ++ if(H) *H = h; + if ( !R ) S_Create().acquire(); + + M_Create().unlock(); +@@ -305,12 +305,12 @@ class UThreadC + + Instance I(const_cast(this),0,CancelEnable,CancelAsync); + +- Handle h=InvalidHandle; +- int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); +- +- pthread_attr_destroy(&attr); +- +- if(H) *H = h; ++ Handle h=InvalidHandle; ++ int R = pthread_create((pthread_t *)&h,&attr,(pthread_fn)ThreadMainHandler,(void *)&I); ++ ++ pthread_attr_destroy(&attr); ++ ++ if(H) *H = h; + if ( !R ) S_Create().acquire(); + + M_Create().unlock(); +@@ -338,13 +338,13 @@ class UThreadC + + Instance I(const_cast(this),0,CancelEnable,CancelAsync); + +- *H = InvalidHandle; ++ *H = InvalidHandle; + int R = pthread_create((pthread_t *)&(*H),&attr,(pthread_fn)ThreadMainHandler,(void *)&I); +- ++ + ThreadId = (unsigned long)*H; +- +- pthread_attr_destroy(&attr); +- ++ ++ pthread_attr_destroy(&attr); ++ + if ( !R ) S_Create().acquire(); + + M_Create().unlock(); diff --git a/patch/ros-noetic-rviz.osx.patch b/patch/ros-noetic-rviz.osx.patch index e96482872..380f9e6dd 100644 --- a/patch/ros-noetic-rviz.osx.patch +++ b/patch/ros-noetic-rviz.osx.patch @@ -1,5 +1,5 @@ diff --git a/src/rviz/default_plugin/camera_display.cpp b/src/rviz/default_plugin/camera_display.cpp -index 49abcfea8..af47fef99 100644 +index e092e196..a06cacd9 100644 --- a/src/rviz/default_plugin/camera_display.cpp +++ b/src/rviz/default_plugin/camera_display.cpp @@ -34,6 +34,7 @@ @@ -10,8 +10,8 @@ index 49abcfea8..af47fef99 100644 #include #include #include -@@ -102,6 +103,8 @@ CameraDisplay::CameraDisplay() - SLOT(forceRender())); +@@ -103,6 +104,8 @@ CameraDisplay::CameraDisplay() + &CameraDisplay::forceRender); zoom_property_->setMin(0.00001); zoom_property_->setMax(100000); + @@ -19,7 +19,7 @@ index 49abcfea8..af47fef99 100644 } CameraDisplay::~CameraDisplay() -@@ -127,8 +130,15 @@ void CameraDisplay::onInitialize() +@@ -128,8 +131,16 @@ void CameraDisplay::onInitialize() { ImageDisplayBase::onInitialize(); @@ -34,18 +34,11 @@ index 49abcfea8..af47fef99 100644 + + bg_scene_node_ = camera_scene_manager_->getRootSceneNode()->createChildSceneNode(); + fg_scene_node_ = camera_scene_manager_->getRootSceneNode()->createChildSceneNode(); ++ { static int count = 0; -@@ -189,6 +199,7 @@ void CameraDisplay::onInitialize() - render_panel_->getRenderWindow()->setActive(false); - render_panel_->resize(640, 480); - render_panel_->initialize(context_->getSceneManager(), context_); -+ // render_panel_->initialize(camera_scene_manager_, context_); - - setAssociatedWidget(render_panel_); - -@@ -212,8 +223,16 @@ void CameraDisplay::onInitialize() +@@ -215,8 +226,16 @@ void CameraDisplay::onInitialize() void CameraDisplay::preRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) { QString image_position = image_position_property_->getString(); @@ -65,10 +58,10 @@ index 49abcfea8..af47fef99 100644 // set view flags on all displays visibility_property_->update(); diff --git a/src/rviz/default_plugin/camera_display.h b/src/rviz/default_plugin/camera_display.h -index 175a3a240..ccd4d6f3e 100644 +index 175a3a24..ccd4d6f3 100644 --- a/src/rviz/default_plugin/camera_display.h +++ b/src/rviz/default_plugin/camera_display.h -@@ -96,6 +96,8 @@ class CameraDisplay : public ImageDisplayBase, public Ogre::RenderTargetListener +@@ -96,6 +96,8 @@ protected: ROSImageTexture texture_; RenderPanel* render_panel_; @@ -77,7 +70,7 @@ index 175a3a240..ccd4d6f3e 100644 private Q_SLOTS: void forceRender(); void updateAlpha(); -@@ -135,6 +137,8 @@ private Q_SLOTS: +@@ -135,6 +137,8 @@ private: bool force_render_; uint32_t vis_bit_; @@ -87,18 +80,18 @@ index 175a3a240..ccd4d6f3e 100644 } // namespace rviz diff --git a/src/rviz/default_plugin/image_display.cpp b/src/rviz/default_plugin/image_display.cpp -index 3b5d50cea..e424ea68a 100644 +index e460a8db..4624c996 100644 --- a/src/rviz/default_plugin/image_display.cpp +++ b/src/rviz/default_plugin/image_display.cpp -@@ -72,6 +72,7 @@ ImageDisplay::ImageDisplay() : ImageDisplayBase(), texture_() - this, SLOT(updateNormalizeOptions())); +@@ -73,6 +73,7 @@ ImageDisplay::ImageDisplay() : ImageDisplayBase(), texture_() + this, &ImageDisplay::updateNormalizeOptions); got_float_image_ = false; + has_run_once_ = false; } void ImageDisplay::onInitialize() -@@ -114,12 +115,13 @@ void ImageDisplay::onInitialize() +@@ -121,9 +122,11 @@ void ImageDisplay::onInitialize() screen_rect_->setBoundingBox(aabInf); setMaterial(*screen_rect_, material_); img_scene_node_->attachObject(screen_rect_); @@ -109,11 +102,8 @@ index 3b5d50cea..e424ea68a 100644 + render_panel_->getRenderWindow()->addListener(this); render_panel_->getRenderWindow()->setAutoUpdated(false); render_panel_->getRenderWindow()->setActive(false); -- - render_panel_->resize(640, 480); - render_panel_->initialize(img_scene_manager_, context_); -@@ -136,12 +138,32 @@ ImageDisplay::~ImageDisplay() +@@ -146,12 +149,32 @@ ImageDisplay::~ImageDisplay() { if (initialized()) { @@ -147,10 +137,10 @@ index 3b5d50cea..e424ea68a 100644 { ImageDisplayBase::subscribe(); diff --git a/src/rviz/default_plugin/image_display.h b/src/rviz/default_plugin/image_display.h -index 88492c191..e5b1335bf 100644 +index 21a4e1b0..ae11d3e4 100644 --- a/src/rviz/default_plugin/image_display.h +++ b/src/rviz/default_plugin/image_display.h -@@ -59,7 +59,7 @@ namespace rviz +@@ -60,7 +60,7 @@ namespace rviz * \class ImageDisplay * */ @@ -159,7 +149,7 @@ index 88492c191..e5b1335bf 100644 { Q_OBJECT public: -@@ -71,6 +71,10 @@ class ImageDisplay : public ImageDisplayBase +@@ -72,6 +72,10 @@ public: void update(float wall_dt, float ros_dt) override; void reset() override; @@ -170,20 +160,19 @@ index 88492c191..e5b1335bf 100644 public Q_SLOTS: virtual void updateNormalizeOptions(); -@@ -98,6 +102,8 @@ public Q_SLOTS: +@@ -100,6 +104,7 @@ private: FloatProperty* max_property_; IntProperty* median_buffer_size_property_; bool got_float_image_; -+ + bool has_run_once_; - }; - } // namespace rviz + MouseClick* mouse_click_; + }; diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp -index 14d83396c..d1a500d30 100644 +index 4005f982..8515e7b8 100644 --- a/src/rviz/ogre_helpers/render_system.cpp +++ b/src/rviz/ogre_helpers/render_system.cpp -@@ -423,7 +423,7 @@ Ogre::RenderWindow* RenderSystem::makeRenderWindow(WindowIDType window_id, +@@ -444,7 +444,7 @@ Ogre::RenderWindow* RenderSystem::makeRenderWindow(WindowIDType window_id, // Created a non-stereo window. Discard it and try again (below) // without the stereo parameter. ogre_root_->detachRenderTarget(window); @@ -192,7 +181,7 @@ index 14d83396c..d1a500d30 100644 window = nullptr; stream << "x"; is_stereo = false; -@@ -480,6 +480,7 @@ Ogre::RenderWindow* RenderSystem::tryMakeRenderWindow(const std::string& name, +@@ -501,6 +501,7 @@ Ogre::RenderWindow* RenderSystem::tryMakeRenderWindow(const std::string& name, if (x_baddrawable_error) { ogre_root_->detachRenderTarget(window); @@ -201,7 +190,7 @@ index 14d83396c..d1a500d30 100644 x_baddrawable_error = false; } diff --git a/src/rviz/render_panel.cpp b/src/rviz/render_panel.cpp -index 5532741d4..10fc63314 100644 +index c52c0180..88b07e39 100644 --- a/src/rviz/render_panel.cpp +++ b/src/rviz/render_panel.cpp @@ -35,6 +35,7 @@ @@ -226,10 +215,10 @@ index 5532741d4..10fc63314 100644 { int last_x = mouse_x_; diff --git a/src/rviz/render_panel.h b/src/rviz/render_panel.h -index 2ce29c6f8..e1ef904e9 100644 +index 2ce29c6f..e1ef904e 100644 --- a/src/rviz/render_panel.h +++ b/src/rviz/render_panel.h -@@ -118,6 +118,8 @@ class RenderPanel : public QtOgreRenderWindow, public Ogre::SceneManager::Listen +@@ -118,6 +118,8 @@ protected: /// Called when any mouse event happens inside the render window void onRenderWindowMouseEvents(QMouseEvent* event); @@ -238,4 +227,3 @@ index 2ce29c6f8..e1ef904e9 100644 // QWidget mouse events all get sent to onRenderWindowMouseEvents(). // QMouseEvent.type() distinguishes them later. void mouseMoveEvent(QMouseEvent* event) override - diff --git a/patch/ros-noetic-rviz.patch b/patch/ros-noetic-rviz.patch index ccf0fe54a..df953a5ae 100644 --- a/patch/ros-noetic-rviz.patch +++ b/patch/ros-noetic-rviz.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d623dd4e..e4490137 100644 +index f212ca6d..501ff318 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,11 @@ @@ -17,7 +17,7 @@ index d623dd4e..e4490137 100644 @@ -98,10 +103,10 @@ if(APPLE) endif() - # Prefer newer vender-specific OpenGL library + # Prefer newer vendor-specific OpenGL library -if (POLICY CMP0072) - cmake_policy(SET CMP0072 NEW) -endif() @@ -29,7 +29,7 @@ index d623dd4e..e4490137 100644 set(CMAKE_AUTOMOC ON) -@@ -214,7 +219,7 @@ catkin_package( +@@ -226,7 +231,7 @@ catkin_package( #catkin_lint: ignore_once external_directory include_directories(src ${EXPORT_HEADER_DIR}) @@ -56,7 +56,7 @@ index 4b3c5b82..e714db0f 100644 { type truetype diff --git a/src/python_bindings/sip/CMakeLists.txt b/src/python_bindings/sip/CMakeLists.txt -index efbb497b..d2f4eb9b 100644 +index efbb497b..0def9a65 100644 --- a/src/python_bindings/sip/CMakeLists.txt +++ b/src/python_bindings/sip/CMakeLists.txt @@ -48,14 +48,21 @@ set(rviz_sip_INCLUDE_DIRS @@ -66,6 +66,7 @@ index efbb497b..d2f4eb9b 100644 + +find_package(OpenGL REQUIRED) +find_package(Threads REQUIRED) ++ set(rviz_sip_LIBRARIES ${rviz_LIBRARIES} ${PROJECT_NAME}) -set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}) +set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION} /usr/lib/x86_64-linux-gnu/) @@ -77,32 +78,21 @@ index efbb497b..d2f4eb9b 100644 +message(WARNING "rviz_sip_LIBRARIES: ${rviz_sip_LIBRARIES}") +message(WARNING "rviz_sip_LIBRARY_DIRS: ${rviz_sip_LIBRARY_DIRS}") -+ + if(sip_helper_FOUND) list(APPEND rviz_BINDINGS "sip") set(rviz_BINDINGS "${rviz_BINDINGS}" PARENT_SCOPE) -@@ -69,11 +76,21 @@ if(sip_helper_FOUND) +@@ -69,11 +76,11 @@ if(sip_helper_FOUND) if(DEFINED PYTHON_EXTENSION_MODULE_SUFFIX) set(rviz_sip_LIBRARY_FILE librviz_sip${PYTHON_EXTENSION_MODULE_SUFFIX}) elseif(APPLE) - set(rviz_sip_LIBRARY_FILE librviz_sip.so) -+ # Okay-ish hack for now -+ if(TRUE) -+ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-darwin.so") -+ else() -+ set(rviz_sip_LIBRARY_FILE librviz_sip.so) -+ endif() ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-darwin.so") elseif(WIN32) set(rviz_sip_LIBRARY_FILE librviz_sip.pyd) else() - set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) -+ if(TRUE) -+ message(WARNING "Use hack") -+ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") -+ else() -+ set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) -+ endif() ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() #catkin_lint: ignore_once external_file install(FILES ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz/${rviz_sip_LIBRARY_FILE} @@ -124,3 +114,42 @@ index 4005f982..c0441de8 100644 #endif ogre_root_->loadPlugin(plugin_prefix + "RenderSystem_GL"); ogre_root_->loadPlugin(plugin_prefix + "Plugin_OctreeSceneManager"); +diff --git a/src/rviz/mesh_loader.cpp b/src/rviz/mesh_loader.cpp +index 80f1120a..950ffaf2 100644 +--- a/src/rviz/mesh_loader.cpp ++++ b/src/rviz/mesh_loader.cpp +@@ -408,7 +408,7 @@ void loadTexture(const std::string& resource_path) + { + Ogre::DataStreamPtr stream(new Ogre::MemoryDataStream(res.data.get(), res.size)); + Ogre::Image image; +- std::string extension = fs::extension(fs::path(resource_path)); ++ std::string extension = fs::path(resource_path).extension().string(); + + if (extension[0] == '.') + { +diff --git a/src/rviz/robot/robot_link.cpp b/src/rviz/robot/robot_link.cpp +index 7ffe26e1..c122ba98 100644 +--- a/src/rviz/robot/robot_link.cpp ++++ b/src/rviz/robot/robot_link.cpp +@@ -518,7 +518,7 @@ Ogre::MaterialPtr RobotLink::getMaterialForLink(const urdf::LinkConstSharedPtr& + { + Ogre::DataStreamPtr stream(new Ogre::MemoryDataStream(res.data.get(), res.size)); + Ogre::Image image; +- std::string extension = fs::extension(fs::path(filename)); ++ std::string extension = fs::path(filename).extension().string(); + + if (extension[0] == '.') + { +diff --git a/src/rviz/properties/enum_property.h b/src/rviz/properties/enum_property.h +index c3e5e873..5e29c425 100644 +--- a/src/rviz/properties/enum_property.h ++++ b/src/rviz/properties/enum_property.h +@@ -43,7 +43,7 @@ namespace rviz + * option. The integer returned will be that passed to addOption() + * for with the string that is currently selected. + */ +-class EnumProperty : public StringProperty ++class RVIZ_EXPORT EnumProperty : public StringProperty + { + Q_OBJECT + public: diff --git a/patch/ros-noetic-teb-local-planner.linux.patch b/patch/ros-noetic-teb-local-planner.linux.patch index a6f271260..57b48935f 100644 --- a/patch/ros-noetic-teb-local-planner.linux.patch +++ b/patch/ros-noetic-teb-local-planner.linux.patch @@ -1,33 +1,776 @@ +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/cmake_modules/FindCSparse.cmake b/cmake_modules/FindCSparse.cmake +new file mode 100644 +index 0000000..5550151 +--- /dev/null ++++ b/cmake_modules/FindCSparse.cmake +@@ -0,0 +1,28 @@ ++# Look for csparse; note the difference in the directory specifications! ++find_path(CSPARSE_INCLUDE_DIR NAMES cs.h ++ PATHS ++ /usr/include/suitesparse ++ /usr/include ++ /opt/local/include ++ /usr/local/include ++ /sw/include ++ /usr/include/ufsparse ++ /opt/local/include/ufsparse ++ /usr/local/include/ufsparse ++ /sw/include/ufsparse ++ PATH_SUFFIXES ++ suitesparse ++ ) ++ ++find_library(CSPARSE_LIBRARY NAMES cxsparse libcxsparse ++ PATHS ++ /usr/lib ++ /usr/local/lib ++ /opt/local/lib ++ /sw/lib ++ ) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(CSPARSE DEFAULT_MSG ++ CSPARSE_INCLUDE_DIR CSPARSE_LIBRARY) ++ +diff --git a/cmake_modules/FindSUITESPARSE.cmake b/cmake_modules/FindSUITESPARSE.cmake +index 101b79b..aad8904 100644 +--- a/cmake_modules/FindSUITESPARSE.cmake ++++ b/cmake_modules/FindSUITESPARSE.cmake +@@ -1,133 +1,531 @@ +-# - Try to find SUITESPARSE +-# Once done this will define +-# +-# SUITESPARSE_FOUND - system has SUITESPARSE +-# SUITESPARSE_INCLUDE_DIRS - the SUITESPARSE include directory +-# SUITESPARSE_LIBRARIES - Link these to use SUITESPARSE +-# SUITESPARSE_SPQR_LIBRARY - name of spqr library (necessary due to error in debian package) +-# SUITESPARSE_SPQR_LIBRARY_DIR - name of spqr library (necessary due to error in debian package) +-# SUITESPARSE_LIBRARY_DIR - Library main directory containing suitesparse libs +-# SUITESPARSE_LIBRARY_DIRS - all Library directories containing suitesparse libs +-# SUITESPARSE_SPQR_VALID - automatic identification whether or not spqr package is installed correctly +- +-IF (SUITESPARSE_INCLUDE_DIRS) +- # Already in cache, be silent +- SET(SUITESPARSE_FIND_QUIETLY TRUE) +-ENDIF (SUITESPARSE_INCLUDE_DIRS) +- +-if( WIN32 ) +- # Find cholmod part of the suitesparse library collection +- +- FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h +- PATHS "C:\\libs\\win32\\SuiteSparse\\Include" ) +- +- # Add cholmod include directory to collection include directories +- IF ( CHOLMOD_INCLUDE_DIR ) +- list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} ) +- ENDIF( CHOLMOD_INCLUDE_DIR ) +- +- +- # find path suitesparse library +- FIND_PATH( SUITESPARSE_LIBRARY_DIRS +- amd.lib +- PATHS "C:\\libs\\win32\\SuiteSparse\\libs" ) +- +- # if we found the library, add it to the defined libraries +- IF ( SUITESPARSE_LIBRARY_DIRS ) +- list ( APPEND SUITESPARSE_LIBRARIES optimized;amd;optimized;camd;optimized;ccolamd;optimized;cholmod;optimized;colamd;optimized;metis;optimized;spqr;optimized;umfpack;debug;amdd;debug;camdd;debug;ccolamdd;debug;cholmodd;debug;spqrd;debug;umfpackd;debug;colamdd;debug;metisd;optimized;blas;optimized;libf2c;optimized;lapack;debug;blasd;debug;libf2cd;debug;lapackd ) +- ENDIF( SUITESPARSE_LIBRARY_DIRS ) +- +-else( WIN32 ) +- IF(APPLE) +- FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h +- PATHS /opt/local/include/ufsparse +- /usr/local/include ) +- +- FIND_PATH( SUITESPARSE_LIBRARY_DIR +- NAMES libcholmod.a +- PATHS /opt/local/lib +- /usr/local/lib ) +- ELSE(APPLE) +- FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h +- PATHS /usr/local/include +- /usr/include +- /usr/include/suitesparse/ +- ${CMAKE_SOURCE_DIR}/MacOS/Libs/cholmod +- PATH_SUFFIXES cholmod/ CHOLMOD/ ) +- +- FIND_PATH( SUITESPARSE_LIBRARY_DIR +- NAMES libcholmod.so libcholmod.a +- PATHS /usr/lib +- /usr/lib64 +- /usr/lib/x86_64-linux-gnu +- /usr/lib/i386-linux-gnu +- /usr/local/lib +- /usr/lib/arm-linux-gnueabihf/ +- /usr/lib/aarch64-linux-gnu/ +- /usr/lib/arm-linux-gnueabi/ +- /usr/lib/arm-linux-gnu) +- ENDIF(APPLE) +- +- # Add cholmod include directory to collection include directories +- IF ( CHOLMOD_INCLUDE_DIR ) +- list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} ) +- ENDIF( CHOLMOD_INCLUDE_DIR ) +- +- # if we found the library, add it to the defined libraries +- IF ( SUITESPARSE_LIBRARY_DIR ) +- +- list ( APPEND SUITESPARSE_LIBRARIES amd) +- list ( APPEND SUITESPARSE_LIBRARIES btf) +- list ( APPEND SUITESPARSE_LIBRARIES camd) +- list ( APPEND SUITESPARSE_LIBRARIES ccolamd) +- list ( APPEND SUITESPARSE_LIBRARIES cholmod) +- list ( APPEND SUITESPARSE_LIBRARIES colamd) +- # list ( APPEND SUITESPARSE_LIBRARIES csparse) +- list ( APPEND SUITESPARSE_LIBRARIES cxsparse) +- list ( APPEND SUITESPARSE_LIBRARIES klu) +- # list ( APPEND SUITESPARSE_LIBRARIES spqr) +- list ( APPEND SUITESPARSE_LIBRARIES umfpack) +- +- IF (APPLE) +- list ( APPEND SUITESPARSE_LIBRARIES suitesparseconfig) +- ENDIF (APPLE) +- +- # Metis and spqr are optional +- FIND_LIBRARY( SUITESPARSE_METIS_LIBRARY +- NAMES metis +- PATHS ${SUITESPARSE_LIBRARY_DIR} ) +- IF (SUITESPARSE_METIS_LIBRARY) +- list ( APPEND SUITESPARSE_LIBRARIES metis) +- ENDIF(SUITESPARSE_METIS_LIBRARY) +- +- if(EXISTS "${CHOLMOD_INCLUDE_DIR}/SuiteSparseQR.hpp") +- SET(SUITESPARSE_SPQR_VALID TRUE CACHE BOOL "SuiteSparseSPQR valid") +- else() +- SET(SUITESPARSE_SPQR_VALID false CACHE BOOL "SuiteSparseSPQR valid") +- endif() +- +- if(SUITESPARSE_SPQR_VALID) +- FIND_LIBRARY( SUITESPARSE_SPQR_LIBRARY +- NAMES spqr +- PATHS ${SUITESPARSE_LIBRARY_DIR} ) +- IF (SUITESPARSE_SPQR_LIBRARY) +- list ( APPEND SUITESPARSE_LIBRARIES spqr) +- ENDIF (SUITESPARSE_SPQR_LIBRARY) +- endif() +- +- ENDIF( SUITESPARSE_LIBRARY_DIR ) +- +-endif( WIN32 ) +- +- +-IF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) +- IF(WIN32) +- list (APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR}/../../UFconfig ) +- ENDIF(WIN32) +- SET(SUITESPARSE_FOUND TRUE) +- MESSAGE(STATUS "Found SuiteSparse") +-ELSE (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) +- SET( SUITESPARSE_FOUND FALSE ) +- MESSAGE(FATAL_ERROR "Unable to find SuiteSparse") +-ENDIF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) ++# Ceres Solver - A fast non-linear least squares minimizer ++# Copyright 2015 Google Inc. All rights reserved. ++# http://ceres-solver.org/ ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are met: ++# ++# * Redistributions of source code must retain the above copyright notice, ++# this list of conditions and the following disclaimer. ++# * Redistributions in binary form must reproduce the above copyright notice, ++# this list of conditions and the following disclaimer in the documentation ++# and/or other materials provided with the distribution. ++# * Neither the name of Google Inc. nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++# POSSIBILITY OF SUCH DAMAGE. ++# ++# Author: alexs.mac@gmail.com (Alex Stewart) ++# + ++# FindSuiteSparse.cmake - Find SuiteSparse libraries & dependencies. ++# ++# This module defines the following variables: ++# ++# SUITESPARSE_FOUND: TRUE iff SuiteSparse and all dependencies have been found. ++# SUITESPARSE_INCLUDE_DIRS: Include directories for all SuiteSparse components. ++# SUITESPARSE_LIBRARIES: Libraries for all SuiteSparse component libraries and ++# dependencies. ++# SUITESPARSE_VERSION: Extracted from UFconfig.h (<= v3) or ++# SuiteSparse_config.h (>= v4). ++# SUITESPARSE_MAIN_VERSION: Equal to 4 if SUITESPARSE_VERSION = 4.2.1 ++# SUITESPARSE_SUB_VERSION: Equal to 2 if SUITESPARSE_VERSION = 4.2.1 ++# SUITESPARSE_SUBSUB_VERSION: Equal to 1 if SUITESPARSE_VERSION = 4.2.1 ++# ++# SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION: TRUE iff running ++# on Ubuntu, SUITESPARSE_VERSION is 3.4.0 and found SuiteSparse is a system ++# install, in which case found version of SuiteSparse cannot be used to link ++# a shared library due to a bug (static linking is unaffected). ++# ++# The following variables control the behaviour of this module: ++# ++# SUITESPARSE_INCLUDE_DIR_HINTS: List of additional directories in which to ++# search for SuiteSparse includes, ++# e.g: /timbuktu/include. ++# SUITESPARSE_LIBRARY_DIR_HINTS: List of additional directories in which to ++# search for SuiteSparse libraries, ++# e.g: /timbuktu/lib. ++# ++# The following variables define the presence / includes & libraries for the ++# SuiteSparse components searched for, the SUITESPARSE_XX variables are the ++# union of the variables for all components. ++# ++# == Symmetric Approximate Minimum Degree (AMD) ++# AMD_FOUND ++# AMD_INCLUDE_DIR ++# AMD_LIBRARY ++# ++# == Constrained Approximate Minimum Degree (CAMD) ++# CAMD_FOUND ++# CAMD_INCLUDE_DIR ++# CAMD_LIBRARY ++# ++# == Column Approximate Minimum Degree (COLAMD) ++# COLAMD_FOUND ++# COLAMD_INCLUDE_DIR ++# COLAMD_LIBRARY ++# ++# Constrained Column Approximate Minimum Degree (CCOLAMD) ++# CCOLAMD_FOUND ++# CCOLAMD_INCLUDE_DIR ++# CCOLAMD_LIBRARY ++# ++# == Sparse Supernodal Cholesky Factorization and Update/Downdate (CHOLMOD) ++# CHOLMOD_FOUND ++# CHOLMOD_INCLUDE_DIR ++# CHOLMOD_LIBRARY ++# ++# == Multifrontal Sparse QR (SuiteSparseQR) ++# SUITESPARSEQR_FOUND ++# SUITESPARSEQR_INCLUDE_DIR ++# SUITESPARSEQR_LIBRARY ++# ++# == Common configuration for all but CSparse (SuiteSparse version >= 4). ++# SUITESPARSE_CONFIG_FOUND ++# SUITESPARSE_CONFIG_INCLUDE_DIR ++# SUITESPARSE_CONFIG_LIBRARY ++# ++# == Common configuration for all but CSparse (SuiteSparse version < 4). ++# UFCONFIG_FOUND ++# UFCONFIG_INCLUDE_DIR ++# ++# Optional SuiteSparse Dependencies: ++# ++# == Serial Graph Partitioning and Fill-reducing Matrix Ordering (METIS) ++# METIS_FOUND ++# METIS_LIBRARY ++ ++# Reset CALLERS_CMAKE_FIND_LIBRARY_PREFIXES to its value when ++# FindSuiteSparse was invoked. ++macro(SUITESPARSE_RESET_FIND_LIBRARY_PREFIX) ++ if (MSVC) ++ set(CMAKE_FIND_LIBRARY_PREFIXES "${CALLERS_CMAKE_FIND_LIBRARY_PREFIXES}") ++ endif (MSVC) ++endmacro(SUITESPARSE_RESET_FIND_LIBRARY_PREFIX) ++ ++# Called if we failed to find SuiteSparse or any of it's required dependencies, ++# unsets all public (designed to be used externally) variables and reports ++# error message at priority depending upon [REQUIRED/QUIET/] argument. ++macro(SUITESPARSE_REPORT_NOT_FOUND REASON_MSG) ++ unset(SUITESPARSE_FOUND) ++ unset(SUITESPARSE_INCLUDE_DIRS) ++ unset(SUITESPARSE_LIBRARIES) ++ unset(SUITESPARSE_VERSION) ++ unset(SUITESPARSE_MAIN_VERSION) ++ unset(SUITESPARSE_SUB_VERSION) ++ unset(SUITESPARSE_SUBSUB_VERSION) ++ # Do NOT unset SUITESPARSE_FOUND_REQUIRED_VARS here, as it is used by ++ # FindPackageHandleStandardArgs() to generate the automatic error message on ++ # failure which highlights which components are missing. ++ ++ suitesparse_reset_find_library_prefix() ++ ++ # Note _FIND_[REQUIRED/QUIETLY] variables defined by FindPackage() ++ # use the camelcase library name, not uppercase. ++ if (SuiteSparse_FIND_QUIETLY) ++ message(STATUS "Failed to find SuiteSparse - " ${REASON_MSG} ${ARGN}) ++ elseif (SuiteSparse_FIND_REQUIRED) ++ message(FATAL_ERROR "Failed to find SuiteSparse - " ${REASON_MSG} ${ARGN}) ++ else() ++ # Neither QUIETLY nor REQUIRED, use no priority which emits a message ++ # but continues configuration and allows generation. ++ message("-- Failed to find SuiteSparse - " ${REASON_MSG} ${ARGN}) ++ endif (SuiteSparse_FIND_QUIETLY) ++ ++ # Do not call return(), s/t we keep processing if not called with REQUIRED ++ # and report all missing components, rather than bailing after failing to find ++ # the first. ++endmacro(SUITESPARSE_REPORT_NOT_FOUND) ++ ++# Protect against any alternative find_package scripts for this library having ++# been called previously (in a client project) which set SUITESPARSE_FOUND, but ++# not the other variables we require / set here which could cause the search ++# logic here to fail. ++unset(SUITESPARSE_FOUND) ++ ++# Handle possible presence of lib prefix for libraries on MSVC, see ++# also SUITESPARSE_RESET_FIND_LIBRARY_PREFIX(). ++if (MSVC) ++ # Preserve the caller's original values for CMAKE_FIND_LIBRARY_PREFIXES ++ # s/t we can set it back before returning. ++ set(CALLERS_CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}") ++ # The empty string in this list is important, it represents the case when ++ # the libraries have no prefix (shared libraries / DLLs). ++ set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "" "${CMAKE_FIND_LIBRARY_PREFIXES}") ++endif (MSVC) ++ ++# On macOS, add the Homebrew prefix (with appropriate suffixes) to the ++# respective HINTS directories (after any user-specified locations). This ++# handles Homebrew installations into non-standard locations (not /usr/local). ++# We do not use CMAKE_PREFIX_PATH for this as given the search ordering of ++# find_xxx(), doing so would override any user-specified HINTS locations with ++# the Homebrew version if it exists. ++if (CMAKE_SYSTEM_NAME MATCHES "Darwin") ++ find_program(HOMEBREW_EXECUTABLE brew) ++ mark_as_advanced(FORCE HOMEBREW_EXECUTABLE) ++ if (HOMEBREW_EXECUTABLE) ++ # Detected a Homebrew install, query for its install prefix. ++ execute_process(COMMAND ${HOMEBREW_EXECUTABLE} --prefix ++ OUTPUT_VARIABLE HOMEBREW_INSTALL_PREFIX ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ message(STATUS "Detected Homebrew with install prefix: " ++ "${HOMEBREW_INSTALL_PREFIX}, adding to CMake search paths.") ++ list(APPEND SUITESPARSE_INCLUDE_DIR_HINTS "${HOMEBREW_INSTALL_PREFIX}/include") ++ list(APPEND SUITESPARSE_LIBRARY_DIR_HINTS "${HOMEBREW_INSTALL_PREFIX}/lib") ++ endif() ++endif() ++ ++# Specify search directories for include files and libraries (this is the union ++# of the search directories for all OSs). Search user-specified hint ++# directories first if supplied, and search user-installed locations first ++# so that we prefer user installs to system installs where both exist. ++list(APPEND SUITESPARSE_CHECK_INCLUDE_DIRS ++ /opt/local/include ++ /opt/local/include/ufsparse # Mac OS X ++ /usr/local/homebrew/include # Mac OS X ++ /usr/local/include ++ /usr/include) ++list(APPEND SUITESPARSE_CHECK_LIBRARY_DIRS ++ /opt/local/lib ++ /opt/local/lib/ufsparse # Mac OS X ++ /usr/local/homebrew/lib # Mac OS X ++ /usr/local/lib ++ /usr/lib) ++# Additional suffixes to try appending to each search path. ++list(APPEND SUITESPARSE_CHECK_PATH_SUFFIXES ++ suitesparse) # Windows/Ubuntu ++ ++# Wrappers to find_path/library that pass the SuiteSparse search hints/paths. ++# ++# suitesparse_find_component( [FILES name1 [name2 ...]] ++# [LIBRARIES name1 [name2 ...]] ++# [REQUIRED]) ++macro(suitesparse_find_component COMPONENT) ++ include(CMakeParseArguments) ++ set(OPTIONS REQUIRED) ++ set(MULTI_VALUE_ARGS FILES LIBRARIES) ++ cmake_parse_arguments(SUITESPARSE_FIND_${COMPONENT} ++ "${OPTIONS}" "" "${MULTI_VALUE_ARGS}" ${ARGN}) ++ ++ if (SUITESPARSE_FIND_${COMPONENT}_REQUIRED) ++ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS ${COMPONENT}_FOUND) ++ endif() ++ ++ set(${COMPONENT}_FOUND TRUE) ++ if (SUITESPARSE_FIND_${COMPONENT}_FILES) ++ find_path(${COMPONENT}_INCLUDE_DIR ++ NAMES ${SUITESPARSE_FIND_${COMPONENT}_FILES} ++ HINTS ${SUITESPARSE_INCLUDE_DIR_HINTS} ++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS} ++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) ++ if (${COMPONENT}_INCLUDE_DIR) ++ message(STATUS "Found ${COMPONENT} headers in: " ++ "${${COMPONENT}_INCLUDE_DIR}") ++ mark_as_advanced(${COMPONENT}_INCLUDE_DIR) ++ else() ++ # Specified headers not found. ++ set(${COMPONENT}_FOUND FALSE) ++ if (SUITESPARSE_FIND_${COMPONENT}_REQUIRED) ++ suitesparse_report_not_found( ++ "Did not find ${COMPONENT} header (required SuiteSparse component).") ++ else() ++ message(STATUS "Did not find ${COMPONENT} header (optional " ++ "SuiteSparse component).") ++ # Hide optional vars from CMake GUI even if not found. ++ mark_as_advanced(${COMPONENT}_INCLUDE_DIR) ++ endif() ++ endif() ++ endif() ++ ++ if (SUITESPARSE_FIND_${COMPONENT}_LIBRARIES) ++ find_library(${COMPONENT}_LIBRARY ++ NAMES ${SUITESPARSE_FIND_${COMPONENT}_LIBRARIES} ++ HINTS ${SUITESPARSE_LIBRARY_DIR_HINTS} ++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS} ++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES}) ++ if (${COMPONENT}_LIBRARY) ++ message(STATUS "Found ${COMPONENT} library: ${${COMPONENT}_LIBRARY}") ++ mark_as_advanced(${COMPONENT}_LIBRARY) ++ else () ++ # Specified libraries not found. ++ set(${COMPONENT}_FOUND FALSE) ++ if (SUITESPARSE_FIND_${COMPONENT}_REQUIRED) ++ suitesparse_report_not_found( ++ "Did not find ${COMPONENT} library (required SuiteSparse component).") ++ else() ++ message(STATUS "Did not find ${COMPONENT} library (optional SuiteSparse " ++ "dependency)") ++ # Hide optional vars from CMake GUI even if not found. ++ mark_as_advanced(${COMPONENT}_LIBRARY) ++ endif() ++ endif() ++ endif() ++endmacro() ++ ++# Given the number of components of SuiteSparse, and to ensure that the ++# automatic failure message generated by FindPackageHandleStandardArgs() ++# when not all required components are found is helpful, we maintain a list ++# of all variables that must be defined for SuiteSparse to be considered found. ++unset(SUITESPARSE_FOUND_REQUIRED_VARS) ++ ++# BLAS. ++find_package(BLAS QUIET) ++if (NOT BLAS_FOUND) ++ suitesparse_report_not_found( ++ "Did not find BLAS library (required for SuiteSparse).") ++endif (NOT BLAS_FOUND) ++list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS BLAS_FOUND) ++ ++# LAPACK. ++find_package(LAPACK QUIET) ++if (NOT LAPACK_FOUND) ++ suitesparse_report_not_found( ++ "Did not find LAPACK library (required for SuiteSparse).") ++endif (NOT LAPACK_FOUND) ++list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS LAPACK_FOUND) ++ ++suitesparse_find_component(AMD REQUIRED FILES amd.h LIBRARIES amd) ++suitesparse_find_component(CAMD REQUIRED FILES camd.h LIBRARIES camd) ++suitesparse_find_component(COLAMD REQUIRED FILES colamd.h LIBRARIES colamd) ++suitesparse_find_component(CCOLAMD REQUIRED FILES ccolamd.h LIBRARIES ccolamd) ++suitesparse_find_component(CHOLMOD REQUIRED FILES cholmod.h LIBRARIES cholmod) ++suitesparse_find_component( ++ SUITESPARSEQR REQUIRED FILES SuiteSparseQR.hpp LIBRARIES spqr) ++if (SUITESPARSEQR_FOUND) ++ # SuiteSparseQR may be compiled with Intel Threading Building Blocks, ++ # we assume that if TBB is installed, SuiteSparseQR was compiled with ++ # support for it, this will do no harm if it wasn't. ++ find_package(TBB QUIET) ++ if (TBB_FOUND) ++ message(STATUS "Found Intel Thread Building Blocks (TBB) library " ++ "(${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} / ${TBB_INTERFACE_VERSION}) " ++ "include location: ${TBB_INCLUDE_DIRS}. Assuming SuiteSparseQR was " ++ "compiled with TBB.") ++ # Add the TBB libraries to the SuiteSparseQR libraries (the only ++ # libraries to optionally depend on TBB). ++ list(APPEND SUITESPARSEQR_LIBRARY ${TBB_LIBRARIES}) ++ else() ++ message(STATUS "Did not find Intel TBB library, assuming SuiteSparseQR was " ++ "not compiled with TBB.") ++ endif() ++endif(SUITESPARSEQR_FOUND) ++ ++# UFconfig / SuiteSparse_config. ++# ++# If SuiteSparse version is >= 4 then SuiteSparse_config is required. ++# For SuiteSparse 3, UFconfig.h is required. ++suitesparse_find_component( ++ SUITESPARSE_CONFIG FILES SuiteSparse_config.h LIBRARIES suitesparseconfig) ++ ++if (SUITESPARSE_CONFIG_FOUND) ++ # SuiteSparse_config (SuiteSparse version >= 4) requires librt library for ++ # timing by default when compiled on Linux or Unix, but not on OSX (which ++ # does not have librt). ++ if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE) ++ suitesparse_find_component(LIBRT LIBRARIES rt) ++ if (LIBRT_FOUND) ++ message(STATUS "Adding librt: ${LIBRT_LIBRARY} to " ++ "SuiteSparse_config libraries (required on Linux & Unix [not OSX] if " ++ "SuiteSparse is compiled with timing).") ++ list(APPEND SUITESPARSE_CONFIG_LIBRARY ${LIBRT_LIBRARY}) ++ else() ++ message(STATUS "Could not find librt, but found SuiteSparse_config, " ++ "assuming that SuiteSparse was compiled without timing.") ++ endif () ++ endif (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE) ++else() ++ # Failed to find SuiteSparse_config (>= v4 installs), instead look for ++ # UFconfig header which should be present in < v4 installs. ++ suitesparse_find_component(UFCONFIG FILES UFconfig.h) ++endif () ++ ++if (NOT SUITESPARSE_CONFIG_FOUND AND ++ NOT UFCONFIG_FOUND) ++ suitesparse_report_not_found( ++ "Failed to find either: SuiteSparse_config header & library (should be " ++ "present in all SuiteSparse >= v4 installs), or UFconfig header (should " ++ "be present in all SuiteSparse < v4 installs).") ++endif() ++ ++# Extract the SuiteSparse version from the appropriate header (UFconfig.h for ++# <= v3, SuiteSparse_config.h for >= v4). ++list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSE_VERSION) ++ ++if (UFCONFIG_FOUND) ++ # SuiteSparse version <= 3. ++ set(SUITESPARSE_VERSION_FILE ${UFCONFIG_INCLUDE_DIR}/UFconfig.h) ++ if (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++ suitesparse_report_not_found( ++ "Could not find file: ${SUITESPARSE_VERSION_FILE} containing version " ++ "information for <= v3 SuiteSparse installs, but UFconfig was found " ++ "(only present in <= v3 installs).") ++ else (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++ file(READ ${SUITESPARSE_VERSION_FILE} UFCONFIG_CONTENTS) ++ ++ string(REGEX MATCH "#define SUITESPARSE_MAIN_VERSION [0-9]+" ++ SUITESPARSE_MAIN_VERSION "${UFCONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_MAIN_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_MAIN_VERSION "${SUITESPARSE_MAIN_VERSION}") ++ ++ string(REGEX MATCH "#define SUITESPARSE_SUB_VERSION [0-9]+" ++ SUITESPARSE_SUB_VERSION "${UFCONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_SUB_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_SUB_VERSION "${SUITESPARSE_SUB_VERSION}") ++ ++ string(REGEX MATCH "#define SUITESPARSE_SUBSUB_VERSION [0-9]+" ++ SUITESPARSE_SUBSUB_VERSION "${UFCONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_SUBSUB_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_SUBSUB_VERSION "${SUITESPARSE_SUBSUB_VERSION}") ++ ++ # This is on a single line s/t CMake does not interpret it as a list of ++ # elements and insert ';' separators which would result in 4.;2.;1 nonsense. ++ set(SUITESPARSE_VERSION ++ "${SUITESPARSE_MAIN_VERSION}.${SUITESPARSE_SUB_VERSION}.${SUITESPARSE_SUBSUB_VERSION}") ++ endif (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++endif (UFCONFIG_FOUND) ++ ++if (SUITESPARSE_CONFIG_FOUND) ++ # SuiteSparse version >= 4. ++ set(SUITESPARSE_VERSION_FILE ++ ${SUITESPARSE_CONFIG_INCLUDE_DIR}/SuiteSparse_config.h) ++ if (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++ suitesparse_report_not_found( ++ "Could not find file: ${SUITESPARSE_VERSION_FILE} containing version " ++ "information for >= v4 SuiteSparse installs, but SuiteSparse_config was " ++ "found (only present in >= v4 installs).") ++ else (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++ file(READ ${SUITESPARSE_VERSION_FILE} SUITESPARSE_CONFIG_CONTENTS) ++ ++ string(REGEX MATCH "#define SUITESPARSE_MAIN_VERSION [0-9]+" ++ SUITESPARSE_MAIN_VERSION "${SUITESPARSE_CONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_MAIN_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_MAIN_VERSION "${SUITESPARSE_MAIN_VERSION}") ++ ++ string(REGEX MATCH "#define SUITESPARSE_SUB_VERSION [0-9]+" ++ SUITESPARSE_SUB_VERSION "${SUITESPARSE_CONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_SUB_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_SUB_VERSION "${SUITESPARSE_SUB_VERSION}") ++ ++ string(REGEX MATCH "#define SUITESPARSE_SUBSUB_VERSION [0-9]+" ++ SUITESPARSE_SUBSUB_VERSION "${SUITESPARSE_CONFIG_CONTENTS}") ++ string(REGEX REPLACE "#define SUITESPARSE_SUBSUB_VERSION ([0-9]+)" "\\1" ++ SUITESPARSE_SUBSUB_VERSION "${SUITESPARSE_SUBSUB_VERSION}") ++ ++ # This is on a single line s/t CMake does not interpret it as a list of ++ # elements and insert ';' separators which would result in 4.;2.;1 nonsense. ++ set(SUITESPARSE_VERSION ++ "${SUITESPARSE_MAIN_VERSION}.${SUITESPARSE_SUB_VERSION}.${SUITESPARSE_SUBSUB_VERSION}") ++ endif (NOT EXISTS ${SUITESPARSE_VERSION_FILE}) ++endif (SUITESPARSE_CONFIG_FOUND) ++ ++# METIS (Optional dependency). ++suitesparse_find_component(METIS LIBRARIES metis) ++ ++# Only mark SuiteSparse as found if all required components and dependencies ++# have been found. ++set(SUITESPARSE_FOUND TRUE) ++foreach(REQUIRED_VAR ${SUITESPARSE_FOUND_REQUIRED_VARS}) ++ if (NOT ${REQUIRED_VAR}) ++ set(SUITESPARSE_FOUND FALSE) ++ endif (NOT ${REQUIRED_VAR}) ++endforeach(REQUIRED_VAR ${SUITESPARSE_FOUND_REQUIRED_VARS}) ++ ++if (SUITESPARSE_FOUND) ++ list(APPEND SUITESPARSE_INCLUDE_DIRS ++ ${AMD_INCLUDE_DIR} ++ ${CAMD_INCLUDE_DIR} ++ ${COLAMD_INCLUDE_DIR} ++ ${CCOLAMD_INCLUDE_DIR} ++ ${CHOLMOD_INCLUDE_DIR} ++ ${SUITESPARSEQR_INCLUDE_DIR}) ++ # Handle config separately, as otherwise at least one of them will be set ++ # to NOTFOUND which would cause any check on SUITESPARSE_INCLUDE_DIRS to fail. ++ if (SUITESPARSE_CONFIG_FOUND) ++ list(APPEND SUITESPARSE_INCLUDE_DIRS ++ ${SUITESPARSE_CONFIG_INCLUDE_DIR}) ++ endif (SUITESPARSE_CONFIG_FOUND) ++ if (UFCONFIG_FOUND) ++ list(APPEND SUITESPARSE_INCLUDE_DIRS ++ ${UFCONFIG_INCLUDE_DIR}) ++ endif (UFCONFIG_FOUND) ++ # As SuiteSparse includes are often all in the same directory, remove any ++ # repetitions. ++ list(REMOVE_DUPLICATES SUITESPARSE_INCLUDE_DIRS) ++ ++ # Important: The ordering of these libraries is *NOT* arbitrary, as these ++ # could potentially be static libraries their link ordering is important. ++ list(APPEND SUITESPARSE_LIBRARIES ++ ${SUITESPARSEQR_LIBRARY} ++ ${CHOLMOD_LIBRARY} ++ ${CCOLAMD_LIBRARY} ++ ${CAMD_LIBRARY} ++ ${COLAMD_LIBRARY} ++ ${AMD_LIBRARY} ++ ${LAPACK_LIBRARIES} ++ ${BLAS_LIBRARIES}) ++ if (SUITESPARSE_CONFIG_FOUND) ++ list(APPEND SUITESPARSE_LIBRARIES ++ ${SUITESPARSE_CONFIG_LIBRARY}) ++ endif (SUITESPARSE_CONFIG_FOUND) ++ if (METIS_FOUND) ++ list(APPEND SUITESPARSE_LIBRARIES ++ ${METIS_LIBRARY}) ++ endif (METIS_FOUND) ++endif() ++ ++# Determine if we are running on Ubuntu with the package install of SuiteSparse ++# which is broken and does not support linking a shared library. ++set(SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION FALSE) ++if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND ++ SUITESPARSE_VERSION VERSION_EQUAL 3.4.0) ++ find_program(LSB_RELEASE_EXECUTABLE lsb_release) ++ if (LSB_RELEASE_EXECUTABLE) ++ # Any even moderately recent Ubuntu release (likely to be affected by ++ # this bug) should have lsb_release, if it isn't present we are likely ++ # on a different Linux distribution (should be fine). ++ execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -si ++ OUTPUT_VARIABLE LSB_DISTRIBUTOR_ID ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ ++ if (LSB_DISTRIBUTOR_ID MATCHES "Ubuntu" AND ++ SUITESPARSE_LIBRARIES MATCHES "/usr/lib/libamd") ++ # We are on Ubuntu, and the SuiteSparse version matches the broken ++ # system install version and is a system install. ++ set(SUITESPARSE_IS_BROKEN_SHARED_LINKING_UBUNTU_SYSTEM_VERSION TRUE) ++ message(STATUS "Found system install of SuiteSparse " ++ "${SUITESPARSE_VERSION} running on Ubuntu, which has a known bug " ++ "preventing linking of shared libraries (static linking unaffected).") ++ endif (LSB_DISTRIBUTOR_ID MATCHES "Ubuntu" AND ++ SUITESPARSE_LIBRARIES MATCHES "/usr/lib/libamd") ++ endif (LSB_RELEASE_EXECUTABLE) ++endif (CMAKE_SYSTEM_NAME MATCHES "Linux" AND ++ SUITESPARSE_VERSION VERSION_EQUAL 3.4.0) ++ ++suitesparse_reset_find_library_prefix() ++ ++# Handle REQUIRED and QUIET arguments to FIND_PACKAGE ++include(FindPackageHandleStandardArgs) ++if (SUITESPARSE_FOUND) ++ find_package_handle_standard_args(SuiteSparse ++ REQUIRED_VARS ${SUITESPARSE_FOUND_REQUIRED_VARS} ++ VERSION_VAR SUITESPARSE_VERSION ++ FAIL_MESSAGE "Failed to find some/all required components of SuiteSparse.") ++else (SUITESPARSE_FOUND) ++ # Do not pass VERSION_VAR to FindPackageHandleStandardArgs() if we failed to ++ # find SuiteSparse to avoid a confusing autogenerated failure message ++ # that states 'not found (missing: FOO) (found version: x.y.z)'. ++ find_package_handle_standard_args(SuiteSparse ++ REQUIRED_VARS ${SUITESPARSE_FOUND_REQUIRED_VARS} ++ FAIL_MESSAGE "Failed to find some/all required components of SuiteSparse.") ++endif (SUITESPARSE_FOUND) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 97fe249..0bc3d7e 100644 +index 97fe249..f37beee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -32,7 +32,7 @@ message(STATUS "System: ${CMAKE_SYSTEM}") - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_modules) - message(STATUS "${CMAKE_MODULE_PATH}") +@@ -34,6 +34,7 @@ message(STATUS "${CMAKE_MODULE_PATH}") find_package(Boost REQUIRED COMPONENTS system thread graph) --find_package(SUITESPARSE REQUIRED) -+# find_package(SUITESPARSE REQUIRED) + find_package(SUITESPARSE REQUIRED) find_package(G2O REQUIRED) ++find_package(CSparse REQUIRED) # Eigen3 FindScript Backward compatibility (ubuntu saucy) -@@ -47,8 +47,8 @@ elseif (EXISTS "FindEigen.cmake") - e.g. by adding it to ${PROJECT_SOURCE_DIR}/cmake_modules.") + # Since FindEigen.cmake is deprecated starting from jade. +@@ -48,7 +49,7 @@ elseif (EXISTS "FindEigen.cmake") endif (EXISTS "FindEigen3.cmake") --set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${SUITESPARSE_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) + set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${SUITESPARSE_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) -set(EXTERNAL_LIBS ${SUITESPARSE_LIBRARIES} ${G2O_LIBRARIES}) -+set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) -+set(EXTERNAL_LIBS ${G2O_LIBRARIES}) ++set(EXTERNAL_LIBS ${SUITESPARSE_LIBRARIES} ${G2O_LIBRARIES} ${CSPARSE_LIBRARY} ${Boost_LIBRARIES} Boost::boost) ## Uncomment this if the package has a setup.py. This macro ensures ## modules and global scripts declared therein get installed -@@ -163,7 +163,7 @@ catkin_package( - tf2 - tf2_ros - visualization_msgs -- DEPENDS SUITESPARSE G2O -+ DEPENDS G2O - ) - - ########### diff --git a/patch/ros-noetic-topic-tools.patch b/patch/ros-noetic-topic-tools.patch new file mode 100644 index 000000000..2b570ce70 --- /dev/null +++ b/patch/ros-noetic-topic-tools.patch @@ -0,0 +1,21 @@ +diff --git a/tools/topic_tools/src/mux.cpp b/tools/topic_tools/src/mux.cpp +index c7ff5f2816..dd7363019c 100644 +--- a/tools/topic_tools/src/mux.cpp ++++ b/tools/topic_tools/src/mux.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include "ros/console.h" + #include "std_msgs/String.h" + #include "topic_tools/MuxSelect.h" +@@ -157,7 +158,7 @@ void in_cb(const boost::shared_ptr& msg, + // we need sleep for publisher initialization + // otherwise the first topic will drop. + if (g_wait_pub_init) { +- usleep(g_wait_second * 1000000); ++ std::this_thread::sleep_for(std::chrono::microseconds(static_cast(g_wait_second * 1000000))); + } + g_advertised = true; + diff --git a/patch/ros-noetic-xmlrpcpp.patch b/patch/ros-noetic-xmlrpcpp.patch new file mode 100644 index 000000000..0bfd81d78 --- /dev/null +++ b/patch/ros-noetic-xmlrpcpp.patch @@ -0,0 +1,55 @@ +diff --git a/src/XmlRpcClient.cpp b/src/XmlRpcClient.cpp +index 2401aab848..7244f5b35b 100644 +--- a/src/XmlRpcClient.cpp ++++ b/src/XmlRpcClient.cpp +@@ -1,4 +1,4 @@ +- ++#include + #include "xmlrpcpp/XmlRpcClient.h" + + #include "xmlrpcpp/XmlRpcSocket.h" +diff --git a/include/xmlrpcpp/XmlRpc.h b/include/xmlrpcpp/XmlRpc.h +index 0018b7ecc1..7b1ec18c47 100644 +--- a/include/xmlrpcpp/XmlRpc.h ++++ b/include/xmlrpcpp/XmlRpc.h +@@ -23,9 +23,8 @@ + # pragma warning(disable:4786) // identifier was truncated in debug info + #endif + +-#ifndef MAKEDEPEND +-# include +-#endif ++#include ++#include + + #include "xmlrpcpp/XmlRpcClient.h" + #include "xmlrpcpp/XmlRpcException.h" +diff --git a/xmlrpcpp/XmlRpcClient.h b/include/xmlrpcpp/XmlRpcClient.h +index 12175360b7..9ce539c2be 100644 +--- a/include/xmlrpcpp/XmlRpcClient.h ++++ b/include/xmlrpcpp/XmlRpcClient.h +@@ -9,9 +9,8 @@ + #endif + + +-#ifndef MAKEDEPEND +-# include +-#endif ++#include ++#include + + #include "xmlrpcpp/XmlRpcDispatch.h" + #include "xmlrpcpp/XmlRpcSource.h" +diff --git a/include/xmlrpcpp/XmlRpcValue.h b/include/xmlrpcpp/XmlRpcValue.h +index ac92440cdd..dadbf8c67b 100644 +--- a/include/xmlrpcpp/XmlRpcValue.h ++++ b/include/xmlrpcpp/XmlRpcValue.h +@@ -8,6 +8,8 @@ + # pragma warning(disable:4786) // identifier was truncated in debug info + #endif + ++#include ++ + #include "xmlrpcpp/XmlRpcDecl.h" + + #ifndef MAKEDEPEND diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 000000000..561785cf3 --- /dev/null +++ b/pixi.lock @@ -0,0 +1,3039 @@ +version: 6 +environments: + beta: + channels: + - url: https://repo.prefix.dev/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.33.3-hbcf9e9b_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + linux-aarch64: + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.47.2-h5eb1b54_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311ha879c10_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.33.3-h33857bb_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstandard-0.23.0-py311hd5293d8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl + - pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + osx-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.6-hf95d169_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.47.2-hdb6dae5_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.33.3-h113f492_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz + - pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + osx-arm64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.6-ha82da77_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.47.2-h3f77e49_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.33.3-h760a855_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl + - pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + win-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.33.3-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl + - pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + default: + channels: + - url: https://repo.prefix.dev/conda-forge/ + packages: + linux-64: + - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.33.3-hbcf9e9b_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + linux-aarch64: + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.47.2-h5eb1b54_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311ha879c10_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.33.3-h33857bb_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstandard-0.23.0-py311hd5293d8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + osx-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.6-hf95d169_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.47.2-hdb6dae5_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.33.3-h113f492_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + osx-arm64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.6-ha82da77_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.47.2-h3f77e49_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.33.3-h760a855_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + win-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.33.3-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda +packages: +- conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + md5: d7c89558ba9fa0495403155b64376d81 + license: None + purls: [] + size: 2562 + timestamp: 1578324546067 +- conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + build_number: 16 + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + md5: 73aaf86a425cc6e73fcf236a5a46396d + depends: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23621 + timestamp: 1650670423406 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + build_number: 16 + sha256: 3702bef2f0a4d38bd8288bbe54aace623602a1343c2cfbefd3fa188e015bebf0 + md5: 6168d71addc746e8f2b8d57dfd2edcea + depends: + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23712 + timestamp: 1650670790230 +- conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + sha256: 28218e24143d81597b0165977f230301cd8a4e3bb09ac2b5fac6052b71e84998 + md5: 92b52daa795f159861487b3be6a2a7ea + depends: + - conda-package-handling >=1.7.3 + - defusedxml >=0.7.1 + - nbformat >=4.4.0 + - platformdirs >=3.10.0,<5.0 + - python >=3.8 + - python-dateutil >=2.6.1 + - pytz >=2021.3 + - pyyaml >=3.12 + - requests >=2.20.0 + - requests-toolbelt >=0.9.1 + - setuptools >=58.0.4 + - six >=1.15.0 + - tqdm >=4.56.0 + - urllib3 >=1.26.4 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/anaconda-client?source=hash-mapping + size: 72548 + timestamp: 1719693590229 +- conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + sha256: 750186af694a7130eaf7119fbb56db0d2326d8995ad5b8eae23c622b85fea29a + md5: 356927ace43302bf6f5926e2a58dae6a + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/attrs?source=hash-mapping + size: 56354 + timestamp: 1734348889193 +- conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + sha256: 949913bbd1f74d1af202d3e4bff2e0a4e792ec00271dc4dd08641d4221aa2e12 + md5: d21daab070d76490cb39a8f1d1729d79 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.1.0 hb9d3cd8_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 350367 + timestamp: 1725267768486 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda + sha256: 8f299ccbda87e19f393bf9c01381415343650b06b9ef088dc2129ddcd48c05d4 + md5: c62b4c4d3eb1d13dfe16abbe648c28b7 + depends: + - libgcc >=13 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.1.0 h86ecc28_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 356967 + timestamp: 1725268124383 +- conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda + sha256: 004cefbd18f581636a8dcb1964fb73478f15d496769226ec896c1d4a0161b7d8 + md5: d75f06ee06001794aa83a05e885f1520 + depends: + - __osx >=10.13 + - libcxx >=17 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.1.0 h00291cd_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 363793 + timestamp: 1725267947069 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + sha256: f507d65e740777a629ceacb062c768829ab76fde01446b191699a734521ecaad + md5: c8793a23206344faa25f4e0b5d0e7908 + depends: + - __osx >=11.0 + - libcxx >=17 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.1.0 hd74edd7_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 339584 + timestamp: 1725268241628 +- conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + sha256: aa3ac5dbf63db2f145235708973c626c2189ee4040d769fdf0076286fa45dc26 + md5: a0ea2839841a06740a1c110ba3317b42 + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - libbrotlicommon 1.1.0 h2466b09_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 322114 + timestamp: 1725268368720 +- conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 252783 + timestamp: 1720974456583 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + sha256: 2258b0b33e1cb3a9852d47557984abb6e7ea58e3d7f92706ec1f8e879290c4cb + md5: 56398c28220513b9ea13d7b450acfb20 + depends: + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 189884 + timestamp: 1720974504976 +- conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda + sha256: cad153608b81fb24fc8c509357daa9ae4e49dfc535b2cb49b91e23dbd68fc3c5 + md5: 7ed4301d437b59045be7e051a0308211 + depends: + - __osx >=10.13 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 134188 + timestamp: 1720974491916 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + sha256: adfa71f158cbd872a36394c56c3568e6034aa55c623634b37a4836bd036e6b91 + md5: fc6948412dbbbe9a4c9ddbbcfe0a79ab + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 122909 + timestamp: 1720974522888 +- conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b + md5: 276e7ffe9ffe39688abc665ef0f45596 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 54927 + timestamp: 1720974860185 +- conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda + sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd + md5: 720523eb0d6a9b0f6120c16b2aa4e7de + license: ISC + purls: [] + size: 157088 + timestamp: 1734208393264 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda + sha256: ad7b43211051332a5a4e788bb4619a2d0ecb5be73e0f76be17f733a87d7effd1 + md5: 83b4ad1e6dc14df5891f3fcfdeb44351 + license: ISC + purls: [] + size: 157096 + timestamp: 1734209301744 +- conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda + sha256: ddaafdcd1b8ace6ffeea22b6824ca9db8a64cf0a2652a11d7554ece54935fa06 + md5: b7b887091c99ed2e74845e75e9128410 + license: ISC + purls: [] + size: 156925 + timestamp: 1734208413176 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda + sha256: 256be633fd0882ccc1a7a32bc278547e1703f85082c0789a87a603ee3ab8fb82 + md5: 7cb381a6783d91902638e4ed1ebd478e + license: ISC + purls: [] + size: 157091 + timestamp: 1734208344343 +- conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda + sha256: 424d82db36cd26234bc4772426170efd60e888c2aed0099a257a95e131683a5e + md5: cb2eaeb88549ddb27af533eccf9a45c1 + license: ISC + purls: [] + size: 157422 + timestamp: 1734208404685 +- pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + name: catkin-pkg + version: 1.0.0 + sha256: 10a6589e9edf3cd5bd18e35e094d20b516e6351bcf0da891c28a0ff526fdb7cc + requires_dist: + - docutils + - python-dateutil + - pyparsing + - setuptools + - flake8 ; extra == 'test' + - flake8-blind-except ; extra == 'test' + - flake8-builtins ; extra == 'test' + - flake8-class-newline ; extra == 'test' + - flake8-comprehensions ; extra == 'test' + - flake8-deprecated ; extra == 'test' + - flake8-docstrings ; extra == 'test' + - flake8-import-order ; extra == 'test' + - flake8-quotes ; extra == 'test' + - pytest ; extra == 'test' + requires_python: '>=3.6' +- conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + sha256: 048c16a9cbcb1fbad02083414d3bc7c1d0eea4b39aee6aa6bf8d1d5089ca8bad + md5: 6feb87357ecd66733be3279f16a8c400 + depends: + - python >=3.9 + license: ISC + purls: + - pkg:pypi/certifi?source=hash-mapping + size: 161642 + timestamp: 1734380604767 +- conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + sha256: bc47aa39c8254e9e487b8bcd74cfa3b4a3de3648869eb1a0b89905986b668e35 + md5: 55553ecd5328336368db611f350b7039 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 302115 + timestamp: 1725560701719 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda + sha256: 3d220020c9782ebd4f23cd0a6148b419e4397590ee414e6e69b9be810c57d2ca + md5: 616d65d1eea809af7e2b5f7ea36350fc + depends: + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 319122 + timestamp: 1725562148568 +- conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda + sha256: 012ee7b1ed4f9b0490d6e90c72decf148d7575173c7eaf851cd87fd434d2cacc + md5: a4b0f531064fa3dd5e3afbb782ea2cd5 + depends: + - __osx >=10.13 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 288762 + timestamp: 1725560945833 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + sha256: 253605b305cc4548b8f97eb7c2e146697e0c7672b099c4862ec5ca7e8e995307 + md5: a42272c5dbb6ffbc1a5af70f24c7b448 + depends: + - __osx >=11.0 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 288211 + timestamp: 1725560745212 +- conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + sha256: 9689fbd8a31fdf273f826601e90146006f6631619767a67955048c7ad7798a1d + md5: e1c69be23bd05471a6c623e91680ad59 + depends: + - pycparser + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 297627 + timestamp: 1725561079708 +- conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + sha256: 4e0ee91b97e5de3e74567bdacea27f0139709fceca4db8adffbe24deffccb09b + md5: e83a31202d1c0a000fce3e9cf3825875 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/charset-normalizer?source=hash-mapping + size: 47438 + timestamp: 1735929811779 +- conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 + md5: 962b9857ee8e7018c22f2776ffa0b2d7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/colorama?source=hash-mapping + size: 27011 + timestamp: 1733218222191 +- conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyha770c72_1.conda + sha256: d150295cb2dab74486a81ae518f4556d2c0a93cf22ae5c8fe7ed163a8c4fc176 + md5: 28b86d110bda4ef40e680d1afa9ddb1d + depends: + - conda-package-streaming >=0.9.0 + - python >=3.9 + - zstandard >=0.15 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/conda-package-handling?source=hash-mapping + size: 257894 + timestamp: 1733855878648 +- conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + sha256: 685b06951e563514a9b158e82d3d44faf102f0770af42e4d08347a6eec3d48ea + md5: bc9533d8616a97551ed144789bf9c1cd + depends: + - python >=3.7 + - zstandard >=0.15 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/conda-package-streaming?source=hash-mapping + size: 20582 + timestamp: 1729004160440 +- conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda + noarch: generic + sha256: b9bb4486ba7b81d7264e92f346c9fa2d4a6c9678c28b33fb5d1652ecc7f82e26 + md5: 6aab9c45010dc5ed92215f89cdafa201 + depends: + - python 3.11.11.* + - python_abi * *_cp311 + license: Python-2.0 + purls: [] + size: 46068 + timestamp: 1733407866862 +- conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be + md5: 961b3a227b437d82ad7054484cfa71b2 + depends: + - python >=3.6 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/defusedxml?source=hash-mapping + size: 24062 + timestamp: 1615232388757 +- pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + name: distro + version: 1.9.0 + sha256: 7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2 + requires_python: '>=3.6' +- pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + name: docutils + version: 0.21.2 + sha256: dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2 + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + name: empy + version: 3.3.4 + sha256: 73ac49785b601479df4ea18a7c79bc1304a8a7c34c02b9472cf1206ae88f01b3 +- conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda + sha256: e140c2348b2a967bb7259c22420201e9dcac5b75aca3881e30f2a3f6c88e44d0 + md5: 84cd6e6a2d60974df8c954eafdf72f2b + license: GPL-2.0-or-later and LGPL-2.1-or-later + purls: [] + size: 122064793 + timestamp: 1732612079527 +- conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + sha256: 843ddad410c370672a8250470697027618f104153612439076d4d7b91eeb7b5c + md5: 825927dc7b0f287ef8d4d0011bb113b1 + depends: + - hpack >=4.0,<5 + - hyperframe >=6.0,<7 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/h2?source=hash-mapping + size: 52000 + timestamp: 1733298867359 +- conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + sha256: ec89b7e5b8aa2f0219f666084446e1fb7b54545861e9caa892acb24d125761b5 + md5: 2aa5ff7fa34a81b9196532c84c10d865 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hpack?source=hash-mapping + size: 29412 + timestamp: 1733299296857 +- conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + sha256: e91c6ef09d076e1d9a02819cd00fa7ee18ecf30cdd667605c853980216584d1b + md5: 566e75c90c1d0c8c459eb0ad9833dc7a + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperframe?source=hash-mapping + size: 17239 + timestamp: 1733298862681 +- conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 + md5: 39a4f67be3286c86d696df570b1201b7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/idna?source=hash-mapping + size: 49765 + timestamp: 1733211921194 +- conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + sha256: acc1d991837c0afb67c75b77fdc72b4bf022aac71fedd8b9ea45918ac9b08a80 + md5: c85c76dc67d75619a92f51dfbce06992 + depends: + - python >=3.9 + - zipp >=3.1.0 + constrains: + - importlib-resources >=6.5.2,<6.5.3.0a0 + license: Apache-2.0 + purls: + - pkg:pypi/importlib-resources?source=hash-mapping + size: 33781 + timestamp: 1736252433366 +- conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + sha256: be992a99e589146f229c58fe5083e0b60551d774511c494f91fe011931bd7893 + md5: a3cead9264b331b32fe8f0aabc967522 + depends: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.9 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jsonschema?source=hash-mapping + size: 74256 + timestamp: 1733472818764 +- conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + sha256: 37127133837444cf0e6d1a95ff5a505f8214ed4e89e8e9343284840e674c6891 + md5: 3b519bc21bc80e60b456f1e62962a766 + depends: + - python >=3.9 + - referencing >=0.31.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jsonschema-specifications?source=hash-mapping + size: 16170 + timestamp: 1733493624968 +- conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + sha256: 732b1e8536bc22a5a174baa79842d79db2f4956d90293dd82dc1b3f6099bcccd + md5: 0a2980dada0dd7fd0998f0342308b1b1 + depends: + - __unix + - platformdirs >=2.5 + - python >=3.8 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-core?source=hash-mapping + size: 57671 + timestamp: 1727163547058 +- conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + sha256: 7c903b2d62414c3e8da1f78db21f45b98de387aae195f8ca959794113ba4b3fd + md5: 46d87d1c0ea5da0aae36f77fa406e20d + depends: + - __win + - cpython + - platformdirs >=2.5 + - python >=3.8 + - pywin32 >=300 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyter-core?source=hash-mapping + size: 58269 + timestamp: 1727164026641 +- conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe + md5: 048b02e3962f066da18efe3a21b77672 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - binutils_impl_linux-64 2.43 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 669211 + timestamp: 1729655358674 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + sha256: 80ec7e8f006196808fac5bd4b3773a652847f97bbf08044cd87731424ac64f8b + md5: fcbde5ea19d55468953bf588770c0501 + constrains: + - binutils_impl_linux-aarch64 2.43 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 698245 + timestamp: 1729655345825 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.6-hf95d169_1.conda + sha256: c40661648c34c08e21b69e0eec021ccaf090ffff070d2a9cbcb1519e1b310568 + md5: 1bad6c181a0799298aad42fc5a7e98b7 + depends: + - __osx >=10.13 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 527370 + timestamp: 1734494305140 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.6-ha82da77_1.conda + sha256: 2b2443404503cd862385fd2f2a2c73f9624686fd1e5a45050b4034cfc06904ec + md5: ce5252d8db110cdb4ae4173d0a63c7c5 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 520992 + timestamp: 1734494699681 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 + md5: db833e03127376d461e1e13e76f09b6c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 73304 + timestamp: 1730967041968 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + sha256: f42e758009ba9db90d1fe7992bc3e60d0c52f71fb20923375d2c44ae69a5a2b3 + md5: f1b3fab36861b3ce945a13f0dfdfc688 + depends: + - libgcc >=13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 72345 + timestamp: 1730967203789 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + sha256: d10f43d0c5df6c8cf55259bce0fe14d2377eed625956cddce06f58827d288c59 + md5: 20307f4049a735a78a29073be1be2626 + depends: + - __osx >=10.13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 70758 + timestamp: 1730967204736 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + sha256: e42ab5ace927ee7c84e3f0f7d813671e1cf3529f5f06ee5899606630498c2745 + md5: 38d2656dd914feb0cab8c629370768bf + depends: + - __osx >=11.0 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 64693 + timestamp: 1730967175868 +- conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12 + md5: eb383771c680aa792feb529eaf9df82f + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 139068 + timestamp: 1730967442102 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 58292 + timestamp: 1636488182923 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + sha256: 7e9258a102480757fe3faeb225a3ca04dffd10fecd2a958c65cdb4cdf75f2c3c + md5: dddd85f4d52121fab0a8b099c5e06501 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 59450 + timestamp: 1636488255090 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f + md5: ccb34fb14960ad8b125962d3d79b31a9 + license: MIT + license_family: MIT + purls: [] + size: 51348 + timestamp: 1636488394370 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + md5: 086914b672be056eb70fd4285b6783b6 + license: MIT + license_family: MIT + purls: [] + size: 39020 + timestamp: 1636488587153 +- conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + md5: 2c96d1b6915b408893f9472569dee135 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + purls: [] + size: 42063 + timestamp: 1636489106777 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 + md5: 3cb76c3f10d3bc7f1105b2fc9db984df + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.2.0 h77fa898_1 + - libgcc-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 848745 + timestamp: 1729027721139 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + sha256: 5d56757ccad208c79214395b00d006d8d18929a4ba49c47bd9460789a7620943 + md5: 511b511c5445e324066c3377481bcab8 + depends: + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==14.2.0=*_1 + - libgomp 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 535243 + timestamp: 1729089435134 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 + md5: e39480b9ca41323497b05492a63bc35b + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54142 + timestamp: 1729027726517 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + sha256: 9b5cf168a6c7361cae869cb74b716766ee7c6d6b3f6172b32ba9bf91135efdc4 + md5: 0694c249c61469f2c0f7e2990782af21 + depends: + - libgcc 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54104 + timestamp: 1729089444587 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 + md5: cc3573974587f12dda90d96e3e55a702 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 460992 + timestamp: 1729027639220 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + sha256: 5aa53874a5e57a00f2e0c2e2910684eb674429cd5fcb803619b226a73e89aedf + md5: 376f0e73abbda6d23c0cb749adc195ef + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 463521 + timestamp: 1729089357313 +- conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6 + md5: 2ecf2f1c7e4e21fcfe6423a51a992d84 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: 0BSD + purls: [] + size: 111132 + timestamp: 1733407410083 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda + sha256: d1cce0b7d62d1e54e2164d3e0667ee808efc6c3870256e5b47a150cd0bf46824 + md5: eb08b903681f9f2432c320e8ed626723 + depends: + - libgcc >=13 + license: 0BSD + purls: [] + size: 124138 + timestamp: 1733409137214 +- conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda + sha256: c70639ff3cb034a8e31cb081c907879b6a639bb12b0e090069a68eb69125b10e + md5: f9e9205fed9c664421c1c09f0b90ce6d + depends: + - __osx >=10.13 + license: 0BSD + purls: [] + size: 103745 + timestamp: 1733407504892 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda + sha256: d863b8257406918ffdc50ae65502f2b2d6cede29404d09a094f59509d6a0aaf1 + md5: b2553114a7f5e20ccd02378a77d836aa + depends: + - __osx >=11.0 + license: 0BSD + purls: [] + size: 99129 + timestamp: 1733407496073 +- conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda + sha256: 24d04bd55adfa44c421c99ce169df38cb1ad2bba5f43151bc847fc802496a1fa + md5: 015b9c0bd1eef60729ab577a38aaf0b5 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: 0BSD + purls: [] + size: 104332 + timestamp: 1733407872569 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33408 + timestamp: 1697359010159 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + sha256: fd18c2b75d7411096428d36a70b36b1a17e31f7b8956b6905d145792d49e97f8 + md5: c14f32510f694e3185704d89967ec422 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 34501 + timestamp: 1697358973269 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda + sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352 + md5: b58da17db24b6e08bcbf8fed2fb8c915 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 873551 + timestamp: 1733761824646 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.47.2-h5eb1b54_0.conda + sha256: 885a27fa84a5a73ed9779168c02b6c386e2fc7a53f0566b32a09ceca146b42b4 + md5: d4bf59f8783a4a66c0aec568f6de3ff4 + depends: + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 1042182 + timestamp: 1733761913736 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.47.2-hdb6dae5_0.conda + sha256: 4d5e188d921f93c97ce172fc8c4341e8171670ec98d76f9961f65f6306fcda77 + md5: 44d9799fda97eb34f6d88ac1e3eb0ea6 + depends: + - __osx >=10.13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 923167 + timestamp: 1733761860127 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.47.2-h3f77e49_0.conda + sha256: f192f3c8973de9ec4c214990715f13b781965247a5cedf9162e7f9e699cfc3c4 + md5: 122d6f29470f1a991e85608e77e56a8a + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 850553 + timestamp: 1733762057506 +- conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda + sha256: ecfc0182c3b2e63c870581be1fa0e4dbdfec70d2011cb4f5bde416ece26c41df + md5: ff00095330e0d35a16bd3bdbd1a2d3e7 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Unlicense + purls: [] + size: 891292 + timestamp: 1733762116902 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 + md5: 234a5554c53625688d51062645337328 + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3893695 + timestamp: 1729027746910 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + sha256: 519556d2c93f1b487091ce046d62e762286177f4a670ec10e16005177d0bcab3 + md5: 37f489acd39e22b623d2d1e5ac6d195c + depends: + - libgcc 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3816794 + timestamp: 1729089463404 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 + md5: 8371ac6457591af2cf6159439c1fd051 + depends: + - libstdcxx 14.2.0 hc0a3c3a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54105 + timestamp: 1729027780628 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + sha256: 9f97461bd55a2745a7a0941f3502a047f15bfe7bb2952dc7fb204b3202f866fd + md5: 0e75771b8a03afae5a2c6ce71bc733f5 + depends: + - libstdcxx 14.2.0 h3f4de04_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54133 + timestamp: 1729089498541 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 33601 + timestamp: 1680112270483 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + sha256: 616277b0c5f7616c2cdf36f6c316ea3f9aa5bb35f2d4476a349ab58b9b91675f + md5: 000e30b09db0b7c775b21695dff30969 + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 35720 + timestamp: 1680113474501 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 100393 + timestamp: 1702724383534 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + sha256: 6b46c397644091b8a26a3048636d10b989b1bf266d4be5e9474bf763f828f41f + md5: b4df5d7d4b63579d081fd3a4cf99740e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 114269 + timestamp: 1702724369203 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 60963 + timestamp: 1727963148474 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + sha256: 5a2c1eeef69342e88a98d1d95bff1603727ab1ff4ee0e421522acd8813439b84 + md5: 08aad7cbe9f5a6b460d0976076b6ae64 + depends: + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 66657 + timestamp: 1727963199518 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + sha256: 8412f96504fc5993a63edf1e211d042a1fd5b1d51dedec755d2058948fcced09 + md5: 003a54a4e32b02f7355b50a837e699da + depends: + - __osx >=10.13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 57133 + timestamp: 1727963183990 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 + depends: + - __osx >=11.0 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 46438 + timestamp: 1727963202283 +- conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402 + md5: 41fbfac52c601159df6c01f875de31b9 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 55476 + timestamp: 1727963768015 +- conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda + build_number: 0 + sha256: 5514efb349d06a8dfe7966b64a3076efad461934e35da9e84c0693a36097fe77 + md5: e2a0da44f380c05e8d1f897ed3ec3ce0 + constrains: + - msys2-conda-epoch <0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6961 + timestamp: 1696161055254 +- conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda + sha256: e505bf056171089c761b600d21dee062ad1c962b892ca8a7bc852211e3fd3273 + md5: 77d17c947f9014b2b97a267c5e95cbf2 + depends: + - m2-conda-epoch 20230914 *_x86_64 + - m2-conda-epoch 20230914.* + license: GPL + purls: [] + size: 1918370 + timestamp: 1719980096293 +- conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + sha256: c53d091882a43cfc49f74be7c3d74d41856eac9a2cd62424d31c78b3ae5d313f + md5: ace92cb3c819c9baa7f90a9e58435ba8 + depends: + - m2-conda-epoch 20230914 *_x86_64 + - m2-conda-epoch 20230914.* + - m2-msys2-runtime + license: GPL + purls: [] + size: 132160 + timestamp: 1719980487208 +- pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl + name: markdown-it-py + version: 3.0.0 + sha256: 355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 + requires_dist: + - mdurl~=0.1 + - psutil ; extra == 'benchmarking' + - pytest ; extra == 'benchmarking' + - pytest-benchmark ; extra == 'benchmarking' + - pre-commit~=3.0 ; extra == 'code-style' + - commonmark~=0.9 ; extra == 'compare' + - markdown~=3.4 ; extra == 'compare' + - mistletoe~=1.0 ; extra == 'compare' + - mistune~=2.0 ; extra == 'compare' + - panflute~=2.3 ; extra == 'compare' + - linkify-it-py>=1,<3 ; extra == 'linkify' + - mdit-py-plugins ; extra == 'plugins' + - gprof2dot ; extra == 'profiling' + - mdit-py-plugins ; extra == 'rtd' + - myst-parser ; extra == 'rtd' + - pyyaml ; extra == 'rtd' + - sphinx ; extra == 'rtd' + - sphinx-copybutton ; extra == 'rtd' + - sphinx-design ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - jupyter-sphinx ; extra == 'rtd' + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl + name: mdurl + version: 0.1.2 + sha256: 84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 + requires_python: '>=3.7' +- conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + sha256: 7a5bd30a2e7ddd7b85031a5e2e14f290898098dc85bea5b3a5bf147c25122838 + md5: bbe1963f1e47f594070ffe87cdf612ea + depends: + - jsonschema >=2.6 + - jupyter_core >=4.12,!=5.0.* + - python >=3.9 + - python-fastjsonschema >=2.15 + - traitlets >=5.1 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/nbformat?source=hash-mapping + size: 100945 + timestamp: 1733402844974 +- conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + purls: [] + size: 889086 + timestamp: 1724658547447 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + sha256: acad4cf1f57b12ee1e42995e6fac646fa06aa026529f05eb8c07eb0a84a47a84 + md5: 91d49c85cacd92caa40cf375ef72a25d + depends: + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + purls: [] + size: 924472 + timestamp: 1724658573518 +- conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda + sha256: b0b3180039ef19502525a2abd5833c00f9624af830fd391f851934d57bffb9af + md5: e102bbf8a6ceeaf429deab8032fc8977 + depends: + - __osx >=10.13 + license: X11 AND BSD-3-Clause + purls: [] + size: 822066 + timestamp: 1724658603042 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + sha256: 27d0b9ff78ad46e1f3a6c96c479ab44beda5f96def88e2fe626e0a49429d8afc + md5: cb2b0ea909b97b3d70cd3921d1445e1a + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + purls: [] + size: 802321 + timestamp: 1724658775723 +- pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + name: networkx + version: 3.4.2 + sha256: df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f + requires_dist: + - numpy>=1.24 ; extra == 'default' + - scipy>=1.10,!=1.11.0,!=1.11.1 ; extra == 'default' + - matplotlib>=3.7 ; extra == 'default' + - pandas>=2.0 ; extra == 'default' + - changelist==0.5 ; extra == 'developer' + - pre-commit>=3.2 ; extra == 'developer' + - mypy>=1.1 ; extra == 'developer' + - rtoml ; extra == 'developer' + - sphinx>=7.3 ; extra == 'doc' + - pydata-sphinx-theme>=0.15 ; extra == 'doc' + - sphinx-gallery>=0.16 ; extra == 'doc' + - numpydoc>=1.8.0 ; extra == 'doc' + - pillow>=9.4 ; extra == 'doc' + - texext>=0.6.7 ; extra == 'doc' + - myst-nb>=1.1 ; extra == 'doc' + - intersphinx-registry ; extra == 'doc' + - osmnx>=1.9 ; extra == 'example' + - momepy>=0.7.2 ; extra == 'example' + - contextily>=1.6 ; extra == 'example' + - seaborn>=0.13 ; extra == 'example' + - cairocffi>=1.7 ; extra == 'example' + - igraph>=0.11 ; extra == 'example' + - scikit-learn>=1.5 ; extra == 'example' + - lxml>=4.6 ; extra == 'extra' + - pygraphviz>=1.14 ; extra == 'extra' + - pydot>=3.0.1 ; extra == 'extra' + - sympy>=1.10 ; extra == 'extra' + - pytest>=7.2 ; extra == 'test' + - pytest-cov>=4.0 ; extra == 'test' + requires_python: '>=3.10' +- conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f + md5: 4ce6875f75469b2757a65e10a5d05e31 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2937158 + timestamp: 1736086387286 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda + sha256: 60d34454b861501d7355f25a7b39fdb5de8d56fca49b5bcbe8b8142b7d82dce4 + md5: e21c4767e783a58c373fdb99de6211bf + depends: + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3469279 + timestamp: 1736088141230 +- conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda + sha256: 879a960d586cf8a64131ac0c060ef575cfb8aa9f6813093cba92042a86ee867c + md5: eaae23dbfc9ec84775097898526c72ea + depends: + - __osx >=10.13 + - ca-certificates + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2590210 + timestamp: 1736086530077 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + sha256: 97772762abc70b3a537683ca9fc3ff3d6099eb64e4aba3b9c99e6fce48422d21 + md5: 22f971393637480bda8c679f374d8861 + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2936415 + timestamp: 1736086108693 +- conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda + sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0 + md5: fb45308ba8bfe1abf1f4a27bad24a743 + depends: + - ca-certificates + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 8462960 + timestamp: 1736088436984 +- conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda + sha256: eb355ac225be2f698e19dba4dcab7cb0748225677a9799e9cc8e4cadc3cb738f + md5: ba76a6a448819560b5f8b08a9c74f415 + depends: + - libgcc-ng >=7.5.0 + - libstdcxx-ng >=7.5.0 + license: GPL-3.0-or-later + license_family: GPL + purls: [] + size: 94048 + timestamp: 1673473024463 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda + sha256: 8b98158f36a7a92013a1982ab7a60947151350ac5c513c1d1575825d0fa52518 + md5: bbd8dee69c4ac2e2d07bca100b8fcc31 + depends: + - libgcc-ng >=7.5.0 + - libstdcxx-ng >=7.5.0 + license: GPL-3.0-or-later + license_family: GPL + purls: [] + size: 101306 + timestamp: 1673473812166 +- conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + sha256: adb2dde5b4f7da70ae81309cce6188ed3286ff280355cf1931b45d91164d2ad8 + md5: 5a5870a74432aa332f7d32180633ad05 + depends: + - python >=3.9 + license: MIT AND PSF-2.0 + purls: + - pkg:pypi/pkgutil-resolve-name?source=hash-mapping + size: 10693 + timestamp: 1733344619659 +- conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27 + md5: 577852c7e53901ddccc7e6a9959ddebe + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=hash-mapping + size: 20448 + timestamp: 1733232756001 +- conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 + md5: 12c566707c80111f9799308d9e265aef + depends: + - python >=3.9 + - python + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 110100 + timestamp: 1733195786147 +- pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl + name: pygments + version: 2.19.1 + sha256: 9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c + requires_dist: + - colorama>=0.4.6 ; extra == 'windows-terminal' + requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + name: pyparsing + version: 3.2.1 + sha256: 506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1 + requires_dist: + - railroad-diagrams ; extra == 'diagrams' + - jinja2 ; extra == 'diagrams' + requires_python: '>=3.9' +- conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda + sha256: d016e04b0e12063fbee4a2d5fbb9b39a8d191b5a0042f0b8459188aedeabb0ca + md5: e2fd202833c4a981ce8a65974fe4abd1 + depends: + - __win + - python >=3.9 + - win_inet_pton + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pysocks?source=hash-mapping + size: 21784 + timestamp: 1733217448189 +- conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + md5: 461219d1a5bd61342293efa2c0c90eac + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pysocks?source=hash-mapping + size: 21085 + timestamp: 1733217331982 +- conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda + build_number: 1 + sha256: b29ce0836fce55bdff8d5c5b71c4921a23f87d3b950aea89a9e75784120b06b0 + md5: 8387070aa413ce9a8cc35a509fae938b + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - liblzma >=5.6.3,<6.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + purls: [] + size: 30624804 + timestamp: 1733409665928 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda + build_number: 1 + sha256: b39a2253510b26213093cb29e27722cb33782aec213c020dfd17cd74d58f68e7 + md5: 7e8786cbe7b83e7011e681a4780c9b7f + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-aarch64 >=2.36.1 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - liblzma >=5.6.3,<6.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + purls: [] + size: 15234582 + timestamp: 1733407838276 +- conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda + build_number: 1 + sha256: 4c53c4c48a0f42577ae405553ab899b3ef5ee23b2a1bf4fbbc694c46f884f6fc + md5: 9b20fb7c571405d29f33ae2fc5990d8d + depends: + - __osx >=10.13 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + purls: [] + size: 14221518 + timestamp: 1733409959819 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda + build_number: 1 + sha256: 94e198f6a5affa1431401fca7e3b27fda68c59f5ee726083288bff1f6bed8c7f + md5: 8d81dcd0be5bdcdd98e0f2482bf63784 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + purls: [] + size: 14647146 + timestamp: 1733409012105 +- conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda + build_number: 1 + sha256: 5be6181ab6d655ad761490b7808584c5e78e5d7139846685b1850a8b7ef6c5df + md5: 4d490a426481298bdd89a502253a7fd4 + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + purls: [] + size: 18161635 + timestamp: 1733408064601 +- conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + sha256: a50052536f1ef8516ed11a844f9413661829aa083304dc624c5925298d078d79 + md5: 5ba79d7c71f03c678c8ead841f347d6e + depends: + - python >=3.9 + - six >=1.5 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/python-dateutil?source=hash-mapping + size: 222505 + timestamp: 1733215763718 +- conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + sha256: 1b09a28093071c1874862422696429d0d35bd0b8420698003ac004746c5e82a2 + md5: 38e34d2d1d9dca4fb2b9a0a04f604e2c + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/fastjsonschema?source=hash-mapping + size: 226259 + timestamp: 1733236073335 +- conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda + build_number: 5 + sha256: 2660b8059b3ee854bc5d3c6b1fce946e5bd2fe8fbca7827de2c5885ead6209de + md5: 139a8d40c8a2f430df31048949e450de + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6211 + timestamp: 1723823324668 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda + build_number: 5 + sha256: 76974c2732919ace87b5f3a634eac93fed6900d557fcae0575787ec0a33c370e + md5: c2078141f21872cc34d9305123ba08f2 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6300 + timestamp: 1723823316891 +- conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + build_number: 5 + sha256: 9b092850a268aca99600b724bae849f51209ecd5628e609b4699debc59ff1945 + md5: e6d62858c06df0be0e6255c753d74787 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6303 + timestamp: 1723823062672 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda + build_number: 5 + sha256: adc05729b7e0aca7b436e60a86f10822a92185dfcb48d66d6444e3629d3a1f6a + md5: 3b855e3734344134cb56c410f729c340 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6308 + timestamp: 1723823096865 +- conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda + build_number: 5 + sha256: 9b210e5807dd9c9ed71ff192a95f1872da597ddd10e7cefec93a922fe22e598a + md5: 895b873644c11ccc0ab7dba2d8513ae6 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6707 + timestamp: 1723823225752 +- conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + sha256: 0a7c706b2eb13f7da5692d9ddf1567209964875710b471de6f2743b33d1ba960 + md5: f26ec986456c30f6dff154b670ae140f + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pytz?source=hash-mapping + size: 185890 + timestamp: 1733215766006 +- conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + sha256: 78a4ede098bbc122a3dff4e0e27255e30b236101818e8f499779c89670c58cd6 + md5: 1bc10dbe3b8d03071070c962a2bdf65f + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/pywin32?source=hash-mapping + size: 6023110 + timestamp: 1728636767562 +- conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda + sha256: e721e5ff389a7b2135917c04b27391be3d3382e261bb60a369b1620655365c3d + md5: abeb54d40f439b86f75ea57045ab8496 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 212644 + timestamp: 1725456264282 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311ha879c10_1.conda + sha256: c0f373c2944cf18da2cec19bae76284ef54cef44b3925c249d53821e4021d59a + md5: ad89d09994540880f297259742a8428a + depends: + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 205817 + timestamp: 1725456351893 +- conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda + sha256: d8f4513c53a7c0be9f1cdb9d1af31ac85cf8a6f0e4194715e36e915c03104662 + md5: b0132bec7165a53403dcc393ff761a9e + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 193941 + timestamp: 1725456465818 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda + sha256: 9ae182eef4e96a7c2f46cc9add19496276612663e17429500432631dce31a831 + md5: d32590e7bd388f18b036c6fc402a0cb1 + depends: + - __osx >=11.0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 192321 + timestamp: 1725456528007 +- conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda + sha256: 86608f1b4f6b1819a74b6b1344c34304745fd7e84bfc9900269f57cf28178d31 + md5: d0c5f3c595039890be0c9af47d23b9ba + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyyaml?source=hash-mapping + size: 187901 + timestamp: 1725456808581 +- conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.33.3-hbcf9e9b_0.conda + sha256: edcf791757a3465c6d79c106ff8b12e5babfea6c1c364112902e15c583c2bb23 + md5: ea3a9334595b5407ea0b7b6b441199d7 + depends: + - __glibc >=2.17,<3.0.a0 + - openssl >=3.4.0,<4.0a0 + - patchelf + constrains: + - __glibc >=2.17 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 11222562 + timestamp: 1736170760306 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.33.3-h33857bb_0.conda + sha256: 7f108921066204964c54f014fcde807527677a318095440697578e16b0e0b943 + md5: d3dfbd6fe5639185e805b38765be41bf + depends: + - openssl >=3.4.0,<4.0a0 + - patchelf + constrains: + - __glibc >=2.17 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 11360309 + timestamp: 1736170516825 +- conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.33.3-h113f492_0.conda + sha256: fb558d0fe4874fce4d981ea00ec3b6cedc789802556d5bfe52672ccb4fa73dc2 + md5: 2b2b09eee0e441a8d6a482531b253e19 + depends: + - __osx >=10.13 + constrains: + - __osx >=10.13 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 9573725 + timestamp: 1736171547336 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.33.3-h760a855_0.conda + sha256: e9d717a55001f692313b35a615c765d7807ec12bb214008afa2b96e33eb5ea94 + md5: b0a6c169469de8b68768ff8699dcbe8c + depends: + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 9170986 + timestamp: 1736171419872 +- conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.33.3-ha8cf89e_0.conda + sha256: cff546ac2ec3df075c8f8bf05e16b20ad481f126cdf8b1a3451fc6ed36bf0594 + md5: e3dd485eeabf0ad79da67ba4d351404e + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.42.34433 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 8927539 + timestamp: 1736171427420 +- conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 281456 + timestamp: 1679532220005 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + sha256: 4c99f7417419734e3797d45bc355e61c26520e111893b0d7087a01a7fbfbe3dd + md5: 105eb1e16bf83bfb2eb380a48032b655 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 294092 + timestamp: 1679532238805 +- conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 + md5: f17f77f2acf4d344734bda76829ce14e + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 255870 + timestamp: 1679532707590 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + md5: 8cbb776a2f641b943d413b3e19df71f4 + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 250351 + timestamp: 1679532511311 +- conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda + sha256: f972eecb4dc8e06257af37642f92b0f2df04a7fe4c950f2e1045505e5e93985f + md5: 8c9083612c1bfe6878715ed5732605f8 + depends: + - attrs >=22.2.0 + - python >=3.9 + - rpds-py >=0.7.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/referencing?source=hash-mapping + size: 42201 + timestamp: 1733366868091 +- conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad + md5: a9b9368f3701a417eac9edbcae7cb737 + depends: + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.9 + - urllib3 >=1.21.1,<3 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/requests?source=hash-mapping + size: 58723 + timestamp: 1733217126197 +- conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + sha256: c0b815e72bb3f08b67d60d5e02251bbb0164905b5f72942ff5b6d2a339640630 + md5: 66de8645e324fda0ea6ef28c2f99a2ab + depends: + - python >=3.9 + - requests >=2.0.1,<3.0.0 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/requests-toolbelt?source=hash-mapping + size: 44285 + timestamp: 1733734886897 +- pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl + name: rich + version: 13.9.4 + sha256: 6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 + requires_dist: + - ipywidgets>=7.5.1,<9 ; extra == 'jupyter' + - markdown-it-py>=2.2.0 + - pygments>=2.13.0,<3.0.0 + - typing-extensions>=4.0.0,<5.0 ; python_full_version < '3.11' + requires_python: '>=3.8.0' +- pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + name: rosdistro + version: 1.0.1 + sha256: 587da10e1bc9f1ff8dc026ac9361ac1a1d2a79a434dfcb73175e45110880651c + requires_dist: + - pyyaml + - setuptools + - catkin-pkg + - rospkg + - pytest ; extra == 'test' + requires_python: '>=3.6' +- pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl + name: rospkg + version: 1.5.1 + sha256: 1167a8f908d9c4379954732a605810e166ddcc18fcf47e6555395e1d6d972a7c + requires_dist: + - catkin-pkg + - pyyaml + - distro>=1.4.0 ; python_full_version >= '3.8' + - pytest ; extra == 'test' + - mock ; python_full_version < '3.3' and extra == 'test' +- conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda + sha256: 0908ac4acb1a10fe63046e947a96c77cea0d392619ef965944da86c3574b68ec + md5: b1f5799ae0cc22198928f09879da01f5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 351650 + timestamp: 1733366766805 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda + sha256: ea5c5dd50ec3c22fb1d37af67d1a1a92b1db258be48d07e5201afa85229b6f76 + md5: e2235bd1223f3eaf22cc50e1578e26f4 + depends: + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 345860 + timestamp: 1733369036541 +- conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda + sha256: 435d6ddb0a1625b91e83573b17fcd543ebedffc81d912cacb53d48a8cb59a861 + md5: 19f12b2368042654dbc26036f036483b + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - __osx >=10.13 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 329432 + timestamp: 1733367026508 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda + sha256: 8b1e693f3bb84f1152858bba9e15a6717cad02f70b45df3538078c22e67f5a06 + md5: 16669f8098b2f4a8560727efb9e65afd + depends: + - __osx >=11.0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 324661 + timestamp: 1733366968758 +- conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda + sha256: c74b3a4430706dfb63176429cc31410dcb86a15e1d35463aae04733c4700b8d8 + md5: 40c964a32833f3ad13ba4183cd180577 + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 222035 + timestamp: 1733367148577 +- pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + name: ruamel-yaml + version: 0.17.40 + sha256: b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c + requires_dist: + - ruamel-yaml-clib>=0.2.7 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' + - ryd ; extra == 'docs' + - mercurial>5.7 ; extra == 'docs' + - ruamel-yaml-jinja2>=0.2 ; extra == 'jinja2' + requires_python: '>=3' +- pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz + name: ruamel-yaml-clib + version: 0.2.12 + sha256: 6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl + name: ruamel-yaml-clib + version: 0.2.12 + sha256: d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + name: ruamel-yaml-clib + version: 0.2.12 + sha256: bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl + name: ruamel-yaml-clib + version: 0.2.12 + sha256: a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb + requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl + name: ruamel-yaml-clib + version: 0.2.12 + sha256: 4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6 + requires_python: '>=3.9' +- conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda + sha256: abb12e1dd515b13660aacb5d0fd43835bc2186cab472df25b7716cd65e095111 + md5: fc80f7995e396cbaeabd23cf46c413dc + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=hash-mapping + size: 774252 + timestamp: 1732632769210 +- conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db + md5: a451d576819089b0d672f18768be0f65 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/six?source=hash-mapping + size: 16385 + timestamp: 1733381032766 +- conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3318875 + timestamp: 1699202167581 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + sha256: 7fa27cc512d3a783f38bd16bbbffc008807372499d5b65d089a8e43bde9db267 + md5: f75105e0585851f818e0009dd1dde4dc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3351802 + timestamp: 1695506242997 +- conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5 + md5: bf830ba5afc507c6232d4ef0fb1a882d + depends: + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3270220 + timestamp: 1699202389792 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + md5: b50a57ba89c32b62428b71a875291c9b + depends: + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3145523 + timestamp: 1699202432999 +- conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1 + md5: fc048363eb8f03cd1737600a5d08aafe + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: TCL + license_family: BSD + purls: [] + size: 3503410 + timestamp: 1699202577803 +- conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 + md5: 9efbfdc37242619130ea42b1cc4ed861 + depends: + - colorama + - python >=3.9 + license: MPL-2.0 or MIT + purls: + - pkg:pypi/tqdm?source=hash-mapping + size: 89498 + timestamp: 1735661472632 +- conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 + md5: 019a7385be9af33791c989871317e1ed + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/traitlets?source=hash-mapping + size: 110051 + timestamp: 1733367480074 +- conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf + md5: 8ac3367aafb1cc0a068483c580af8015 + license: LicenseRef-Public-Domain + purls: [] + size: 122354 + timestamp: 1728047496079 +- conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450 + md5: 6797b005cd0f439c4c5c9ac565783700 + constrains: + - vs2015_runtime >=14.29.30037 + license: LicenseRef-MicrosoftWindowsSDK10 + purls: [] + size: 559710 + timestamp: 1728377334097 +- conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + sha256: 114919ffa80c328127dab9c8e7a38f9d563c617691fb81fccb11c1e86763727e + md5: 32674f8dbfb7b26410ed580dd3c10a29 + depends: + - brotli-python >=1.0.9 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.9 + - zstandard >=0.18.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/urllib3?source=hash-mapping + size: 100102 + timestamp: 1734859520452 +- conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663 + md5: 7c10ec3158d1eb4ddff7007c9101adb0 + depends: + - vc14_runtime >=14.38.33135 + track_features: + - vc14 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 17479 + timestamp: 1731710827215 +- conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49 + md5: 32b37d0cfa80da34548501cdc913a832 + depends: + - ucrt >=10.0.20348.0 + constrains: + - vs2015_runtime 14.42.34433.* *_23 + license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime + license_family: Proprietary + purls: [] + size: 754247 + timestamp: 1731710681163 +- pypi: git+https://github.com/RoboStack/vinca.git@c47948cdec7d20d480342161751a34e92a3b0eaf + name: vinca + version: 0.0.2 + requires_dist: + - catkin-pkg>=0.4.16 + - ruamel-yaml>=0.16.6,<0.18.0 + - rosdistro>=0.8.0 + - empy>=3.3.4,<4.0.0 + - requests>=2.24.0 + - networkx>=2.5 + - rich>=10 + requires_python: '>=3.6' +- conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118 + md5: 5c176975ca2b8366abad3c97b3cd1e83 + depends: + - vc14_runtime >=14.42.34433 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 17572 + timestamp: 1731710685291 +- conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda + sha256: 93807369ab91f230cf9e6e2a237eaa812492fe00face5b38068735858fba954f + md5: 46e441ba871f524e2b067929da3051c2 + depends: + - __win + - python >=3.9 + license: LicenseRef-Public-Domain + purls: + - pkg:pypi/win-inet-pton?source=hash-mapping + size: 9555 + timestamp: 1733130678956 +- conda: https://repo.prefix.dev/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 89141 + timestamp: 1641346969816 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 + sha256: 8bc601d6dbe249eba44b3c456765265cd8f42ef1e778f8df9b0c9c88b8558d7e + md5: b853307650cb226731f653aa623936a4 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 92927 + timestamp: 1641347626613 +- conda: https://repo.prefix.dev/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + sha256: 5301417e2c8dea45b401ffee8df3957d2447d4ce80c83c5ff151fc6bfe1c4148 + md5: d7e08fcf8259d742156188e8762b4d20 + license: MIT + license_family: MIT + purls: [] + size: 84237 + timestamp: 1641347062780 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 + md5: 4bb3f014845110883a3c5ee811fd84b4 + license: MIT + license_family: MIT + purls: [] + size: 88016 + timestamp: 1641347076660 +- conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5 + md5: adbfb9f45d1004a26763652246a33764 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + purls: [] + size: 63274 + timestamp: 1641347623319 +- conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 + md5: 0c3cc595284c5e8f0f9900a9b228a332 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=hash-mapping + size: 21809 + timestamp: 1732827613585 +- conda: https://repo.prefix.dev/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda + sha256: a5cf0eef1ffce0d710eb3dffcb07d9d5922d4f7a141abc96f6476b98600f718f + md5: aec590674ba365e50ae83aa2d6e1efae + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.11 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 417923 + timestamp: 1725305669690 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstandard-0.23.0-py311hd5293d8_1.conda + sha256: 44c4c8e718f7f50c985d9b3de23760fb01987e6307301eef0bcfc26862094690 + md5: 7a022310d8759b7d251717b09242ee13 + depends: + - cffi >=1.11 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 391826 + timestamp: 1725305804278 +- conda: https://repo.prefix.dev/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda + sha256: d9bf977b620750049eb60fffca299a701342a2df59bcc2586a79b2f7c5783fa1 + md5: 4fc42d6f85a21b09ee6477f456554df3 + depends: + - __osx >=10.13 + - cffi >=1.11 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 411350 + timestamp: 1725305723486 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda + sha256: d2f2f1a408e2353fc61d2bf064313270be2260ee212fe827dcf3cfd3754f1354 + md5: 29d320d6450b2948740a9be3761b2e9d + depends: + - __osx >=11.0 + - cffi >=1.11 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 332271 + timestamp: 1725305847224 +- conda: https://repo.prefix.dev/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda + sha256: a93584e6167c3598854a47f3bf8276fa646a3bb4d12fcfc23a54e37d5879f35c + md5: 7d4c123cbb5e6293dd4dd2f8d30f0de4 + depends: + - cffi >=1.11 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 321357 + timestamp: 1725305930669 +- conda: https://repo.prefix.dev/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: 4d056880988120e29d75bfff282e0f45 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 554846 + timestamp: 1714722996770 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + sha256: 484f9d0722c77685ae379fbff3ccd662af9ead7e59eb39cd6d0c677cdf25ff6c + md5: be8d5f8cf21aed237b8b182ea86b3dd6 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 539937 + timestamp: 1714723130243 +- conda: https://repo.prefix.dev/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + sha256: efa04a98cb149643fa54c4dad5a0179e36a5fbc88427ea0eec88ceed87fd0f96 + md5: 4cb2cd56f039b129bb0e491c1164167e + depends: + - __osx >=10.9 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 498900 + timestamp: 1714723303098 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + sha256: 2d4fd1ff7ee79cd954ca8e81abf11d9d49954dd1fef80f27289e2402ae9c2e09 + md5: d96942c06c3e84bfcc5efb038724a7fd + depends: + - __osx >=11.0 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 405089 + timestamp: 1714723101397 +- conda: https://repo.prefix.dev/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + sha256: 768e30dc513568491818fb068ee867c57c514b553915536da09e5d10b4ebf3c3 + md5: 9a17230f95733c04dc40a2b1e5491d74 + depends: + - libzlib >=1.2.13,<2.0.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 349143 + timestamp: 1714723445995 diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 000000000..cbbabc58b --- /dev/null +++ b/pixi.toml @@ -0,0 +1,58 @@ +[project] +name = "ros-noetic" +# Just a convention, this is the same as the mutex package +version = "0.6.0" +description = "RoboStack repo to package ros-noetic packages as conda packages" +authors = ["Tobias Fischer ", "Wolf Vollprecht ", "Silvio Traversaro "] +channels = ["https://repo.prefix.dev/conda-forge"] +platforms = ["osx-arm64", "linux-64", "osx-64", "linux-aarch64", "win-64"] + +[system-requirements] +# 2.17 is the glibc version used in centos 7 +libc = { family="glibc", version="2.17" } + +[tasks] +upload = "anaconda -t $ANACONDA_API_TOKEN upload" + +[dependencies] +python = ">=3.11.0,<3.12" +rattler-build = ">=0.33" +anaconda-client = ">=1.12" + +[target.win-64.dependencies] +# patch is required by rattler-build +m2-patch = "*" +# git is required by rattler-build +git = "*" + +[feature.beta.pypi-dependencies] +# This is tipically the latest commit on rattler-build-humble branch +vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "c47948cdec7d20d480342161751a34e92a3b0eaf" } +# Uncomment this line to work with a local vinca for faster iteration, but remember to comment it back +# (and regenerate the pixi.lock) once you push the modified commit to the repo +#vinca = { path = "../vinca", editable = true } + +[feature.beta.tasks] +generate-recipes = { cmd = "vinca -m", depends_on = ["rename-file"] } +remove-file = { cmd = "rm vinca.yaml; rm -rf recipes" } +copy_additional_recipes = { cmd = "sh -c 'find additional_recipes/* -maxdepth 0 -type d -exec ln -s ../{} recipes/ \\;'" } +build = { cmd = "rattler-build build --recipe-dir ./recipes -m ./conda_build_config.yaml --skip-existing", depends_on = ["generate-recipes", "copy_additional_recipes"] } +build_one_package = { cmd = "cp ./patch/$PACKAGE.*patch ./recipes/$PACKAGE/patch/; rattler-build build --recipe ./recipes/$PACKAGE/recipe.yaml -m ./conda_build_config.yaml", env = { PACKAGE = "ros-noetic-ros-base" } } + +[environments] +beta = ["beta"] + +[target.linux-64.tasks] +rename-file = { cmd = "ln -s vinca_linux_64.yaml vinca.yaml", depends_on = ["remove-file"] } + +[target.osx-64.tasks] +rename-file = { cmd = "ln -s vinca_osx.yaml vinca.yaml", depends_on = ["remove-file"] } + +[target.osx-arm64.tasks] +rename-file = { cmd = "ln -s vinca_osx_arm64.yaml vinca.yaml", depends_on = ["remove-file"] } + +[target.linux-aarch64.tasks] +rename-file = { cmd = "ln -s vinca_linux_aarch64.yaml vinca.yaml", depends_on = ["remove-file"] } + +[target.win-64.tasks] +rename-file = { cmd = "cp vinca_win.yaml vinca.yaml", depends_on = ["remove-file"] } diff --git a/robostack.yaml b/robostack.yaml index d45617de3..be65ec059 100644 --- a/robostack.yaml +++ b/robostack.yaml @@ -81,14 +81,21 @@ draco: eigen: robostack: [eigen] emacs: - robostack: [emacs] +# Wait until https://github.com/conda-forge/gtk3-feedstock/pull/74 is resolved +# and emacs is rebuilt for harfbuzz=10 +# robostack: [emacs] + robostack: [] festival: robostack: linux: [festival, festvox-kallpc16k] osx: [] win64: [] +file: + robostack: [file] ffmpeg: robostack: [ffmpeg] +ffmpeg-dev: + robostack: [ffmpeg] flac: robostack: [libflac] flex: @@ -111,6 +118,8 @@ geographiclib-tools: robostack: [geographiclib-cpp] git: robostack: [git] +glslang-dev: + robostack: [glslang] glut: robostack: linux: [freeglut] @@ -130,8 +139,10 @@ gstreamer1.0-plugins-base: robostack: [gst-plugins-base] gstreamer1.0-plugins-good: robostack: [gst-plugins-good] +# only sound-play requests it, but doesn't actually need it +# do not pull it in as migrations lack behind gstreamer1.0-plugins-ugly: - robostack: [gst-plugins-ugly] + robostack: [] gtest: robostack: [gtest] gtk2: @@ -184,6 +195,8 @@ libabsl-dev: robostack: [libabseil] libblas-dev: robostack: [libblas, libcblas] +libboost: + robostack: [libboost] libboost-chrono-dev: robostack: [libboost-devel] libboost-date-time: @@ -260,8 +273,12 @@ libflann-dev: robostack: [flann] libfltk-dev: robostack: [fltk] +libfreeimage-dev: + robostack: [freeimage] libfreenect-dev: robostack: [] +libfreetype-dev: + robostack: [freetype] libfreetype6: robostack: [freetype] libfreetype6-dev: @@ -309,7 +326,7 @@ libhdf5-dev: libi2c-dev: robostack: [libi2c] liblttng-ust-dev: - robostack: [lttng-ust] + robostack: ["${{ \"lttng-ust\" if linux }}"] libjpeg: robostack: [libjpeg-turbo] libjsoncpp: @@ -318,6 +335,10 @@ libjsoncpp-dev: robostack: [jsoncpp] liblapack-dev: robostack: [liblapack] +liblz4: + robostack: [lz4] +liblz4-dev: + robostack: [lz4] libmicrohttpd: robostack: [libmicrohttpd] libncurses-dev: @@ -363,7 +384,7 @@ libpcap: libpcl-all: robostack: [pcl] libpcl-all-dev: - robostack: [pcl] + robostack: [pcl, libboost-devel, vtk-base, REQUIRE_OPENGL] libpng-dev: robostack: [libpng] libpoco-dev: @@ -400,13 +421,12 @@ libreadline: robostack: [readline] libreadline-dev: robostack: [readline] +libshaderc-dev: + robostack: [shaderc] libsndfile1-dev: robostack: [libsndfile] libspnav-dev: - robostack: - linux: [libspnav] - osx: [libspnav] - win64: [] + robostack: [libspnav, xorg-xorgproto] libsqlite3-dev: robostack: [sqlite 3.*] libssl-dev: @@ -454,10 +474,15 @@ libvtk: robostack: [vtk] libvtk-qt: robostack: [vtk] +libvulkan-dev: + robostack: + linux: [libvulkan-headers, libvulkan-loader] + osx: [] + win64: [libvulkan-headers, libvulkan-loader] libx11: - robostack: [xorg-libx11, REQUIRE_OPENGL] + robostack: [xorg-libx11, xorg-xorgproto, REQUIRE_OPENGL] libx11-dev: - robostack: [xorg-libx11, REQUIRE_OPENGL] + robostack: [xorg-libx11, xorg-xorgproto, REQUIRE_OPENGL] libxaw: robostack: linux: [xorg-libxaw] @@ -484,6 +509,12 @@ libxt-dev: robostack: [xorg-libxt] libxxf86vm: robostack: [REQUIRE_OPENGL] +libyaml: + robostack: [yaml] +libyaml-dev: + robostack: [yaml] +libzip-dev: + robostack: [libzip] libzmq3-dev: robostack: [zeromq, cppzmq] libzstd-dev: @@ -511,7 +542,7 @@ netpbm: linux-aarch64: [] osx-arm64: [] linux: [netpbm] - osx: [netpbm] + osx: [] win64: [] nlohmann-json-dev: robostack: [nlohmann_json] @@ -637,7 +668,7 @@ python-rospkg-modules: python-setuptools: robostack: [setuptools] python-sip: - robostack: [sip] + robostack: [sip 6.7.*] python-six: robostack: [six] python-slacker-cli: @@ -686,6 +717,8 @@ python3-cryptography: robostack: [cryptography] python3-defusedxml: robostack: [defusedxml] +python3-deprecated: + robostack: [deprecated] python3-dev: robostack: [python] python3-docopt: @@ -696,6 +729,8 @@ python3-empy: robostack: [empy] python3-flake8: robostack: [flake8] +python3-flake8-comprehensions: + robostack: [flake8-comprehensions] python3-flask: robostack: [flask] python3-flask-cors: @@ -770,6 +805,8 @@ python3-pip: robostack: [pip] python3-pkg-resources: robostack: [] +python3-protobuf: + robostack: [protobuf] python3-psutil: robostack: [psutil] python3-pyassimp: @@ -858,6 +895,16 @@ python3-unidiff: robostack: [unidiff] python3-usb: robostack: [pyusb] +python3-vcstool: + robostack: [vcstool] +python3-flake8-docstrings: + robostack: [flake8-docstrings] +python3-flake8-import-order: + robostack: [flake8-import-order] +python3-flake8-builtins: + robostack: [flake8-builtins] +python3-flake8-quotes: + robostack: [flake8-quotes] python3-venv: robostack: [virtualenv, pip, pip-tools, setuptools] python3-websocket: @@ -872,12 +919,16 @@ qt5-qmake: robostack: [qt-main, REQUIRE_OPENGL] qtbase5-dev: robostack: [qt-main, REQUIRE_OPENGL] +rapidjson-dev: + robostack: [rapidjson] roboticstoolbox-python: robostack: [roboticstoolbox-python] rsync: robostack: [rsync] rti-connext-dds-5.3.1: robostack: [] +ruby: + robostack: [ruby] sbcl: robostack: linux: [sbcl] @@ -898,10 +949,7 @@ sdl2: socat: robostack: [socat] spacenavd: - robostack: - linux: [libspnav] - osx: [libspnav] - win64: [] + robostack: [libspnav] spdlog: robostack: [spdlog] sshpass: @@ -949,7 +997,7 @@ wget: xsimd: robostack: [xsimd] xtensor: - robostack: [xtensor 0.24] + robostack: [xtensor ==0.24.7] wx-common: robostack: [wxpython] wxpython: @@ -966,4 +1014,5 @@ zbar: robostack: [zbar] zlib: robostack: [zlib] - +zziplib: + robostack: [zziplib] diff --git a/vinca_linux_64.yaml b/vinca_linux_64.yaml index 051a4051e..11386c842 100644 --- a/vinca_linux_64.yaml +++ b/vinca_linux_64.yaml @@ -1,12 +1,12 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.5 noetic +mutex_package: ros-distro-mutex 0.6.* noetic_* # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 17 +build_number: 18 # Ignore all dependencies of selected packages skip_all_deps: false @@ -19,6 +19,7 @@ packages_skip_by_deps: - eigenpy - hpp-fcl - pinocchio + - gtsam # - ros_core # - diagnostic_updater @@ -28,6 +29,8 @@ packages_remove_from_deps: - kobuki-ftdi # needs too many patches for ftdi & usb - openni2-camera - libpointmatcher + - roseus + - jskeus build_in_own_azure_stage: - ros-noetic-jsk-pcl-ros-utils @@ -44,6 +47,15 @@ skip_existing: # 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: + - jsk-visualization + + - octomap-ros + - octomap-mapping + - octomap-server + - rtabmap + - rtabmap-ros + + - robot_body_filter # maintainer peci1 - cras_cpp_common # maintainer peci1 - cras_py_common # maintainer peci1 - cras_docs_common # maintainer peci1 @@ -62,7 +74,6 @@ packages_select_by_deps: - point_cloud_color # maintainer peci1 - rosmsg_cpp # maintainer peci1 - snmp_ros # maintainer peci1 - - robot_body_filter # maintainer peci1 - static_transform_mux # maintainer peci1 - tf_remapper_cpp # maintainer peci1 - roslint # maintainer peci1 @@ -81,7 +92,6 @@ packages_select_by_deps: - navigation - ecl-core - ecl-threads - - jsk-visualization - actionlib - ros-babel-fish - ros-babel-fish-test-msgs @@ -92,9 +102,6 @@ packages_select_by_deps: - microstrain-inertial-driver - microstrain-inertial-msgs - usb-cam - - octomap-ros - - octomap-mapping - - octomap-server - ackermann-msgs - fake-localization - realsense2-description @@ -180,6 +187,7 @@ packages_select_by_deps: - depthimage-to-laserscan - joy - nmea-msgs + - rosmon - gazebo-ros-control - gazebo-plugins @@ -202,7 +210,6 @@ packages_select_by_deps: - panda-moveit-config - moveit-ros-visualization - moveit-ros-planning-interface - - niryo_one_simulation - teb-local-planner - turtlebot3 - turtlebot3-fake @@ -225,7 +232,6 @@ packages_select_by_deps: - sound-play - pid - rosfmt - - rosmon - husky-simulator - lanelet2 @@ -254,11 +260,12 @@ packages_select_by_deps: - dbw-polaris-msgs - geodesy - aruco-ros + - pr2-teleop + - rqt-ez-publisher + - slam-gmapping - # Needs fixing in CI, uploaded manually - - rtabmap - - rtabmap-ros - + ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED + ## TODO AFTER REBUILD # Not compatible with recent libabsl # - libfranka # - franka @@ -276,8 +283,6 @@ packages_select_by_deps: # - naoqi-libqi # - naoqi-libqicore - ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED - ## TODO AFTER REBUILD # - foxglove_bridge # - rtabmap # - mrpt2 @@ -663,7 +668,6 @@ packages_select_by_deps: # - pr2-power-drivers # - pr2-run-stop-auto-restart # - pr2-self-test-msgs - - pr2-teleop # - pr2-tilt-laser-interface # - pr2-tuckarm # - pr2-tuck-arms-action @@ -1009,7 +1013,6 @@ packages_select_by_deps: # - ros-type-introspection # - rqt # - rqt-controller-manager - - rqt-ez-publisher # - rqt-joint-trajectory-controller # - rx-service-tools # - safety-limiter-msgs @@ -1021,7 +1024,6 @@ packages_select_by_deps: # - service-tools # - sick-safetyscanners # - sick-scan - - slam-gmapping # - slam-toolbox-rviz # - slic # - slime-wrapper diff --git a/vinca_linux_aarch64.yaml b/vinca_linux_aarch64.yaml index 9d80213be..9e91e8946 100644 --- a/vinca_linux_aarch64.yaml +++ b/vinca_linux_aarch64.yaml @@ -1,12 +1,12 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.5 noetic +mutex_package: ros-distro-mutex 0.6.* noetic_* # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 11 +build_number: 12 # Ignore all dependencies of selected packages skip_all_deps: false @@ -20,10 +20,13 @@ packages_skip_by_deps: - eigenpy - hpp-fcl - pinocchio + - gtsam packages_remove_from_deps: - stage-ros - stage + - roseus + - jskeus skip_existing: # - https://conda.anaconda.org/robostack/ diff --git a/vinca_osx.yaml b/vinca_osx.yaml index 462e80254..983f8ac60 100644 --- a/vinca_osx.yaml +++ b/vinca_osx.yaml @@ -1,12 +1,12 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.5 noetic +mutex_package: ros-distro-mutex 0.6.* noetic_* # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 20 +build_number: 21 # Ignore all dependencies of selected packages skip_all_deps: false @@ -21,10 +21,13 @@ packages_skip_by_deps: - eigenpy - hpp-fcl - pinocchio + - gtsam packages_remove_from_deps: - stage-ros - stage + - roseus + - jskeus skip_existing: # - https://conda.anaconda.org/robostack/ @@ -141,20 +144,10 @@ packages_select_by_deps: - 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 diff --git a/vinca_osx_arm64.yaml b/vinca_osx_arm64.yaml index 8c439c8ee..fb182aa8f 100644 --- a/vinca_osx_arm64.yaml +++ b/vinca_osx_arm64.yaml @@ -1,12 +1,12 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.5 noetic +mutex_package: ros-distro-mutex 0.6.* noetic_* # mapping for package keys conda_index: - robostack.yaml - packages-ignore.yaml -build_number: 8 +build_number: 9 # Ignore all dependencies of selected packages skip_all_deps: false @@ -20,13 +20,13 @@ packages_skip_by_deps: - eigenpy - hpp-fcl - pinocchio + - gtsam packages_remove_from_deps: - stage-ros - stage - - # sbcl is not available for osx-arm64 - # - roslisp + - roseus + - jskeus skip_existing: # - https://conda.anaconda.org/robostack/ @@ -42,24 +42,40 @@ packages_select_by_deps: ## # TODO OSX-ARM64 ## - - rospack + - desktop + - perception + - desktop-full + - roslisp + - geometry2 + - navigation + - ros-controllers + + - moveit + - moveit-servo + - moveit_visual_tools + - webots-ros + - microstrain-inertial-driver - microstrain-inertial-msgs + + - rospack - octomap-ros - ackermann-msgs - fake-localization - realsense2-description - rviz + - rviz_visual_tools - python-qt-binding - qt-gui-cpp - actionlib - ros-babel-fish - ros-babel-fish-test-msgs - - moveit_visual_tools - - rviz_visual_tools - rgbd-launch + - pcl-ros + - pcl-conversions + - plotjuggler - plotjuggler_ros @@ -69,21 +85,11 @@ packages_select_by_deps: - 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 - - moveit-servo - # - eigenpy # needs manual build + - qt-gui-cpp # needs manual build + - turtlebot3 - turtlebot3-simulations - - desktop-full - realsense2_camera - realsense2_description - kdl-parser-py @@ -94,7 +100,6 @@ packages_select_by_deps: - hector-nav-msgs - hector-trajectory-server - radar-msgs - - geometry2 - tf2 - tf2_bullet - tf2_eigen @@ -113,14 +118,13 @@ packages_select_by_deps: - laser-proc - rosserial-arduino - rosserial-client - - navigation - - ros-controllers - gazebo-dev - hector-gazebo-plugins - gazebo-ros - gazebo-ros-control - gazebo-plugins + - lms1xx - controller-manager - interactive_marker_twist_server @@ -148,7 +152,6 @@ packages_select_by_deps: - move-base - rosfmt - mavros-extras - - webots-ros - slam-gmapping - openslam-gmapping - tf2_web_republisher diff --git a/vinca_win.yaml b/vinca_win.yaml index 69d8e4071..63de91e5f 100644 --- a/vinca_win.yaml +++ b/vinca_win.yaml @@ -1,12 +1,12 @@ ros_distro: noetic -mutex_package: ros-distro-mutex 0.5 noetic +mutex_package: ros-distro-mutex 0.6.* 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 @@ -21,12 +21,15 @@ packages_skip_by_deps: - eigenpy - hpp-fcl - pinocchio + - gtsam packages_remove_from_deps: # see https://github.com/RoboStack/ros-noetic/issues/25 # - image_view - stage-ros - stage + - roseus + - jskeus skip_existing: - https://conda.anaconda.org/robostack-staging/ @@ -121,6 +124,10 @@ packages_select_by_deps: - plotjuggler - rosserial-arduino - tf2_web_republisher + # Required by jackal-gazebo + - hector-gazebo-plugins + # Required by jackal-navigation + - gmapping ## ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED